diff --git a/setter/macos.c b/setter/macos.c index c367de6..fb0b9f3 100644 --- a/setter/macos.c +++ b/setter/macos.c @@ -1 +1,2154 @@ -/**************************************************************************** The Disc Image Chef ----------------------------------------------------------------------------- Filename : macos.c Author(s) : Natalia Portillo Component : fstester.setter --[ Description ] ----------------------------------------------------------- Contains Mac OS code --[ License ] --------------------------------------------------------------- This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warraty of MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ----------------------------------------------------------------------------- Copyright (C) 2011-2018 Natalia Portillo *****************************************************************************/ #if defined(macintosh) #include #include #include #include #include #include #include #include #include #include #include #include "consts.h" #include "defs.h" #include "macos.h" void GetOsInfo() { int32_t gestaltResponse; OSErr rc; printf("OS information:\n"); rc = Gestalt(gestaltAUXVersion, &gestaltResponse); if(!rc) { printf("Running under A/UX version 0x%08X\n", gestaltResponse); } else { rc = Gestalt(gestaltSystemVersion, &gestaltResponse); if(rc) { printf("Could not get Mac OS version.\n"); } else { printf("Running under Mac OS version %d.%d.%d", (gestaltResponse & 0xF00) >> 8, (gestaltResponse & 0xF0) >> 4, gestaltResponse & 0xF); rc = Gestalt(gestaltSysArchitecture, &gestaltResponse); if(!rc) { printf(" for "); switch(gestaltResponse) { case 1: printf("Motorola 68k architecture."); break; case 2: printf("PowerPC architecture."); break; case 3: printf("x86 architecture."); break; default: printf("unknown architecture code %d.", gestaltResponse); break; } } printf("\n"); } rc = Gestalt(gestaltMacOSCompatibilityBoxAttr, &gestaltResponse); if(!rc) { printf("Running under Classic.\n"); } } } void GetVolumeInfo(const char *path, size_t *clusterSize) { OSErr rc; Str255 str255; HVolumeParam hpb; XVolumeParam xpb; int32_t gestaltResponse; int16_t drvInfo; int16_t refNum; uint64_t totalBlocks; uint64_t freeBlocks; uint32_t crDate; uint32_t lwDate; uint32_t bkDate; uint16_t fsId; uint64_t totalBytes; uint64_t freeBytes; int hfsPlusApis = 0; int bigVol = 0; *clusterSize = 0; snprintf((char *)str255, 255, "%s", path); rc = Gestalt(gestaltFSAttr, &gestaltResponse); if(!rc) { hfsPlusApis = gestaltResponse & (1 << gestaltHasHFSPlusAPIs); bigVol = gestaltResponse & (1 << gestaltFSSupports2TBVols); } if(!bigVol) { hpb.ioNamePtr = str255; hpb.ioVRefNum = 0; hpb.ioVolIndex = -1; rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); if(rc) { printf("Could not get volume information.\n"); return; } drvInfo = hpb.ioVDrvInfo; refNum = hpb.ioVRefNum; totalBlocks = hpb.ioVNmAlBlks; freeBlocks = hpb.ioVFrBlk; crDate = hpb.ioVCrDate; lwDate = hpb.ioVLsMod; bkDate = hpb.ioVBkUp; fsId = hpb.ioVSigWord; *clusterSize = hpb.ioVAlBlkSiz; totalBytes = totalBlocks * *clusterSize; freeBytes = freeBlocks * *clusterSize; if(hpb.ioVFSID != 0) { fsId = hpb.ioVFSID; } } else { xpb.ioNamePtr = str255; xpb.ioVRefNum = 0; xpb.ioVolIndex = -1; rc = PBXGetVolInfo((XVolumeParamPtr) & xpb, 0); if(rc) { printf("Could not get volume information.\n"); return; } drvInfo = xpb.ioVDrvInfo; refNum = xpb.ioVRefNum; totalBlocks = xpb.ioVTotalBytes / xpb.ioVAlBlkSiz; freeBlocks = xpb.ioVFreeBytes / xpb.ioVAlBlkSiz; crDate = xpb.ioVCrDate; lwDate = xpb.ioVLsMod; bkDate = xpb.ioVBkUp; fsId = xpb.ioVSigWord; *clusterSize = xpb.ioVAlBlkSiz; totalBytes = xpb.ioVTotalBytes; freeBytes = xpb.ioVFreeBytes; if(xpb.ioVFSID != 0) { fsId = xpb.ioVFSID; } } printf("Volume information:\n"); printf("\tPath: %s\n", path); if(bigVol) { printf("\tVolume supports up to 2Tb disks.\n"); } if(hfsPlusApis) { printf("\tVolume supports HFS Plus APIs.\n"); } printf("\tDrive number: %d\n", drvInfo); printf("\tVolume number: %d\n", refNum); printf("\tVolume name: %#s\n", str255); printf("\t%llu allocation blocks in volume, %llu free\n", totalBlocks, freeBlocks); printf("\t%llu bytes in volume, %llu free\n", totalBytes, freeBytes); printf("\t%d bytes per allocation block.\n", *clusterSize); printf("\tVolume created on 0x%08X\n", crDate); printf("\tVolume last written on 0x%08X\n", lwDate); printf("\tVolume last backed up on 0x%08X\n", bkDate); printf("\tFilesystem type: "); switch(fsId) { case 0xD2D7: printf("MFS\n"); break; case 0x4244: printf("HFS\n"); break; case 0x482B: printf("HFS Plus\n"); break; case 0x4147: printf("ISO9660\n"); break; case 0x55DF: printf("UDF\n"); break; case 0x4242: printf("High Sierra\n"); break; case 0x4A48: printf("Audio CD\n"); break; case 0x0100: printf("ProDOS\n"); break; default: printf("unknown id 0x%04X\n", fsId); break; } } void FileAttributes(const char *path) { OSErr rc, wRc, cRc; Str255 str255; HVolumeParam hpb; int16_t refNum; int16_t refFile; int32_t dirId; FInfo finderInfo; int32_t count; HFileInfo *fpb; CInfoPBRec cipbr; snprintf((char *)str255, 255, "%s", path); hpb.ioNamePtr = str255; hpb.ioVRefNum = 0; hpb.ioVolIndex = -1; rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); if(rc) { printf("Could not get volume information.\n"); return; } refNum = hpb.ioVRefNum; rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pATTRS", &dirId); if(rc) { printf("Error %d creating working directory.\n", rc); return; } printf("Creating attribute files.\n"); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pNONE", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pNONE", 0, &refFile); if(!rc) { count = strlen(noAttributeText); wRc = FSWrite(refFile, &count, noAttributeText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; rc = HSetFInfo(refNum, dirId, "\pNONE", &finderInfo); } } printf("\tFile with no attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "NONE", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pINDESK", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pINDESK", 0, &refFile); if(!rc) { count = strlen(desktopText); wRc = FSWrite(refFile, &count, desktopText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = kIsOnDesk; rc = HSetFInfo(refNum, dirId, "\pINDESK", &finderInfo); } } printf("\tFile is in desktop: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "INDESK", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pBROWN", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pBROWN", 0, &refFile); if(!rc) { count = strlen(color2Text); wRc = FSWrite(refFile, &count, color2Text); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = 0x02; rc = HSetFInfo(refNum, dirId, "\pBROWN", &finderInfo); } } printf("\tFile is colored brown: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "BROWN", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pGREEN", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pGREEN", 0, &refFile); if(!rc) { count = strlen(color4Text); wRc = FSWrite(refFile, &count, color4Text); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = 0x04; rc = HSetFInfo(refNum, dirId, "\pGREEN", &finderInfo); } } printf("\tFile is colored green: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "GREEN", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pLILAC", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pLILAC", 0, &refFile); if(!rc) { count = strlen(color6Text); wRc = FSWrite(refFile, &count, color6Text); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = 0x06; rc = HSetFInfo(refNum, dirId, "\pLILAC", &finderInfo); } } printf("\tFile is colored lilac: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "LILAC", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pBLUE", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pBLUE", 0, &refFile); if(!rc) { count = strlen(color8Text); wRc = FSWrite(refFile, &count, color8Text); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = 0x08; rc = HSetFInfo(refNum, dirId, "\pBLUE", &finderInfo); } } printf("\tFile is colored blue: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "BLUE", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pMAGENTA", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pMAGENTA", 0, &refFile); if(!rc) { count = strlen(colorAText); wRc = FSWrite(refFile, &count, colorAText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = 0x0A; rc = HSetFInfo(refNum, dirId, "\pMAGENTA", &finderInfo); } } printf("\tFile is colored magenta: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "MAGENTA", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pRED", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pRED", 0, &refFile); if(!rc) { count = strlen(colorCText); wRc = FSWrite(refFile, &count, colorCText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = 0x0C; rc = HSetFInfo(refNum, dirId, "\pRED", &finderInfo); } } printf("\tFile is colored red: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "RED", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pORANGE", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pORANGE", 0, &refFile); if(!rc) { count = strlen(colorEText); wRc = FSWrite(refFile, &count, colorEText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = 0x0E; rc = HSetFInfo(refNum, dirId, "\pORANGE", &finderInfo); } } printf("\tFile is colored orange: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ORANGE", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pSWITCH", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pSWITCH", 0, &refFile); if(!rc) { count = strlen(requireSwitchText); wRc = FSWrite(refFile, &count, requireSwitchText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = kRequireSwitchLaunch; rc = HSetFInfo(refNum, dirId, "\pSWITCH", &finderInfo); } } printf("\tFile require switch launch: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SWITCH", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pSHARED", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pSHARED", 0, &refFile); if(!rc) { count = strlen(sharedText); wRc = FSWrite(refFile, &count, sharedText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = kIsShared; rc = HSetFInfo(refNum, dirId, "\pSHARED", &finderInfo); } } printf("\tFile is shared: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SHARED", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pNOINIT", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pNOINIT", 0, &refFile); if(!rc) { count = strlen(noInitText); wRc = FSWrite(refFile, &count, noInitText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = kHasNoINITs; rc = HSetFInfo(refNum, dirId, "\pNOINIT", &finderInfo); } } printf("\tFile has no INITs: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "NOINIT", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pINITED", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pINITED", 0, &refFile); if(!rc) { count = strlen(initedText); wRc = FSWrite(refFile, &count, initedText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = kHasBeenInited; rc = HSetFInfo(refNum, dirId, "\pINITED", &finderInfo); } } printf("\tFile has been INITed: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "INITED", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pAOCE", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pAOCE", 0, &refFile); if(!rc) { count = strlen(aoceText); wRc = FSWrite(refFile, &count, aoceText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = kAOCE; rc = HSetFInfo(refNum, dirId, "\pAOCE", &finderInfo); } } printf("\tFile with AOCE set: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "AOCE", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pICON", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pICON", 0, &refFile); if(!rc) { count = strlen(customIconText); wRc = FSWrite(refFile, &count, customIconText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = kHasCustomIcon; rc = HSetFInfo(refNum, dirId, "\pICON", &finderInfo); } } printf("\tFile has custom icon (not really): name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ICON", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pSTATIONERY", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pSTATIONERY", 0, &refFile); if(!rc) { count = strlen(stationeryText); wRc = FSWrite(refFile, &count, stationeryText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = kIsStationery; rc = HSetFInfo(refNum, dirId, "\pSTATIONERY", &finderInfo); } } printf("\tFile is stationery: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "STATIONERY", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pLOCKED", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pLOCKED", 0, &refFile); if(!rc) { count = strlen(nameLockText); wRc = FSWrite(refFile, &count, nameLockText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = kNameLocked; rc = HSetFInfo(refNum, dirId, "\pLOCKED", &finderInfo); } } printf("\tFile is locked: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "LOCKED", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pBUNDLE", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pBUNDLE", 0, &refFile); if(!rc) { count = strlen(bundleText); wRc = FSWrite(refFile, &count, bundleText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = kHasBundle; rc = HSetFInfo(refNum, dirId, "\pBUNDLE", &finderInfo); } } printf("\tFile has bundle (not really): name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "BUNDLE", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pINVISIBLE", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pINVISIBLE", 0, &refFile); if(!rc) { count = strlen(invisibleText); wRc = FSWrite(refFile, &count, invisibleText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = kIsInvisible; rc = HSetFInfo(refNum, dirId, "\pINVISIBLE", &finderInfo); } } printf("\tFile is invisible: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "INVISIBLE", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pALIAS", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pALIAS", 0, &refFile); if(!rc) { count = strlen(aliasText); wRc = FSWrite(refFile, &count, aliasText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = kIsAlias; rc = HSetFInfo(refNum, dirId, "\pALIAS", &finderInfo); } } printf("\tFile is alias to nowhere: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ALIAS", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pSIMPLE", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pSIMPLE", 0, &refFile); if(!rc) { count = strlen(simpletextText); wRc = FSWrite(refFile, &count, simpletextText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostSimpleText; rc = HSetFInfo(refNum, dirId, "\pSIMPLE", &finderInfo); } } printf("\tFile with creator SimpleText: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SIMPLE", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pDIC", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pDIC", 0, &refFile); if(!rc) { count = strlen(dicText); wRc = FSWrite(refFile, &count, dicText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostDiscImageChef; rc = HSetFInfo(refNum, dirId, "\pDIC", &finderInfo); } } printf("\tFile with creator 'dic ': name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "DIC", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pPOS_M32_M32", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pPOS_M32_M32", 0, &refFile); if(!rc) { count = strlen(pos_m32_m32); wRc = FSWrite(refFile, &count, pos_m32_m32); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdLocation.h = -32768; finderInfo.fdLocation.v = -32768; rc = HSetFInfo(refNum, dirId, "\pPOS_M32_M32", &finderInfo); } } printf("\tFile with position -32768,-32768: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_M32_M32", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pPOS_32_32", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pPOS_32_32", 0, &refFile); if(!rc) { count = strlen(pos_32_32); wRc = FSWrite(refFile, &count, pos_32_32); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdLocation.h = 32767; finderInfo.fdLocation.v = 32767; rc = HSetFInfo(refNum, dirId, "\pPOS_32_32", &finderInfo); } } printf("\tFile with position 32767,32767: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_32_32", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pPOS_M1_M1", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pPOS_M1_M1", 0, &refFile); if(!rc) { count = strlen(pos_m1_m1); wRc = FSWrite(refFile, &count, pos_m1_m1); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdLocation.h = -1024; finderInfo.fdLocation.v = -1024; rc = HSetFInfo(refNum, dirId, "\pPOS_M1_M1", &finderInfo); } } printf("\tFile with position -1024,-1024: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_M1_M1", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pPOS_M1_M32", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pPOS_M1_M32", 0, &refFile); if(!rc) { count = strlen(pos_m1_m32); wRc = FSWrite(refFile, &count, pos_m1_m32); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdLocation.h = -1024; finderInfo.fdLocation.v = -32768; rc = HSetFInfo(refNum, dirId, "\pPOS_M1_M32", &finderInfo); } } printf("\tFile with position -1024,-32768: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_M1_M32", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pPOS_M1_32", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pPOS_M1_32", 0, &refFile); if(!rc) { count = strlen(pos_m1_32); wRc = FSWrite(refFile, &count, pos_m1_32); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdLocation.h = -1024; finderInfo.fdLocation.v = 32767; rc = HSetFInfo(refNum, dirId, "\pPOS_M1_32", &finderInfo); } } printf("\tFile with position -1024,32767: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_M1_32", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pPOS_M1_1", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pPOS_M1_1", 0, &refFile); if(!rc) { count = strlen(pos_m1_1); wRc = FSWrite(refFile, &count, pos_m1_1); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdLocation.h = -1024; finderInfo.fdLocation.v = 1024; rc = HSetFInfo(refNum, dirId, "\pPOS_M1_1", &finderInfo); } } printf("\tFile with position -1024,1024: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_M1_1", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pPOS_1_M1", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pPOS_1_M1", 0, &refFile); if(!rc) { count = strlen(pos_1_m1); wRc = FSWrite(refFile, &count, pos_1_m1); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdLocation.h = 1024; finderInfo.fdLocation.v = -1024; rc = HSetFInfo(refNum, dirId, "\pPOS_1_M1", &finderInfo); } } printf("\tFile with position 1024,-1024: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_1_M1", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pPOS_1_M32", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pPOS_1_M32", 0, &refFile); if(!rc) { count = strlen(pos_1_m32); wRc = FSWrite(refFile, &count, pos_1_m32); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdLocation.h = 1024; finderInfo.fdLocation.v = -32768; rc = HSetFInfo(refNum, dirId, "\pPOS_1_M32", &finderInfo); } } printf("\tFile with position 1024,-32768: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_1_M32", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pPOS_1_32", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pPOS_1_32", 0, &refFile); if(!rc) { count = strlen(pos_1_32); wRc = FSWrite(refFile, &count, pos_1_32); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdLocation.h = 1024; finderInfo.fdLocation.v = 32767; rc = HSetFInfo(refNum, dirId, "\pPOS_1_32", &finderInfo); } } printf("\tFile with position 1024,32767: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_1_32", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pPOS_1_1", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pPOS_1_1", 0, &refFile); if(!rc) { count = strlen(pos_1_1); wRc = FSWrite(refFile, &count, pos_1_1); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdLocation.h = 1024; finderInfo.fdLocation.v = 1024; rc = HSetFInfo(refNum, dirId, "\pPOS_1_1", &finderInfo); } } printf("\tFile with position 1024,1024: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_1_1", rc, wRc, cRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pALL", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pALL", 0, &refFile); if(!rc) { count = strlen(allText); wRc = FSWrite(refFile, &count, allText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostUnknown; finderInfo.fdFlags = 0xFFFF; rc = HSetFInfo(refNum, dirId, "\pALL", &finderInfo); } } printf("\tFile has all flags bits set: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ALL", rc, wRc, cRc); } void FilePermissions(const char *path) { /* Do nothing, not supported by target operating system */ } void ExtendedAttributes(const char *path) { /* Do nothing, not supported by target operating system */ } static OSErr SaveResourceToNewFile(int16_t vRefNum, int32_t dirID, Str255 filename, ResType type, int16_t resId, Str255 resName, unsigned char *buffer, size_t length) { Handle h; OSErr rc; int16_t resRef; h = NewHandle(length); if(!h) return notEnoughMemoryErr; memcpy(*h, buffer, length); HCreateResFile(vRefNum, dirID, filename); resRef = HOpenResFile(vRefNum, dirID, filename, fsCurPerm); rc = ResError(); if(resRef == -1 || rc) return rc; UseResFile(resRef); AddResource(h, type, resId, resName); rc = ResError(); CloseResFile(resRef); DisposeHandle(h); return rc; } void ResourceFork(const char *path) { OSErr rc, wRc, cRc, rRc, rRc2, rRc3; Str255 str255; HVolumeParam hpb; int16_t refNum; int16_t refFile; int32_t dirId; FInfo finderInfo; int32_t count; HFileInfo *fpb; CInfoPBRec cipbr; snprintf((char *)str255, 255, "%s", path); hpb.ioNamePtr = str255; hpb.ioVRefNum = 0; hpb.ioVolIndex = -1; rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); if(rc) { printf("Could not get volume information.\n"); return; } refNum = hpb.ioVRefNum; rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pRSRC", &dirId); if(rc) { printf("Error %d creating working directory.\n", rc); return; } printf("Creating resource forks.\n"); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pICON", ostUnknown, ftGenericDocumentPC); if(!rc) { rRc = SaveResourceToNewFile(refNum, dirId, "\pICON", rtIcons, -16455, "\pIcon resource", IcnsResource, sizeof(IcnsResource)); rc = HOpenDF(refNum, dirId, "\pICON", 0, &refFile); if(!rc) { count = strlen(rsrcText); wRc = FSWrite(refFile, &count, rsrcText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostDiscImageChef; finderInfo.fdFlags = kHasCustomIcon; rc = HSetFInfo(refNum, dirId, "\pICON", &finderInfo); } } printf("\tFile with three items in the resource fork: name = \"%s\", rc = %d, wRc = %d, cRc = %d, rRc = %d\n", "ICON", rc, wRc, cRc, rRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pPICT", ostUnknown, ftGenericDocumentPC); if(!rc) { rRc = SaveResourceToNewFile(refNum, dirId, "\pPICT", ftPICTFile, 29876, "\pPicture resource", PictResource, sizeof(PictResource)); rc = HOpenDF(refNum, dirId, "\pPICT", 0, &refFile); if(!rc) { count = strlen(rsrcText); wRc = FSWrite(refFile, &count, rsrcText); cRc = FSClose(refFile); finderInfo.fdType = ftPICTFile; finderInfo.fdCreator = ostDiscImageChef; rc = HSetFInfo(refNum, dirId, "\pPICT", &finderInfo); } } printf("\tFile with three items in the resource fork: name = \"%s\", rc = %d, wRc = %d, cRc = %d, rRc = %d\n", "PICT", rc, wRc, cRc, rRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pVERSION", ostUnknown, ftGenericDocumentPC); if(!rc) { rRc = SaveResourceToNewFile(refNum, dirId, "\pVERSION", rtVersion, 1, "\pVersion resource", VersResource, sizeof(VersResource)); rc = HOpenDF(refNum, dirId, "\pVERSION", 0, &refFile); if(!rc) { count = strlen(rsrcText); wRc = FSWrite(refFile, &count, rsrcText); cRc = FSClose(refFile); finderInfo.fdType = ftGenericDocumentPC; finderInfo.fdCreator = ostDiscImageChef; rc = HSetFInfo(refNum, dirId, "\pVERSION", &finderInfo); } } printf("\tFile with three items in the resource fork: name = \"%s\", rc = %d, wRc = %d, cRc = %d, rRc = %d\n", "VERSION", rc, wRc, cRc, rRc); memset(&finderInfo, 0, sizeof(FInfo)); rc = HCreate(refNum, dirId, "\pALL", ostUnknown, ftGenericDocumentPC); if(!rc) { rRc = SaveResourceToNewFile(refNum, dirId, "\pALL", rtIcons, -16455, "\pIcon resource", IcnsResource, sizeof(IcnsResource)); rRc2 = SaveResourceToNewFile(refNum, dirId, "\pALL", ftPICTFile, 29876, "\pPicture resource", PictResource, sizeof(PictResource)); rRc3 = SaveResourceToNewFile(refNum, dirId, "\pALL", rtVersion, 1, "\pVersion resource", VersResource, sizeof(VersResource)); rc = HOpenDF(refNum, dirId, "\pALL", 0, &refFile); if(!rc) { count = strlen(rsrcText); wRc = FSWrite(refFile, &count, rsrcText); cRc = FSClose(refFile); finderInfo.fdType = ftPICTFile; finderInfo.fdCreator = ostDiscImageChef; finderInfo.fdFlags = kHasCustomIcon; rc = HSetFInfo(refNum, dirId, "\pALL", &finderInfo); } } printf("\tFile with three items in the resource fork: name = \"%s\", rc = %d, wRc = %d, cRc = %d, rRc = %d, rRc2 = %d, rRc3 = %d\n", "ALL", rc, wRc, cRc, rRc, rRc2, rRc3); } void Filenames(const char *path) { OSErr rc, wRc, cRc; Str255 str255; HVolumeParam hpb; int16_t refNum; int16_t refFile; int32_t dirId; FInfo finderInfo; int32_t count; char message[300]; int pos = 0; snprintf((char *)str255, 255, "%s", path); hpb.ioNamePtr = str255; hpb.ioVRefNum = 0; hpb.ioVolIndex = -1; rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); if(rc) { printf("Could not get volume information.\n"); return; } refNum = hpb.ioVRefNum; rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pFILENAME", &dirId); if(rc) { printf("Error %d creating working directory.\n", rc); return; } printf("Creating files with different filenames.\n"); for(pos = 0; filenames[pos]; pos++) { count = strlen(filenames[pos]); memset(&str255, 0, sizeof(Str255)); if(count > 255) { continue; } str255[0] = (char)count; memcpy(str255 + 1, filenames[pos], count); rc = HCreate(refNum, dirId, str255, ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, str255, 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, FILENAME_FORMAT, filenames[pos]); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", filenames[pos], rc, wRc, cRc); } } void Timestamps(const char *path) { OSErr rc, wRc, cRc, tRc; Str255 str255; HVolumeParam hpb; int16_t refNum; int16_t refFile; int32_t dirId; FInfo finderInfo; int32_t count; HFileInfo *fpb; CInfoPBRec cipbr; char message[300]; snprintf((char *)str255, 255, "%s", path); hpb.ioNamePtr = str255; hpb.ioVRefNum = 0; hpb.ioVolIndex = -1; rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); if(rc) { printf("Could not get volume information.\n"); return; } refNum = hpb.ioVRefNum; rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pTIMES", &dirId); if(rc) { printf("Error %d creating working directory.\n", rc); return; } printf("Creating timestamped files.\n"); rc = HCreate(refNum, dirId, "\pMAXCTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pMAXCTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, MAXDATETIME, "creation"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pMAXCTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = MAXTIMESTAMP; fpb->ioFlMdDat = NONTIMESTAMP; fpb->ioFlBkDat = NONTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXCTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pMAXMTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pMAXMTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, MAXDATETIME, "modification"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pMAXMTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = NONTIMESTAMP; fpb->ioFlMdDat = MAXTIMESTAMP; fpb->ioFlBkDat = NONTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXMTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pMAXBTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pMAXBTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, MAXDATETIME, "backup"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pMAXBTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = NONTIMESTAMP; fpb->ioFlMdDat = NONTIMESTAMP; fpb->ioFlBkDat = MAXTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXBTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pMINCTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pMINCTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, MINDATETIME, "creation"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pMINCTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = MINTIMESTAMP; fpb->ioFlMdDat = NONTIMESTAMP; fpb->ioFlBkDat = NONTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINCTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pMINMTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pMINMTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, MINDATETIME, "modification"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pMINMTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = NONTIMESTAMP; fpb->ioFlMdDat = MINTIMESTAMP; fpb->ioFlBkDat = NONTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINMTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pMINBTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pMINBTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, MINDATETIME, "backup"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pMINBTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = NONTIMESTAMP; fpb->ioFlMdDat = NONTIMESTAMP; fpb->ioFlBkDat = MINTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINBTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pY2KCTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pY2KCTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, Y2KDATETIME, "creation"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pY2KCTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = Y2KTIMESTAMP; fpb->ioFlMdDat = NONTIMESTAMP; fpb->ioFlBkDat = NONTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2KCTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pY2KMTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pY2KMTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, Y2KDATETIME, "modification"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pY2KMTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = NONTIMESTAMP; fpb->ioFlMdDat = Y2KTIMESTAMP; fpb->ioFlBkDat = NONTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2KMTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pY2KBTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pY2KBTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, Y2KDATETIME, "backup"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pY2KBTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = NONTIMESTAMP; fpb->ioFlMdDat = NONTIMESTAMP; fpb->ioFlBkDat = Y2KTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2KBTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pY1KCTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pY1KCTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, Y1KDATETIME, "creation"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pY1KCTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = Y1KTIMESTAMP; fpb->ioFlMdDat = NONTIMESTAMP; fpb->ioFlBkDat = NONTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y1KCTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pY1KMTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pY1KMTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, Y1KDATETIME, "modification"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pY1KMTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = NONTIMESTAMP; fpb->ioFlMdDat = Y1KTIMESTAMP; fpb->ioFlBkDat = NONTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y1KMTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pY1KBTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pY1KBTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, Y1KDATETIME, "backup"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pY1KBTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = NONTIMESTAMP; fpb->ioFlMdDat = NONTIMESTAMP; fpb->ioFlBkDat = Y1KTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y1KBTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pMAXTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pMAXTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, MAXDATETIME, "all"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pMAXTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = MAXTIMESTAMP; fpb->ioFlMdDat = MAXTIMESTAMP; fpb->ioFlBkDat = MAXTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pMINTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pMINTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, MINDATETIME, "all"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pMINTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = MINTIMESTAMP; fpb->ioFlMdDat = MINTIMESTAMP; fpb->ioFlBkDat = MINTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pNOTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pNOTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, NONDATETIME, "all"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pNOTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = NONTIMESTAMP; fpb->ioFlMdDat = NONTIMESTAMP; fpb->ioFlBkDat = NONTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "NOTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pY2KTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pY2KTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, Y2KDATETIME, "all"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pY2KTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = Y2KTIMESTAMP; fpb->ioFlMdDat = Y2KTIMESTAMP; fpb->ioFlBkDat = Y2KTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2KTIME", rc, wRc, cRc, tRc); rc = HCreate(refNum, dirId, "\pY1KTIME", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pY1KTIME", 0, &refFile); if(!rc) { memset(&message, 0, 300); sprintf((char *)message, DATETIME_FORMAT, Y1KDATETIME, "all"); count = strlen(message); wRc = FSWrite(refFile, &count, message); cRc = FSClose(refFile); } memset(&cipbr, 0, sizeof(CInfoPBRec)); fpb = (HFileInfo * ) & cipbr; fpb->ioVRefNum = refNum; fpb->ioNamePtr = "\pY1KTIME"; fpb->ioDirID = dirId; fpb->ioFDirIndex = 0; PBGetCatInfoSync(&cipbr); fpb->ioFlCrDat = Y1KTIMESTAMP; fpb->ioFlMdDat = Y1KTIMESTAMP; fpb->ioFlBkDat = Y1KTIMESTAMP; fpb->ioDirID = dirId; tRc = PBSetCatInfoSync(&cipbr); } printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y1KTIME", rc, wRc, cRc, tRc); } void DirectoryDepth(const char *path) { OSErr rc, wRc, cRc; Str255 str255; HVolumeParam hpb; int16_t refNum; int16_t refFile; int32_t dirId; FInfo finderInfo; int32_t count; char filename[9]; int pos = 0; snprintf((char *)str255, 255, "%s", path); hpb.ioNamePtr = str255; hpb.ioVRefNum = 0; hpb.ioVolIndex = -1; rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); if(rc) { printf("Could not get volume information.\n"); return; } refNum = hpb.ioVRefNum; rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pDEPTH", &dirId); if(rc) { printf("Error %d creating working directory.\n", rc); return; } printf("Creating deepest directory tree.\n"); while(!rc) { memset(&filename, 0, 9); sprintf((char *)filename, "%08d", pos); str255[0] = 8; memcpy(str255 + 1, filename, 8); rc = DirCreate(refNum, dirId, str255, &dirId); pos++; /* Mac OS has no limit, but it will crash because the catalog is single threaded */ if(pos == 500) break; } printf("\tCreated %d levels of directory hierarchy\n", pos); } void Fragmentation(const char *path, size_t clusterSize) { size_t halfCluster = clusterSize / 2; size_t quarterCluster = clusterSize / 4; size_t twoCluster = clusterSize * 2; size_t threeQuartersCluster = halfCluster + quarterCluster; size_t twoAndThreeQuartCluster = threeQuartersCluster + twoCluster; unsigned char *buffer; OSErr rc, wRc, cRc; Str255 str255; HVolumeParam hpb; int16_t refNum; int16_t refFile; int32_t dirId; int32_t count; long i; snprintf((char *)str255, 255, "%s", path); hpb.ioNamePtr = str255; hpb.ioVRefNum = 0; hpb.ioVolIndex = -1; rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); if(rc) { printf("Could not get volume information.\n"); return; } refNum = hpb.ioVRefNum; rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pFRAGS", &dirId); if(rc) { printf("Error %d creating working directory.\n", rc); return; } rc = HCreate(refNum, dirId, "\pHALFCLST", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pHALFCLST", 0, &refFile); if(!rc) { buffer = malloc(halfCluster); memset(buffer, 0, halfCluster); for(i = 0; i < halfCluster; i++) buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; count = halfCluster; wRc = FSWrite(refFile, &count, buffer); cRc = FSClose(refFile); free(buffer); } } printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "HALFCLST", halfCluster, rc, wRc, cRc); rc = HCreate(refNum, dirId, "\pQUARCLST", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pQUARCLST", 0, &refFile); if(!rc) { buffer = malloc(quarterCluster); memset(buffer, 0, quarterCluster); for(i = 0; i < quarterCluster; i++) buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; count = quarterCluster; wRc = FSWrite(refFile, &count, buffer); cRc = FSClose(refFile); free(buffer); } } printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "QUARCLST", quarterCluster, rc, wRc, cRc); rc = HCreate(refNum, dirId, "\pTWOCLST", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pTWOCLST", 0, &refFile); if(!rc) { buffer = malloc(twoCluster); memset(buffer, 0, twoCluster); for(i = 0; i < twoCluster; i++) buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; count = twoCluster; wRc = FSWrite(refFile, &count, buffer); cRc = FSClose(refFile); free(buffer); } } printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWOCLST", twoCluster, rc, wRc, cRc); rc = HCreate(refNum, dirId, "\pTRQTCLST", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pTRQTCLST", 0, &refFile); if(!rc) { buffer = malloc(threeQuartersCluster); memset(buffer, 0, threeQuartersCluster); for(i = 0; i < threeQuartersCluster; i++) buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; count = threeQuartersCluster; wRc = FSWrite(refFile, &count, buffer); cRc = FSClose(refFile); free(buffer); } } printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TRQTCLST", threeQuartersCluster, rc, wRc, cRc); rc = HCreate(refNum, dirId, "\pTWOQCLST", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pTWOQCLST", 0, &refFile); if(!rc) { buffer = malloc(twoAndThreeQuartCluster); memset(buffer, 0, twoAndThreeQuartCluster); for(i = 0; i < twoAndThreeQuartCluster; i++) buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; count = twoAndThreeQuartCluster; wRc = FSWrite(refFile, &count, buffer); cRc = FSClose(refFile); free(buffer); } } printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWTQCLST", twoAndThreeQuartCluster, rc, wRc, cRc); rc = HCreate(refNum, dirId, "\pTWO1", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pTWO1", 0, &refFile); if(!rc) { buffer = malloc(twoCluster); memset(buffer, 0, twoCluster); for(i = 0; i < twoCluster; i++) buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; count = twoCluster; wRc = FSWrite(refFile, &count, buffer); cRc = FSClose(refFile); free(buffer); } } printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWO1", twoCluster, rc, wRc, cRc); rc = HCreate(refNum, dirId, "\pTWO2", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pTWO2", 0, &refFile); if(!rc) { buffer = malloc(twoCluster); memset(buffer, 0, twoCluster); for(i = 0; i < twoCluster; i++) buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; count = twoCluster; wRc = FSWrite(refFile, &count, buffer); cRc = FSClose(refFile); free(buffer); } } printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWO2", twoCluster, rc, wRc, cRc); rc = HCreate(refNum, dirId, "\pTWO3", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pTWO3", 0, &refFile); if(!rc) { buffer = malloc(twoCluster); memset(buffer, 0, twoCluster); for(i = 0; i < twoCluster; i++) buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; count = twoCluster; wRc = FSWrite(refFile, &count, buffer); cRc = FSClose(refFile); free(buffer); } } printf("\tDeleting \"TWO2\".\n"); rc = HDelete(refNum, dirId, "\pTWO2"); printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWO3", twoCluster, rc, wRc, cRc); rc = HCreate(refNum, dirId, "\pFRAGTHRQ", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pFRAGTHRQ", 0, &refFile); if(!rc) { buffer = malloc(threeQuartersCluster); memset(buffer, 0, threeQuartersCluster); for(i = 0; i < threeQuartersCluster; i++) buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; count = threeQuartersCluster; wRc = FSWrite(refFile, &count, buffer); cRc = FSClose(refFile); free(buffer); } } printf("\tDeleting \"TWO1\".\n"); rc = HDelete(refNum, dirId, "\pTWO1"); printf("\tDeleting \"TWO3\".\n"); rc = HDelete(refNum, dirId, "\pTWO3"); rc = HCreate(refNum, dirId, "\pFRAGSIXQ", ostUnknown, ftGenericDocumentPC); if(!rc) { rc = HOpenDF(refNum, dirId, "\pFRAGSIXQ", 0, &refFile); if(!rc) { buffer = malloc(twoAndThreeQuartCluster); memset(buffer, 0, twoAndThreeQuartCluster); for(i = 0; i < twoAndThreeQuartCluster; i++) buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; count = twoAndThreeQuartCluster; wRc = FSWrite(refFile, &count, buffer); cRc = FSClose(refFile); free(buffer); } } printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "FRAGSIXQ", twoAndThreeQuartCluster, rc, wRc, cRc); } void Sparse(const char *path) { /* Do nothing, not supported by target operating system */ } static pascal OSErr CreateAliasFile(const FSSpec *targetFile, const FSSpec *aliasFile, OSType fileCreator, OSType fileType) { short rsrcID; short aliasRefnum; FInfo finf; OSErr err; AliasHandle alias; FSpCreateResFile(aliasFile, fileCreator, fileType, 0); err = ResError(); if(err != noErr) return err; err = NewAlias(aliasFile, targetFile, &alias); if(err != noErr || alias == NULL) return err; aliasRefnum = FSpOpenResFile(aliasFile, fsRdWrPerm); AddResource((Handle)alias, rAliasType, 0, "\pDiscImageChef alias"); err = ResError(); CloseResFile(aliasRefnum); FSpGetFInfo(aliasFile, &finf); finf.fdCreator = fileCreator; finf.fdType = fileType; finf.fdFlags |= 0x8000; finf.fdFlags &= (~0x0100); FSpSetFInfo(aliasFile, &finf); return err; } void Links(const char *path) { int32_t gestaltResponse; OSErr rc, wRc, cRc, oRc, aRc; Str255 str255; HVolumeParam hpb; int16_t refNum; int16_t refFile; int32_t dirId; char filename[9]; int pos = 0; FSSpec targetSpec, aliasSpec; int32_t count; rc = Gestalt(gestaltAliasMgrAttr, &gestaltResponse); if(rc || !(gestaltResponse & (1 << gestaltAliasMgrPresent))) { printf("Alias Manager not present, cannot create aliases.\n"); return; } snprintf((char *)str255, 255, "%s", path); hpb.ioNamePtr = str255; hpb.ioVRefNum = 0; hpb.ioVolIndex = -1; rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); if(rc) { printf("Could not get volume information.\n"); return; } refNum = hpb.ioVRefNum; rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pLINKS", &dirId); if(rc) { printf("Error %d creating working directory.\n", rc); return; } printf("Creating aliases.\n"); for(pos = 0; pos < 64; pos++) { memset(&filename, 0, 9); sprintf((char *)filename, "TARGET%02d", pos); str255[0] = 8; memcpy(str255 + 1, filename, 8); rc = HCreate(refNum, dirId, str255, ostSimpleText, ftGenericDocumentPC); if(rc) break; oRc = HOpenDF(refNum, dirId, str255, 0, &refFile); if(oRc) break; count = strlen(targetText); wRc = FSWrite(refFile, &count, targetText); cRc = FSClose(refFile); memset(&targetSpec, 0, sizeof(FSSpec)); targetSpec.vRefNum = refNum; targetSpec.parID = dirId; targetSpec.name[0] = 8; memcpy(targetSpec.name + 1, filename, 8); memset(&filename, 0, 9); sprintf((char *)filename, "ALIAS_%02d", pos); memset(&aliasSpec, 0, sizeof(FSSpec)); aliasSpec.vRefNum = refNum; aliasSpec.parID = dirId; aliasSpec.name[0] = 8; memcpy(aliasSpec.name + 1, filename, 8); aRc = CreateAliasFile(&targetSpec, &aliasSpec, ostSimpleText, ftGenericDocumentPC); if(aRc) break; } printf("pos = %d, rc = %d, wRc = %d, cRc = %d, oRc = %d, aRc = %d\n", pos, rc, wRc, cRc, oRc, aRc); } void MillionFiles(const char *path) { OSErr rc, wRc, cRc; Str255 str255; HVolumeParam hpb; int16_t refNum; int16_t refFile; int32_t dirId; FInfo finderInfo; int32_t count; char filename[9]; int pos = 0; snprintf((char *)str255, 255, "%s", path); hpb.ioNamePtr = str255; hpb.ioVRefNum = 0; hpb.ioVolIndex = -1; rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); if(rc) { printf("Could not get volume information.\n"); return; } refNum = hpb.ioVRefNum; rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pMILLION", &dirId); if(rc) { printf("Error %d creating working directory.\n", rc); return; } printf("Creating lots of files.\n"); for(pos = 0; pos < 5000; pos++) { memset(&filename, 0, 9); sprintf((char *)filename, "%08d", pos); str255[0] = 8; memcpy(str255 + 1, filename, 8); rc = HCreate(refNum, dirId, str255, ostUnknown, ftGenericDocumentPC); if(rc) break; } printf("\tCreated %d files\n", pos); } void DeleteFiles(const char *path) { OSErr rc, wRc, cRc; Str255 str255; HVolumeParam hpb; int16_t refNum; int16_t refFile; int32_t dirId; FInfo finderInfo; int32_t count; char filename[9]; int pos = 0; snprintf((char *)str255, 255, "%s", path); hpb.ioNamePtr = str255; hpb.ioVRefNum = 0; hpb.ioVolIndex = -1; rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); if(rc) { printf("Could not get volume information.\n"); return; } refNum = hpb.ioVRefNum; rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pDELETED", &dirId); if(rc) { printf("Error %d creating working directory.\n", rc); return; } printf("Creating and deleting files.\n"); for(pos = 0; pos < 64; pos++) { memset(&filename, 0, 9); sprintf((char *)filename, "%08d", pos); str255[0] = 8; memcpy(str255 + 1, filename, 8); rc = HCreate(refNum, dirId, str255, ostUnknown, ftGenericDocumentPC); if(rc) break; HDelete(refNum, dirId, str255); } } #endif \ No newline at end of file +/**************************************************************************** +The Disc Image Chef +----------------------------------------------------------------------------- + +Filename : macos.c +Author(s) : Natalia Portillo + +Component : fstester.setter + +--[ Description ] ----------------------------------------------------------- + +Contains Mac OS code + +--[ License ] --------------------------------------------------------------- + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warraty of + MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +----------------------------------------------------------------------------- +Copyright (C) 2011-2018 Natalia Portillo +*****************************************************************************/ + +#if defined(macintosh) + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "consts.h" +#include "defs.h" +#include "macos.h" + +void GetOsInfo() +{ + int32_t gestaltResponse; + OSErr rc; + + printf("OS information:\n"); + + rc = Gestalt(gestaltAUXVersion, &gestaltResponse); + if(!rc) + { + printf("Running under A/UX version 0x%08X\n", gestaltResponse); + } + else + { + rc = Gestalt(gestaltSystemVersion, &gestaltResponse); + if(rc) + { + printf("Could not get Mac OS version.\n"); + } + else + { + printf("Running under Mac OS version %d.%d.%d", (gestaltResponse & 0xF00) >> 8, + (gestaltResponse & 0xF0) >> 4, gestaltResponse & 0xF); + rc = Gestalt(gestaltSysArchitecture, &gestaltResponse); + if(!rc) + { + printf(" for "); + switch(gestaltResponse) + { + case 1: + printf("Motorola 68k architecture."); + break; + case 2: + printf("PowerPC architecture."); + break; + case 3: + printf("x86 architecture."); + break; + default: + printf("unknown architecture code %d.", gestaltResponse); + break; + } + } + printf("\n"); + } + rc = Gestalt(gestaltMacOSCompatibilityBoxAttr, &gestaltResponse); + if(!rc) + { + printf("Running under Classic.\n"); + } + } +} + +void GetVolumeInfo(const char *path, size_t *clusterSize) +{ + OSErr rc; + Str255 str255; + HVolumeParam hpb; + XVolumeParam xpb; + int32_t gestaltResponse; + int16_t drvInfo; + int16_t refNum; + uint64_t totalBlocks; + uint64_t freeBlocks; + uint32_t crDate; + uint32_t lwDate; + uint32_t bkDate; + uint16_t fsId; + uint64_t totalBytes; + uint64_t freeBytes; + int hfsPlusApis = 0; + int bigVol = 0; + *clusterSize = 0; + + snprintf((char *)str255, 255, "%s", path); + + rc = Gestalt(gestaltFSAttr, &gestaltResponse); + if(!rc) + { + hfsPlusApis = gestaltResponse & (1 << gestaltHasHFSPlusAPIs); + bigVol = gestaltResponse & (1 << gestaltFSSupports2TBVols); + } + + if(!bigVol) + { + hpb.ioNamePtr = str255; + hpb.ioVRefNum = 0; + hpb.ioVolIndex = -1; + rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); + if(rc) + { + printf("Could not get volume information.\n"); + return; + } + drvInfo = hpb.ioVDrvInfo; + refNum = hpb.ioVRefNum; + totalBlocks = hpb.ioVNmAlBlks; + freeBlocks = hpb.ioVFrBlk; + crDate = hpb.ioVCrDate; + lwDate = hpb.ioVLsMod; + bkDate = hpb.ioVBkUp; + fsId = hpb.ioVSigWord; + *clusterSize = hpb.ioVAlBlkSiz; + totalBytes = totalBlocks * *clusterSize; + freeBytes = freeBlocks * *clusterSize; + if(hpb.ioVFSID != 0) + { + fsId = hpb.ioVFSID; + } + } + else + { + xpb.ioNamePtr = str255; + xpb.ioVRefNum = 0; + xpb.ioVolIndex = -1; + rc = PBXGetVolInfo((XVolumeParamPtr) & xpb, 0); + if(rc) + { + printf("Could not get volume information.\n"); + return; + } + drvInfo = xpb.ioVDrvInfo; + refNum = xpb.ioVRefNum; + totalBlocks = xpb.ioVTotalBytes / xpb.ioVAlBlkSiz; + freeBlocks = xpb.ioVFreeBytes / xpb.ioVAlBlkSiz; + crDate = xpb.ioVCrDate; + lwDate = xpb.ioVLsMod; + bkDate = xpb.ioVBkUp; + fsId = xpb.ioVSigWord; + *clusterSize = xpb.ioVAlBlkSiz; + totalBytes = xpb.ioVTotalBytes; + freeBytes = xpb.ioVFreeBytes; + if(xpb.ioVFSID != 0) + { + fsId = xpb.ioVFSID; + } + } + + printf("Volume information:\n"); + printf("\tPath: %s\n", path); + if(bigVol) + { + printf("\tVolume supports up to 2Tb disks.\n"); + } + if(hfsPlusApis) + { + printf("\tVolume supports HFS Plus APIs.\n"); + } + printf("\tDrive number: %d\n", drvInfo); + printf("\tVolume number: %d\n", refNum); + printf("\tVolume name: %#s\n", str255); + printf("\t%llu allocation blocks in volume, %llu free\n", totalBlocks, freeBlocks); + printf("\t%llu bytes in volume, %llu free\n", totalBytes, freeBytes); + printf("\t%d bytes per allocation block.\n", *clusterSize); + printf("\tVolume created on 0x%08X\n", crDate); + printf("\tVolume last written on 0x%08X\n", lwDate); + printf("\tVolume last backed up on 0x%08X\n", bkDate); + printf("\tFilesystem type: "); + switch(fsId) + { + case 0xD2D7: + printf("MFS\n"); + break; + case 0x4244: + printf("HFS\n"); + break; + case 0x482B: + printf("HFS Plus\n"); + break; + case 0x4147: + printf("ISO9660\n"); + break; + case 0x55DF: + printf("UDF\n"); + break; + case 0x4242: + printf("High Sierra\n"); + break; + case 0x4A48: + printf("Audio CD\n"); + break; + case 0x0100: + printf("ProDOS\n"); + break; + default: + printf("unknown id 0x%04X\n", fsId); + break; + } +} + +void FileAttributes(const char *path) +{ + OSErr rc, wRc, cRc; + Str255 str255; + HVolumeParam hpb; + int16_t refNum; + int16_t refFile; + int32_t dirId; + FInfo finderInfo; + int32_t count; + HFileInfo *fpb; + CInfoPBRec cipbr; + + snprintf((char *)str255, 255, "%s", path); + hpb.ioNamePtr = str255; + hpb.ioVRefNum = 0; + hpb.ioVolIndex = -1; + rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); + if(rc) + { + printf("Could not get volume information.\n"); + return; + } + refNum = hpb.ioVRefNum; + + rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pATTRS", &dirId); + if(rc) + { + printf("Error %d creating working directory.\n", rc); + return; + } + + printf("Creating attribute files.\n"); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pNONE", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pNONE", 0, &refFile); + if(!rc) + { + count = strlen(noAttributeText); + wRc = FSWrite(refFile, &count, noAttributeText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + rc = HSetFInfo(refNum, dirId, "\pNONE", &finderInfo); + } + } + printf("\tFile with no attributes: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "NONE", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pINDESK", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pINDESK", 0, &refFile); + if(!rc) + { + count = strlen(desktopText); + wRc = FSWrite(refFile, &count, desktopText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = kIsOnDesk; + rc = HSetFInfo(refNum, dirId, "\pINDESK", &finderInfo); + } + } + printf("\tFile is in desktop: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "INDESK", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pBROWN", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pBROWN", 0, &refFile); + if(!rc) + { + count = strlen(color2Text); + wRc = FSWrite(refFile, &count, color2Text); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = 0x02; + rc = HSetFInfo(refNum, dirId, "\pBROWN", &finderInfo); + } + } + printf("\tFile is colored brown: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "BROWN", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pGREEN", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pGREEN", 0, &refFile); + if(!rc) + { + count = strlen(color4Text); + wRc = FSWrite(refFile, &count, color4Text); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = 0x04; + rc = HSetFInfo(refNum, dirId, "\pGREEN", &finderInfo); + } + } + printf("\tFile is colored green: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "GREEN", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pLILAC", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pLILAC", 0, &refFile); + if(!rc) + { + count = strlen(color6Text); + wRc = FSWrite(refFile, &count, color6Text); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = 0x06; + rc = HSetFInfo(refNum, dirId, "\pLILAC", &finderInfo); + } + } + printf("\tFile is colored lilac: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "LILAC", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pBLUE", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pBLUE", 0, &refFile); + if(!rc) + { + count = strlen(color8Text); + wRc = FSWrite(refFile, &count, color8Text); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = 0x08; + rc = HSetFInfo(refNum, dirId, "\pBLUE", &finderInfo); + } + } + printf("\tFile is colored blue: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "BLUE", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pMAGENTA", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pMAGENTA", 0, &refFile); + if(!rc) + { + count = strlen(colorAText); + wRc = FSWrite(refFile, &count, colorAText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = 0x0A; + rc = HSetFInfo(refNum, dirId, "\pMAGENTA", &finderInfo); + } + } + printf("\tFile is colored magenta: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "MAGENTA", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pRED", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pRED", 0, &refFile); + if(!rc) + { + count = strlen(colorCText); + wRc = FSWrite(refFile, &count, colorCText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = 0x0C; + rc = HSetFInfo(refNum, dirId, "\pRED", &finderInfo); + } + } + printf("\tFile is colored red: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "RED", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pORANGE", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pORANGE", 0, &refFile); + if(!rc) + { + count = strlen(colorEText); + wRc = FSWrite(refFile, &count, colorEText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = 0x0E; + rc = HSetFInfo(refNum, dirId, "\pORANGE", &finderInfo); + } + } + printf("\tFile is colored orange: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ORANGE", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pSWITCH", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pSWITCH", 0, &refFile); + if(!rc) + { + count = strlen(requireSwitchText); + wRc = FSWrite(refFile, &count, requireSwitchText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = kRequireSwitchLaunch; + rc = HSetFInfo(refNum, dirId, "\pSWITCH", &finderInfo); + } + } + printf("\tFile require switch launch: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SWITCH", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pSHARED", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pSHARED", 0, &refFile); + if(!rc) + { + count = strlen(sharedText); + wRc = FSWrite(refFile, &count, sharedText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = kIsShared; + rc = HSetFInfo(refNum, dirId, "\pSHARED", &finderInfo); + } + } + printf("\tFile is shared: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SHARED", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pNOINIT", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pNOINIT", 0, &refFile); + if(!rc) + { + count = strlen(noInitText); + wRc = FSWrite(refFile, &count, noInitText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = kHasNoINITs; + rc = HSetFInfo(refNum, dirId, "\pNOINIT", &finderInfo); + } + } + printf("\tFile has no INITs: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "NOINIT", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pINITED", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pINITED", 0, &refFile); + if(!rc) + { + count = strlen(initedText); + wRc = FSWrite(refFile, &count, initedText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = kHasBeenInited; + rc = HSetFInfo(refNum, dirId, "\pINITED", &finderInfo); + } + } + printf("\tFile has been INITed: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "INITED", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pAOCE", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pAOCE", 0, &refFile); + if(!rc) + { + count = strlen(aoceText); + wRc = FSWrite(refFile, &count, aoceText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = kAOCE; + rc = HSetFInfo(refNum, dirId, "\pAOCE", &finderInfo); + } + } + printf("\tFile with AOCE set: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "AOCE", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pICON", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pICON", 0, &refFile); + if(!rc) + { + count = strlen(customIconText); + wRc = FSWrite(refFile, &count, customIconText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = kHasCustomIcon; + rc = HSetFInfo(refNum, dirId, "\pICON", &finderInfo); + } + } + printf("\tFile has custom icon (not really): name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ICON", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pSTATIONERY", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pSTATIONERY", 0, &refFile); + if(!rc) + { + count = strlen(stationeryText); + wRc = FSWrite(refFile, &count, stationeryText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = kIsStationery; + rc = HSetFInfo(refNum, dirId, "\pSTATIONERY", &finderInfo); + } + } + printf("\tFile is stationery: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "STATIONERY", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pLOCKED", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pLOCKED", 0, &refFile); + if(!rc) + { + count = strlen(nameLockText); + wRc = FSWrite(refFile, &count, nameLockText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = kNameLocked; + rc = HSetFInfo(refNum, dirId, "\pLOCKED", &finderInfo); + } + } + printf("\tFile is locked: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "LOCKED", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pBUNDLE", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pBUNDLE", 0, &refFile); + if(!rc) + { + count = strlen(bundleText); + wRc = FSWrite(refFile, &count, bundleText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = kHasBundle; + rc = HSetFInfo(refNum, dirId, "\pBUNDLE", &finderInfo); + } + } + printf("\tFile has bundle (not really): name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "BUNDLE", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pINVISIBLE", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pINVISIBLE", 0, &refFile); + if(!rc) + { + count = strlen(invisibleText); + wRc = FSWrite(refFile, &count, invisibleText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = kIsInvisible; + rc = HSetFInfo(refNum, dirId, "\pINVISIBLE", &finderInfo); + } + } + printf("\tFile is invisible: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "INVISIBLE", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pALIAS", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pALIAS", 0, &refFile); + if(!rc) + { + count = strlen(aliasText); + wRc = FSWrite(refFile, &count, aliasText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = kIsAlias; + rc = HSetFInfo(refNum, dirId, "\pALIAS", &finderInfo); + } + } + printf("\tFile is alias to nowhere: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ALIAS", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pSIMPLE", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pSIMPLE", 0, &refFile); + if(!rc) + { + count = strlen(simpletextText); + wRc = FSWrite(refFile, &count, simpletextText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostSimpleText; + rc = HSetFInfo(refNum, dirId, "\pSIMPLE", &finderInfo); + } + } + printf("\tFile with creator SimpleText: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "SIMPLE", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pDIC", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pDIC", 0, &refFile); + if(!rc) + { + count = strlen(dicText); + wRc = FSWrite(refFile, &count, dicText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostDiscImageChef; + rc = HSetFInfo(refNum, dirId, "\pDIC", &finderInfo); + } + } + printf("\tFile with creator 'dic ': name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "DIC", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pPOS_M32_M32", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pPOS_M32_M32", 0, &refFile); + if(!rc) + { + count = strlen(pos_m32_m32); + wRc = FSWrite(refFile, &count, pos_m32_m32); + cRc = FSClose(refFile); + + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdLocation.h = -32768; + finderInfo.fdLocation.v = -32768; + rc = HSetFInfo(refNum, dirId, "\pPOS_M32_M32", &finderInfo); + } + } + printf("\tFile with position -32768,-32768: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_M32_M32", rc, wRc, + cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pPOS_32_32", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pPOS_32_32", 0, &refFile); + if(!rc) + { + count = strlen(pos_32_32); + wRc = FSWrite(refFile, &count, pos_32_32); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdLocation.h = 32767; + finderInfo.fdLocation.v = 32767; + rc = HSetFInfo(refNum, dirId, "\pPOS_32_32", &finderInfo); + } + } + printf("\tFile with position 32767,32767: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_32_32", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pPOS_M1_M1", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pPOS_M1_M1", 0, &refFile); + if(!rc) + { + count = strlen(pos_m1_m1); + wRc = FSWrite(refFile, &count, pos_m1_m1); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdLocation.h = -1024; + finderInfo.fdLocation.v = -1024; + rc = HSetFInfo(refNum, dirId, "\pPOS_M1_M1", &finderInfo); + } + } + printf("\tFile with position -1024,-1024: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_M1_M1", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pPOS_M1_M32", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pPOS_M1_M32", 0, &refFile); + if(!rc) + { + count = strlen(pos_m1_m32); + wRc = FSWrite(refFile, &count, pos_m1_m32); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdLocation.h = -1024; + finderInfo.fdLocation.v = -32768; + rc = HSetFInfo(refNum, dirId, "\pPOS_M1_M32", &finderInfo); + } + } + printf("\tFile with position -1024,-32768: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_M1_M32", rc, wRc, + cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pPOS_M1_32", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pPOS_M1_32", 0, &refFile); + if(!rc) + { + count = strlen(pos_m1_32); + wRc = FSWrite(refFile, &count, pos_m1_32); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdLocation.h = -1024; + finderInfo.fdLocation.v = 32767; + rc = HSetFInfo(refNum, dirId, "\pPOS_M1_32", &finderInfo); + } + } + printf("\tFile with position -1024,32767: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_M1_32", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pPOS_M1_1", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pPOS_M1_1", 0, &refFile); + if(!rc) + { + count = strlen(pos_m1_1); + wRc = FSWrite(refFile, &count, pos_m1_1); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdLocation.h = -1024; + finderInfo.fdLocation.v = 1024; + rc = HSetFInfo(refNum, dirId, "\pPOS_M1_1", &finderInfo); + } + } + printf("\tFile with position -1024,1024: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_M1_1", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pPOS_1_M1", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pPOS_1_M1", 0, &refFile); + if(!rc) + { + count = strlen(pos_1_m1); + wRc = FSWrite(refFile, &count, pos_1_m1); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdLocation.h = 1024; + finderInfo.fdLocation.v = -1024; + rc = HSetFInfo(refNum, dirId, "\pPOS_1_M1", &finderInfo); + } + } + printf("\tFile with position 1024,-1024: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_1_M1", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pPOS_1_M32", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pPOS_1_M32", 0, &refFile); + if(!rc) + { + count = strlen(pos_1_m32); + wRc = FSWrite(refFile, &count, pos_1_m32); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdLocation.h = 1024; + finderInfo.fdLocation.v = -32768; + rc = HSetFInfo(refNum, dirId, "\pPOS_1_M32", &finderInfo); + } + } + printf("\tFile with position 1024,-32768: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_1_M32", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pPOS_1_32", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pPOS_1_32", 0, &refFile); + if(!rc) + { + count = strlen(pos_1_32); + wRc = FSWrite(refFile, &count, pos_1_32); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdLocation.h = 1024; + finderInfo.fdLocation.v = 32767; + rc = HSetFInfo(refNum, dirId, "\pPOS_1_32", &finderInfo); + } + } + printf("\tFile with position 1024,32767: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_1_32", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pPOS_1_1", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pPOS_1_1", 0, &refFile); + if(!rc) + { + count = strlen(pos_1_1); + wRc = FSWrite(refFile, &count, pos_1_1); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdLocation.h = 1024; + finderInfo.fdLocation.v = 1024; + rc = HSetFInfo(refNum, dirId, "\pPOS_1_1", &finderInfo); + } + } + printf("\tFile with position 1024,1024: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "POS_1_1", rc, wRc, cRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pALL", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pALL", 0, &refFile); + if(!rc) + { + count = strlen(allText); + wRc = FSWrite(refFile, &count, allText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostUnknown; + finderInfo.fdFlags = 0xFFFF; + rc = HSetFInfo(refNum, dirId, "\pALL", &finderInfo); + } + } + printf("\tFile has all flags bits set: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", "ALL", rc, wRc, cRc); +} + +void FilePermissions(const char *path) +{ + /* Do nothing, not supported by target operating system */ +} + +void ExtendedAttributes(const char *path) +{ + /* Do nothing, not supported by target operating system */ +} + +static OSErr +SaveResourceToNewFile(int16_t vRefNum, int32_t dirID, Str255 filename, ResType type, int16_t resId, Str255 resName, + unsigned char *buffer, size_t length) +{ + Handle h; + OSErr rc; + int16_t resRef; + + h = NewHandle(length); + + if(!h) + return notEnoughMemoryErr; + + memcpy(*h, buffer, length); + + HCreateResFile(vRefNum, dirID, filename); + + resRef = HOpenResFile(vRefNum, dirID, filename, fsCurPerm); + rc = ResError(); + + if(resRef == -1 || rc) + return rc; + + UseResFile(resRef); + + AddResource(h, type, resId, resName); + rc = ResError(); + + CloseResFile(resRef); + + DisposeHandle(h); + + return rc; +} + +void ResourceFork(const char *path) +{ + OSErr rc, wRc, cRc, rRc, rRc2, rRc3; + Str255 str255; + HVolumeParam hpb; + int16_t refNum; + int16_t refFile; + int32_t dirId; + FInfo finderInfo; + int32_t count; + HFileInfo *fpb; + CInfoPBRec cipbr; + + snprintf((char *)str255, 255, "%s", path); + hpb.ioNamePtr = str255; + hpb.ioVRefNum = 0; + hpb.ioVolIndex = -1; + rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); + if(rc) + { + printf("Could not get volume information.\n"); + return; + } + refNum = hpb.ioVRefNum; + + rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pRSRC", &dirId); + if(rc) + { + printf("Error %d creating working directory.\n", rc); + return; + } + + printf("Creating resource forks.\n"); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pICON", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rRc = SaveResourceToNewFile(refNum, dirId, "\pICON", rtIcons, -16455, "\pIcon resource", IcnsResource, + sizeof(IcnsResource)); + rc = HOpenDF(refNum, dirId, "\pICON", 0, &refFile); + if(!rc) + { + count = strlen(rsrcText); + wRc = FSWrite(refFile, &count, rsrcText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostDiscImageChef; + finderInfo.fdFlags = kHasCustomIcon; + rc = HSetFInfo(refNum, dirId, "\pICON", &finderInfo); + } + } + printf("\tFile with three items in the resource fork: name = \"%s\", rc = %d, wRc = %d, cRc = %d, rRc = %d\n", + "ICON", rc, wRc, cRc, rRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pPICT", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rRc = SaveResourceToNewFile(refNum, dirId, "\pPICT", ftPICTFile, 29876, "\pPicture resource", PictResource, + sizeof(PictResource)); + rc = HOpenDF(refNum, dirId, "\pPICT", 0, &refFile); + if(!rc) + { + count = strlen(rsrcText); + wRc = FSWrite(refFile, &count, rsrcText); + cRc = FSClose(refFile); + finderInfo.fdType = ftPICTFile; + finderInfo.fdCreator = ostDiscImageChef; + rc = HSetFInfo(refNum, dirId, "\pPICT", &finderInfo); + } + } + printf("\tFile with three items in the resource fork: name = \"%s\", rc = %d, wRc = %d, cRc = %d, rRc = %d\n", + "PICT", rc, wRc, cRc, rRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pVERSION", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rRc = SaveResourceToNewFile(refNum, dirId, "\pVERSION", rtVersion, 1, "\pVersion resource", VersResource, + sizeof(VersResource)); + rc = HOpenDF(refNum, dirId, "\pVERSION", 0, &refFile); + if(!rc) + { + count = strlen(rsrcText); + wRc = FSWrite(refFile, &count, rsrcText); + cRc = FSClose(refFile); + finderInfo.fdType = ftGenericDocumentPC; + finderInfo.fdCreator = ostDiscImageChef; + rc = HSetFInfo(refNum, dirId, "\pVERSION", &finderInfo); + } + } + printf("\tFile with three items in the resource fork: name = \"%s\", rc = %d, wRc = %d, cRc = %d, rRc = %d\n", + "VERSION", rc, wRc, cRc, rRc); + + memset(&finderInfo, 0, sizeof(FInfo)); + rc = HCreate(refNum, dirId, "\pALL", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rRc = SaveResourceToNewFile(refNum, dirId, "\pALL", rtIcons, -16455, "\pIcon resource", IcnsResource, + sizeof(IcnsResource)); + rRc2 = SaveResourceToNewFile(refNum, dirId, "\pALL", ftPICTFile, 29876, "\pPicture resource", PictResource, + sizeof(PictResource)); + rRc3 = SaveResourceToNewFile(refNum, dirId, "\pALL", rtVersion, 1, "\pVersion resource", VersResource, + sizeof(VersResource)); + rc = HOpenDF(refNum, dirId, "\pALL", 0, &refFile); + if(!rc) + { + count = strlen(rsrcText); + wRc = FSWrite(refFile, &count, rsrcText); + cRc = FSClose(refFile); + finderInfo.fdType = ftPICTFile; + finderInfo.fdCreator = ostDiscImageChef; + finderInfo.fdFlags = kHasCustomIcon; + rc = HSetFInfo(refNum, dirId, "\pALL", &finderInfo); + } + } + printf("\tFile with three items in the resource fork: name = \"%s\", rc = %d, wRc = %d, cRc = %d, rRc = %d, rRc2 = %d, rRc3 = %d\n", + "ALL", rc, wRc, cRc, rRc, rRc2, rRc3); +} + +void Filenames(const char *path) +{ + OSErr rc, wRc, cRc; + Str255 str255; + HVolumeParam hpb; + int16_t refNum; + int16_t refFile; + int32_t dirId; + FInfo finderInfo; + int32_t count; + char message[300]; + int pos = 0; + + snprintf((char *)str255, 255, "%s", path); + hpb.ioNamePtr = str255; + hpb.ioVRefNum = 0; + hpb.ioVolIndex = -1; + rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); + if(rc) + { + printf("Could not get volume information.\n"); + return; + } + refNum = hpb.ioVRefNum; + + rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pFILENAME", &dirId); + if(rc) + { + printf("Error %d creating working directory.\n", rc); + return; + } + + printf("Creating files with different filenames.\n"); + + for(pos = 0; filenames[pos]; pos++) + { + count = strlen(filenames[pos]); + memset(&str255, 0, sizeof(Str255)); + if(count > 255) + { + continue; + } + str255[0] = (char)count; + memcpy(str255 + 1, filenames[pos], count); + + rc = HCreate(refNum, dirId, str255, ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, str255, 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, FILENAME_FORMAT, filenames[pos]); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + } + + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d\n", filenames[pos], rc, wRc, cRc); + } +} + +void Timestamps(const char *path) +{ + OSErr rc, wRc, cRc, tRc; + Str255 str255; + HVolumeParam hpb; + int16_t refNum; + int16_t refFile; + int32_t dirId; + FInfo finderInfo; + int32_t count; + HFileInfo *fpb; + CInfoPBRec cipbr; + char message[300]; + + snprintf((char *)str255, 255, "%s", path); + hpb.ioNamePtr = str255; + hpb.ioVRefNum = 0; + hpb.ioVolIndex = -1; + rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); + if(rc) + { + printf("Could not get volume information.\n"); + return; + } + refNum = hpb.ioVRefNum; + + rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pTIMES", &dirId); + if(rc) + { + printf("Error %d creating working directory.\n", rc); + return; + } + + printf("Creating timestamped files.\n"); + + rc = HCreate(refNum, dirId, "\pMAXCTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pMAXCTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, MAXDATETIME, "creation"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pMAXCTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = MAXTIMESTAMP; + fpb->ioFlMdDat = NONTIMESTAMP; + fpb->ioFlBkDat = NONTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXCTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pMAXMTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pMAXMTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, MAXDATETIME, "modification"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pMAXMTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = NONTIMESTAMP; + fpb->ioFlMdDat = MAXTIMESTAMP; + fpb->ioFlBkDat = NONTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXMTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pMAXBTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pMAXBTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, MAXDATETIME, "backup"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pMAXBTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = NONTIMESTAMP; + fpb->ioFlMdDat = NONTIMESTAMP; + fpb->ioFlBkDat = MAXTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXBTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pMINCTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pMINCTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, MINDATETIME, "creation"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pMINCTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = MINTIMESTAMP; + fpb->ioFlMdDat = NONTIMESTAMP; + fpb->ioFlBkDat = NONTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINCTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pMINMTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pMINMTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, MINDATETIME, "modification"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pMINMTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = NONTIMESTAMP; + fpb->ioFlMdDat = MINTIMESTAMP; + fpb->ioFlBkDat = NONTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINMTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pMINBTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pMINBTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, MINDATETIME, "backup"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pMINBTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = NONTIMESTAMP; + fpb->ioFlMdDat = NONTIMESTAMP; + fpb->ioFlBkDat = MINTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINBTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pY2KCTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pY2KCTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, Y2KDATETIME, "creation"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pY2KCTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = Y2KTIMESTAMP; + fpb->ioFlMdDat = NONTIMESTAMP; + fpb->ioFlBkDat = NONTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2KCTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pY2KMTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pY2KMTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, Y2KDATETIME, "modification"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pY2KMTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = NONTIMESTAMP; + fpb->ioFlMdDat = Y2KTIMESTAMP; + fpb->ioFlBkDat = NONTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2KMTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pY2KBTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pY2KBTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, Y2KDATETIME, "backup"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pY2KBTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = NONTIMESTAMP; + fpb->ioFlMdDat = NONTIMESTAMP; + fpb->ioFlBkDat = Y2KTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2KBTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pY1KCTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pY1KCTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, Y1KDATETIME, "creation"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pY1KCTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = Y1KTIMESTAMP; + fpb->ioFlMdDat = NONTIMESTAMP; + fpb->ioFlBkDat = NONTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y1KCTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pY1KMTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pY1KMTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, Y1KDATETIME, "modification"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pY1KMTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = NONTIMESTAMP; + fpb->ioFlMdDat = Y1KTIMESTAMP; + fpb->ioFlBkDat = NONTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y1KMTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pY1KBTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pY1KBTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, Y1KDATETIME, "backup"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pY1KBTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = NONTIMESTAMP; + fpb->ioFlMdDat = NONTIMESTAMP; + fpb->ioFlBkDat = Y1KTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y1KBTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pMAXTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pMAXTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, MAXDATETIME, "all"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pMAXTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = MAXTIMESTAMP; + fpb->ioFlMdDat = MAXTIMESTAMP; + fpb->ioFlBkDat = MAXTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MAXTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pMINTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pMINTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, MINDATETIME, "all"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pMINTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = MINTIMESTAMP; + fpb->ioFlMdDat = MINTIMESTAMP; + fpb->ioFlBkDat = MINTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "MINTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pNOTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pNOTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, NONDATETIME, "all"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pNOTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = NONTIMESTAMP; + fpb->ioFlMdDat = NONTIMESTAMP; + fpb->ioFlBkDat = NONTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "NOTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pY2KTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pY2KTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, Y2KDATETIME, "all"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pY2KTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = Y2KTIMESTAMP; + fpb->ioFlMdDat = Y2KTIMESTAMP; + fpb->ioFlBkDat = Y2KTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y2KTIME", rc, wRc, cRc, tRc); + + rc = HCreate(refNum, dirId, "\pY1KTIME", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pY1KTIME", 0, &refFile); + if(!rc) + { + memset(&message, 0, 300); + sprintf((char *)message, DATETIME_FORMAT, Y1KDATETIME, "all"); + count = strlen(message); + wRc = FSWrite(refFile, &count, message); + cRc = FSClose(refFile); + } + memset(&cipbr, 0, sizeof(CInfoPBRec)); + fpb = (HFileInfo * ) & cipbr; + fpb->ioVRefNum = refNum; + fpb->ioNamePtr = "\pY1KTIME"; + fpb->ioDirID = dirId; + fpb->ioFDirIndex = 0; + PBGetCatInfoSync(&cipbr); + + fpb->ioFlCrDat = Y1KTIMESTAMP; + fpb->ioFlMdDat = Y1KTIMESTAMP; + fpb->ioFlBkDat = Y1KTIMESTAMP; + fpb->ioDirID = dirId; + tRc = PBSetCatInfoSync(&cipbr); + } + printf("\tFile name = \"%s\", rc = %d, wRc = %d, cRc = %d, tRc = %d\n", "Y1KTIME", rc, wRc, cRc, tRc); +} + +void DirectoryDepth(const char *path) +{ + OSErr rc, wRc, cRc; + Str255 str255; + HVolumeParam hpb; + int16_t refNum; + int16_t refFile; + int32_t dirId; + FInfo finderInfo; + int32_t count; + char filename[9]; + int pos = 0; + + snprintf((char *)str255, 255, "%s", path); + hpb.ioNamePtr = str255; + hpb.ioVRefNum = 0; + hpb.ioVolIndex = -1; + rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); + if(rc) + { + printf("Could not get volume information.\n"); + return; + } + refNum = hpb.ioVRefNum; + + rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pDEPTH", &dirId); + if(rc) + { + printf("Error %d creating working directory.\n", rc); + return; + } + + printf("Creating deepest directory tree.\n"); + + while(!rc) + { + memset(&filename, 0, 9); + sprintf((char *)filename, "%08d", pos); + str255[0] = 8; + memcpy(str255 + 1, filename, 8); + + rc = DirCreate(refNum, dirId, str255, &dirId); + + pos++; + /* Mac OS has no limit, but it will crash because the catalog is single threaded */ + if(pos == 500) + break; + } + + printf("\tCreated %d levels of directory hierarchy\n", pos); +} + +void Fragmentation(const char *path, size_t clusterSize) +{ + size_t halfCluster = clusterSize / 2; + size_t quarterCluster = clusterSize / 4; + size_t twoCluster = clusterSize * 2; + size_t threeQuartersCluster = halfCluster + quarterCluster; + size_t twoAndThreeQuartCluster = threeQuartersCluster + twoCluster; + unsigned char *buffer; + OSErr rc, wRc, cRc; + Str255 str255; + HVolumeParam hpb; + int16_t refNum; + int16_t refFile; + int32_t dirId; + int32_t count; + long i; + + snprintf((char *)str255, 255, "%s", path); + hpb.ioNamePtr = str255; + hpb.ioVRefNum = 0; + hpb.ioVolIndex = -1; + rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); + if(rc) + { + printf("Could not get volume information.\n"); + return; + } + refNum = hpb.ioVRefNum; + + rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pFRAGS", &dirId); + if(rc) + { + printf("Error %d creating working directory.\n", rc); + return; + } + + rc = HCreate(refNum, dirId, "\pHALFCLST", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pHALFCLST", 0, &refFile); + if(!rc) + { + buffer = malloc(halfCluster); + memset(buffer, 0, halfCluster); + + for(i = 0; i < halfCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + + count = halfCluster; + wRc = FSWrite(refFile, &count, buffer); + cRc = FSClose(refFile); + free(buffer); + } + } + + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "HALFCLST", halfCluster, rc, wRc, cRc); + + rc = HCreate(refNum, dirId, "\pQUARCLST", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pQUARCLST", 0, &refFile); + if(!rc) + { + buffer = malloc(quarterCluster); + memset(buffer, 0, quarterCluster); + + for(i = 0; i < quarterCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + + count = quarterCluster; + wRc = FSWrite(refFile, &count, buffer); + cRc = FSClose(refFile); + free(buffer); + } + } + + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "QUARCLST", quarterCluster, rc, wRc, cRc); + + rc = HCreate(refNum, dirId, "\pTWOCLST", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pTWOCLST", 0, &refFile); + if(!rc) + { + buffer = malloc(twoCluster); + memset(buffer, 0, twoCluster); + + for(i = 0; i < twoCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + + count = twoCluster; + wRc = FSWrite(refFile, &count, buffer); + cRc = FSClose(refFile); + free(buffer); + } + } + + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWOCLST", twoCluster, rc, wRc, cRc); + + rc = HCreate(refNum, dirId, "\pTRQTCLST", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pTRQTCLST", 0, &refFile); + if(!rc) + { + buffer = malloc(threeQuartersCluster); + memset(buffer, 0, threeQuartersCluster); + + for(i = 0; i < threeQuartersCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + + count = threeQuartersCluster; + wRc = FSWrite(refFile, &count, buffer); + cRc = FSClose(refFile); + free(buffer); + } + } + + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TRQTCLST", threeQuartersCluster, rc, wRc, + cRc); + + rc = HCreate(refNum, dirId, "\pTWOQCLST", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pTWOQCLST", 0, &refFile); + if(!rc) + { + buffer = malloc(twoAndThreeQuartCluster); + memset(buffer, 0, twoAndThreeQuartCluster); + + for(i = 0; i < twoAndThreeQuartCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + + count = twoAndThreeQuartCluster; + wRc = FSWrite(refFile, &count, buffer); + cRc = FSClose(refFile); + free(buffer); + } + } + + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWTQCLST", twoAndThreeQuartCluster, rc, + wRc, cRc); + + rc = HCreate(refNum, dirId, "\pTWO1", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pTWO1", 0, &refFile); + if(!rc) + { + buffer = malloc(twoCluster); + memset(buffer, 0, twoCluster); + + for(i = 0; i < twoCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + + count = twoCluster; + wRc = FSWrite(refFile, &count, buffer); + cRc = FSClose(refFile); + free(buffer); + } + } + + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWO1", twoCluster, rc, wRc, cRc); + + rc = HCreate(refNum, dirId, "\pTWO2", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pTWO2", 0, &refFile); + if(!rc) + { + buffer = malloc(twoCluster); + memset(buffer, 0, twoCluster); + + for(i = 0; i < twoCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + + count = twoCluster; + wRc = FSWrite(refFile, &count, buffer); + cRc = FSClose(refFile); + free(buffer); + } + } + + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWO2", twoCluster, rc, wRc, cRc); + + rc = HCreate(refNum, dirId, "\pTWO3", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pTWO3", 0, &refFile); + if(!rc) + { + buffer = malloc(twoCluster); + memset(buffer, 0, twoCluster); + + for(i = 0; i < twoCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + + count = twoCluster; + wRc = FSWrite(refFile, &count, buffer); + cRc = FSClose(refFile); + free(buffer); + } + } + + printf("\tDeleting \"TWO2\".\n"); + rc = HDelete(refNum, dirId, "\pTWO2"); + + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "TWO3", twoCluster, rc, wRc, cRc); + + rc = HCreate(refNum, dirId, "\pFRAGTHRQ", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pFRAGTHRQ", 0, &refFile); + if(!rc) + { + buffer = malloc(threeQuartersCluster); + memset(buffer, 0, threeQuartersCluster); + + for(i = 0; i < threeQuartersCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + + count = threeQuartersCluster; + wRc = FSWrite(refFile, &count, buffer); + cRc = FSClose(refFile); + free(buffer); + } + } + + printf("\tDeleting \"TWO1\".\n"); + rc = HDelete(refNum, dirId, "\pTWO1"); + printf("\tDeleting \"TWO3\".\n"); + rc = HDelete(refNum, dirId, "\pTWO3"); + + rc = HCreate(refNum, dirId, "\pFRAGSIXQ", ostUnknown, ftGenericDocumentPC); + if(!rc) + { + rc = HOpenDF(refNum, dirId, "\pFRAGSIXQ", 0, &refFile); + if(!rc) + { + buffer = malloc(twoAndThreeQuartCluster); + memset(buffer, 0, twoAndThreeQuartCluster); + + for(i = 0; i < twoAndThreeQuartCluster; i++) + buffer[i] = clauniaBytes[i % CLAUNIA_SIZE]; + + count = twoAndThreeQuartCluster; + wRc = FSWrite(refFile, &count, buffer); + cRc = FSClose(refFile); + free(buffer); + } + } + + printf("\tFile name = \"%s\", size = %d, rc = %d, wRc = %d, cRc = %d\n", "FRAGSIXQ", twoAndThreeQuartCluster, rc, + wRc, cRc); +} + +void Sparse(const char *path) +{ + /* Do nothing, not supported by target operating system */ +} + +static pascal OSErr + +CreateAliasFile(const FSSpec *targetFile, const FSSpec *aliasFile, OSType fileCreator, OSType fileType) +{ + short rsrcID; + short aliasRefnum; + FInfo finf; + OSErr err; + AliasHandle alias; + + FSpCreateResFile(aliasFile, fileCreator, fileType, 0); + err = ResError(); + if(err != noErr) + return err; + + err = NewAlias(aliasFile, targetFile, &alias); + if(err != noErr || alias == NULL) + return err; + + aliasRefnum = FSpOpenResFile(aliasFile, fsRdWrPerm); + + AddResource((Handle)alias, rAliasType, 0, "\pDiscImageChef alias"); + err = ResError(); + + CloseResFile(aliasRefnum); + FSpGetFInfo(aliasFile, &finf); + + finf.fdCreator = fileCreator; + finf.fdType = fileType; + finf.fdFlags |= 0x8000; + finf.fdFlags &= (~0x0100); + + FSpSetFInfo(aliasFile, &finf); + + return err; +} + +void Links(const char *path) +{ + int32_t gestaltResponse; + OSErr rc, wRc, cRc, oRc, aRc; + Str255 str255; + HVolumeParam hpb; + int16_t refNum; + int16_t refFile; + int32_t dirId; + char filename[9]; + int pos = 0; + FSSpec targetSpec, aliasSpec; + int32_t count; + + rc = Gestalt(gestaltAliasMgrAttr, &gestaltResponse); + if(rc || !(gestaltResponse & (1 << gestaltAliasMgrPresent))) + { + printf("Alias Manager not present, cannot create aliases.\n"); + return; + } + + snprintf((char *)str255, 255, "%s", path); + hpb.ioNamePtr = str255; + hpb.ioVRefNum = 0; + hpb.ioVolIndex = -1; + rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); + if(rc) + { + printf("Could not get volume information.\n"); + return; + } + refNum = hpb.ioVRefNum; + + rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pLINKS", &dirId); + if(rc) + { + printf("Error %d creating working directory.\n", rc); + return; + } + + printf("Creating aliases.\n"); + + for(pos = 0; pos < 64; pos++) + { + memset(&filename, 0, 9); + sprintf((char *)filename, "TARGET%02d", pos); + str255[0] = 8; + memcpy(str255 + 1, filename, 8); + + rc = HCreate(refNum, dirId, str255, ostSimpleText, ftGenericDocumentPC); + + if(rc) + break; + + oRc = HOpenDF(refNum, dirId, str255, 0, &refFile); + if(oRc) + break; + + count = strlen(targetText); + wRc = FSWrite(refFile, &count, targetText); + cRc = FSClose(refFile); + + memset(&targetSpec, 0, sizeof(FSSpec)); + targetSpec.vRefNum = refNum; + targetSpec.parID = dirId; + targetSpec.name[0] = 8; + memcpy(targetSpec.name + 1, filename, 8); + + memset(&filename, 0, 9); + sprintf((char *)filename, "ALIAS_%02d", pos); + memset(&aliasSpec, 0, sizeof(FSSpec)); + aliasSpec.vRefNum = refNum; + aliasSpec.parID = dirId; + aliasSpec.name[0] = 8; + memcpy(aliasSpec.name + 1, filename, 8); + + aRc = CreateAliasFile(&targetSpec, &aliasSpec, ostSimpleText, ftGenericDocumentPC); + + if(aRc) + break; + } + + printf("pos = %d, rc = %d, wRc = %d, cRc = %d, oRc = %d, aRc = %d\n", pos, rc, wRc, cRc, oRc, aRc); +} + +void MillionFiles(const char *path) +{ + OSErr rc, wRc, cRc; + Str255 str255; + HVolumeParam hpb; + int16_t refNum; + int16_t refFile; + int32_t dirId; + FInfo finderInfo; + int32_t count; + char filename[9]; + int pos = 0; + + snprintf((char *)str255, 255, "%s", path); + hpb.ioNamePtr = str255; + hpb.ioVRefNum = 0; + hpb.ioVolIndex = -1; + rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); + if(rc) + { + printf("Could not get volume information.\n"); + return; + } + refNum = hpb.ioVRefNum; + + rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pMILLION", &dirId); + if(rc) + { + printf("Error %d creating working directory.\n", rc); + return; + } + + printf("Creating lots of files.\n"); + + for(pos = 0; pos < 5000; pos++) + { + memset(&filename, 0, 9); + sprintf((char *)filename, "%08d", pos); + str255[0] = 8; + memcpy(str255 + 1, filename, 8); + + rc = HCreate(refNum, dirId, str255, ostUnknown, ftGenericDocumentPC); + + if(rc) + break; + } + + printf("\tCreated %d files\n", pos); +} + +void DeleteFiles(const char *path) +{ + OSErr rc, wRc, cRc; + Str255 str255; + HVolumeParam hpb; + int16_t refNum; + int16_t refFile; + int32_t dirId; + FInfo finderInfo; + int32_t count; + char filename[9]; + int pos = 0; + + snprintf((char *)str255, 255, "%s", path); + hpb.ioNamePtr = str255; + hpb.ioVRefNum = 0; + hpb.ioVolIndex = -1; + rc = PBHGetVInfo((HParmBlkPtr) & hpb, 0); + if(rc) + { + printf("Could not get volume information.\n"); + return; + } + refNum = hpb.ioVRefNum; + + rc = DirCreate(refNum, fsRtDirID, (unsigned char *)"\pDELETED", &dirId); + if(rc) + { + printf("Error %d creating working directory.\n", rc); + return; + } + + printf("Creating and deleting files.\n"); + + for(pos = 0; pos < 64; pos++) + { + memset(&filename, 0, 9); + sprintf((char *)filename, "%08d", pos); + str255[0] = 8; + memcpy(str255 + 1, filename, 8); + + rc = HCreate(refNum, dirId, str255, ostUnknown, ftGenericDocumentPC); + + if(rc) + break; + + HDelete(refNum, dirId, str255); + } +} +#endif diff --git a/setter/macos.h b/setter/macos.h index ae7c7ba..c406123 100644 --- a/setter/macos.h +++ b/setter/macos.h @@ -1 +1,1222 @@ -/**************************************************************************** The Disc Image Chef ----------------------------------------------------------------------------- Filename : macos.h Author(s) : Natalia Portillo Component : fstester.setter --[ Description ] ----------------------------------------------------------- Contains Mac OS definitions --[ License ] --------------------------------------------------------------- This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warraty of MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ----------------------------------------------------------------------------- Copyright (C) 2011-2018 Natalia Portillo *****************************************************************************/ #if defined(macintosh) #ifndef DIC_FSTESTER_SETTER_MACINTOSH_H #define DIC_FSTESTER_SETTER_MACINTOSH_H #include const char *noAttributeText = "This file has all flags bits clear.\r"; const char *desktopText = "This file is on desktop.\r"; const char *color2Text = "This file is colored brown.\r"; const char *color4Text = "This file is colored green.\r"; const char *color6Text = "This file is colored lilac.\r"; const char *color8Text = "This file is colored blue.\r"; const char *colorAText = "This file is colored magenta.\r"; const char *colorCText = "This file is colored red.\r"; const char *colorEText = "This file is colored orange.\r"; const char *requireSwitchText = "This file requires switch launch.\r"; const char *sharedText = "This file is shared.\r"; const char *noInitText = "This file contains no init.\r"; const char *initedText = "This file has been inited.\r"; const char *aoceText = "This file has AOCE bit set.\r"; const char *customIconText = "This file has a custom icon.\r"; const char *stationeryText = "This is a stationery.\r"; const char *nameLockText = "This file has the name locked.\r"; const char *bundleText = "This file has a BNDL resource.\r"; const char *invisibleText = "This file is invisible.\r"; const char *aliasText = "This file is an alias to nowhere.\r"; const char *simpletextText = "This file has creator 'ttxt'.\r"; const char *dicText = "This file has creator 'dic '.\r"; const char *pos_m32_m32 = "This file position is -32k,-32k.\r"; const char *pos_32_32 = "This file position is 32k,32k.\r"; const char *pos_m1_m1 = "This file position is -1k,-1k.\r"; const char *pos_m1_m32 = "This file position is -1k,-32k.\r"; const char *pos_m1_32 = "This file position is -1k,32k.\r"; const char *pos_m1_1 = "This file position is -1k,1k.\r"; const char *pos_1_m1 = "This file position is 1k,-1k.\r"; const char *pos_1_m32 = "This file position is 1k,-32k.\r"; const char *pos_1_32 = "This file position is 1k,32k.\r"; const char *pos_1_1 = "This file position is 1k,1k.\r"; const char *allText = "This file has all flags bits set.\r"; const char *targetText = "This file is the target of an alias.\r"; const char *icnsText = "This file has a custom icon in the resource fork.\r"; const char *versText = "This file has a version in the resource fork.\r"; const char *pictText = "This file has a picture in the resource fork.\r"; const char *rsrcText = "This file has a custom icon, a version, and a picture, in the resource fork.\r"; enum { gestaltMacOSCompatibilityBoxAttr = FOUR_CHAR_CODE('bbox'), ostDiscImageChef = FOUR_CHAR_CODE('dic '), ostSimpleText = FOUR_CHAR_CODE('ttxt'), ostUnknown = FOUR_CHAR_CODE('????'), rtIcons = FOUR_CHAR_CODE('icns'), rtVersion = FOUR_CHAR_CODE('vers'), }; enum { kRequireSwitchLaunch = 0x0020, kAOCE = 0x0200 }; #define DATETIME_FORMAT "This file is dated %s for %s\r" #define MAXDATETIME "2040/02/06 06:28:15" #define MINDATETIME "1904/01/01 00:00:01" #define NONDATETIME "1904/01/01 00:00:00" #define Y2KDATETIME "2000/01/01 00:00:00" #define Y1KDATETIME "1999/12/31 23:59:59" #define MAXTIMESTAMP 0xFFFFFFFF #define MINTIMESTAMP 0x00000001 #define NONTIMESTAMP 0x00000000 #define Y2KTIMESTAMP 0xB492F400 #define Y1KTIMESTAMP 0xB492F3FF unsigned char IcnsResource[5618] = { 0x69, 0x63, 0x6E, 0x73, 0x00, 0x00, 0x15, 0xF2, 0x69, 0x63, 0x73, 0x23, 0x00, 0x00, 0x00, 0x48, 0x00, 0xF0, 0x01, 0xE0, 0xFF, 0xFE, 0x82, 0x03, 0x96, 0x43, 0x94, 0x43, 0x84, 0x03, 0x84, 0x03, 0x87, 0x83, 0x81, 0x03, 0x99, 0x33, 0x87, 0xC3, 0x81, 0x03, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0xF0, 0x00, 0xF0, 0x01, 0xE0, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0xF0, 0x69, 0x63, 0x73, 0x38, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFE, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0xF1, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0xF1, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0xFF, 0xF1, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0xFF, 0xFF, 0x2A, 0x2A, 0xFD, 0xAD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xF1, 0xF1, 0xFF, 0xFF, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFE, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x00, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFF, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x69, 0x73, 0x33, 0x32, 0x00, 0x00, 0x01, 0xDF, 0x85, 0xFF, 0x03, 0x44, 0x11, 0x44, 0x44, 0x88, 0xFF, 0x03, 0x44, 0x00, 0x44, 0x44, 0x82, 0xFF, 0x8C, 0x00, 0x01, 0xFF, 0x00, 0x82, 0x66, 0x00, 0x00, 0x84, 0xCC, 0x0B, 0x22, 0x44, 0x00, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0xCC, 0xCC, 0x00, 0x81, 0xCC, 0x07, 0x22, 0x44, 0x00, 0x66, 0x66, 0x00, 0x66, 0x00, 0x80, 0xCC, 0x00, 0x00, 0x81, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x81, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x81, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x81, 0x66, 0x81, 0x00, 0x82, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x83, 0x66, 0x00, 0x00, 0x83, 0xCC, 0x12, 0x22, 0x44, 0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x00, 0xCC, 0xCC, 0x00, 0x00, 0xCC, 0xCC, 0x22, 0x44, 0x00, 0x81, 0x66, 0x82, 0x00, 0x81, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x83, 0x66, 0x00, 0x00, 0x83, 0xCC, 0x01, 0x22, 0x44, 0x8C, 0x00, 0x01, 0x44, 0xFF, 0x84, 0x44, 0x00, 0x00, 0x84, 0x44, 0x85, 0xFF, 0x03, 0x44, 0x00, 0x44, 0x44, 0x81, 0xFF, 0x85, 0xFF, 0x03, 0x44, 0x11, 0x44, 0x44, 0x88, 0xFF, 0x03, 0x44, 0x00, 0x44, 0x44, 0x82, 0xFF, 0x8C, 0x00, 0x01, 0xFF, 0x00, 0x82, 0x66, 0x00, 0x00, 0x84, 0xCC, 0x0B, 0x22, 0x44, 0x00, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0xCC, 0xCC, 0x00, 0x81, 0xCC, 0x07, 0x22, 0x44, 0x00, 0x66, 0x66, 0x00, 0x66, 0x00, 0x80, 0xCC, 0x00, 0x00, 0x81, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x81, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x81, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x81, 0x66, 0x81, 0x00, 0x82, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x83, 0x66, 0x00, 0x00, 0x83, 0xCC, 0x12, 0x22, 0x44, 0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x00, 0xCC, 0xCC, 0x00, 0x00, 0xCC, 0xCC, 0x22, 0x44, 0x00, 0x81, 0x66, 0x82, 0x00, 0x81, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x83, 0x66, 0x00, 0x00, 0x83, 0xCC, 0x01, 0x22, 0x44, 0x8C, 0x00, 0x01, 0x44, 0xFF, 0x84, 0x44, 0x00, 0x00, 0x84, 0x44, 0x85, 0xFF, 0x03, 0x44, 0x00, 0x44, 0x44, 0x81, 0xFF, 0x85, 0xFF, 0x03, 0x44, 0x11, 0x44, 0x44, 0x88, 0xFF, 0x03, 0x44, 0x00, 0x44, 0x44, 0x82, 0xFF, 0x8C, 0x00, 0x01, 0xFF, 0x00, 0x82, 0xCC, 0x00, 0x00, 0x84, 0xFF, 0x0B, 0x22, 0x44, 0x00, 0xCC, 0xCC, 0x55, 0xCC, 0xCC, 0x00, 0xFF, 0xFF, 0x00, 0x81, 0xFF, 0x07, 0x22, 0x44, 0x00, 0xCC, 0xCC, 0x55, 0xCC, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x81, 0xFF, 0x02, 0x22, 0x44, 0x00, 0x81, 0xCC, 0x00, 0x00, 0x85, 0xFF, 0x02, 0x22, 0x44, 0x00, 0x81, 0xCC, 0x00, 0x00, 0x85, 0xFF, 0x02, 0x22, 0x44, 0x00, 0x81, 0xCC, 0x81, 0x00, 0x82, 0xFF, 0x02, 0x22, 0x44, 0x00, 0x83, 0xCC, 0x00, 0x00, 0x83, 0xFF, 0x12, 0x22, 0x44, 0x00, 0xCC, 0xCC, 0x55, 0x55, 0xCC, 0xCC, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x22, 0x00, 0x00, 0x81, 0xCC, 0x01, 0x55, 0x55, 0x80, 0x00, 0x81, 0xFF, 0x02, 0x22, 0x44, 0x00, 0x83, 0xCC, 0x00, 0x00, 0x83, 0xFF, 0x01, 0x22, 0x44, 0x8C, 0x00, 0x01, 0x44, 0xFF, 0x84, 0x44, 0x00, 0x00, 0x84, 0x44, 0x85, 0xFF, 0x03, 0x44, 0x00, 0x44, 0x44, 0x81, 0xFF, 0x73, 0x38, 0x6D, 0x6B, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xFF, 0x4C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xFF, 0x4C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0x00, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0xFF, 0x86, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xFF, 0x4C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x49, 0x43, 0x4E, 0x23, 0x00, 0x00, 0x01, 0x08, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x1C, 0x78, 0x00, 0x00, 0x70, 0x0E, 0x00, 0x01, 0xC0, 0x03, 0x80, 0x01, 0x40, 0x00, 0xE0, 0x01, 0x10, 0x00, 0x38, 0x01, 0x04, 0x00, 0x18, 0x01, 0x61, 0x00, 0x38, 0x01, 0x58, 0x40, 0xF8, 0x01, 0x4E, 0x17, 0xF8, 0x01, 0x43, 0x83, 0xF8, 0x01, 0x42, 0xE3, 0xF8, 0x01, 0x40, 0x33, 0xF8, 0x01, 0x45, 0x73, 0xF8, 0x01, 0x60, 0x33, 0xF8, 0x01, 0xD5, 0x73, 0xF8, 0xFF, 0xFF, 0xB3, 0xF8, 0x81, 0x01, 0xF3, 0xF8, 0x8B, 0x21, 0xB3, 0xF8, 0x8A, 0x21, 0xF3, 0xF8, 0x82, 0x01, 0xF3, 0xF8, 0x82, 0x01, 0x83, 0xFC, 0x82, 0x01, 0xC3, 0xFF, 0x83, 0xC1, 0xE3, 0xFF, 0x80, 0x81, 0x83, 0xFF, 0x98, 0x99, 0x83, 0xFF, 0x87, 0xE1, 0x83, 0xFF, 0x80, 0x81, 0x83, 0xFE, 0xFF, 0xFF, 0xE7, 0xFC, 0x7F, 0xFF, 0xFF, 0xF8, 0x00, 0x7B, 0xFF, 0xF0, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x7F, 0xFE, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0xE0, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xF8, 0x00, 0x7B, 0xFF, 0xF0, 0x00, 0x00, 0xFF, 0xE0, 0x69, 0x63, 0x6C, 0x38, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFC, 0xFD, 0xFF, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFC, 0xFD, 0xF9, 0xF7, 0xF9, 0xFC, 0xFF, 0xFF, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFC, 0xFD, 0xF9, 0xF7, 0x00, 0x00, 0xF5, 0xF6, 0xF8, 0xF9, 0xFC, 0xFF, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFC, 0xFD, 0xF9, 0xF7, 0xF6, 0x00, 0xF5, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF8, 0xF9, 0xFC, 0xFF, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF9, 0xFC, 0xF7, 0xF6, 0x00, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF8, 0xF9, 0xFC, 0xFF, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xF7, 0xF9, 0xFC, 0xF7, 0xF5, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF8, 0xF9, 0xFC, 0xFF, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFC, 0xF7, 0xF5, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0x2B, 0xF8, 0xF9, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xAC, 0xFC, 0xF7, 0xF7, 0xF7, 0xF9, 0xFC, 0xF7, 0xF5, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0x2B, 0xF7, 0xF9, 0xFF, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xAC, 0x54, 0xFD, 0xFC, 0xF7, 0xF7, 0xF7, 0xF9, 0xFC, 0xF7, 0xF5, 0xF6, 0x2B, 0xF7, 0xF9, 0xFF, 0xFD, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xAC, 0x54, 0x54, 0xAB, 0xFD, 0xFC, 0xF7, 0xF7, 0xF7, 0xF9, 0xFC, 0xF9, 0xFB, 0xFF, 0xFD, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xAC, 0x54, 0x54, 0x54, 0x54, 0xAB, 0xFE, 0xFC, 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0x2B, 0xFD, 0x54, 0x54, 0x54, 0x54, 0x7E, 0x54, 0xAB, 0xFD, 0xFC, 0xF7, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xAC, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0xAB, 0xFC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xAC, 0x54, 0x54, 0x54, 0x7E, 0x54, 0x7E, 0x54, 0x7E, 0x7E, 0xAC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xFF, 0xAA, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x7E, 0xAC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xAA, 0x54, 0x7E, 0x54, 0x7E, 0x54, 0x7E, 0x54, 0x7E, 0x7E, 0xAC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x54, 0x7E, 0xAC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, 0x7E, 0x7E, 0xAC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, 0xF1, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, 0x54, 0x7E, 0xAC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, 0xF1, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAC, 0x7E, 0x7E, 0xAC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, 0x82, 0xFD, 0xAC, 0x2B, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0xFD, 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAC, 0xFD, 0xF7, 0xF7, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0xFD, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, 0xFB, 0xFD, 0xF9, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0xFD, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0xFD, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0xF1, 0xF1, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0xFF, 0xFF, 0x2A, 0x2A, 0xFF, 0xAA, 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xF1, 0xF1, 0xF1, 0xFF, 0xFF, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFB, 0xFB, 0xFC, 0xFD, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFC, 0xFD, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFB, 0xF9, 0xF7, 0xFC, 0xFF, 0xFF, 0xFD, 0xFD, 0xFF, 0xFF, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFF, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, 0xFF, 0xFD, 0xFD, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFD, 0xFD, 0x00, 0xFD, 0xFD, 0xFD, 0xFF, 0xFE, 0xFD, 0xFD, 0xFD, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFD, 0xFD, 0xFE, 0xFE, 0xFE, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x6C, 0x33, 0x32, 0x00, 0x00, 0x08, 0x9B, 0x8A, 0xFF, 0x04, 0x22, 0x54, 0x33, 0x22, 0x22, 0x96, 0xFF, 0x09, 0x22, 0x54, 0x44, 0x88, 0xBB, 0x88, 0x44, 0x33, 0x22, 0x22, 0x91, 0xFF, 0x0D, 0x22, 0x54, 0x44, 0x88, 0xBB, 0xFF, 0xE5, 0xE1, 0xDC, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x8D, 0xFF, 0x11, 0x22, 0x54, 0x44, 0x88, 0xBB, 0xFF, 0xEE, 0xE9, 0xE4, 0xDF, 0xDA, 0xD6, 0xD1, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x8B, 0xFF, 0x13, 0x44, 0x88, 0x54, 0xBB, 0xFF, 0xEE, 0xEC, 0xE7, 0xE1, 0xDD, 0xD8, 0xD4, 0xD1, 0xCD, 0xC9, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x89, 0xFF, 0x15, 0x44, 0xDD, 0xAA, 0x88, 0x54, 0xBB, 0xFF, 0xE5, 0xE0, 0xDB, 0xD6, 0xD3, 0xCF, 0xCB, 0xC8, 0xC4, 0xC1, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x87, 0xFF, 0x15, 0x44, 0xDB, 0xDB, 0xDA, 0xD9, 0x88, 0x54, 0xBB, 0xEE, 0xD9, 0xD5, 0xD1, 0xCE, 0xCA, 0xC6, 0xC2, 0xBF, 0xBC, 0xBB, 0x88, 0x44, 0x22, 0x87, 0xFF, 0x15, 0x44, 0xDA, 0x54, 0x77, 0xAA, 0xD7, 0xD6, 0x88, 0x54, 0xBB, 0xEE, 0xD0, 0xCC, 0xC8, 0xC5, 0xC2, 0xBF, 0xBB, 0x88, 0x44, 0x6D, 0x20, 0x87, 0xFF, 0x15, 0x44, 0xD8, 0x42, 0x66, 0x54, 0x77, 0xAA, 0xD4, 0xD4, 0x88, 0x54, 0xBB, 0xEC, 0xC7, 0xC3, 0xC0, 0x88, 0x44, 0x54, 0x6D, 0x77, 0x20, 0x87, 0xFF, 0x11, 0x44, 0xD7, 0x42, 0x66, 0x7F, 0x66, 0x54, 0x77, 0xAA, 0xD1, 0xD1, 0x88, 0x54, 0x88, 0xAA, 0x44, 0x54, 0x6D, 0x80, 0x77, 0x00, 0x1E, 0x87, 0xFF, 0x0F, 0x44, 0xD6, 0x42, 0x66, 0x92, 0x90, 0x7F, 0x66, 0x54, 0x77, 0xAA, 0xCF, 0xCE, 0xAA, 0x55, 0x6D, 0x82, 0x77, 0x00, 0x1C, 0x87, 0xFF, 0x0E, 0x44, 0xD5, 0x42, 0x66, 0x8F, 0x8C, 0x8A, 0x87, 0x7F, 0x66, 0x54, 0x77, 0xAA, 0xCD, 0x88, 0x82, 0x77, 0x01, 0x74, 0x1B, 0x87, 0xFF, 0x0E, 0x44, 0xD3, 0x42, 0x66, 0x8C, 0x89, 0x86, 0x83, 0x82, 0x7F, 0x71, 0x66, 0x54, 0xCB, 0x88, 0x81, 0x77, 0x02, 0x73, 0x6C, 0x19, 0x87, 0xFF, 0x0E, 0x44, 0xD2, 0x42, 0x66, 0x89, 0x86, 0x83, 0x80, 0x7F, 0x7C, 0x7B, 0x77, 0x44, 0xCB, 0x88, 0x80, 0x77, 0x03, 0x72, 0x6A, 0x64, 0x18, 0x87, 0xFF, 0x15, 0x44, 0xD1, 0x00, 0x33, 0x85, 0x83, 0x80, 0x7E, 0x7C, 0x7A, 0x77, 0x76, 0x44, 0xC9, 0x88, 0x77, 0x77, 0x70, 0x69, 0x62, 0x5C, 0x16, 0x87, 0xFF, 0x15, 0x44, 0x00, 0x33, 0x66, 0x82, 0x80, 0x7D, 0x7C, 0x79, 0x77, 0x76, 0x73, 0x44, 0xC9, 0x88, 0x76, 0x6E, 0x67, 0x61, 0x5A, 0x54, 0x15, 0x80, 0xFF, 0x8D, 0x00, 0x0C, 0x75, 0x73, 0x71, 0x44, 0xC7, 0x88, 0x6D, 0x66, 0x5F, 0x59, 0x53, 0x4E, 0x14, 0x80, 0xFF, 0x00, 0x00, 0x83, 0x66, 0x00, 0x00, 0x84, 0xCC, 0x0D, 0x00, 0x33, 0x71, 0x6F, 0x44, 0xC7, 0x88, 0x64, 0x5E, 0x58, 0x53, 0x4D, 0x48, 0x12, 0x80, 0xFF, 0x00, 0x00, 0x80, 0x66, 0x06, 0x00, 0x66, 0x66, 0x00, 0xCC, 0xCC, 0x00, 0x81, 0xCC, 0x0D, 0x00, 0x33, 0x6E, 0x6D, 0x44, 0xC5, 0x88, 0x5D, 0x57, 0x52, 0x4C, 0x47, 0x43, 0x10, 0x80, 0xFF, 0x00, 0x00, 0x80, 0x66, 0x02, 0x00, 0x66, 0x00, 0x80, 0xCC, 0x00, 0x00, 0x81, 0xCC, 0x0D, 0x00, 0x33, 0x22, 0x6A, 0x44, 0xC4, 0x88, 0x56, 0x51, 0x4B, 0x47, 0x42, 0x3E, 0x0E, 0x80, 0xFF, 0x00, 0x00, 0x82, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x0D, 0x00, 0x33, 0x6D, 0x22, 0x44, 0xC3, 0x88, 0x4F, 0x4A, 0x46, 0x41, 0x3C, 0x38, 0x0C, 0x80, 0xFF, 0x00, 0x00, 0x82, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x11, 0x00, 0x33, 0xC5, 0xAA, 0x88, 0xC3, 0x88, 0x49, 0x44, 0x40, 0x3B, 0x37, 0x33, 0x0B, 0x22, 0xFF, 0xFF, 0x00, 0x82, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x0D, 0x00, 0x33, 0x00, 0xC3, 0xC2, 0xC2, 0x88, 0x44, 0x3F, 0x3A, 0x36, 0x33, 0x2F, 0x08, 0x80, 0x22, 0x00, 0x00, 0x82, 0x66, 0x81, 0x00, 0x82, 0xCC, 0x0D, 0x00, 0x33, 0x55, 0x00, 0x88, 0xC1, 0x88, 0x3E, 0x3A, 0x35, 0x33, 0x33, 0x2B, 0x07, 0x80, 0x22, 0x00, 0x00, 0x84, 0x66, 0x00, 0x00, 0x83, 0xCC, 0x0D, 0x00, 0x33, 0xC1, 0xC1, 0xC0, 0xC0, 0x88, 0x38, 0x34, 0x33, 0x33, 0x2E, 0x22, 0x14, 0x80, 0x22, 0x04, 0x00, 0x66, 0x66, 0x00, 0x00, 0x80, 0x66, 0x14, 0x00, 0xCC, 0xCC, 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x33, 0xC0, 0xC0, 0xBF, 0xBF, 0x88, 0x33, 0x33, 0x2F, 0x2E, 0x22, 0x14, 0x08, 0x80, 0x22, 0x00, 0x00, 0x81, 0x66, 0x83, 0x00, 0x81, 0xCC, 0x0C, 0x00, 0x33, 0xC0, 0xBF, 0xBF, 0xBE, 0x88, 0x33, 0x2F, 0x28, 0x11, 0x14, 0x08, 0x81, 0x22, 0x00, 0x00, 0x84, 0x66, 0x00, 0x00, 0x83, 0xCC, 0x0B, 0x00, 0x33, 0xBF, 0xBF, 0xBE, 0xBD, 0x88, 0x2E, 0x22, 0x11, 0x14, 0x08, 0x81, 0x22, 0x00, 0xFF, 0x8D, 0x00, 0x09, 0x11, 0x22, 0x55, 0x88, 0xBD, 0x44, 0x18, 0x14, 0x11, 0x08, 0x81, 0x22, 0x80, 0xFF, 0x85, 0x22, 0x00, 0x00, 0x82, 0x22, 0x09, 0x00, 0x00, 0x22, 0x22, 0x19, 0x11, 0x00, 0x22, 0x11, 0x08, 0x81, 0x22, 0x89, 0xFF, 0x04, 0x22, 0x00, 0x22, 0x22, 0xFF, 0x80, 0x22, 0x01, 0x00, 0x11, 0x80, 0x22, 0x01, 0x11, 0x08, 0x81, 0x22, 0x91, 0xFF, 0x80, 0x22, 0x80, 0x11, 0x82, 0x22, 0x82, 0xFF, 0x8A, 0xFF, 0x04, 0x22, 0x55, 0x33, 0x22, 0x22, 0x96, 0xFF, 0x09, 0x22, 0x55, 0x44, 0x88, 0xBB, 0x88, 0x44, 0x33, 0x22, 0x22, 0x91, 0xFF, 0x0D, 0x22, 0x55, 0x44, 0x88, 0xBB, 0xFF, 0xE5, 0xE0, 0xDC, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x8D, 0xFF, 0x11, 0x22, 0x55, 0x44, 0x88, 0xBB, 0xFF, 0xEE, 0xE9, 0xE4, 0xDF, 0xDA, 0xD6, 0xD2, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x8B, 0xFF, 0x13, 0x44, 0x88, 0x55, 0xBB, 0xFF, 0xEE, 0xEC, 0xE7, 0xE2, 0xDD, 0xD8, 0xD4, 0xD0, 0xCD, 0xC9, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x89, 0xFF, 0x15, 0x44, 0xDD, 0xAA, 0x88, 0x55, 0xBB, 0xFF, 0xE5, 0xE0, 0xDB, 0xD6, 0xD3, 0xCF, 0xCB, 0xC7, 0xC4, 0xC1, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x87, 0xFF, 0x15, 0x44, 0xDB, 0xDB, 0xDA, 0xDA, 0x88, 0x55, 0xBB, 0xEE, 0xD9, 0xD5, 0xD1, 0xCE, 0xCA, 0xC7, 0xC3, 0xBF, 0xBC, 0xBB, 0x88, 0x44, 0x22, 0x87, 0xFF, 0x15, 0x44, 0xDB, 0x55, 0x77, 0xAA, 0xD8, 0xD6, 0x88, 0x55, 0xBB, 0xEE, 0xCF, 0xCC, 0xC8, 0xC5, 0xC2, 0xBE, 0xBB, 0x88, 0x44, 0x6D, 0x20, 0x87, 0xFF, 0x15, 0x44, 0xD9, 0x42, 0x66, 0x55, 0x77, 0xAA, 0xD4, 0xD3, 0x88, 0x55, 0xBB, 0xEC, 0xC7, 0xC4, 0xC0, 0x88, 0x44, 0x55, 0x6D, 0x77, 0x1F, 0x87, 0xFF, 0x11, 0x44, 0xD7, 0x42, 0x66, 0x7E, 0x66, 0x55, 0x77, 0xAA, 0xD1, 0xD1, 0x88, 0x55, 0x88, 0xAA, 0x44, 0x55, 0x6D, 0x80, 0x77, 0x00, 0x1E, 0x87, 0xFF, 0x0F, 0x44, 0xD6, 0x42, 0x66, 0x92, 0x90, 0x7E, 0x66, 0x55, 0x77, 0xAA, 0xCF, 0xCE, 0xAA, 0x55, 0x6D, 0x82, 0x77, 0x00, 0x1C, 0x87, 0xFF, 0x0E, 0x44, 0xD5, 0x42, 0x66, 0x90, 0x8C, 0x8A, 0x86, 0x7E, 0x66, 0x55, 0x77, 0xAA, 0xCC, 0x88, 0x82, 0x77, 0x01, 0x74, 0x1B, 0x87, 0xFF, 0x0E, 0x44, 0xD4, 0x42, 0x66, 0x8C, 0x89, 0x86, 0x84, 0x81, 0x7F, 0x71, 0x66, 0x55, 0xCB, 0x88, 0x81, 0x77, 0x02, 0x72, 0x6B, 0x19, 0x87, 0xFF, 0x0E, 0x44, 0xD3, 0x42, 0x66, 0x88, 0x86, 0x83, 0x81, 0x7E, 0x7C, 0x7A, 0x78, 0x44, 0xCB, 0x88, 0x80, 0x77, 0x03, 0x72, 0x6A, 0x63, 0x18, 0x87, 0xFF, 0x15, 0x44, 0xD1, 0x00, 0x33, 0x85, 0x83, 0x80, 0x7E, 0x7B, 0x7A, 0x78, 0x75, 0x44, 0xCA, 0x88, 0x77, 0x77, 0x70, 0x69, 0x63, 0x5B, 0x17, 0x87, 0xFF, 0x15, 0x44, 0x00, 0x33, 0x66, 0x82, 0x7F, 0x7D, 0x7B, 0x79, 0x77, 0x75, 0x73, 0x44, 0xC9, 0x88, 0x76, 0x6E, 0x67, 0x61, 0x5B, 0x55, 0x15, 0x80, 0xFF, 0x8D, 0x00, 0x0C, 0x74, 0x72, 0x71, 0x44, 0xC7, 0x88, 0x6D, 0x66, 0x5F, 0x59, 0x53, 0x4F, 0x14, 0x80, 0xFF, 0x00, 0x00, 0x83, 0x66, 0x00, 0x00, 0x84, 0xCC, 0x0D, 0x00, 0x33, 0x71, 0x6F, 0x44, 0xC6, 0x88, 0x64, 0x5E, 0x58, 0x52, 0x4E, 0x48, 0x12, 0x80, 0xFF, 0x00, 0x00, 0x80, 0x66, 0x06, 0x00, 0x66, 0x66, 0x00, 0xCC, 0xCC, 0x00, 0x81, 0xCC, 0x0D, 0x00, 0x33, 0x6E, 0x6C, 0x44, 0xC6, 0x88, 0x5D, 0x57, 0x52, 0x4D, 0x47, 0x43, 0x10, 0x80, 0xFF, 0x00, 0x00, 0x80, 0x66, 0x02, 0x00, 0x66, 0x00, 0x80, 0xCC, 0x00, 0x00, 0x81, 0xCC, 0x0D, 0x00, 0x33, 0x22, 0x6A, 0x44, 0xC4, 0x88, 0x55, 0x51, 0x4B, 0x46, 0x42, 0x3D, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0x82, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x0D, 0x00, 0x33, 0x6D, 0x22, 0x44, 0xC4, 0x88, 0x50, 0x4B, 0x46, 0x41, 0x3C, 0x37, 0x0C, 0x80, 0xFF, 0x00, 0x00, 0x82, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x11, 0x00, 0x33, 0xC4, 0xAA, 0x88, 0xC3, 0x88, 0x49, 0x44, 0x40, 0x3C, 0x37, 0x33, 0x0B, 0x22, 0xFF, 0xFF, 0x00, 0x82, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x0D, 0x00, 0x33, 0x00, 0xC3, 0xC3, 0xC1, 0x88, 0x44, 0x3F, 0x3A, 0x36, 0x33, 0x30, 0x08, 0x80, 0x22, 0x00, 0x00, 0x82, 0x66, 0x81, 0x00, 0x82, 0xCC, 0x0D, 0x00, 0x33, 0x55, 0x00, 0x88, 0xC1, 0x88, 0x3E, 0x39, 0x34, 0x33, 0x33, 0x2B, 0x06, 0x80, 0x22, 0x00, 0x00, 0x84, 0x66, 0x00, 0x00, 0x83, 0xCC, 0x0D, 0x00, 0x33, 0xC1, 0xC1, 0xC0, 0xC0, 0x88, 0x38, 0x34, 0x33, 0x33, 0x2E, 0x22, 0x13, 0x80, 0x22, 0x04, 0x00, 0x66, 0x66, 0x00, 0x00, 0x80, 0x66, 0x14, 0x00, 0xCC, 0xCC, 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x33, 0xC1, 0xC0, 0xC0, 0xBF, 0x88, 0x33, 0x33, 0x30, 0x2E, 0x22, 0x13, 0x08, 0x80, 0x22, 0x00, 0x00, 0x81, 0x66, 0x83, 0x00, 0x81, 0xCC, 0x0C, 0x00, 0x33, 0xBF, 0xBF, 0xBE, 0xBE, 0x88, 0x33, 0x30, 0x27, 0x11, 0x13, 0x08, 0x81, 0x22, 0x00, 0x00, 0x84, 0x66, 0x00, 0x00, 0x83, 0xCC, 0x0B, 0x00, 0x33, 0xBF, 0xBE, 0xBE, 0xBD, 0x88, 0x2E, 0x22, 0x11, 0x13, 0x08, 0x81, 0x22, 0x00, 0xFF, 0x8D, 0x00, 0x09, 0x11, 0x22, 0x55, 0x88, 0xBC, 0x44, 0x18, 0x13, 0x11, 0x08, 0x81, 0x22, 0x80, 0xFF, 0x85, 0x22, 0x00, 0x00, 0x82, 0x22, 0x09, 0x00, 0x00, 0x22, 0x22, 0x19, 0x11, 0x00, 0x22, 0x11, 0x08, 0x81, 0x22, 0x89, 0xFF, 0x04, 0x22, 0x00, 0x22, 0x22, 0xFF, 0x80, 0x22, 0x01, 0x00, 0x11, 0x80, 0x22, 0x01, 0x11, 0x08, 0x81, 0x22, 0x91, 0xFF, 0x80, 0x22, 0x80, 0x11, 0x82, 0x22, 0x82, 0xFF, 0x8A, 0xFF, 0x04, 0x22, 0x55, 0x33, 0x22, 0x22, 0x96, 0xFF, 0x09, 0x22, 0x55, 0x44, 0x88, 0xBB, 0x88, 0x44, 0x33, 0x22, 0x22, 0x91, 0xFF, 0x0D, 0x22, 0x55, 0x44, 0x88, 0xBB, 0xFF, 0xE6, 0xE0, 0xDC, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x8D, 0xFF, 0x11, 0x22, 0x55, 0x44, 0x88, 0xBB, 0xFF, 0xEE, 0xE9, 0xE4, 0xDF, 0xDA, 0xD6, 0xD1, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x8B, 0xFF, 0x13, 0x44, 0x88, 0x55, 0xBB, 0xFF, 0xEE, 0xEC, 0xE7, 0xE1, 0xDC, 0xD8, 0xD4, 0xD0, 0xCC, 0xC8, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x89, 0xFF, 0x15, 0x44, 0xDD, 0xAA, 0x88, 0x55, 0xBB, 0xFF, 0xE5, 0xE0, 0xDB, 0xD6, 0xD2, 0xCE, 0xCB, 0xC7, 0xC4, 0xC1, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x87, 0xFF, 0x15, 0x44, 0xDB, 0xDB, 0xDA, 0xD9, 0x88, 0x55, 0xBB, 0xEE, 0xD9, 0xD6, 0xD1, 0xCE, 0xCA, 0xC7, 0xC3, 0xC0, 0xBD, 0xBB, 0x88, 0x44, 0x22, 0x87, 0xFF, 0x15, 0x44, 0xDA, 0x55, 0x77, 0xAA, 0xD7, 0xD7, 0x88, 0x55, 0xBB, 0xEE, 0xD0, 0xCC, 0xC9, 0xC6, 0xC2, 0xBE, 0xBB, 0x88, 0x44, 0x6D, 0x21, 0x87, 0xFF, 0x15, 0x44, 0xD8, 0x42, 0xCC, 0x55, 0x77, 0xAA, 0xD4, 0xD3, 0x88, 0x55, 0xBB, 0xEC, 0xC8, 0xC4, 0xC0, 0x88, 0x44, 0x55, 0x6D, 0x77, 0x20, 0x87, 0xFF, 0x11, 0x44, 0xD7, 0x42, 0xCC, 0xE5, 0xCC, 0x55, 0x77, 0xAA, 0xD1, 0xD1, 0x88, 0x55, 0x88, 0xAA, 0x44, 0x55, 0x6D, 0x80, 0x77, 0x00, 0x1D, 0x87, 0xFF, 0x0F, 0x44, 0xD6, 0x42, 0xCC, 0xF9, 0xF6, 0xE5, 0xCC, 0x55, 0x77, 0xAA, 0xCF, 0xCF, 0xAA, 0x55, 0x6D, 0x82, 0x77, 0x00, 0x1C, 0x87, 0xFF, 0x0E, 0x44, 0xD5, 0x42, 0xCC, 0xF5, 0xF2, 0xEF, 0xED, 0xE5, 0xCC, 0x55, 0x77, 0xAA, 0xCD, 0x88, 0x82, 0x77, 0x01, 0x74, 0x1B, 0x87, 0xFF, 0x0E, 0x44, 0xD3, 0x42, 0xCC, 0xF2, 0xEF, 0xEC, 0xE9, 0xE7, 0xE5, 0xD7, 0xCC, 0x55, 0xCB, 0x88, 0x81, 0x77, 0x02, 0x72, 0x6C, 0x1A, 0x87, 0xFF, 0x0E, 0x44, 0xD2, 0x42, 0xCC, 0xEE, 0xEB, 0xE9, 0xE7, 0xE5, 0xE3, 0xE0, 0xDD, 0x44, 0xCA, 0x88, 0x80, 0x77, 0x03, 0x71, 0x6A, 0x63, 0x18, 0x87, 0xFF, 0x15, 0x44, 0xD1, 0x00, 0x66, 0xEB, 0xE9, 0xE6, 0xE4, 0xE1, 0xE0, 0xDD, 0xDC, 0x44, 0xC9, 0x88, 0x77, 0x77, 0x70, 0x69, 0x62, 0x5C, 0x17, 0x87, 0xFF, 0x15, 0x44, 0x00, 0x66, 0xCC, 0xE8, 0xE6, 0xE3, 0xE1, 0xDF, 0xDD, 0xDB, 0xD9, 0x44, 0xC8, 0x88, 0x76, 0x6F, 0x68, 0x60, 0x5A, 0x55, 0x15, 0x80, 0xFF, 0x8D, 0x00, 0x0C, 0xDB, 0xD9, 0xD7, 0x44, 0xC7, 0x88, 0x6D, 0x66, 0x5F, 0x59, 0x54, 0x4F, 0x14, 0x80, 0xFF, 0x00, 0x00, 0x83, 0xCC, 0x00, 0x00, 0x84, 0xFF, 0x0D, 0x00, 0x99, 0xD7, 0xD4, 0x44, 0xC6, 0x88, 0x65, 0x5E, 0x58, 0x53, 0x4D, 0x49, 0x12, 0x80, 0xFF, 0x00, 0x00, 0x80, 0xCC, 0x06, 0x55, 0xCC, 0xCC, 0x00, 0xFF, 0xFF, 0x00, 0x81, 0xFF, 0x0D, 0x00, 0x99, 0xD5, 0xD2, 0x44, 0xC5, 0x88, 0x5D, 0x57, 0x51, 0x4C, 0x47, 0x42, 0x11, 0x80, 0xFF, 0x00, 0x00, 0x80, 0xCC, 0x02, 0x55, 0xCC, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x81, 0xFF, 0x0D, 0x00, 0x66, 0x22, 0xD0, 0x44, 0xC4, 0x88, 0x56, 0x51, 0x4C, 0x47, 0x42, 0x3D, 0x0E, 0x80, 0xFF, 0x00, 0x00, 0x82, 0xCC, 0x00, 0x00, 0x85, 0xFF, 0x0D, 0x00, 0x99, 0x6D, 0x22, 0x44, 0xC3, 0x88, 0x4F, 0x4B, 0x45, 0x41, 0x3C, 0x38, 0x0D, 0x80, 0xFF, 0x00, 0x00, 0x82, 0xCC, 0x00, 0x00, 0x85, 0xFF, 0x11, 0x00, 0x99, 0xC5, 0xAA, 0x88, 0xC3, 0x88, 0x49, 0x45, 0x40, 0x3B, 0x37, 0x33, 0x0A, 0x22, 0xFF, 0xFF, 0x00, 0x82, 0xCC, 0x00, 0x00, 0x85, 0xFF, 0x0D, 0x00, 0x66, 0x00, 0xC3, 0xC2, 0xC2, 0x88, 0x43, 0x3F, 0x3B, 0x36, 0x33, 0x2F, 0x08, 0x80, 0x22, 0x00, 0x00, 0x82, 0xCC, 0x81, 0x00, 0x82, 0xFF, 0x0D, 0x00, 0x99, 0x55, 0x00, 0x88, 0xC1, 0x88, 0x3E, 0x39, 0x35, 0x33, 0x33, 0x2C, 0x07, 0x80, 0x22, 0x00, 0x00, 0x84, 0xCC, 0x00, 0x00, 0x83, 0xFF, 0x01, 0x00, 0x99, 0x80, 0xC1, 0x08, 0xC0, 0x88, 0x38, 0x34, 0x33, 0x33, 0x2E, 0x22, 0x13, 0x80, 0x22, 0x04, 0x00, 0xCC, 0xCC, 0x55, 0x55, 0x80, 0xCC, 0x14, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x99, 0xC0, 0xC1, 0xBF, 0xBF, 0x88, 0x33, 0x33, 0x2F, 0x2E, 0x22, 0x13, 0x08, 0x80, 0x22, 0x00, 0x00, 0x81, 0xCC, 0x80, 0x55, 0x80, 0x00, 0x81, 0xFF, 0x01, 0x00, 0x99, 0x80, 0xBF, 0x07, 0xBE, 0x88, 0x33, 0x2F, 0x28, 0x11, 0x13, 0x08, 0x81, 0x22, 0x00, 0x00, 0x84, 0xCC, 0x00, 0x00, 0x83, 0xFF, 0x0B, 0x00, 0x99, 0xBE, 0xBE, 0xBD, 0xBD, 0x88, 0x2E, 0x22, 0x11, 0x13, 0x08, 0x81, 0x22, 0x00, 0xFF, 0x8D, 0x00, 0x09, 0x11, 0x22, 0x55, 0x88, 0xBC, 0x44, 0x18, 0x13, 0x11, 0x08, 0x81, 0x22, 0x80, 0xFF, 0x85, 0x22, 0x00, 0x00, 0x82, 0x22, 0x09, 0x00, 0x00, 0x22, 0x22, 0x1A, 0x11, 0x00, 0x22, 0x11, 0x08, 0x81, 0x22, 0x89, 0xFF, 0x04, 0x22, 0x00, 0x22, 0x22, 0xFF, 0x80, 0x22, 0x01, 0x00, 0x11, 0x80, 0x22, 0x01, 0x11, 0x08, 0x81, 0x22, 0x91, 0xFF, 0x80, 0x22, 0x80, 0x11, 0x82, 0x22, 0x82, 0xFF, 0x6C, 0x38, 0x6D, 0x6B, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x18, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0x2C, 0x11, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x86, 0x63, 0x2C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x89, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x97, 0x71, 0x34, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x88, 0x4C, 0x18, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x88, 0x4C, 0x23, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x88, 0x4C, 0x23, 0x00, 0x00, 0x00, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0xFF, 0x86, 0x4C, 0x4C, 0x4C, 0x9A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x88, 0x4C, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xFF, 0x4C, 0x18, 0x00, 0x18, 0x3C, 0x9A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x88, 0x4C, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C, 0x9A, 0xFF, 0xFF, 0xFF, 0xA0, 0x88, 0x4C, 0x23, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }; unsigned char VersResource[44] = {0x00, 0x01, 0x20, 0x00, 0x00, 0x00, 0x03, 0x30, 0x2E, 0x31, 0x21, 0x30, 0x2E, 0x31, 0x2C, 0x20, 0xA9, 0x20, 0x32, 0x30, 0x31, 0x31, 0x2D, 0x32, 0x30, 0x31, 0x38, 0x20, 0x4E, 0x61, 0x74, 0x61, 0x6C, 0x69, 0x61, 0x20, 0x50, 0x6F, 0x72, 0x74, 0x69, 0x6C, 0x6C, 0x6F}; unsigned char PictResource[9874] = { 0x26, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xAB, 0x00, 0x11, 0x02, 0xFF, 0x0C, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x01, 0x00, 0x0A, 0x80, 0x01, 0x80, 0x01, 0x7F, 0xFF, 0x7F, 0xFF, 0x00, 0x9A, 0x00, 0x00, 0x00, 0xFF, 0x82, 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x03, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xCE, 0x35, 0x68, 0x3C, 0xCE, 0x3A, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xAB, 0x00, 0x40, 0x00, 0x25, 0xA0, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB4, 0xC9, 0xEE, 0xC1, 0xE7, 0x9F, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xC1, 0xEF, 0x9E, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBF, 0xFF, 0x00, 0x28, 0xA1, 0xD6, 0x03, 0xD7, 0xDA, 0xD2, 0xB6, 0xFE, 0xBE, 0x03, 0xBD, 0xB2, 0xE9, 0xEC, 0xC1, 0xE7, 0x9F, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xC1, 0xEF, 0x9E, 0xFF, 0x00, 0xF4, 0xFE, 0xF8, 0x01, 0xF7, 0xF4, 0xBF, 0xFF, 0x00, 0x29, 0xA1, 0xD6, 0x0A, 0xD8, 0xCC, 0xD5, 0xB8, 0xBF, 0xAE, 0xBF, 0xBA, 0xAD, 0xE3, 0xE9, 0xC1, 0xE7, 0xA0, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xC0, 0xEF, 0x9E, 0xFF, 0x05, 0xF5, 0xF9, 0xE8, 0xF9, 0xF6, 0xF3, 0xBF, 0xFF, 0x00, 0x29, 0xA1, 0xD6, 0x0A, 0xD9, 0xCF, 0xB4, 0xBA, 0xC0, 0xAF, 0xC0, 0xB7, 0xCD, 0xF2, 0xE8, 0xC1, 0xE7, 0xA0, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xC0, 0xEF, 0x9F, 0xFF, 0x05, 0xF3, 0xF6, 0xFA, 0xE9, 0xFA, 0xF5, 0xBE, 0xFF, 0x00, 0x27, 0xA1, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBE, 0xC1, 0xB0, 0xC0, 0xB3, 0xD9, 0xED, 0xC0, 0xE7, 0xA0, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xC0, 0xEF, 0x9F, 0xFF, 0x05, 0xF4, 0xF8, 0xFB, 0xEA, 0xFA, 0xF4, 0xBE, 0xFF, 0x00, 0x29, 0xA1, 0xD6, 0x09, 0xDB, 0xD3, 0xB8, 0xBF, 0xB0, 0xB0, 0xBC, 0xAE, 0xE4, 0xEA, 0xC0, 0xE7, 0xA1, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xC0, 0xEF, 0x9F, 0xFF, 0x05, 0xF5, 0xF9, 0xEA, 0xEA, 0xF8, 0xF3, 0xBE, 0xFF, 0x00, 0x29, 0xA2, 0xD6, 0x0A, 0xD7, 0xDE, 0xB2, 0xBA, 0xBF, 0xAF, 0xC0, 0xB9, 0xCE, 0xF3, 0xE8, 0xC0, 0xE7, 0xA1, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xBF, 0xEF, 0xA0, 0xFF, 0x05, 0xF3, 0xF6, 0xF9, 0xE9, 0xFA, 0xF6, 0xBD, 0xFF, 0x00, 0x27, 0xA2, 0xD6, 0x03, 0xD8, 0xD0, 0xB5, 0xBD, 0xFE, 0xBE, 0x02, 0xB4, 0xC9, 0xEE, 0xBF, 0xE7, 0xA1, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xBF, 0xEF, 0xA0, 0xFF, 0x01, 0xF4, 0xF7, 0xFE, 0xF8, 0x00, 0xF4, 0xBD, 0xFF, 0x00, 0x25, 0xA2, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB2, 0xE9, 0xEC, 0xBF, 0xE7, 0xA1, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xBF, 0xEF, 0xA0, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBD, 0xFF, 0x00, 0x28, 0xA2, 0xD6, 0x09, 0xDB, 0xD4, 0xB9, 0xBF, 0xBE, 0xBE, 0xBA, 0xAD, 0xE3, 0xE9, 0xBF, 0xE7, 0xA2, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xBE, 0xEF, 0xA0, 0xFF, 0x05, 0xF6, 0xF9, 0xF8, 0xF8, 0xF6, 0xF3, 0xBD, 0xFF, 0x00, 0x29, 0xA3, 0xD6, 0x0A, 0xD7, 0xDE, 0xB3, 0xAA, 0xBF, 0xAD, 0xBE, 0xB8, 0xCE, 0xF3, 0xE8, 0xBF, 0xE7, 0xA2, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xBE, 0xEF, 0xA1, 0xFF, 0x05, 0xF4, 0xE6, 0xF9, 0xE7, 0xF8, 0xF5, 0xBC, 0xFF, 0x00, 0x27, 0xA3, 0xD6, 0x03, 0xD8, 0xD0, 0xB6, 0xBE, 0xFE, 0xBF, 0x02, 0xB5, 0xC9, 0xEE, 0xBE, 0xE7, 0xA2, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xBE, 0xEF, 0xA1, 0xFF, 0x01, 0xF5, 0xF8, 0xFE, 0xF9, 0x00, 0xF5, 0xBC, 0xFF, 0x00, 0x27, 0xA3, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBD, 0xBD, 0xBE, 0xAD, 0xB3, 0xE9, 0xEC, 0xBE, 0xE7, 0xA2, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xBE, 0xEF, 0xA1, 0xFF, 0x05, 0xF4, 0xF7, 0xF7, 0xF8, 0xE7, 0xF5, 0xBC, 0xFF, 0x00, 0x27, 0xA3, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBE, 0xBE, 0xBF, 0xBB, 0xAF, 0xE4, 0xEA, 0xBE, 0xE7, 0xA2, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xBD, 0xEF, 0xA1, 0xFF, 0x05, 0xF4, 0xF8, 0xF8, 0xF9, 0xF7, 0xF4, 0xBC, 0xFF, 0x00, 0x27, 0xA3, 0xD6, 0x09, 0xDB, 0xD3, 0xB8, 0xBE, 0xAE, 0xBF, 0xB9, 0xCF, 0xE1, 0xE9, 0xBE, 0xE7, 0xA3, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xBD, 0xEF, 0xA1, 0xFF, 0x04, 0xF5, 0xF8, 0xE8, 0xF9, 0xF6, 0xBB, 0xFF, 0x00, 0x29, 0xA4, 0xD6, 0x0A, 0xD7, 0xDE, 0xB2, 0xBA, 0xBE, 0xBF, 0xAE, 0xB7, 0xCC, 0xF1, 0xE8, 0xBE, 0xE7, 0xA3, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBD, 0xEF, 0xA2, 0xFF, 0x05, 0xF3, 0xF6, 0xF8, 0xF9, 0xE8, 0xF5, 0xBB, 0xFF, 0x00, 0x27, 0xA4, 0xD6, 0x09, 0xD8, 0xD0, 0xB5, 0xBD, 0xBE, 0xC0, 0xC0, 0xB6, 0xC9, 0xEE, 0xBD, 0xE7, 0xA3, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xBD, 0xEF, 0xA2, 0xFF, 0x05, 0xF4, 0xF7, 0xF8, 0xFA, 0xFA, 0xF6, 0xBB, 0xFF, 0x00, 0x27, 0xA4, 0xD6, 0x09, 0xD9, 0xD1, 0xB7, 0xBE, 0xBF, 0xAE, 0xAE, 0xB3, 0xE9, 0xEC, 0xBD, 0xE7, 0xA3, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xBD, 0xEF, 0xA2, 0xFF, 0x05, 0xF5, 0xF8, 0xF9, 0xE8, 0xE8, 0xF5, 0xBB, 0xFF, 0x00, 0x27, 0xA4, 0xD6, 0x03, 0xD9, 0xD1, 0xB7, 0xAD, 0xFE, 0xBF, 0x02, 0xB1, 0xE7, 0xEA, 0xBD, 0xE7, 0xA3, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCD, 0xC0, 0xFA, 0xBC, 0xEF, 0xA2, 0xFF, 0x01, 0xF5, 0xE7, 0xFE, 0xF9, 0x00, 0xF5, 0xBB, 0xFF, 0x00, 0x28, 0xA4, 0xD6, 0x09, 0xDA, 0xD2, 0xB8, 0xBE, 0xBE, 0xBD, 0xBA, 0xAD, 0xE3, 0xE9, 0xBD, 0xE7, 0xA4, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xCB, 0xCF, 0xF8, 0xBC, 0xEF, 0xA2, 0xFF, 0x05, 0xF6, 0xF8, 0xF8, 0xF7, 0xF6, 0xF3, 0xBB, 0xFF, 0x00, 0x29, 0xA5, 0xD6, 0x0A, 0xD7, 0xDD, 0xC4, 0xB9, 0xBD, 0xBE, 0xBE, 0xB9, 0xCE, 0xF3, 0xE8, 0xBD, 0xE7, 0xA4, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xC9, 0xDE, 0xF6, 0xBC, 0xEF, 0xA3, 0xFF, 0x05, 0xF3, 0xF6, 0xF7, 0xF8, 0xF8, 0xF6, 0xBA, 0xFF, 0x00, 0x27, 0xA5, 0xD6, 0x09, 0xD8, 0xCF, 0xB4, 0xBB, 0xBD, 0xBE, 0xAD, 0xB6, 0xCA, 0xEF, 0xBC, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBC, 0xEF, 0xA3, 0xFF, 0x05, 0xF4, 0xF7, 0xF7, 0xF8, 0xE7, 0xF5, 0xBA, 0xFF, 0x00, 0x27, 0xA5, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBD, 0xBD, 0xBE, 0xBE, 0xB4, 0xD9, 0xED, 0xBC, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xBC, 0xEF, 0xA3, 0xFF, 0x05, 0xF4, 0xF7, 0xF7, 0xF8, 0xF8, 0xF5, 0xBA, 0xFF, 0x00, 0x31, 0xA5, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB1, 0xE8, 0xEB, 0xEE, 0xE7, 0x04, 0xE8, 0xE9, 0xEB, 0xEA, 0xE9, 0xD4, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xEC, 0xEF, 0xFE, 0xF1, 0xD4, 0xEF, 0xA3, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBA, 0xFF, 0x00, 0x39, 0xA5, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB0, 0xE7, 0xEA, 0xF0, 0xE7, 0x07, 0xE8, 0xEB, 0xF1, 0xE3, 0xE8, 0xD1, 0xEF, 0xE8, 0xD5, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCD, 0xC0, 0xFA, 0xEE, 0xEF, 0x05, 0xF1, 0xF4, 0xF8, 0xFC, 0xD5, 0xF5, 0xD4, 0xEF, 0xA3, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBA, 0xFF, 0x00, 0x46, 0xA5, 0xD6, 0x02, 0xD9, 0xD1, 0xB7, 0xFE, 0xBE, 0x03, 0xBB, 0xAE, 0xE3, 0xE9, 0xF2, 0xE7, 0x09, 0xE8, 0xEB, 0xF1, 0xE5, 0xCC, 0xAD, 0xB1, 0xA9, 0xE3, 0xEA, 0xD5, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCB, 0xCF, 0xF8, 0xF0, 0xEF, 0x08, 0xF1, 0xF5, 0xFB, 0xDC, 0xCF, 0xC2, 0xBD, 0xFB, 0xF1, 0xD5, 0xEF, 0xA3, 0xFF, 0x00, 0xF5, 0xFE, 0xF8, 0x01, 0xF7, 0xF4, 0xEB, 0xFF, 0x02, 0xF3, 0xF4, 0xF2, 0xD3, 0xFF, 0x00, 0x4A, 0xA6, 0xD6, 0x0A, 0xD7, 0xDC, 0xD4, 0xB9, 0xAD, 0xBE, 0xBF, 0xA9, 0xD0, 0xF3, 0xE8, 0xF2, 0xE7, 0x09, 0xEB, 0xE0, 0xCA, 0xB0, 0xB8, 0xBD, 0xBF, 0xB4, 0xD9, 0xED, 0xD5, 0xE7, 0xA5, 0xDE, 0x02, 0xDF, 0xE5, 0xC9, 0xFE, 0xCE, 0x02, 0xC9, 0xDE, 0xF6, 0xF1, 0xEF, 0x09, 0xF1, 0xF7, 0xDB, 0xC1, 0xC6, 0xCB, 0xCD, 0xC5, 0xDB, 0xF3, 0xD5, 0xEF, 0xA3, 0xFF, 0x04, 0xF6, 0xE7, 0xF8, 0xF9, 0xE6, 0xEC, 0xFF, 0x04, 0xF4, 0xF7, 0xF9, 0xF9, 0xF5, 0xD3, 0xFF, 0x00, 0x4C, 0xA6, 0xD6, 0x09, 0xD8, 0xCE, 0xB3, 0xBB, 0xBE, 0xBE, 0xBF, 0xA7, 0xCD, 0xF0, 0xF1, 0xE7, 0x0A, 0xED, 0xC5, 0xB1, 0xBC, 0xB0, 0xB2, 0xB0, 0xB9, 0xCD, 0xF2, 0xE8, 0xD6, 0xE7, 0xA5, 0xDE, 0x02, 0xE1, 0xD6, 0xCB, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xF1, 0xEF, 0x03, 0xF3, 0xD9, 0xC3, 0xCC, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xD5, 0xEF, 0xA4, 0xFF, 0x05, 0xF3, 0xF7, 0xF8, 0xF8, 0xF9, 0xE5, 0xED, 0xFF, 0x05, 0xF3, 0xF8, 0xEA, 0xEC, 0xEA, 0xF7, 0xD3, 0xFF, 0x00, 0x4D, 0xA6, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFE, 0xBD, 0x03, 0xBE, 0xB6, 0xCB, 0xEF, 0xF1, 0xE7, 0x0A, 0xED, 0xD9, 0xB3, 0xC0, 0xB2, 0xB5, 0xB2, 0xBD, 0xAF, 0xE5, 0xEB, 0xD6, 0xE7, 0xA5, 0xDE, 0x02, 0xE3, 0xC7, 0xCD, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xF1, 0xEF, 0x02, 0xF3, 0xDB, 0xC5, 0xFD, 0xCE, 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xD6, 0xEF, 0xA4, 0xFF, 0x00, 0xF4, 0xFE, 0xF7, 0x01, 0xF8, 0xF5, 0xED, 0xFF, 0x06, 0xF4, 0xFA, 0xEC, 0xEF, 0xEC, 0xF9, 0xF3, 0xD4, 0xFF, 0x00, 0x4B, 0xA6, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB3, 0xD9, 0xED, 0xF1, 0xE7, 0x0B, 0xEA, 0xE4, 0xAE, 0xBC, 0xB1, 0xB4, 0xB2, 0xC0, 0xB6, 0xCC, 0xF1, 0xE8, 0xD7, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xF1, 0xEF, 0x03, 0xF1, 0xFB, 0xC1, 0xCC, 0xFD, 0xCE, 0x02, 0xC7, 0xDD, 0xF5, 0xD6, 0xEF, 0xA4, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xED, 0xFF, 0x06, 0xF3, 0xF8, 0xEB, 0xEE, 0xEC, 0xFA, 0xF5, 0xD4, 0xFF, 0x00, 0x4B, 0xA6, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB1, 0xE8, 0xEB, 0xF1, 0xE7, 0x0B, 0xE8, 0xF1, 0xCC, 0xB7, 0xC0, 0xB1, 0xB0, 0xBF, 0xBA, 0xAE, 0xE4, 0xEA, 0xD7, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xF0, 0xEF, 0x02, 0xF5, 0xDD, 0xC7, 0xFD, 0xCE, 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xD7, 0xEF, 0xA4, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xEC, 0xFF, 0x06, 0xF6, 0xFA, 0xEB, 0xEA, 0xF9, 0xF6, 0xF3, 0xD5, 0xFF, 0x00, 0x49, 0xA6, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB0, 0xE7, 0xEA, 0xF0, 0xE7, 0x03, 0xEB, 0xE5, 0xAF, 0xBB, 0xFE, 0xBF, 0x03, 0xBE, 0xB4, 0xD9, 0xED, 0xD7, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xEF, 0xEF, 0x03, 0xF1, 0xFB, 0xC1, 0xCC, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xD7, 0xEF, 0xA4, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xEC, 0xFF, 0x01, 0xF3, 0xF7, 0xFE, 0xF9, 0x01, 0xF8, 0xF5, 0xD5, 0xFF, 0x00, 0x48, 0xA6, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB0, 0xE7, 0xEA, 0xF0, 0xE7, 0x0B, 0xE8, 0xF3, 0xCE, 0xB8, 0xBD, 0xBD, 0xBE, 0xAD, 0xB8, 0xCD, 0xF2, 0xE8, 0xD8, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xEE, 0xEF, 0x02, 0xF7, 0xDF, 0xCA, 0xFD, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xD7, 0xEF, 0xA4, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xEB, 0xFF, 0x05, 0xF5, 0xF7, 0xF7, 0xF8, 0xE7, 0xF6, 0xD5, 0xFF, 0x00, 0x4B, 0xA6, 0xD6, 0x03, 0xD9, 0xD1, 0xB6, 0xBD, 0xFE, 0xBE, 0x02, 0xB0, 0xE7, 0xEA, 0xEF, 0xE7, 0x0A, 0xEE, 0xC9, 0xB4, 0xBE, 0xBF, 0xC0, 0xBF, 0xBB, 0xAF, 0xE5, 0xEB, 0xD8, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xEE, 0xEF, 0x02, 0xF3, 0xDB, 0xC5, 0xFD, 0xCE, 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xD8, 0xEF, 0xA4, 0xFF, 0x01, 0xF4, 0xF7, 0xFE, 0xF8, 0x00, 0xF4, 0xEB, 0xFF, 0x06, 0xF4, 0xF8, 0xF9, 0xFA, 0xF9, 0xF7, 0xF3, 0xD6, 0xFF, 0x00, 0x4D, 0xA6, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBD, 0xBF, 0xAE, 0xBF, 0xB0, 0xE7, 0xEA, 0xEF, 0xE7, 0x0B, 0xEB, 0xE5, 0xAF, 0xBC, 0xB0, 0xB1, 0xC0, 0xBE, 0xB6, 0xCC, 0xF1, 0xE8, 0xD9, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCD, 0xC0, 0xFA, 0xEE, 0xEF, 0x03, 0xF1, 0xFB, 0xC1, 0xCC, 0xFD, 0xCE, 0x02, 0xC6, 0xDC, 0xF4, 0xD8, 0xEF, 0xA4, 0xFF, 0x05, 0xF4, 0xF7, 0xF9, 0xE8, 0xF9, 0xF4, 0xEB, 0xFF, 0x06, 0xF3, 0xF8, 0xEA, 0xEB, 0xFA, 0xF8, 0xF5, 0xD6, 0xFF, 0x00, 0x4C, 0xA6, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBE, 0xC0, 0xAF, 0xBC, 0xAD, 0xE3, 0xE9, 0xEF, 0xE7, 0x0B, 0xE8, 0xF1, 0xCC, 0xB8, 0xB0, 0xB2, 0xB0, 0xBF, 0xBA, 0xAD, 0xE3, 0xE9, 0xD9, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCB, 0xCF, 0xF8, 0xED, 0xEF, 0x02, 0xF5, 0xDD, 0xC7, 0xFD, 0xCE, 0x02, 0xCB, 0xCF, 0xF8, 0xD8, 0xEF, 0xA4, 0xFF, 0x05, 0xF4, 0xF8, 0xFA, 0xE9, 0xF8, 0xF3, 0xEA, 0xFF, 0x06, 0xF7, 0xEA, 0xEC, 0xEA, 0xF9, 0xF6, 0xF3, 0xD7, 0xFF, 0x00, 0x4C, 0xA6, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBF, 0xAF, 0xC0, 0xB9, 0xCE, 0xF3, 0xE8, 0xEE, 0xE7, 0x0A, 0xEC, 0xE6, 0xB1, 0xBC, 0xC2, 0xB0, 0xC0, 0xBD, 0xB2, 0xE9, 0xEC, 0xD9, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xC9, 0xDE, 0xF6, 0xED, 0xEF, 0x03, 0xF1, 0xFB, 0xC1, 0xCC, 0xFE, 0xCE, 0x03, 0xCD, 0xC2, 0xFC, 0xF1, 0xD9, 0xEF, 0xA4, 0xFF, 0x04, 0xF4, 0xF9, 0xE9, 0xFA, 0xF6, 0xE9, 0xFF, 0x06, 0xF4, 0xF8, 0xFC, 0xEA, 0xFA, 0xF7, 0xF4, 0xD7, 0xFF, 0x00, 0x49, 0xA6, 0xD6, 0x08, 0xD9, 0xD1, 0xB6, 0xC0, 0xAF, 0xC0, 0xB6, 0xCB, 0xF0, 0xED, 0xE7, 0x0B, 0xE9, 0xE1, 0xCF, 0xB8, 0xC0, 0xAF, 0xC0, 0xBD, 0xB6, 0xCC, 0xF1, 0xE8, 0xDA, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xEC, 0xEF, 0x02, 0xF7, 0xDF, 0xCA, 0xFD, 0xCE, 0x02, 0xC7, 0xDD, 0xF5, 0xD9, 0xEF, 0xA4, 0xFF, 0x04, 0xF4, 0xFA, 0xE9, 0xFA, 0xF4, 0xE8, 0xFF, 0x05, 0xF5, 0xFA, 0xE9, 0xFA, 0xF7, 0xF5, 0xD7, 0xFF, 0x00, 0x4A, 0xA6, 0xD6, 0x08, 0xD9, 0xD1, 0xB6, 0xBF, 0xAE, 0xBF, 0xB6, 0xCB, 0xF0, 0xED, 0xE7, 0x0B, 0xE8, 0xEF, 0xCA, 0xB4, 0xBF, 0xAE, 0xBF, 0xBD, 0xBA, 0xAD, 0xE3, 0xE9, 0xDA, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xEC, 0xEF, 0x02, 0xF3, 0xDB, 0xC5, 0xFD, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xD9, 0xEF, 0xA4, 0xFF, 0x04, 0xF4, 0xF9, 0xE8, 0xF9, 0xF4, 0xE8, 0xFF, 0x06, 0xF4, 0xF9, 0xE8, 0xF9, 0xF7, 0xF6, 0xF3, 0xD8, 0xFF, 0x00, 0x4A, 0xA6, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFE, 0xBE, 0x02, 0xB6, 0xCB, 0xF0, 0xEC, 0xE7, 0x0A, 0xEB, 0xE5, 0xB0, 0xBC, 0xBF, 0xBB, 0xB6, 0xB2, 0xA7, 0xE1, 0xE9, 0xDA, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xEC, 0xEF, 0x09, 0xF1, 0xFB, 0xC1, 0xCC, 0xCE, 0xCC, 0xC7, 0xC3, 0xB9, 0xF7, 0xD9, 0xEF, 0xA4, 0xFF, 0x00, 0xF4, 0xFE, 0xF8, 0x00, 0xF4, 0xE8, 0xFF, 0x06, 0xF4, 0xF8, 0xF9, 0xF7, 0xF5, 0xF4, 0xF2, 0xD8, 0xFF, 0x00, 0x46, 0xA6, 0xD6, 0x02, 0xDB, 0xD3, 0xB8, 0xFE, 0xBD, 0x02, 0xB6, 0xCB, 0xF0, 0xEC, 0xE7, 0x0A, 0xE8, 0xF1, 0xCB, 0xA2, 0xB5, 0xAF, 0xCC, 0xE9, 0xE1, 0xEE, 0xE8, 0xDA, 0xE7, 0xA6, 0xDE, 0x02, 0xDF, 0xE5, 0xC9, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xEB, 0xEF, 0x08, 0xF5, 0xDB, 0xC3, 0xC5, 0xC1, 0xDD, 0xFD, 0xF7, 0xF3, 0xD9, 0xEF, 0xA4, 0xFF, 0x00, 0xF5, 0xFE, 0xF7, 0x00, 0xF4, 0xE7, 0xFF, 0x02, 0xE3, 0xF5, 0xF3, 0xD5, 0xFF, 0x00, 0x3E, 0xA7, 0xD6, 0x09, 0xD7, 0xDE, 0xB2, 0xBA, 0xBE, 0xBF, 0xBF, 0xB7, 0xCB, 0xF0, 0xEB, 0xE7, 0x08, 0xEB, 0xE2, 0xC9, 0xCB, 0xE5, 0xF1, 0xEC, 0xE9, 0xE8, 0xD9, 0xE7, 0xA6, 0xDE, 0x02, 0xE1, 0xD6, 0xCB, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xEB, 0xEF, 0x06, 0xF1, 0xF7, 0xD9, 0xDB, 0xFB, 0xF5, 0xF1, 0xD7, 0xEF, 0xA5, 0xFF, 0x05, 0xF3, 0xF6, 0xF8, 0xF9, 0xF9, 0xF5, 0xB8, 0xFF, 0x00, 0x38, 0xA7, 0xD6, 0x09, 0xD8, 0xD0, 0xB5, 0xBD, 0xBF, 0xB0, 0xB0, 0xB8, 0xCB, 0xF0, 0xEB, 0xE7, 0x05, 0xE8, 0xEC, 0xDC, 0xEF, 0xEB, 0xE8, 0xD6, 0xE7, 0xA6, 0xDE, 0x02, 0xE3, 0xC7, 0xCD, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xEA, 0xEF, 0x03, 0xF1, 0xF3, 0xF3, 0xF1, 0xD5, 0xEF, 0xA5, 0xFF, 0x05, 0xF4, 0xF7, 0xF9, 0xEA, 0xEA, 0xF6, 0xB8, 0xFF, 0x00, 0x2B, 0xA7, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBD, 0xC0, 0xB2, 0xB2, 0xB9, 0xCB, 0xF0, 0xEA, 0xE7, 0xFE, 0xE8, 0xD4, 0xE7, 0xA6, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xA5, 0xFF, 0x05, 0xF4, 0xF7, 0xFA, 0xEC, 0xEC, 0xF7, 0xB8, 0xFF, 0x00, 0x2F, 0xBD, 0xD6, 0x04, 0xD7, 0xD8, 0xD9, 0xD8, 0xD7, 0xF0, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBD, 0xC0, 0xB2, 0xB2, 0xB9, 0xCB, 0xF0, 0xBA, 0xE7, 0xA6, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xA5, 0xFF, 0x05, 0xF4, 0xF7, 0xFA, 0xEC, 0xEC, 0xF7, 0xB8, 0xFF, 0x00, 0x36, 0xBF, 0xD6, 0x07, 0xD7, 0xD8, 0xDA, 0xCC, 0xCD, 0xCC, 0xD9, 0xD7, 0xF1, 0xD6, 0x09, 0xD8, 0xD0, 0xB5, 0xBD, 0xC0, 0xB2, 0xB2, 0xB9, 0xCB, 0xF0, 0xBA, 0xE7, 0xBC, 0xDE, 0xFE, 0xDF, 0xEE, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xA5, 0xFF, 0x05, 0xF4, 0xF7, 0xFA, 0xEC, 0xEC, 0xF7, 0xB8, 0xFF, 0x00, 0x41, 0xC2, 0xD6, 0x0A, 0xD7, 0xD8, 0xD9, 0xDA, 0xCA, 0xCE, 0xD3, 0xB0, 0xD1, 0xCA, 0xD8, 0xF1, 0xD6, 0x09, 0xD8, 0xE1, 0xB5, 0xBD, 0xBF, 0xB0, 0xB0, 0xB8, 0xCB, 0xF0, 0xBA, 0xE7, 0xBD, 0xDE, 0x03, 0xDF, 0xE1, 0xD0, 0xE0, 0xEE, 0xDE, 0x02, 0xE3, 0xC7, 0xCD, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xBB, 0xFF, 0x00, 0xF1, 0xEC, 0xFF, 0x05, 0xF4, 0xF7, 0xF9, 0xEA, 0xEA, 0xF6, 0xB8, 0xFF, 0x00, 0x45, 0xC2, 0xD6, 0x0A, 0xD8, 0xC9, 0xCD, 0xD0, 0xD3, 0xD6, 0xB6, 0xB4, 0xD4, 0xCB, 0xD9, 0xF1, 0xD6, 0x09, 0xD8, 0xD0, 0xB5, 0xBD, 0xBE, 0xC0, 0xC0, 0xB8, 0xCB, 0xF0, 0xBA, 0xE7, 0xC0, 0xDE, 0x06, 0xDF, 0xE0, 0xE1, 0xE2, 0xD3, 0xD2, 0xE1, 0xEE, 0xDE, 0x02, 0xE3, 0xD8, 0xCD, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xBC, 0xFF, 0x01, 0xF4, 0xF3, 0xEC, 0xFF, 0x05, 0xF4, 0xF7, 0xF8, 0xFA, 0xFA, 0xF6, 0xB8, 0xFF, 0x00, 0x4A, 0xC2, 0xD6, 0x0B, 0xD8, 0xCA, 0xD1, 0xB2, 0xB4, 0xB6, 0xB8, 0xB8, 0xD6, 0xCE, 0xDA, 0xD7, 0xF2, 0xD6, 0x09, 0xD9, 0xCF, 0xB4, 0xBA, 0xBD, 0xBE, 0xAD, 0xB7, 0xCB, 0xF0, 0xBA, 0xE7, 0xC0, 0xDE, 0x07, 0xE0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD4, 0xE2, 0xDF, 0xEF, 0xDE, 0x02, 0xE1, 0xC5, 0xCB, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xBF, 0xFF, 0x04, 0xF2, 0xF3, 0xF4, 0xF5, 0xF5, 0xEC, 0xFF, 0x05, 0xF3, 0xF6, 0xF7, 0xF8, 0xE7, 0xF5, 0xB8, 0xFF, 0x00, 0x4B, 0xC2, 0xD6, 0x0B, 0xD7, 0xDA, 0xD0, 0xB4, 0xB6, 0xDC, 0xB8, 0xBA, 0xB6, 0xD3, 0xCC, 0xD8, 0xF2, 0xD6, 0x09, 0xD8, 0xCC, 0xD5, 0xB8, 0xBE, 0xBF, 0xBF, 0xB7, 0xCB, 0xF0, 0xBA, 0xE7, 0xC0, 0xDE, 0x08, 0xE0, 0xD2, 0xD3, 0xE5, 0xD4, 0xD5, 0xD3, 0xE1, 0xDF, 0xF0, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xBF, 0xFF, 0x05, 0xF3, 0xF4, 0xFF, 0xF5, 0xF6, 0xF4, 0xEC, 0xFF, 0x04, 0xF5, 0xF8, 0xF9, 0xF9, 0xF5, 0xB8, 0xFF, 0x00, 0x49, 0xC1, 0xD6, 0x0A, 0xD9, 0xCD, 0xD6, 0xB4, 0xDC, 0xB8, 0xBD, 0xBA, 0xB4, 0xCF, 0xD9, 0xF2, 0xD6, 0x09, 0xD7, 0xDA, 0xD2, 0xB6, 0xBF, 0xAE, 0xBF, 0xB6, 0xCB, 0xF0, 0xBA, 0xE7, 0xC0, 0xDE, 0x08, 0xDF, 0xE2, 0xD2, 0xE5, 0xD4, 0xD6, 0xD5, 0xD2, 0xE0, 0xEF, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xBE, 0xFF, 0x05, 0xF3, 0xFF, 0xF5, 0xF7, 0xF6, 0xF3, 0xED, 0xFF, 0x04, 0xF4, 0xF9, 0xE8, 0xF9, 0xF4, 0xB8, 0xFF, 0x00, 0x48, 0xC1, 0xD6, 0x0B, 0xD8, 0xCA, 0xD3, 0xB4, 0xBA, 0xBA, 0xBD, 0xBD, 0xB6, 0xD2, 0xDA, 0xD7, 0xF2, 0xD6, 0x08, 0xD9, 0xD1, 0xB6, 0xC0, 0xAF, 0xC0, 0xB6, 0xCB, 0xF0, 0xBA, 0xE7, 0xBF, 0xDE, 0x07, 0xE1, 0xD2, 0xD5, 0xD5, 0xD6, 0xD6, 0xD3, 0xE1, 0xEF, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xBE, 0xFF, 0x05, 0xF3, 0xF6, 0xF6, 0xF7, 0xF7, 0xF4, 0xED, 0xFF, 0x04, 0xF4, 0xFA, 0xE9, 0xFA, 0xF4, 0xB8, 0xFF, 0x00, 0x4A, 0xC1, 0xD6, 0x04, 0xD7, 0xDA, 0xD0, 0xB4, 0xBA, 0xFE, 0xBD, 0x03, 0xB8, 0xD5, 0xCC, 0xD8, 0xF2, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xC0, 0xAF, 0xC0, 0xB8, 0xCE, 0xF3, 0xE8, 0xBB, 0xE7, 0xBF, 0xDE, 0x02, 0xE0, 0xD2, 0xD5, 0xFE, 0xD6, 0x02, 0xD4, 0xE2, 0xDF, 0xF0, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xC9, 0xDE, 0xF6, 0xBA, 0xEF, 0xBE, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF7, 0x00, 0xF5, 0xED, 0xFF, 0x04, 0xF4, 0xFA, 0xE9, 0xFA, 0xF5, 0xB8, 0xFF, 0x00, 0x4B, 0xC0, 0xD6, 0x03, 0xD8, 0xCC, 0xD5, 0xB8, 0xFE, 0xBD, 0x04, 0xBA, 0xB4, 0xD0, 0xDA, 0xD7, 0xF3, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBF, 0xAE, 0xBF, 0xBA, 0xAD, 0xE3, 0xE9, 0xBB, 0xE7, 0xBF, 0xDE, 0x02, 0xDF, 0xE2, 0xD4, 0xFE, 0xD6, 0x02, 0xD5, 0xD2, 0xE0, 0xF0, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCB, 0xCF, 0xF8, 0xBA, 0xEF, 0xBD, 0xFF, 0x00, 0xF5, 0xFE, 0xF7, 0x01, 0xF6, 0xF3, 0xEE, 0xFF, 0x05, 0xF4, 0xF9, 0xE8, 0xF9, 0xF6, 0xF3, 0xB9, 0xFF, 0x00, 0x47, 0xC0, 0xD6, 0x03, 0xD7, 0xDA, 0xD2, 0xB6, 0xFD, 0xBD, 0x03, 0xB6, 0xD3, 0xCA, 0xD8, 0xF3, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFE, 0xBE, 0x03, 0xBD, 0xB0, 0xE7, 0xEA, 0xBB, 0xE7, 0xBE, 0xDE, 0x01, 0xE1, 0xD3, 0xFD, 0xD6, 0x01, 0xD3, 0xE1, 0xF0, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCD, 0xC0, 0xFA, 0xBA, 0xEF, 0xBD, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xEE, 0xFF, 0x00, 0xF4, 0xFE, 0xF8, 0x01, 0xF7, 0xF4, 0xB9, 0xFF, 0x00, 0x47, 0xBF, 0xD6, 0x03, 0xD9, 0xCF, 0xB4, 0xBA, 0xFE, 0xBD, 0x03, 0xB8, 0xD6, 0xCD, 0xD9, 0xF3, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB0, 0xE7, 0xEA, 0xBB, 0xE7, 0xBE, 0xDE, 0x02, 0xE0, 0xD2, 0xD5, 0xFE, 0xD6, 0x02, 0xD4, 0xE2, 0xDF, 0xF1, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xBA, 0xEF, 0xBD, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF7, 0x00, 0xF5, 0xEE, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xB9, 0xFF, 0x00, 0x4A, 0xBF, 0xD6, 0x0B, 0xD8, 0xCC, 0xD3, 0xB6, 0xBA, 0xBD, 0xBD, 0xBA, 0xB4, 0xD0, 0xDA, 0xD7, 0xF4, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFE, 0xBE, 0x03, 0xBD, 0xB0, 0xE7, 0xEA, 0xBB, 0xE7, 0xBE, 0xDE, 0x08, 0xDF, 0xE1, 0xD3, 0xD5, 0xD6, 0xD6, 0xD5, 0xD2, 0xE0, 0xF1, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xBA, 0xEF, 0xBC, 0xFF, 0x05, 0xF4, 0xF6, 0xF7, 0xF7, 0xF6, 0xF3, 0xEF, 0xFF, 0x00, 0xF4, 0xFE, 0xF8, 0x01, 0xF7, 0xF4, 0xB9, 0xFF, 0x00, 0x49, 0xBF, 0xD6, 0x04, 0xD7, 0xDA, 0xCE, 0xD6, 0xB8, 0xFE, 0xBD, 0x03, 0xB8, 0xD5, 0xCC, 0xD8, 0xF4, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBF, 0xAE, 0xBF, 0xBD, 0xB0, 0xE7, 0xEA, 0xBB, 0xE7, 0xBD, 0xDE, 0x02, 0xDF, 0xE2, 0xD4, 0xFE, 0xD6, 0x02, 0xD4, 0xE2, 0xDF, 0xF2, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xBA, 0xEF, 0xBB, 0xFF, 0x00, 0xF5, 0xFE, 0xF7, 0x00, 0xF5, 0xEF, 0xFF, 0x05, 0xF4, 0xF9, 0xE8, 0xF9, 0xF7, 0xF4, 0xB9, 0xFF, 0x00, 0x4A, 0xBE, 0xD6, 0x0B, 0xD8, 0xCA, 0xD3, 0xB6, 0xBD, 0xBD, 0xBA, 0xB8, 0xB2, 0xD0, 0xDA, 0xD7, 0xF5, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xC0, 0xAF, 0xC0, 0xBD, 0xB1, 0xE8, 0xEB, 0xBB, 0xE7, 0xBC, 0xDE, 0x07, 0xE1, 0xD3, 0xD6, 0xD6, 0xD5, 0xD4, 0xD1, 0xE0, 0xF2, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xBB, 0xEF, 0xBB, 0xFF, 0x05, 0xF4, 0xF7, 0xF7, 0xF6, 0xF5, 0xF2, 0xF0, 0xFF, 0x05, 0xF4, 0xFA, 0xE9, 0xFA, 0xF7, 0xF4, 0xB9, 0xFF, 0x00, 0x4A, 0xBE, 0xD6, 0x0B, 0xD7, 0xDA, 0xD0, 0xB4, 0xBA, 0xBD, 0xBA, 0xDF, 0xB4, 0xD3, 0xCA, 0xD8, 0xF5, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xC0, 0xAF, 0xC0, 0xBD, 0xB3, 0xD9, 0xED, 0xBB, 0xE7, 0xBC, 0xDE, 0x07, 0xE0, 0xD2, 0xD5, 0xD6, 0xD5, 0xE6, 0xD2, 0xE1, 0xF2, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xBB, 0xEF, 0xBB, 0xFF, 0x05, 0xF3, 0xF6, 0xF7, 0xF6, 0xFF, 0xF3, 0xF0, 0xFF, 0x05, 0xF4, 0xFA, 0xE9, 0xFA, 0xF7, 0xF4, 0xB9, 0xFF, 0x00, 0x49, 0xBD, 0xD6, 0x0A, 0xD9, 0xCD, 0xD6, 0xB6, 0xB8, 0xB4, 0xB4, 0xB0, 0xD1, 0xCA, 0xD8, 0xF5, 0xD6, 0x09, 0xD8, 0xD0, 0xB5, 0xC0, 0xAF, 0xC0, 0xBD, 0xB5, 0xCA, 0xEF, 0xBB, 0xE7, 0xBC, 0xDE, 0x07, 0xDF, 0xE2, 0xD3, 0xD4, 0xD2, 0xD2, 0xD0, 0xE0, 0xF2, 0xDE, 0x02, 0xE3, 0xC7, 0xCD, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBB, 0xEF, 0xBA, 0xFF, 0x04, 0xF4, 0xF5, 0xF3, 0xF3, 0xF1, 0xF0, 0xFF, 0x05, 0xF4, 0xFA, 0xE9, 0xFA, 0xF7, 0xF4, 0xB9, 0xFF, 0x00, 0x44, 0xBD, 0xD6, 0x0A, 0xD8, 0xCA, 0xD1, 0xB0, 0xD6, 0xD3, 0xD2, 0xCF, 0xCC, 0xD9, 0xD7, 0xF5, 0xD6, 0x09, 0xD7, 0xDE, 0xB2, 0xBD, 0xAF, 0xC0, 0xBD, 0xB6, 0xCB, 0xF0, 0xBB, 0xE7, 0xBB, 0xDE, 0x06, 0xE0, 0xD0, 0xE2, 0xE1, 0xE1, 0xE0, 0xDF, 0xF2, 0xDE, 0x02, 0xE1, 0xD6, 0xCB, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBB, 0xEF, 0xBA, 0xFF, 0x00, 0xF1, 0xEC, 0xFF, 0x05, 0xF3, 0xF9, 0xE9, 0xFA, 0xF7, 0xF4, 0xB9, 0xFF, 0x00, 0x38, 0xBD, 0xD6, 0x09, 0xD7, 0xDA, 0xCE, 0xCF, 0xCE, 0xCA, 0xDA, 0xD9, 0xD8, 0xD7, 0xF3, 0xD6, 0x09, 0xDB, 0xD3, 0xBA, 0xAE, 0xBF, 0xBD, 0xB8, 0xCE, 0xF3, 0xE8, 0xBC, 0xE7, 0xBB, 0xDE, 0xFE, 0xDF, 0xEE, 0xDE, 0x02, 0xDF, 0xE5, 0xC9, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xBB, 0xEF, 0xA3, 0xFF, 0x04, 0xF7, 0xE8, 0xF9, 0xF7, 0xF5, 0xB9, 0xFF, 0x00, 0x30, 0xBC, 0xD6, 0x05, 0xD8, 0xC9, 0xCA, 0xDA, 0xD8, 0xD7, 0xF0, 0xD6, 0x09, 0xD9, 0xD1, 0xB7, 0xBE, 0xBE, 0xBD, 0xBA, 0xAD, 0xE3, 0xE9, 0xBC, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xBB, 0xEF, 0xA3, 0xFF, 0x05, 0xF5, 0xF8, 0xF8, 0xF7, 0xF6, 0xF3, 0xBA, 0xFF, 0x00, 0x2B, 0xBC, 0xD6, 0x03, 0xD7, 0xD8, 0xD8, 0xD7, 0xEE, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB0, 0xE7, 0xEA, 0xBC, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xBB, 0xEF, 0xA3, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBA, 0xFF, 0x00, 0x25, 0xA5, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB2, 0xE9, 0xEC, 0xBC, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xBC, 0xEF, 0xA3, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBA, 0xFF, 0x00, 0x25, 0xA5, 0xD6, 0x02, 0xD8, 0xD0, 0xB5, 0xFD, 0xBD, 0x02, 0xB4, 0xC9, 0xEE, 0xBC, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xBC, 0xEF, 0xA3, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBA, 0xFF, 0x00, 0x29, 0xA5, 0xD6, 0x03, 0xD7, 0xDE, 0xB2, 0xBA, 0xFE, 0xBD, 0x03, 0xB6, 0xCC, 0xF1, 0xE8, 0xBD, 0xE7, 0xA4, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBC, 0xEF, 0xA3, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF7, 0x00, 0xF4, 0xBA, 0xFF, 0x00, 0x2E, 0xA4, 0xD6, 0x09, 0xDB, 0xD3, 0xB9, 0xBE, 0xBE, 0xBD, 0xB8, 0xCF, 0xE1, 0xE9, 0xEC, 0xE7, 0x03, 0xE8, 0xE9, 0xE9, 0xE8, 0xD6, 0xE7, 0xA4, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xBC, 0xEF, 0xA2, 0xFF, 0x04, 0xF6, 0xF8, 0xF8, 0xF7, 0xF5, 0xBA, 0xFF, 0x00, 0x39, 0xA4, 0xD6, 0x09, 0xD9, 0xD1, 0xB7, 0xAD, 0xBF, 0xBF, 0xBC, 0xAF, 0xE4, 0xEA, 0xEE, 0xE7, 0x06, 0xE8, 0xEB, 0xF1, 0xE3, 0xE1, 0xEE, 0xE8, 0xD7, 0xE7, 0xA3, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xEC, 0xEF, 0x04, 0xF1, 0xF5, 0xF8, 0xF6, 0xF2, 0xD6, 0xEF, 0xA2, 0xFF, 0x05, 0xF5, 0xE7, 0xF9, 0xF9, 0xF8, 0xF4, 0xBB, 0xFF, 0x00, 0x44, 0xA4, 0xD6, 0x09, 0xD9, 0xD1, 0xB7, 0xBE, 0xBF, 0xAE, 0xAE, 0xB3, 0xE9, 0xEC, 0xF1, 0xE7, 0x09, 0xE8, 0xEA, 0xED, 0xF2, 0xE5, 0xCC, 0xAD, 0xA7, 0xE1, 0xE9, 0xD7, 0xE7, 0xA3, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xF0, 0xEF, 0x07, 0xF1, 0xF3, 0xF7, 0xFB, 0xDD, 0xBE, 0xC9, 0xF6, 0xD6, 0xEF, 0xA2, 0xFF, 0x05, 0xF5, 0xF8, 0xF9, 0xE8, 0xE8, 0xF5, 0xE9, 0xFF, 0x01, 0xF3, 0xF2, 0xD5, 0xFF, 0x00, 0x4E, 0xA4, 0xD6, 0x09, 0xD8, 0xD0, 0xB5, 0xBD, 0xBE, 0xBF, 0xBF, 0xB5, 0xC9, 0xEE, 0xF3, 0xE7, 0x0B, 0xE8, 0xEB, 0xF1, 0xE4, 0xD9, 0xCD, 0xAF, 0xB6, 0xBA, 0xB0, 0xE7, 0xEA, 0xE5, 0xE7, 0xFE, 0xE8, 0xF6, 0xE7, 0xA3, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xF2, 0xEF, 0x09, 0xF1, 0xF5, 0xFB, 0xDB, 0xDF, 0xC1, 0xC7, 0xCB, 0xC0, 0xFA, 0xD6, 0xEF, 0xA2, 0xFF, 0x05, 0xF4, 0xF7, 0xF8, 0xF9, 0xF9, 0xF5, 0xEB, 0xFF, 0x03, 0xF3, 0xF5, 0xF6, 0xF4, 0xD5, 0xFF, 0x00, 0x65, 0xA4, 0xD6, 0x03, 0xD7, 0xDE, 0xB2, 0xBA, 0xFE, 0xBD, 0x03, 0xB8, 0xCE, 0xF3, 0xE8, 0xF7, 0xE7, 0x0E, 0xE8, 0xEA, 0xED, 0xF2, 0xE5, 0xCC, 0xAE, 0xB4, 0xB8, 0xBB, 0xBD, 0xBD, 0xB0, 0xE7, 0xEA, 0xE6, 0xE7, 0x05, 0xE8, 0xEE, 0xDE, 0xF1, 0xEB, 0xE8, 0xF8, 0xE7, 0xA3, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xF5, 0xEF, 0x0C, 0xF1, 0xF3, 0xF7, 0xFB, 0xDD, 0xC1, 0xC5, 0xCA, 0xCC, 0xCE, 0xCE, 0xC1, 0xFB, 0xE4, 0xEF, 0x03, 0xF3, 0xF5, 0xF5, 0xF1, 0xF7, 0xEF, 0xA2, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF7, 0x00, 0xF5, 0xEE, 0xFF, 0x02, 0xF3, 0xF5, 0xF6, 0xFE, 0xF7, 0x00, 0xF4, 0xD5, 0xFF, 0x00, 0x72, 0xA3, 0xD6, 0x02, 0xDB, 0xD3, 0xB8, 0xFE, 0xBE, 0x03, 0xBA, 0xAD, 0xE3, 0xE9, 0xF9, 0xE7, 0x10, 0xE8, 0xEB, 0xF1, 0xE4, 0xD9, 0xCD, 0xAF, 0xB6, 0xBB, 0xC0, 0xB0, 0xC1, 0xBF, 0xBE, 0xB2, 0xE9, 0xEC, 0xE7, 0xE7, 0x07, 0xE8, 0xEE, 0xE7, 0xA8, 0xCC, 0xE4, 0xEF, 0xE9, 0xF9, 0xE7, 0xA3, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xF7, 0xEF, 0x07, 0xF1, 0xF5, 0xFB, 0xDB, 0xDF, 0xC1, 0xC7, 0xCC, 0xFC, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xE6, 0xEF, 0x06, 0xF3, 0xFB, 0xBB, 0xDD, 0xFB, 0xF5, 0xF1, 0xF9, 0xEF, 0xA1, 0xFF, 0x00, 0xF5, 0xFE, 0xF8, 0x01, 0xF6, 0xF3, 0xF1, 0xFF, 0x08, 0xF3, 0xF5, 0xF7, 0xFA, 0xEA, 0xFB, 0xF9, 0xF8, 0xF4, 0xE2, 0xFF, 0x00, 0xF2, 0xF5, 0xFF, 0x00, 0x80, 0xA3, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBF, 0xAF, 0xC0, 0xBE, 0xB2, 0xE9, 0xEC, 0xFC, 0xE7, 0x13, 0xE8, 0xEB, 0xEE, 0xF3, 0xE5, 0xCC, 0xAE, 0xB4, 0xB8, 0xBB, 0xBD, 0xBF, 0xB1, 0xB3, 0xB3, 0xB0, 0xBF, 0xB4, 0xC9, 0xEE, 0xE8, 0xE7, 0x0A, 0xE8, 0xEE, 0xE7, 0xAF, 0xB6, 0xB6, 0xAE, 0xD9, 0xF2, 0xEB, 0xE8, 0xFB, 0xE7, 0xA2, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xFB, 0xEF, 0x08, 0xF1, 0xF3, 0xF7, 0xFB, 0xDD, 0xC1, 0xC5, 0xCA, 0xCC, 0xFA, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xE7, 0xEF, 0x08, 0xF3, 0xFB, 0xC1, 0xC7, 0xC7, 0xC1, 0xDB, 0xF7, 0xF1, 0xFA, 0xEF, 0xA1, 0xFF, 0x05, 0xF4, 0xF9, 0xE9, 0xFA, 0xF8, 0xF4, 0xF4, 0xFF, 0x0B, 0xF3, 0xF5, 0xF6, 0xF7, 0xF7, 0xF9, 0xEB, 0xED, 0xED, 0xEA, 0xF9, 0xF4, 0xE3, 0xFF, 0x03, 0xF4, 0xF5, 0xF5, 0xF3, 0xF7, 0xFF, 0x00, 0x88, 0xA3, 0xD6, 0x22, 0xD9, 0xD1, 0xB6, 0xBF, 0xB0, 0xB0, 0xBF, 0xB4, 0xC9, 0xEE, 0xE7, 0xE7, 0xE8, 0xE9, 0xEC, 0xF1, 0xE5, 0xC9, 0xCE, 0xB0, 0xB8, 0xBC, 0xC0, 0xAE, 0xBF, 0xBD, 0xC0, 0xB2, 0xB5, 0xB5, 0xB2, 0xC0, 0xB6, 0xCB, 0xF0, 0xE9, 0xE7, 0x0B, 0xE8, 0xEE, 0xE7, 0xAF, 0xB8, 0xBE, 0xBE, 0xBA, 0xB2, 0xCA, 0xDF, 0xEA, 0xFB, 0xE7, 0xA2, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xFD, 0xEF, 0x07, 0xF1, 0xF5, 0xFB, 0xDB, 0xDF, 0xC1, 0xC7, 0xCC, 0xF7, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xE8, 0xEF, 0x0A, 0xF2, 0xFA, 0xC0, 0xC9, 0xCE, 0xCE, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xFB, 0xEF, 0xA1, 0xFF, 0x05, 0xF4, 0xF9, 0xEA, 0xEA, 0xF9, 0xF4, 0xF6, 0xFF, 0x0D, 0xF4, 0xF7, 0xF8, 0xFA, 0xE8, 0xF9, 0xF7, 0xFA, 0xEC, 0xEF, 0xEF, 0xEC, 0xFA, 0xF4, 0xE4, 0xFF, 0x05, 0xF4, 0xF6, 0xF8, 0xF8, 0xF7, 0xF4, 0xF8, 0xFF, 0x00, 0x8F, 0xA3, 0xD6, 0x23, 0xD8, 0xCE, 0xB3, 0xBB, 0xC1, 0xB1, 0xC1, 0xB9, 0xCE, 0xF3, 0xE9, 0xEB, 0xEF, 0xE1, 0xE6, 0xCC, 0xAF, 0xB4, 0xB9, 0xBD, 0xB0, 0xB0, 0xC2, 0xB0, 0xC0, 0xBD, 0xBF, 0xB0, 0xB3, 0xB4, 0xB2, 0xC0, 0xB8, 0xCE, 0xF3, 0xE8, 0xEB, 0xE7, 0x0C, 0xE8, 0xEE, 0xE7, 0xAF, 0xB8, 0xBE, 0xBF, 0xAE, 0xBE, 0xB8, 0xAC, 0xD1, 0xEA, 0xFB, 0xE7, 0xA2, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x0C, 0xCA, 0xDF, 0xF7, 0xEF, 0xF1, 0xF3, 0xF7, 0xFB, 0xDD, 0xC1, 0xC5, 0xCA, 0xCC, 0xF5, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xE9, 0xEF, 0x03, 0xF3, 0xFA, 0xD1, 0xC8, 0xFD, 0xCE, 0x03, 0xCA, 0xBF, 0xD5, 0xF1, 0xFB, 0xEF, 0xA1, 0xFF, 0x05, 0xF3, 0xF7, 0xFB, 0xEB, 0xFB, 0xF6, 0xF9, 0xFF, 0x10, 0xF3, 0xF4, 0xF6, 0xF9, 0xEA, 0xEA, 0xFC, 0xEA, 0xFA, 0xF7, 0xF9, 0xEA, 0xED, 0xEE, 0xEC, 0xFA, 0xF5, 0xE5, 0xFF, 0x07, 0xF4, 0xF6, 0xF8, 0xF9, 0xE8, 0xF8, 0xF5, 0xF2, 0xF9, 0xFF, 0x00, 0x96, 0xA3, 0xD6, 0x23, 0xD7, 0xDC, 0xD4, 0xB8, 0xC0, 0xB1, 0xB1, 0xBC, 0xAF, 0xE8, 0xF4, 0xE5, 0xCA, 0xD0, 0xB2, 0xB9, 0xBC, 0xBE, 0xBF, 0xB0, 0xB2, 0xC3, 0xB2, 0xB0, 0xBF, 0xBD, 0xBB, 0xBC, 0xBE, 0xB1, 0xB0, 0xBF, 0xBA, 0xAD, 0xE3, 0xE9, 0xEC, 0xE7, 0x0D, 0xE8, 0xEE, 0xE7, 0xAF, 0xB8, 0xBD, 0xBE, 0xAE, 0xBF, 0xBB, 0xB4, 0xCB, 0xF2, 0xE9, 0xFB, 0xE7, 0xA2, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x09, 0xCC, 0xC1, 0xFD, 0xF7, 0xFB, 0xDB, 0xDF, 0xC1, 0xC7, 0xCC, 0xF8, 0xCE, 0xFE, 0xCC, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xEA, 0xEF, 0x04, 0xF3, 0xFB, 0xC0, 0xC8, 0xCD, 0xFE, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xFB, 0xEF, 0xA0, 0xFF, 0x05, 0xF5, 0xFA, 0xEB, 0xEB, 0xF8, 0xF3, 0xFC, 0xFF, 0x00, 0xF5, 0xFE, 0xF8, 0x0F, 0xF9, 0xEA, 0xEC, 0xFD, 0xEC, 0xEA, 0xF9, 0xF7, 0xF7, 0xF8, 0xFA, 0xEB, 0xEA, 0xF9, 0xF6, 0xF3, 0xE7, 0xFF, 0x07, 0xF4, 0xF6, 0xF7, 0xF8, 0xE8, 0xF9, 0xF7, 0xF4, 0xF8, 0xFF, 0x00, 0x96, 0xA2, 0xD6, 0x22, 0xD9, 0xD1, 0xB7, 0xC1, 0xB2, 0xB1, 0xBF, 0xB6, 0xD3, 0xCF, 0xAF, 0xB4, 0xB9, 0xAB, 0xB0, 0xAF, 0xBF, 0xC0, 0xB0, 0xC2, 0xB0, 0xB0, 0xBD, 0xB9, 0xB6, 0xB4, 0xDA, 0xB9, 0xBF, 0xBF, 0xBE, 0xBD, 0xB0, 0xE7, 0xEA, 0xED, 0xE7, 0x0D, 0xE8, 0xEE, 0xE7, 0xAF, 0xB8, 0xBD, 0xBD, 0xBE, 0xBE, 0xBB, 0xB4, 0xCD, 0xE1, 0xEB, 0xFA, 0xE7, 0xA1, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x06, 0xC7, 0xE3, 0xDF, 0xC1, 0xC5, 0xCA, 0xCC, 0xF9, 0xCE, 0x05, 0xCC, 0xCA, 0xC8, 0xC6, 0xEA, 0xCA, 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xEB, 0xEF, 0x03, 0xF3, 0xFB, 0xC1, 0xC9, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xFA, 0xEF, 0xA0, 0xFF, 0x1E, 0xF5, 0xFB, 0xEC, 0xEB, 0xF9, 0xF5, 0xFF, 0xFF, 0xF3, 0xF4, 0xF6, 0xE7, 0xEA, 0xE9, 0xF9, 0xFA, 0xEA, 0xFC, 0xEA, 0xEA, 0xF9, 0xF6, 0xF4, 0xF3, 0xFF, 0xF6, 0xF9, 0xF9, 0xF8, 0xF7, 0xF4, 0xE8, 0xFF, 0x07, 0xF4, 0xF6, 0xF7, 0xF7, 0xF8, 0xF8, 0xF7, 0xF4, 0xF7, 0xFF, 0x00, 0x96, 0xA2, 0xD6, 0x1B, 0xD9, 0xCF, 0xB5, 0xAC, 0xB1, 0xC1, 0xC0, 0xBB, 0xB9, 0xB8, 0xBB, 0xBE, 0xBF, 0xBF, 0xC1, 0xAF, 0xBF, 0xBF, 0xAE, 0xC0, 0xBC, 0xBA, 0xB4, 0xD4, 0xD1, 0xD0, 0xD5, 0xB6, 0xFD, 0xBD, 0x02, 0xB2, 0xE9, 0xEC, 0xEE, 0xE7, 0x0E, 0xE9, 0xEF, 0xE8, 0xAF, 0xB9, 0xBE, 0xBE, 0xBD, 0xBD, 0xBA, 0xB4, 0xCD, 0xE2, 0xEC, 0xE8, 0xFA, 0xE7, 0xA1, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, 0xCA, 0xCA, 0xCC, 0xF8, 0xCE, 0x07, 0xCC, 0xCA, 0xC6, 0xE6, 0xE4, 0xE2, 0xE6, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xEE, 0xEF, 0x04, 0xF1, 0xF5, 0xFD, 0xC1, 0xC9, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF9, 0xEF, 0xA0, 0xFF, 0x14, 0xF4, 0xE8, 0xEB, 0xFB, 0xFA, 0xF7, 0xF6, 0xF5, 0xF7, 0xF8, 0xF9, 0xF9, 0xFB, 0xE9, 0xF9, 0xF9, 0xE8, 0xFA, 0xF8, 0xF7, 0xF4, 0xFD, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xE9, 0xFF, 0x07, 0xF4, 0xF7, 0xF8, 0xF8, 0xF7, 0xF7, 0xF6, 0xF4, 0xF6, 0xFF, 0x00, 0x91, 0xA2, 0xD6, 0x1B, 0xD8, 0xCC, 0xD6, 0xBA, 0xC0, 0xAE, 0xBF, 0xAD, 0xBE, 0xBD, 0xBF, 0xAF, 0xC1, 0xBF, 0xBF, 0xBE, 0xBE, 0xBB, 0xB9, 0xB7, 0xB3, 0xD4, 0xCE, 0xDC, 0xD9, 0xDA, 0xD1, 0xB5, 0xFE, 0xBE, 0x03, 0xBD, 0xB4, 0xC9, 0xEE, 0xEF, 0xE7, 0x0E, 0xEA, 0xF1, 0xD9, 0xB0, 0xB8, 0xBF, 0xAE, 0xBF, 0xBD, 0xBA, 0xB4, 0xCD, 0xE2, 0xEC, 0xE8, 0xF9, 0xE7, 0xA1, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xF4, 0xCE, 0x0A, 0xCC, 0xCA, 0xC8, 0xC6, 0xE6, 0xE2, 0xE0, 0xDE, 0xDE, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xEF, 0xEF, 0x04, 0xF1, 0xF7, 0xDB, 0xC3, 0xC9, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF8, 0xEF, 0x9F, 0xFF, 0x11, 0xF7, 0xFA, 0xE8, 0xF9, 0xE7, 0xF8, 0xF7, 0xF9, 0xE9, 0xFB, 0xF9, 0xF9, 0xF8, 0xF8, 0xF7, 0xF6, 0xF5, 0xF3, 0xFB, 0xFF, 0x00, 0xF4, 0xFE, 0xF8, 0x01, 0xF7, 0xF4, 0xEA, 0xFF, 0x07, 0xF4, 0xF6, 0xF9, 0xE8, 0xF9, 0xF7, 0xF6, 0xF4, 0xF5, 0xFF, 0x00, 0x91, 0xA2, 0xD6, 0x23, 0xD7, 0xDA, 0xD2, 0xB6, 0xBE, 0xBF, 0xC1, 0xC0, 0xBF, 0xBD, 0xBF, 0xAF, 0xB0, 0xAE, 0xBE, 0xBA, 0xB8, 0xB3, 0xD4, 0xD1, 0xCE, 0xDC, 0xD8, 0xD7, 0xD6, 0xD7, 0xDE, 0xB2, 0xBC, 0xAE, 0xBF, 0xBD, 0xB8, 0xCE, 0xF3, 0xE8, 0xF2, 0xE7, 0x0F, 0xE8, 0xEB, 0xF3, 0xCA, 0xB2, 0xB9, 0xBE, 0xC0, 0xAF, 0xBF, 0xBA, 0xB4, 0xCD, 0xE2, 0xEC, 0xE8, 0xF8, 0xE7, 0xA0, 0xDE, 0x01, 0xE4, 0xC8, 0xF6, 0xCE, 0x06, 0xCC, 0xCA, 0xC6, 0xE6, 0xE4, 0xE2, 0xE0, 0xFD, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xC9, 0xDE, 0xF6, 0xF0, 0xEF, 0x04, 0xF1, 0xF7, 0xDD, 0xC5, 0xCC, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF7, 0xEF, 0x9F, 0xFF, 0x0E, 0xF4, 0xF8, 0xF9, 0xFB, 0xFA, 0xF9, 0xF7, 0xF9, 0xE9, 0xEA, 0xE8, 0xF8, 0xF6, 0xF5, 0xF3, 0xF8, 0xFF, 0x05, 0xF3, 0xF8, 0xE8, 0xF9, 0xF7, 0xF5, 0xEB, 0xFF, 0x07, 0xF4, 0xF6, 0xF8, 0xFA, 0xE9, 0xF9, 0xF6, 0xF4, 0xF4, 0xFF, 0x00, 0x8E, 0xA1, 0xD6, 0x14, 0xD8, 0xCE, 0xB3, 0xBA, 0xBE, 0xAE, 0xAE, 0xBE, 0xBD, 0xBE, 0xBF, 0xBD, 0xBA, 0xB7, 0xB3, 0xD4, 0xCE, 0xDC, 0xD9, 0xD8, 0xD7, 0xFD, 0xD6, 0x09, 0xDB, 0xD3, 0xBA, 0xAF, 0xC0, 0xBF, 0xBB, 0xAE, 0xE3, 0xE9, 0xF3, 0xE7, 0x0F, 0xE8, 0xEE, 0xE3, 0xCE, 0xB4, 0xBC, 0xBF, 0xC0, 0xAF, 0xC0, 0xBB, 0xB4, 0xCD, 0xE2, 0xEC, 0xE8, 0xF7, 0xE7, 0xA0, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFA, 0xCE, 0x06, 0xCC, 0xCA, 0xC8, 0xC6, 0xE6, 0xE2, 0xE0, 0xFA, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xCB, 0xCF, 0xF8, 0xF1, 0xEF, 0x04, 0xF3, 0xF9, 0xDF, 0xC5, 0xCC, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF6, 0xEF, 0x9F, 0xFF, 0x0C, 0xF3, 0xF6, 0xF8, 0xE8, 0xE8, 0xF8, 0xF7, 0xF8, 0xF9, 0xF9, 0xF7, 0xF5, 0xF3, 0xF5, 0xFF, 0x05, 0xF7, 0xE9, 0xFA, 0xF9, 0xF7, 0xF4, 0xED, 0xFF, 0x07, 0xF5, 0xF8, 0xF9, 0xFA, 0xE9, 0xFA, 0xF7, 0xF4, 0xF3, 0xFF, 0x00, 0x8A, 0xA1, 0xD6, 0x11, 0xD7, 0xDC, 0xD4, 0xB8, 0xBE, 0xBF, 0xBF, 0xBE, 0xBD, 0xBA, 0xB8, 0xB3, 0xD4, 0xD1, 0xCE, 0xDC, 0xD8, 0xD7, 0xFA, 0xD6, 0x09, 0xD9, 0xD1, 0xB7, 0xC0, 0xAF, 0xC0, 0xAD, 0xB2, 0xE8, 0xEB, 0xF5, 0xE7, 0x10, 0xE8, 0xEB, 0xF1, 0xE9, 0xAD, 0xB6, 0xBC, 0xB0, 0xB0, 0xC1, 0xAE, 0xBC, 0xB4, 0xCD, 0xE2, 0xEC, 0xE8, 0xF6, 0xE7, 0xA0, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFC, 0xCE, 0x06, 0xCC, 0xCA, 0xC6, 0xE6, 0xE4, 0xE2, 0xE0, 0xF7, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x03, 0xCD, 0xC2, 0xFC, 0xF1, 0xF4, 0xEF, 0x05, 0xF1, 0xF5, 0xFD, 0xBF, 0xC7, 0xCC, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF5, 0xEF, 0x9E, 0xFF, 0x08, 0xF5, 0xF8, 0xF9, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF3, 0xF2, 0xFF, 0x05, 0xF5, 0xFA, 0xE9, 0xFA, 0xE7, 0xF5, 0xEF, 0xFF, 0x08, 0xF3, 0xF5, 0xF8, 0xEA, 0xEA, 0xFB, 0xE8, 0xF8, 0xF4, 0xF2, 0xFF, 0x00, 0x81, 0xA0, 0xD6, 0x0E, 0xD9, 0xD1, 0xB6, 0xBD, 0xBD, 0xBA, 0xB8, 0xB6, 0xB3, 0xD4, 0xCE, 0xDC, 0xD9, 0xD8, 0xD7, 0xF8, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xC0, 0xAF, 0xC1, 0xBE, 0xB4, 0xD9, 0xED, 0xF6, 0xE7, 0x10, 0xE8, 0xEC, 0xE1, 0xCA, 0xB1, 0xB8, 0xBD, 0xBF, 0xB1, 0xB1, 0xC1, 0xBB, 0xB4, 0xCC, 0xE1, 0xEC, 0xE8, 0xF5, 0xE7, 0x9F, 0xDE, 0x0A, 0xE4, 0xC8, 0xCE, 0xCE, 0xCC, 0xCA, 0xC8, 0xC6, 0xE6, 0xE2, 0xE0, 0xF4, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xF5, 0xEF, 0x04, 0xF1, 0xF7, 0xDB, 0xC3, 0xC9, 0xFC, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF4, 0xEF, 0x9E, 0xFF, 0x06, 0xF4, 0xF7, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF0, 0xFF, 0x05, 0xF4, 0xFA, 0xE9, 0xFB, 0xF8, 0xF5, 0xF0, 0xFF, 0x08, 0xF4, 0xF6, 0xF7, 0xF9, 0xEB, 0xEB, 0xFB, 0xF7, 0xF5, 0xF1, 0xFF, 0x00, 0x7D, 0xA0, 0xD6, 0x0B, 0xD8, 0xCE, 0xB3, 0xB8, 0xB8, 0xB3, 0xD4, 0xD1, 0xCE, 0xDC, 0xD8, 0xD7, 0xF5, 0xD6, 0x0A, 0xD8, 0xCE, 0xB3, 0xBD, 0xAF, 0xC0, 0xBD, 0xB7, 0xCD, 0xF2, 0xE8, 0xF9, 0xE7, 0x11, 0xE8, 0xEB, 0xF1, 0xE6, 0xCF, 0xB4, 0xBA, 0xBD, 0xBD, 0xBE, 0xC0, 0xAF, 0xBB, 0xB2, 0xCA, 0xF3, 0xEB, 0xE8, 0xF4, 0xE7, 0x9F, 0xDE, 0x08, 0xE2, 0xC5, 0xC9, 0xC9, 0xC6, 0xE6, 0xE4, 0xE2, 0xE0, 0xF2, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xC9, 0xDE, 0xF6, 0xF7, 0xEF, 0x05, 0xF1, 0xF5, 0xFB, 0xDF, 0xC5, 0xCC, 0xFC, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF3, 0xEF, 0x9E, 0xFF, 0x03, 0xF3, 0xF5, 0xF5, 0xF3, 0xED, 0xFF, 0x05, 0xF3, 0xF9, 0xE9, 0xFA, 0xF7, 0xF5, 0xF1, 0xFF, 0x08, 0xF4, 0xF6, 0xF7, 0xF7, 0xF8, 0xFA, 0xE9, 0xF8, 0xF4, 0xF0, 0xFF, 0x00, 0x76, 0xA0, 0xD6, 0x09, 0xD7, 0xDC, 0xD2, 0xB1, 0xD4, 0xCE, 0xDC, 0xD9, 0xD8, 0xD7, 0xF3, 0xD6, 0x0A, 0xD7, 0xDC, 0xD4, 0xBA, 0xAE, 0xBF, 0xBD, 0xBA, 0xAD, 0xE3, 0xE9, 0xFA, 0xE7, 0x06, 0xE8, 0xEC, 0xE1, 0xCA, 0xAF, 0xB6, 0xBA, 0xFE, 0xBE, 0x06, 0xBD, 0xBB, 0xB7, 0xAF, 0xD9, 0xF1, 0xEA, 0xF2, 0xE7, 0x9F, 0xDE, 0x05, 0xE0, 0xE3, 0xD4, 0xE5, 0xE2, 0xE0, 0xEF, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xCB, 0xCF, 0xF8, 0xF8, 0xEF, 0x05, 0xF1, 0xF7, 0xDB, 0xC1, 0xC7, 0xCC, 0xFD, 0xCE, 0x05, 0xCC, 0xC7, 0xC1, 0xDB, 0xF7, 0xF1, 0xF2, 0xEF, 0x9D, 0xFF, 0x00, 0xF2, 0xEA, 0xFF, 0x05, 0xF7, 0xE8, 0xF9, 0xF7, 0xF6, 0xF3, 0xF4, 0xFF, 0x02, 0xF3, 0xF5, 0xF6, 0xFE, 0xF8, 0x03, 0xF7, 0xF7, 0xF6, 0xF4, 0xEF, 0xFF, 0x00, 0x68, 0x9F, 0xD6, 0x05, 0xD8, 0xCB, 0xCC, 0xDC, 0xD8, 0xD7, 0xEF, 0xD6, 0x09, 0xD9, 0xD1, 0xB7, 0xBE, 0xBE, 0xBD, 0xBD, 0xB2, 0xE9, 0xEC, 0xFC, 0xE7, 0x06, 0xE8, 0xEB, 0xF1, 0xE6, 0xCF, 0xB5, 0xBC, 0xFE, 0xBF, 0x07, 0xAE, 0xBE, 0xBA, 0xB4, 0xCF, 0xE5, 0xEF, 0xE9, 0xF1, 0xE7, 0x9E, 0xDE, 0xFE, 0xDF, 0xEC, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x03, 0xCD, 0xC2, 0xFC, 0xF1, 0xFB, 0xEF, 0x05, 0xF1, 0xF5, 0xFB, 0xDF, 0xC5, 0xCC, 0xFC, 0xCE, 0x05, 0xCC, 0xC5, 0xDF, 0xFB, 0xF5, 0xF1, 0xF1, 0xEF, 0x85, 0xFF, 0x05, 0xF5, 0xF8, 0xF8, 0xF7, 0xF7, 0xF4, 0xF5, 0xFF, 0x01, 0xF5, 0xF8, 0xFE, 0xF9, 0x03, 0xE8, 0xF8, 0xF6, 0xF4, 0xED, 0xFF, 0x00, 0x61, 0x9F, 0xD6, 0x03, 0xD7, 0xD8, 0xD8, 0xD7, 0xED, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x18, 0xB4, 0xCA, 0xEF, 0xE8, 0xE7, 0xE7, 0xE8, 0xEB, 0xF1, 0xE5, 0xCD, 0xB0, 0xB7, 0xBB, 0xAF, 0xAF, 0xC0, 0xAF, 0xC0, 0xBB, 0xB2, 0xCB, 0xE1, 0xEC, 0xE8, 0xF0, 0xE7, 0x86, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xFD, 0xEF, 0x06, 0xF1, 0xF5, 0xFB, 0xDD, 0xC1, 0xC7, 0xCC, 0xFC, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xEF, 0xEF, 0x85, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xF7, 0xFF, 0x09, 0xF4, 0xF6, 0xF7, 0xE9, 0xE9, 0xFA, 0xE9, 0xFA, 0xF8, 0xF4, 0xEC, 0xFF, 0x00, 0x5D, 0x87, 0xD6, 0x1E, 0xD8, 0xCE, 0xB3, 0xBA, 0xBD, 0xBE, 0xBE, 0xB9, 0xCF, 0xE1, 0xE9, 0xE7, 0xE9, 0xED, 0xE2, 0xCA, 0xAF, 0xB8, 0xAB, 0xBF, 0xBF, 0xC1, 0xB0, 0xC0, 0xBC, 0xA7, 0xAF, 0xD9, 0xF2, 0xEB, 0xE8, 0xEF, 0xE7, 0x86, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x0B, 0xCA, 0xDF, 0xF7, 0xEF, 0xEF, 0xF1, 0xF3, 0xF9, 0xDB, 0xC1, 0xC7, 0xCC, 0xFC, 0xCE, 0x05, 0xCC, 0xC7, 0xC1, 0xDB, 0xF7, 0xF1, 0xEE, 0xEF, 0x85, 0xFF, 0x05, 0xF3, 0xF6, 0xF7, 0xF8, 0xF8, 0xF6, 0xF9, 0xFF, 0x0A, 0xF3, 0xF7, 0xE7, 0xF9, 0xF9, 0xFB, 0xEA, 0xFA, 0xF8, 0xE6, 0xF4, 0xEB, 0xFF, 0x00, 0x58, 0x87, 0xD6, 0x1C, 0xD7, 0xDC, 0xD4, 0xB8, 0xBD, 0xBE, 0xAD, 0xBB, 0xB0, 0xE6, 0xED, 0xEB, 0xF2, 0xD6, 0xD0, 0xB5, 0xBC, 0xC2, 0xB0, 0xC0, 0xBE, 0xAE, 0xBF, 0xBB, 0xB5, 0xD0, 0xE6, 0xEF, 0xE9, 0xED, 0xE7, 0x86, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x09, 0xCC, 0xC1, 0xFB, 0xF1, 0xF1, 0xF7, 0xD9, 0xE1, 0xC5, 0xCC, 0xFB, 0xCE, 0x05, 0xCC, 0xC5, 0xDF, 0xFB, 0xF5, 0xF1, 0xED, 0xEF, 0x84, 0xFF, 0x05, 0xF5, 0xF7, 0xF8, 0xE7, 0xF7, 0xF3, 0xFB, 0xFF, 0x09, 0xF5, 0xF8, 0xFC, 0xEA, 0xFA, 0xF8, 0xE8, 0xF9, 0xF7, 0xF5, 0xE9, 0xFF, 0x00, 0x54, 0x86, 0xD6, 0x03, 0xD9, 0xD1, 0xB6, 0xBD, 0xFE, 0xBE, 0x13, 0xB6, 0xCE, 0xFA, 0xE5, 0xCD, 0xB0, 0xB7, 0xBC, 0xB0, 0xB2, 0xB0, 0xBF, 0xBE, 0xBB, 0xB7, 0xAF, 0xCA, 0xE1, 0xEC, 0xE8, 0xEC, 0xE7, 0x85, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x07, 0xC7, 0xDF, 0xFB, 0xFB, 0xDF, 0xC3, 0xCA, 0xCC, 0xFC, 0xCE, 0x05, 0xCC, 0xC7, 0xC1, 0xDB, 0xF7, 0xF1, 0xEB, 0xEF, 0x84, 0xFF, 0x01, 0xF4, 0xF7, 0xFE, 0xF8, 0x00, 0xF5, 0xFD, 0xFF, 0x0A, 0xF3, 0xF5, 0xF8, 0xEA, 0xEC, 0xEA, 0xF9, 0xF8, 0xF7, 0xF6, 0xF3, 0xE8, 0xFF, 0x00, 0x51, 0x86, 0xD6, 0x03, 0xD8, 0xCE, 0xB3, 0xBA, 0xFE, 0xBE, 0x12, 0xBA, 0xB3, 0xD3, 0xAF, 0xB6, 0xBB, 0xBF, 0xC1, 0xB1, 0xB1, 0xC0, 0xBE, 0xB9, 0xB2, 0xCD, 0xE5, 0xF1, 0xEB, 0xE8, 0xEB, 0xE7, 0x85, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x05, 0xCC, 0xC5, 0xE3, 0xC1, 0xC7, 0xCC, 0xFB, 0xCE, 0x05, 0xCC, 0xC5, 0xDF, 0xFB, 0xF5, 0xF1, 0xEA, 0xEF, 0x84, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF8, 0x0D, 0xF6, 0xF4, 0xFF, 0xF3, 0xF5, 0xF7, 0xF9, 0xFB, 0xEB, 0xEB, 0xFA, 0xF8, 0xF6, 0xF4, 0xE6, 0xFF, 0x00, 0x48, 0x86, 0xD6, 0x07, 0xD7, 0xDC, 0xD4, 0xB8, 0xBE, 0xAE, 0xBF, 0xBE, 0xFE, 0xBA, 0x0C, 0xBD, 0xBF, 0xB0, 0xB1, 0xC1, 0xBF, 0xBB, 0xB6, 0xAE, 0xD9, 0xF2, 0xEB, 0xE8, 0xE9, 0xE7, 0x85, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0xFE, 0xCC, 0xFB, 0xCE, 0x05, 0xCC, 0xC7, 0xC1, 0xDB, 0xF7, 0xF1, 0xE8, 0xEF, 0x83, 0xFF, 0x04, 0xF5, 0xF8, 0xE8, 0xF9, 0xF8, 0xFE, 0xF6, 0x08, 0xF7, 0xF9, 0xEA, 0xEB, 0xFB, 0xF9, 0xF7, 0xF5, 0xF3, 0xE5, 0xFF, 0x00, 0x3F, 0x85, 0xD6, 0x14, 0xD9, 0xD1, 0xB6, 0xBE, 0xBF, 0xAF, 0xC0, 0xC0, 0xBF, 0xBE, 0xBD, 0xBF, 0xB0, 0xB0, 0xBC, 0xB6, 0xAF, 0xCC, 0xE4, 0xEF, 0xE9, 0xE7, 0xE7, 0x84, 0xDE, 0x01, 0xE4, 0xC8, 0xF6, 0xCE, 0x06, 0xCC, 0xC7, 0xC1, 0xDD, 0xFB, 0xF5, 0xF1, 0xE7, 0xEF, 0x83, 0xFF, 0x0E, 0xF4, 0xF8, 0xF9, 0xE9, 0xFA, 0xFA, 0xF9, 0xF8, 0xF7, 0xF9, 0xEA, 0xEA, 0xF8, 0xF5, 0xF3, 0xE3, 0xFF, 0x00, 0x3F, 0x88, 0xD6, 0x16, 0xD7, 0xD8, 0xD9, 0xDB, 0xD2, 0xB6, 0xBD, 0xBE, 0xBF, 0xAF, 0xAF, 0xAE, 0xBE, 0xBD, 0xBE, 0xBC, 0xB9, 0xB1, 0xCD, 0xE5, 0xF1, 0xEB, 0xE8, 0xE6, 0xE7, 0x84, 0xDE, 0x01, 0xE4, 0xC8, 0xF8, 0xCE, 0x06, 0xCC, 0xCA, 0xC3, 0xDF, 0xFB, 0xF5, 0xF1, 0xE5, 0xEF, 0x83, 0xFF, 0x0C, 0xF4, 0xF7, 0xF8, 0xF9, 0xE9, 0xE9, 0xE8, 0xF8, 0xF7, 0xF8, 0xF8, 0xF7, 0xF4, 0xE1, 0xFF, 0x00, 0x41, 0x8A, 0xD6, 0x16, 0xD7, 0xD8, 0xDA, 0xCC, 0xCF, 0xD2, 0xD7, 0xB8, 0xBD, 0xBE, 0xBF, 0xC0, 0xC0, 0xBF, 0xBE, 0xBD, 0xB9, 0xB2, 0xCE, 0xD5, 0xF2, 0xEB, 0xE8, 0xE4, 0xE7, 0x87, 0xDE, 0x05, 0xDF, 0xE0, 0xE1, 0xE5, 0xC8, 0xCD, 0xFB, 0xCE, 0x06, 0xCD, 0xCB, 0xC4, 0xE1, 0xD9, 0xF7, 0xF1, 0xE3, 0xEF, 0x83, 0xFF, 0x0A, 0xF5, 0xF7, 0xF8, 0xF9, 0xFA, 0xFA, 0xF9, 0xF8, 0xF7, 0xF6, 0xF4, 0xDF, 0xFF, 0x00, 0x45, 0x8D, 0xD6, 0x17, 0xD7, 0xD8, 0xD9, 0xDA, 0xCA, 0xCE, 0xD3, 0xB4, 0xB6, 0xB8, 0xBA, 0xBD, 0xBE, 0xAE, 0xC0, 0xBF, 0xBE, 0xBA, 0xB6, 0xAE, 0xD9, 0xF3, 0xEC, 0xE9, 0xE2, 0xE7, 0x88, 0xDE, 0x06, 0xDF, 0xE1, 0xD2, 0xD3, 0xD5, 0xD9, 0xCC, 0xFC, 0xCE, 0x06, 0xCC, 0xC6, 0xD1, 0xDA, 0xF9, 0xF3, 0xF1, 0xE2, 0xEF, 0x86, 0xFF, 0x0C, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xE8, 0xFA, 0xF9, 0xF8, 0xF6, 0xF5, 0xF3, 0xDE, 0xFF, 0x00, 0x47, 0x90, 0xD6, 0x0B, 0xD7, 0xD8, 0xD9, 0xDA, 0xCA, 0xCD, 0xD0, 0xD3, 0xD6, 0xB6, 0xBA, 0xBD, 0xFE, 0xBA, 0x09, 0xBE, 0xC0, 0xB1, 0xB1, 0xC0, 0xB9, 0xD3, 0xE7, 0xEF, 0xE9, 0xE0, 0xE7, 0x8B, 0xDE, 0x0A, 0xDF, 0xE0, 0xE1, 0xE2, 0xD3, 0xD5, 0xD6, 0xD5, 0xD7, 0xC9, 0xCD, 0xFD, 0xCE, 0x04, 0xCA, 0xE2, 0xFC, 0xF4, 0xF1, 0xE0, 0xEF, 0x87, 0xFF, 0x02, 0xF4, 0xF6, 0xF7, 0xFE, 0xF6, 0x05, 0xF8, 0xFA, 0xEB, 0xEB, 0xFA, 0xF6, 0xDC, 0xFF, 0x00, 0x4D, 0x93, 0xD6, 0x1A, 0xD7, 0xD8, 0xD9, 0xDA, 0xCA, 0xCD, 0xD0, 0xD1, 0xD2, 0xB0, 0xB4, 0xB8, 0xBA, 0xBD, 0xBD, 0xBA, 0xDF, 0xBA, 0xBD, 0xBF, 0xB1, 0xB3, 0xB1, 0xBA, 0xCF, 0xF4, 0xE9, 0xDF, 0xE7, 0x8E, 0xDE, 0x00, 0xDF, 0xFE, 0xE0, 0x09, 0xD0, 0xD2, 0xD4, 0xD5, 0xD6, 0xD6, 0xD5, 0xE7, 0xD9, 0xCC, 0xFD, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xDE, 0xEF, 0x8A, 0xFF, 0x0E, 0xF1, 0xF3, 0xF5, 0xF6, 0xF7, 0xF7, 0xF6, 0xFF, 0xF6, 0xF7, 0xF9, 0xEB, 0xED, 0xEB, 0xF7, 0xDC, 0xFF, 0x00, 0x5A, 0x97, 0xD6, 0x0F, 0xD7, 0xD8, 0xD9, 0xD9, 0xDA, 0xCA, 0xCD, 0xD0, 0xD3, 0xD6, 0xB4, 0xB4, 0xD8, 0xD8, 0xB8, 0xBA, 0xFE, 0xBD, 0x0B, 0xB8, 0xB6, 0xB4, 0xB8, 0xBB, 0xC1, 0xB3, 0xB2, 0xBD, 0xAF, 0xE5, 0xEB, 0xDF, 0xE7, 0x91, 0xDE, 0x09, 0xDF, 0xE0, 0xE1, 0xE2, 0xD2, 0xD2, 0xE3, 0xE3, 0xD4, 0xD5, 0xFE, 0xD6, 0x04, 0xD4, 0xD3, 0xD4, 0xC8, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xDF, 0xEF, 0x8D, 0xFF, 0x05, 0xF3, 0xF3, 0xFF, 0xFF, 0xF5, 0xF6, 0xFE, 0xF7, 0x09, 0xF5, 0xF4, 0xF3, 0xF5, 0xF7, 0xFB, 0xED, 0xEC, 0xF9, 0xF3, 0xDD, 0xFF, 0x00, 0x65, 0x9B, 0xD6, 0x23, 0xD7, 0xD8, 0xD9, 0xD9, 0xDA, 0xCA, 0xCD, 0xCF, 0xD2, 0xD3, 0xD6, 0xB4, 0xB6, 0xB8, 0xBA, 0xB8, 0xB4, 0xB2, 0xDA, 0xBA, 0xBD, 0xBA, 0xB8, 0xB4, 0xD6, 0xD4, 0xD8, 0xB8, 0xC0, 0xB2, 0xB2, 0xC0, 0xB6, 0xCC, 0xF1, 0xE8, 0xE0, 0xE7, 0x95, 0xDE, 0x15, 0xDF, 0xE0, 0xE1, 0xE1, 0xE2, 0xD2, 0xD3, 0xD4, 0xD5, 0xD4, 0xD2, 0xD1, 0xE4, 0xD5, 0xD6, 0xD5, 0xD4, 0xD2, 0xE2, 0xE2, 0xE7, 0xCA, 0xFD, 0xCE, 0x02, 0xC7, 0xDD, 0xF5, 0xDF, 0xEF, 0x90, 0xFF, 0x0C, 0xF3, 0xF4, 0xF5, 0xF6, 0xF5, 0xF3, 0xF2, 0xFF, 0xF6, 0xF7, 0xF6, 0xF5, 0xF3, 0xFE, 0xFF, 0x05, 0xF5, 0xFA, 0xEC, 0xEC, 0xFA, 0xF5, 0xDD, 0xFF, 0x00, 0x72, 0xA0, 0xD6, 0x01, 0xD7, 0xD8, 0xFE, 0xD9, 0x0B, 0xDA, 0xCA, 0xCB, 0xCD, 0xD0, 0xD3, 0xD6, 0xB4, 0xB4, 0xB2, 0xB4, 0xB8, 0xFE, 0xBD, 0x02, 0xBA, 0xDC, 0xDA, 0xFE, 0xB8, 0x0E, 0xB4, 0xD6, 0xD1, 0xCE, 0xCB, 0xD0, 0xB3, 0xBC, 0xB0, 0xB0, 0xBF, 0xBA, 0xAF, 0xE5, 0xEB, 0xE0, 0xE7, 0x98, 0xDE, 0x08, 0xDF, 0xE0, 0xE1, 0xE2, 0xD2, 0xD2, 0xD1, 0xD2, 0xD4, 0xFE, 0xD6, 0x02, 0xD5, 0xE5, 0xE4, 0xFE, 0xD4, 0x07, 0xD2, 0xE2, 0xE0, 0xDF, 0xDE, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xE0, 0xEF, 0x94, 0xFF, 0x04, 0xF3, 0xF3, 0xF2, 0xF3, 0xF5, 0xFE, 0xF7, 0x02, 0xF6, 0xFF, 0xFF, 0xFE, 0xF5, 0x00, 0xF3, 0xFC, 0xFF, 0x06, 0xF3, 0xF8, 0xEA, 0xEA, 0xF9, 0xF6, 0xF3, 0xDE, 0xFF, 0x00, 0x7B, 0xB6, 0xD6, 0x01, 0xD7, 0xD8, 0xED, 0xD9, 0x10, 0xDA, 0xCA, 0xCB, 0xCD, 0xCF, 0xD2, 0xD3, 0xD4, 0xD6, 0xB4, 0xB6, 0xB8, 0xBA, 0xB8, 0xD8, 0xD8, 0xB8, 0xFE, 0xBD, 0x01, 0xBA, 0xB6, 0xFE, 0xB4, 0x10, 0xD5, 0xD0, 0xCD, 0xCA, 0xDA, 0xD9, 0xDD, 0xD4, 0xB9, 0xBF, 0xBF, 0xBE, 0xBD, 0xB6, 0xCC, 0xF1, 0xE8, 0xE1, 0xE7, 0x9D, 0xDE, 0x01, 0xDF, 0xE0, 0xFE, 0xE1, 0x08, 0xE2, 0xD2, 0xD3, 0xD4, 0xD5, 0xD4, 0xE3, 0xE3, 0xD4, 0xFE, 0xD6, 0x01, 0xD5, 0xD3, 0xFE, 0xD2, 0x02, 0xE2, 0xE0, 0xDF, 0xFE, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0x02, 0xC7, 0xDD, 0xF5, 0xE0, 0xEF, 0x97, 0xFF, 0x07, 0xF3, 0xF4, 0xF5, 0xF6, 0xF5, 0xFF, 0xFF, 0xF5, 0xFE, 0xF7, 0x01, 0xF6, 0xF4, 0xFE, 0xF3, 0xF9, 0xFF, 0x05, 0xF6, 0xF9, 0xF9, 0xF8, 0xF7, 0xF5, 0xDE, 0xFF, 0x00, 0x88, 0xB6, 0xD6, 0x01, 0xD8, 0xC9, 0xF2, 0xCB, 0x01, 0xCD, 0xCF, 0xFE, 0xD1, 0x09, 0xD2, 0xD3, 0xD4, 0xD6, 0xB4, 0xB4, 0xB2, 0xB0, 0xB4, 0xB8, 0xFE, 0xBD, 0x15, 0xB6, 0xD6, 0xD6, 0xB8, 0xBD, 0xBA, 0xB8, 0xB6, 0xB4, 0xD5, 0xD2, 0xCF, 0xCC, 0xDA, 0xD9, 0xD8, 0xD7, 0xD6, 0xD8, 0xCE, 0xB3, 0xBA, 0xFE, 0xBD, 0x03, 0xBA, 0xAF, 0xE5, 0xEB, 0xE1, 0xE7, 0xA5, 0xDE, 0x01, 0xDF, 0xE0, 0xFB, 0xE1, 0x06, 0xE2, 0xD2, 0xD2, 0xD1, 0xD0, 0xD2, 0xD4, 0xFE, 0xD6, 0x0C, 0xD3, 0xE2, 0xE2, 0xD4, 0xD6, 0xD5, 0xD4, 0xD3, 0xD2, 0xE2, 0xE1, 0xE0, 0xDF, 0xFB, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xE1, 0xEF, 0x9C, 0xFF, 0x05, 0xF3, 0xF3, 0xF2, 0xF1, 0xF3, 0xF5, 0xFE, 0xF7, 0x08, 0xF4, 0xFF, 0xFF, 0xF5, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF6, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF7, 0x01, 0xF6, 0xF3, 0xDF, 0xFF, 0x00, 0x90, 0xB6, 0xD6, 0x03, 0xD9, 0xCB, 0xD0, 0xD2, 0xF4, 0xD4, 0x03, 0xD6, 0xB4, 0xB6, 0xB6, 0xFE, 0xB4, 0x07, 0xB6, 0xB8, 0xBA, 0xBA, 0xDC, 0xDA, 0xDC, 0xBA, 0xFE, 0xBD, 0x0D, 0xB8, 0xDA, 0xB4, 0xB6, 0xB6, 0xB4, 0xD5, 0xD2, 0xCF, 0xCC, 0xDA, 0xD9, 0xD8, 0xD7, 0xFD, 0xD6, 0x03, 0xD7, 0xDC, 0xD4, 0xB8, 0xFD, 0xBD, 0x03, 0xB6, 0xCC, 0xF1, 0xE8, 0xE2, 0xE7, 0xB4, 0xDE, 0x01, 0xDF, 0xE0, 0xF4, 0xE1, 0x03, 0xE2, 0xD2, 0xD3, 0xD3, 0xFE, 0xD2, 0x07, 0xD3, 0xD4, 0xD5, 0xD5, 0xE5, 0xE4, 0xE5, 0xD5, 0xFE, 0xD6, 0x09, 0xD4, 0xE4, 0xD2, 0xD3, 0xD3, 0xD2, 0xE2, 0xE1, 0xE0, 0xDF, 0xF8, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0x02, 0xC7, 0xDD, 0xF5, 0xE1, 0xEF, 0xA4, 0xFF, 0x02, 0xF3, 0xF4, 0xF4, 0xFE, 0xF3, 0x03, 0xF4, 0xF5, 0xF6, 0xF6, 0xFE, 0xFF, 0x00, 0xF6, 0xFE, 0xF7, 0x05, 0xF5, 0xFF, 0xF3, 0xF4, 0xF4, 0xF3, 0xF2, 0xFF, 0x00, 0xF5, 0xFD, 0xF7, 0x00, 0xF5, 0xDF, 0xFF, 0x00, 0x91, 0xB6, 0xD6, 0x03, 0xD9, 0xCD, 0xD4, 0xB4, 0xF4, 0xB6, 0x06, 0xB8, 0xBA, 0xBD, 0xBD, 0xB8, 0xDC, 0xB8, 0xFE, 0xBD, 0x12, 0xB8, 0xB6, 0xB4, 0xB8, 0xBA, 0xBD, 0xBA, 0xB8, 0xB4, 0xB4, 0xB2, 0xD5, 0xD2, 0xCF, 0xCC, 0xDA, 0xD9, 0xD8, 0xD7, 0xF9, 0xD6, 0x03, 0xD8, 0xCE, 0xB3, 0xBA, 0xFE, 0xBD, 0x04, 0xBA, 0xAF, 0xE6, 0xEC, 0xE8, 0xE3, 0xE7, 0xB5, 0xDE, 0x02, 0xDF, 0xE1, 0xD2, 0xF4, 0xD3, 0x06, 0xD4, 0xD5, 0xD6, 0xD6, 0xD4, 0xE5, 0xD4, 0xFE, 0xD6, 0x0E, 0xD4, 0xD3, 0xD2, 0xD4, 0xD5, 0xD6, 0xD5, 0xD4, 0xD2, 0xD2, 0xD1, 0xE2, 0xE1, 0xE0, 0xDF, 0xF4, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xE2, 0xEF, 0xB3, 0xFF, 0x00, 0xF3, 0xF4, 0xF4, 0x06, 0xF5, 0xF6, 0xF7, 0xF7, 0xF5, 0xFF, 0xF5, 0xFE, 0xF7, 0x0A, 0xF5, 0xF4, 0xF3, 0xF5, 0xF6, 0xF7, 0xF6, 0xF5, 0xF3, 0xF3, 0xF2, 0xEF, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF7, 0x01, 0xF6, 0xF3, 0xE0, 0xFF, 0x00, 0x78, 0xB6, 0xD6, 0x03, 0xD9, 0xCF, 0xB4, 0xBA, 0xF0, 0xBD, 0x02, 0xB8, 0xDC, 0xB8, 0xFE, 0xBD, 0x01, 0xBA, 0xDC, 0xFD, 0xB6, 0x09, 0xB4, 0xD6, 0xD3, 0xD2, 0xCF, 0xCC, 0xDA, 0xD9, 0xD8, 0xD7, 0xF6, 0xD6, 0x0B, 0xD7, 0xDC, 0xD4, 0xB8, 0xBD, 0xBD, 0xBE, 0xBE, 0xB7, 0xCE, 0xE0, 0xEA, 0xE3, 0xE7, 0xB5, 0xDE, 0x02, 0xE0, 0xD2, 0xD5, 0xF0, 0xD6, 0x02, 0xD4, 0xE5, 0xD4, 0xFE, 0xD6, 0x01, 0xD5, 0xE5, 0xFD, 0xD3, 0x05, 0xD2, 0xE2, 0xE1, 0xE1, 0xE0, 0xDF, 0xF1, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0x03, 0xC7, 0xDF, 0xF7, 0xF1, 0xE3, 0xEF, 0xB4, 0xFF, 0x01, 0xF3, 0xF6, 0xF0, 0xF7, 0x02, 0xF5, 0xFF, 0xF5, 0xFE, 0xF7, 0x01, 0xF6, 0xFF, 0xFD, 0xF4, 0x00, 0xF3, 0xEA, 0xFF, 0x05, 0xF5, 0xF7, 0xF7, 0xF8, 0xF8, 0xF6, 0xE0, 0xFF, 0x00, 0x8E, 0xB7, 0xD6, 0x0C, 0xD7, 0xDA, 0xD2, 0xB6, 0xBD, 0xBD, 0xBA, 0xB8, 0xB6, 0xB8, 0xBA, 0xBD, 0xBD, 0xFE, 0xBA, 0xFB, 0xBD, 0x12, 0xBA, 0xBA, 0xB8, 0xB8, 0xB6, 0xB6, 0xB4, 0xB2, 0xD4, 0xD4, 0xD3, 0xD2, 0xCF, 0xCD, 0xCA, 0xDA, 0xD9, 0xD8, 0xD7, 0xF2, 0xD6, 0x0B, 0xD8, 0xCE, 0xB3, 0xBA, 0xBD, 0xBF, 0xAE, 0xBC, 0xB3, 0xDA, 0xF0, 0xE8, 0xE4, 0xE7, 0xB5, 0xDE, 0x0A, 0xE1, 0xD3, 0xD6, 0xD6, 0xD5, 0xD4, 0xD3, 0xD4, 0xD5, 0xD6, 0xD6, 0xFE, 0xD5, 0xFB, 0xD6, 0x07, 0xD5, 0xD5, 0xD4, 0xD4, 0xD3, 0xD3, 0xD2, 0xD1, 0xFD, 0xE1, 0x01, 0xE0, 0xDF, 0xEC, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, 0xC5, 0xDB, 0xF5, 0xE3, 0xEF, 0xB4, 0xFF, 0x09, 0xF4, 0xF7, 0xF7, 0xF6, 0xF5, 0xF4, 0xF5, 0xF6, 0xF7, 0xF7, 0xFE, 0xF6, 0xFB, 0xF7, 0x07, 0xF6, 0xF6, 0xF5, 0xF5, 0xF4, 0xF4, 0xF3, 0xF2, 0xE5, 0xFF, 0x06, 0xF3, 0xF6, 0xF7, 0xF9, 0xE8, 0xF8, 0xF4, 0xE1, 0xFF, 0x00, 0x8E, 0xB7, 0xD6, 0x0F, 0xD8, 0xCA, 0xD1, 0xB2, 0xB8, 0xBA, 0xBA, 0xDC, 0xD8, 0xDA, 0xB8, 0xBD, 0xBD, 0xBA, 0xDF, 0xBA, 0xFE, 0xBD, 0x01, 0xBA, 0xB8, 0xFE, 0xB6, 0x0D, 0xB4, 0xD6, 0xD4, 0xD4, 0xD3, 0xD0, 0xCD, 0xCB, 0xCA, 0xDA, 0xD9, 0xD9, 0xD8, 0xD7, 0xEF, 0xD6, 0x0B, 0xD7, 0xDC, 0xD4, 0xB8, 0xBD, 0xC0, 0xAF, 0xC0, 0xB9, 0xAE, 0xE4, 0xEB, 0xE4, 0xE7, 0xB5, 0xDE, 0x0D, 0xE0, 0xD1, 0xD4, 0xD5, 0xD5, 0xE5, 0xE3, 0xE4, 0xD4, 0xD6, 0xD6, 0xD5, 0xE6, 0xD5, 0xFE, 0xD6, 0x01, 0xD5, 0xD4, 0xFE, 0xD3, 0x01, 0xD2, 0xE2, 0xFE, 0xE1, 0x01, 0xE0, 0xDF, 0xE7, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xE4, 0xEF, 0xB4, 0xFF, 0x03, 0xF2, 0xF5, 0xF6, 0xF6, 0xFE, 0xFF, 0x05, 0xF5, 0xF7, 0xF7, 0xF6, 0xFF, 0xF6, 0xFE, 0xF7, 0x01, 0xF6, 0xF5, 0xFE, 0xF4, 0x00, 0xF3, 0xDF, 0xFF, 0x06, 0xF5, 0xF7, 0xFA, 0xE9, 0xFA, 0xF6, 0xF3, 0xE2, 0xFF, 0x00, 0x7A, 0xB7, 0xD6, 0x0C, 0xD8, 0xCA, 0xCF, 0xD2, 0xD6, 0xB4, 0xB4, 0xB2, 0xAE, 0xD4, 0xB2, 0xB6, 0xB6, 0xFE, 0xB4, 0xFE, 0xB6, 0x0E, 0xB4, 0xD6, 0xD4, 0xD4, 0xD3, 0xD0, 0xCD, 0xCB, 0xCB, 0xCA, 0xDA, 0xD9, 0xD9, 0xD8, 0xD7, 0xEA, 0xD6, 0x0B, 0xD8, 0xCE, 0xB3, 0xBA, 0xBF, 0xAF, 0xC1, 0xBF, 0xB7, 0xCC, 0xF1, 0xE8, 0xE5, 0xE7, 0xB5, 0xDE, 0x0A, 0xDF, 0xE0, 0xE2, 0xD2, 0xD2, 0xD1, 0xCF, 0xE1, 0xD1, 0xD3, 0xD3, 0xFE, 0xD2, 0xFE, 0xD3, 0x01, 0xD2, 0xE2, 0xFE, 0xE1, 0x01, 0xE0, 0xDF, 0xE1, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFD, 0xCE, 0x02, 0xC7, 0xDD, 0xF5, 0xE4, 0xEF, 0xB2, 0xFF, 0x07, 0xF3, 0xF3, 0xF2, 0xF0, 0xFF, 0xF2, 0xF4, 0xF4, 0xFE, 0xF3, 0xFE, 0xF4, 0x00, 0xF3, 0xDA, 0xFF, 0x06, 0xF3, 0xF6, 0xF9, 0xE9, 0xFB, 0xF9, 0xF6, 0xE2, 0xFF, 0x00, 0x59, 0xB7, 0xD6, 0x07, 0xD7, 0xD9, 0xCA, 0xCB, 0xCD, 0xCF, 0xD1, 0xD1, 0xFE, 0xCF, 0xF9, 0xD1, 0x05, 0xCF, 0xCD, 0xCB, 0xCB, 0xCA, 0xDA, 0xFE, 0xD9, 0x01, 0xD8, 0xD7, 0xE6, 0xD6, 0x0C, 0xD7, 0xDB, 0xD1, 0xB5, 0xBB, 0xBF, 0xAF, 0xAE, 0xBB, 0xB1, 0xE9, 0xEE, 0xE8, 0xE6, 0xE7, 0xB3, 0xDE, 0x03, 0xDF, 0xE0, 0xE1, 0xE1, 0xFE, 0xE0, 0xF9, 0xE1, 0x01, 0xE0, 0xDF, 0xDC, 0xDE, 0x03, 0xE0, 0xE4, 0xC8, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, 0xC2, 0xFC, 0xF2, 0xE5, 0xEF, 0x81, 0xFF, 0xFB, 0xFF, 0x06, 0xF4, 0xF7, 0xF9, 0xE9, 0xE8, 0xF7, 0xF4, 0xE3, 0xFF, 0x00, 0x3A, 0xB6, 0xD6, 0x01, 0xD7, 0xD8, 0xED, 0xD9, 0x01, 0xD8, 0xD7, 0xE0, 0xD6, 0x0B, 0xD7, 0xDC, 0xD4, 0xB8, 0xBE, 0xBF, 0xBF, 0xBE, 0xB8, 0xAD, 0xE3, 0xEB, 0xE6, 0xE7, 0x81, 0xDE, 0xFC, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0x03, 0xC8, 0xCF, 0xF8, 0xF1, 0xE6, 0xEF, 0x81, 0xFF, 0xFA, 0xFF, 0x06, 0xF5, 0xF8, 0xF9, 0xF9, 0xF8, 0xF6, 0xF3, 0xE4, 0xFF, 0x00, 0x32, 0x81, 0xD6, 0xFC, 0xD6, 0x04, 0xD8, 0xCE, 0xB3, 0xBA, 0xBD, 0xFE, 0xBE, 0x03, 0xB6, 0xCC, 0xF1, 0xE8, 0xE7, 0xE7, 0x81, 0xDE, 0xFB, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x03, 0xCD, 0xC6, 0xDC, 0xF5, 0xE6, 0xEF, 0x81, 0xFF, 0xFA, 0xFF, 0x02, 0xF3, 0xF6, 0xF7, 0xFE, 0xF8, 0x00, 0xF5, 0xE4, 0xFF, 0x00, 0x34, 0x81, 0xD6, 0xFC, 0xD6, 0x0C, 0xD7, 0xDC, 0xD2, 0xB6, 0xBA, 0xBF, 0xAE, 0xBF, 0xBA, 0xB1, 0xE9, 0xEE, 0xE8, 0xE8, 0xE7, 0x81, 0xDE, 0xFB, 0xDE, 0x03, 0xE0, 0xE4, 0xC8, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, 0xC3, 0xFD, 0xF3, 0xE7, 0xEF, 0x81, 0xFF, 0xF9, 0xFF, 0x06, 0xF4, 0xF6, 0xF9, 0xE8, 0xF9, 0xF6, 0xF4, 0xE5, 0xFF, 0x00, 0x33, 0x81, 0xD6, 0xFB, 0xD6, 0x0C, 0xD8, 0xCC, 0xD5, 0xB8, 0xBF, 0xAF, 0xC0, 0xBE, 0xB8, 0xAD, 0xE4, 0xEC, 0xE8, 0xE9, 0xE7, 0x81, 0xDE, 0xFA, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0x03, 0xC9, 0xBF, 0xF9, 0xF1, 0xE8, 0xEF, 0x81, 0xFF, 0xF8, 0xFF, 0x06, 0xF5, 0xF9, 0xE9, 0xFA, 0xF8, 0xF6, 0xF3, 0xE6, 0xFF, 0x00, 0x33, 0x81, 0xD6, 0xFB, 0xD6, 0x0C, 0xD7, 0xD9, 0xCF, 0xB3, 0xBB, 0xC0, 0xAF, 0xBF, 0xBD, 0xB6, 0xCF, 0xE1, 0xEB, 0xE9, 0xE7, 0x81, 0xDE, 0xF9, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFD, 0xCE, 0x03, 0xC7, 0xDF, 0xF7, 0xF1, 0xE9, 0xEF, 0x81, 0xFF, 0xF8, 0xFF, 0x06, 0xF3, 0xF7, 0xFA, 0xE9, 0xF9, 0xF7, 0xF5, 0xE6, 0xFF, 0x00, 0x35, 0x81, 0xD6, 0xFA, 0xD6, 0x0C, 0xD7, 0xDB, 0xD1, 0xB5, 0xBC, 0xAE, 0xBF, 0xBD, 0xBA, 0xB4, 0xCB, 0xF2, 0xE9, 0xEA, 0xE7, 0x81, 0xDE, 0xF9, 0xDE, 0x03, 0xE0, 0xE4, 0xC8, 0xCC, 0xFE, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xEA, 0xEF, 0x81, 0xFF, 0xF7, 0xFF, 0x06, 0xF4, 0xF8, 0xE8, 0xF9, 0xF7, 0xF6, 0xF4, 0xE7, 0xFF, 0x00, 0x33, 0x81, 0xD6, 0xF9, 0xD6, 0x0C, 0xD7, 0xDC, 0xD4, 0xB9, 0xBE, 0xBE, 0xBD, 0xBD, 0xBA, 0xB2, 0xD9, 0xEF, 0xE8, 0xEB, 0xE7, 0x81, 0xDE, 0xF8, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0x03, 0xCC, 0xC5, 0xDB, 0xF5, 0xEA, 0xEF, 0x81, 0xFF, 0xF6, 0xFF, 0x06, 0xF6, 0xF8, 0xF8, 0xF7, 0xF7, 0xF6, 0xF4, 0xE8, 0xFF, 0x00, 0x32, 0x81, 0xD6, 0xF8, 0xD6, 0x03, 0xD8, 0xCE, 0xB3, 0xBA, 0xFD, 0xBD, 0x04, 0xB9, 0xB0, 0xE8, 0xEE, 0xE8, 0xEC, 0xE7, 0x81, 0xDE, 0xF7, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFD, 0xCE, 0x03, 0xCC, 0xC3, 0xFD, 0xF3, 0xEB, 0xEF, 0x81, 0xFF, 0xF6, 0xFF, 0x01, 0xF3, 0xF6, 0xFD, 0xF7, 0x01, 0xF6, 0xF4, 0xE9, 0xFF, 0x00, 0x36, 0x81, 0xD6, 0xF8, 0xD6, 0x05, 0xD7, 0xDB, 0xD1, 0xB5, 0xBA, 0xBD, 0xFE, 0xBE, 0x04, 0xB8, 0xAD, 0xE4, 0xEC, 0xE8, 0xED, 0xE7, 0x81, 0xDE, 0xF7, 0xDE, 0x03, 0xE0, 0xE4, 0xC8, 0xCC, 0xFD, 0xCE, 0x03, 0xC9, 0xBF, 0xF9, 0xF1, 0xEC, 0xEF, 0x81, 0xFF, 0xF5, 0xFF, 0x02, 0xF4, 0xF6, 0xF7, 0xFE, 0xF8, 0x01, 0xF6, 0xF3, 0xEA, 0xFF, 0x00, 0x35, 0x81, 0xD6, 0xF7, 0xD6, 0x0D, 0xD7, 0xDB, 0xD1, 0xB5, 0xBA, 0xBF, 0xAE, 0xC0, 0xBE, 0xB7, 0xCF, 0xE2, 0xEC, 0xE8, 0xEE, 0xE7, 0x81, 0xDE, 0xF6, 0xDE, 0x03, 0xE0, 0xE4, 0xC8, 0xCC, 0xFD, 0xCE, 0x03, 0xC7, 0xDF, 0xF7, 0xF1, 0xED, 0xEF, 0x81, 0xFF, 0xF4, 0xFF, 0x06, 0xF4, 0xF6, 0xF9, 0xE8, 0xFA, 0xF8, 0xF6, 0xEA, 0xFF, 0x00, 0x36, 0x81, 0xD6, 0xF6, 0xD6, 0x0D, 0xD7, 0xDC, 0xD4, 0xB8, 0xBF, 0xAE, 0xC1, 0xAF, 0xBD, 0xB5, 0xCD, 0xE2, 0xEC, 0xE8, 0xEF, 0xE7, 0x81, 0xDE, 0xF5, 0xDE, 0x03, 0xE0, 0xE5, 0xC9, 0xCD, 0xFE, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xEE, 0xEF, 0x81, 0xFF, 0xF3, 0xFF, 0x06, 0xF5, 0xF9, 0xE8, 0xFB, 0xE9, 0xF9, 0xF5, 0xEB, 0xFF, 0x00, 0x36, 0x81, 0xD6, 0xF5, 0xD6, 0x0D, 0xD8, 0xCE, 0xB3, 0xBB, 0xBE, 0xC1, 0xB1, 0xB1, 0xBC, 0xB4, 0xCD, 0xE2, 0xEC, 0xE8, 0xF0, 0xE7, 0x81, 0xDE, 0xF4, 0xDE, 0x02, 0xE1, 0xD6, 0xCB, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xEF, 0xEF, 0x81, 0xFF, 0xF3, 0xFF, 0x07, 0xF3, 0xF7, 0xF8, 0xFB, 0xEB, 0xEB, 0xF8, 0xF4, 0xEC, 0xFF, 0x00, 0x38, 0x81, 0xD6, 0xF5, 0xD6, 0x0E, 0xD7, 0xDB, 0xD1, 0xB5, 0xBA, 0xBF, 0xB1, 0xB1, 0xC0, 0xBA, 0xB4, 0xCD, 0xE2, 0xEC, 0xE8, 0xF1, 0xE7, 0x81, 0xDE, 0xF4, 0xDE, 0x03, 0xDF, 0xE3, 0xC7, 0xCC, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF0, 0xEF, 0x81, 0xFF, 0xF2, 0xFF, 0x07, 0xF4, 0xF6, 0xF9, 0xEB, 0xEB, 0xFA, 0xF6, 0xF4, 0xED, 0xFF, 0x00, 0x38, 0x81, 0xD6, 0xF4, 0xD6, 0x0E, 0xD7, 0xDB, 0xD1, 0xB5, 0xBB, 0xC0, 0xAF, 0xBF, 0xBE, 0xBB, 0xB5, 0xCD, 0xE2, 0xEC, 0xE8, 0xF2, 0xE7, 0x81, 0xDE, 0xF3, 0xDE, 0x03, 0xE0, 0xE4, 0xC8, 0xCC, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF1, 0xEF, 0x81, 0xFF, 0xF1, 0xFF, 0x07, 0xF4, 0xF7, 0xFA, 0xE9, 0xF9, 0xF8, 0xF7, 0xF5, 0xEE, 0xFF, 0x00, 0x38, 0x81, 0xD6, 0xF3, 0xD6, 0x04, 0xD7, 0xDB, 0xD1, 0xB5, 0xBB, 0xFE, 0xBE, 0x06, 0xAD, 0xBB, 0xB4, 0xCD, 0xE2, 0xEC, 0xE8, 0xF3, 0xE7, 0x81, 0xDE, 0xF2, 0xDE, 0x03, 0xE0, 0xE4, 0xC8, 0xCC, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF2, 0xEF, 0x81, 0xFF, 0xF0, 0xFF, 0x01, 0xF4, 0xF7, 0xFE, 0xF8, 0x02, 0xE7, 0xF7, 0xF4, 0xEF, 0xFF, 0x00, 0x35, 0x81, 0xD6, 0xF2, 0xD6, 0x05, 0xD7, 0xDC, 0xD4, 0xB8, 0xBD, 0xBD, 0xFE, 0xBE, 0x04, 0xBA, 0xB2, 0xC9, 0xDD, 0xE9, 0xF3, 0xE7, 0x81, 0xDE, 0xF1, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFC, 0xCE, 0x03, 0xCC, 0xC3, 0xD9, 0xF3, 0xF2, 0xEF, 0x81, 0xFF, 0xEF, 0xFF, 0x02, 0xF5, 0xF7, 0xF7, 0xFE, 0xF8, 0x01, 0xF6, 0xF3, 0xF0, 0xFF, 0x00, 0xFF }; #endif #endif \ No newline at end of file +/**************************************************************************** +The Disc Image Chef +----------------------------------------------------------------------------- + +Filename : macos.h +Author(s) : Natalia Portillo + +Component : fstester.setter + +--[ Description ] ----------------------------------------------------------- + +Contains Mac OS definitions + +--[ License ] --------------------------------------------------------------- + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warraty of + MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +----------------------------------------------------------------------------- +Copyright (C) 2011-2018 Natalia Portillo +*****************************************************************************/ + +//#if defined(macintosh) + +#ifndef DIC_FSTESTER_SETTER_MACINTOSH_H +#define DIC_FSTESTER_SETTER_MACINTOSH_H + +#include + +const char *noAttributeText = "This file has all flags bits clear.\r"; +const char *desktopText = "This file is on desktop.\r"; +const char *color2Text = "This file is colored brown.\r"; +const char *color4Text = "This file is colored green.\r"; +const char *color6Text = "This file is colored lilac.\r"; +const char *color8Text = "This file is colored blue.\r"; +const char *colorAText = "This file is colored magenta.\r"; +const char *colorCText = "This file is colored red.\r"; +const char *colorEText = "This file is colored orange.\r"; +const char *requireSwitchText = "This file requires switch launch.\r"; +const char *sharedText = "This file is shared.\r"; +const char *noInitText = "This file contains no init.\r"; +const char *initedText = "This file has been inited.\r"; +const char *aoceText = "This file has AOCE bit set.\r"; +const char *customIconText = "This file has a custom icon.\r"; +const char *stationeryText = "This is a stationery.\r"; +const char *nameLockText = "This file has the name locked.\r"; +const char *bundleText = "This file has a BNDL resource.\r"; +const char *invisibleText = "This file is invisible.\r"; +const char *aliasText = "This file is an alias to nowhere.\r"; +const char *simpletextText = "This file has creator 'ttxt'.\r"; +const char *dicText = "This file has creator 'dic '.\r"; +const char *pos_m32_m32 = "This file position is -32k,-32k.\r"; +const char *pos_32_32 = "This file position is 32k,32k.\r"; +const char *pos_m1_m1 = "This file position is -1k,-1k.\r"; +const char *pos_m1_m32 = "This file position is -1k,-32k.\r"; +const char *pos_m1_32 = "This file position is -1k,32k.\r"; +const char *pos_m1_1 = "This file position is -1k,1k.\r"; +const char *pos_1_m1 = "This file position is 1k,-1k.\r"; +const char *pos_1_m32 = "This file position is 1k,-32k.\r"; +const char *pos_1_32 = "This file position is 1k,32k.\r"; +const char *pos_1_1 = "This file position is 1k,1k.\r"; +const char *allText = "This file has all flags bits set.\r"; +const char *targetText = "This file is the target of an alias.\r"; +const char *icnsText = "This file has a custom icon in the resource fork.\r"; +const char *versText = "This file has a version in the resource fork.\r"; +const char *pictText = "This file has a picture in the resource fork.\r"; +const char *rsrcText = "This file has a custom icon, a version, and a picture, in the resource fork.\r"; + +enum +{ + gestaltMacOSCompatibilityBoxAttr = FOUR_CHAR_CODE('bbox'), + ostDiscImageChef = FOUR_CHAR_CODE('dic '), + ostSimpleText = FOUR_CHAR_CODE('ttxt'), + ostUnknown = FOUR_CHAR_CODE('????'), + rtIcons = FOUR_CHAR_CODE('icns'), + rtVersion = FOUR_CHAR_CODE('vers'), +}; + +enum +{ + kRequireSwitchLaunch = 0x0020, kAOCE = 0x0200 +}; + +#define DATETIME_FORMAT "This file is dated %s for %s\r" +#define MAXDATETIME "2040/02/06 06:28:15" +#define MINDATETIME "1904/01/01 00:00:01" +#define NONDATETIME "1904/01/01 00:00:00" +#define Y2KDATETIME "2000/01/01 00:00:00" +#define Y1KDATETIME "1999/12/31 23:59:59" +#define MAXTIMESTAMP 0xFFFFFFFF +#define MINTIMESTAMP 0x00000001 +#define NONTIMESTAMP 0x00000000 +#define Y2KTIMESTAMP 0xB492F400 +#define Y1KTIMESTAMP 0xB492F3FF + +unsigned char IcnsResource[5618] = {0x69, 0x63, 0x6E, 0x73, 0x00, 0x00, 0x15, 0xF2, 0x69, 0x63, 0x73, 0x23, 0x00, 0x00, + 0x00, 0x48, 0x00, 0xF0, 0x01, 0xE0, 0xFF, 0xFE, 0x82, 0x03, 0x96, 0x43, 0x94, 0x43, + 0x84, 0x03, 0x84, 0x03, 0x87, 0x83, 0x81, 0x03, 0x99, 0x33, 0x87, 0xC3, 0x81, 0x03, + 0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0xF0, 0x00, 0xF0, 0x01, 0xE0, 0xFF, 0xFE, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0xF0, 0x69, 0x63, 0x73, 0x38, + 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFE, + 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, + 0xFF, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, + 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0x7F, + 0x7F, 0xF1, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, + 0xFF, 0x7F, 0x7F, 0xF1, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, + 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, + 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, + 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, + 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0xFF, + 0xF1, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0xFF, 0xFF, 0x2A, 0x2A, 0xFD, 0xAD, 0xFF, 0x7F, + 0x7F, 0x7F, 0x7F, 0xF1, 0xF1, 0xFF, 0xFF, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0xFD, 0xFE, + 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, + 0xFD, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFD, 0x00, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFF, 0xFD, + 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFD, 0xFF, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x69, 0x73, 0x33, 0x32, 0x00, 0x00, + 0x01, 0xDF, 0x85, 0xFF, 0x03, 0x44, 0x11, 0x44, 0x44, 0x88, 0xFF, 0x03, 0x44, 0x00, + 0x44, 0x44, 0x82, 0xFF, 0x8C, 0x00, 0x01, 0xFF, 0x00, 0x82, 0x66, 0x00, 0x00, 0x84, + 0xCC, 0x0B, 0x22, 0x44, 0x00, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0xCC, 0xCC, 0x00, + 0x81, 0xCC, 0x07, 0x22, 0x44, 0x00, 0x66, 0x66, 0x00, 0x66, 0x00, 0x80, 0xCC, 0x00, + 0x00, 0x81, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x81, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x02, + 0x22, 0x44, 0x00, 0x81, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x81, + 0x66, 0x81, 0x00, 0x82, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x83, 0x66, 0x00, 0x00, 0x83, + 0xCC, 0x12, 0x22, 0x44, 0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x00, 0xCC, 0xCC, + 0x00, 0x00, 0xCC, 0xCC, 0x22, 0x44, 0x00, 0x81, 0x66, 0x82, 0x00, 0x81, 0xCC, 0x02, + 0x22, 0x44, 0x00, 0x83, 0x66, 0x00, 0x00, 0x83, 0xCC, 0x01, 0x22, 0x44, 0x8C, 0x00, + 0x01, 0x44, 0xFF, 0x84, 0x44, 0x00, 0x00, 0x84, 0x44, 0x85, 0xFF, 0x03, 0x44, 0x00, + 0x44, 0x44, 0x81, 0xFF, 0x85, 0xFF, 0x03, 0x44, 0x11, 0x44, 0x44, 0x88, 0xFF, 0x03, + 0x44, 0x00, 0x44, 0x44, 0x82, 0xFF, 0x8C, 0x00, 0x01, 0xFF, 0x00, 0x82, 0x66, 0x00, + 0x00, 0x84, 0xCC, 0x0B, 0x22, 0x44, 0x00, 0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0xCC, + 0xCC, 0x00, 0x81, 0xCC, 0x07, 0x22, 0x44, 0x00, 0x66, 0x66, 0x00, 0x66, 0x00, 0x80, + 0xCC, 0x00, 0x00, 0x81, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x81, 0x66, 0x00, 0x00, 0x85, + 0xCC, 0x02, 0x22, 0x44, 0x00, 0x81, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x02, 0x22, 0x44, + 0x00, 0x81, 0x66, 0x81, 0x00, 0x82, 0xCC, 0x02, 0x22, 0x44, 0x00, 0x83, 0x66, 0x00, + 0x00, 0x83, 0xCC, 0x12, 0x22, 0x44, 0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x00, + 0xCC, 0xCC, 0x00, 0x00, 0xCC, 0xCC, 0x22, 0x44, 0x00, 0x81, 0x66, 0x82, 0x00, 0x81, + 0xCC, 0x02, 0x22, 0x44, 0x00, 0x83, 0x66, 0x00, 0x00, 0x83, 0xCC, 0x01, 0x22, 0x44, + 0x8C, 0x00, 0x01, 0x44, 0xFF, 0x84, 0x44, 0x00, 0x00, 0x84, 0x44, 0x85, 0xFF, 0x03, + 0x44, 0x00, 0x44, 0x44, 0x81, 0xFF, 0x85, 0xFF, 0x03, 0x44, 0x11, 0x44, 0x44, 0x88, + 0xFF, 0x03, 0x44, 0x00, 0x44, 0x44, 0x82, 0xFF, 0x8C, 0x00, 0x01, 0xFF, 0x00, 0x82, + 0xCC, 0x00, 0x00, 0x84, 0xFF, 0x0B, 0x22, 0x44, 0x00, 0xCC, 0xCC, 0x55, 0xCC, 0xCC, + 0x00, 0xFF, 0xFF, 0x00, 0x81, 0xFF, 0x07, 0x22, 0x44, 0x00, 0xCC, 0xCC, 0x55, 0xCC, + 0x00, 0x80, 0xFF, 0x00, 0x00, 0x81, 0xFF, 0x02, 0x22, 0x44, 0x00, 0x81, 0xCC, 0x00, + 0x00, 0x85, 0xFF, 0x02, 0x22, 0x44, 0x00, 0x81, 0xCC, 0x00, 0x00, 0x85, 0xFF, 0x02, + 0x22, 0x44, 0x00, 0x81, 0xCC, 0x81, 0x00, 0x82, 0xFF, 0x02, 0x22, 0x44, 0x00, 0x83, + 0xCC, 0x00, 0x00, 0x83, 0xFF, 0x12, 0x22, 0x44, 0x00, 0xCC, 0xCC, 0x55, 0x55, 0xCC, + 0xCC, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x22, 0x00, 0x00, 0x81, 0xCC, 0x01, + 0x55, 0x55, 0x80, 0x00, 0x81, 0xFF, 0x02, 0x22, 0x44, 0x00, 0x83, 0xCC, 0x00, 0x00, + 0x83, 0xFF, 0x01, 0x22, 0x44, 0x8C, 0x00, 0x01, 0x44, 0xFF, 0x84, 0x44, 0x00, 0x00, + 0x84, 0x44, 0x85, 0xFF, 0x03, 0x44, 0x00, 0x44, 0x44, 0x81, 0xFF, 0x73, 0x38, 0x6D, + 0x6B, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, + 0xFF, 0x4C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0xFF, 0x4C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x4C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0x00, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0xFF, + 0x86, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0xFF, 0x4C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x49, 0x43, 0x4E, 0x23, 0x00, + 0x00, 0x01, 0x08, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x1C, 0x78, 0x00, 0x00, 0x70, 0x0E, + 0x00, 0x01, 0xC0, 0x03, 0x80, 0x01, 0x40, 0x00, 0xE0, 0x01, 0x10, 0x00, 0x38, 0x01, + 0x04, 0x00, 0x18, 0x01, 0x61, 0x00, 0x38, 0x01, 0x58, 0x40, 0xF8, 0x01, 0x4E, 0x17, + 0xF8, 0x01, 0x43, 0x83, 0xF8, 0x01, 0x42, 0xE3, 0xF8, 0x01, 0x40, 0x33, 0xF8, 0x01, + 0x45, 0x73, 0xF8, 0x01, 0x60, 0x33, 0xF8, 0x01, 0xD5, 0x73, 0xF8, 0xFF, 0xFF, 0xB3, + 0xF8, 0x81, 0x01, 0xF3, 0xF8, 0x8B, 0x21, 0xB3, 0xF8, 0x8A, 0x21, 0xF3, 0xF8, 0x82, + 0x01, 0xF3, 0xF8, 0x82, 0x01, 0x83, 0xFC, 0x82, 0x01, 0xC3, 0xFF, 0x83, 0xC1, 0xE3, + 0xFF, 0x80, 0x81, 0x83, 0xFF, 0x98, 0x99, 0x83, 0xFF, 0x87, 0xE1, 0x83, 0xFF, 0x80, + 0x81, 0x83, 0xFE, 0xFF, 0xFF, 0xE7, 0xFC, 0x7F, 0xFF, 0xFF, 0xF8, 0x00, 0x7B, 0xFF, + 0xF0, 0x00, 0x00, 0xFF, 0xE0, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, + 0x7F, 0xFE, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x01, 0xFF, 0xFF, 0xE0, 0x01, 0xFF, 0xFF, + 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, + 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, + 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xFF, 0xFF, 0xF8, 0xFF, + 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, + 0xF8, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xF8, 0x00, + 0x7B, 0xFF, 0xF0, 0x00, 0x00, 0xFF, 0xE0, 0x69, 0x63, 0x6C, 0x38, 0x00, 0x00, 0x04, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFD, 0xFC, 0xFD, 0xFF, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFD, 0xFC, 0xFD, 0xF9, 0xF7, 0xF9, 0xFC, 0xFF, 0xFF, 0xFD, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFC, 0xFD, 0xF9, 0xF7, 0x00, 0x00, 0xF5, 0xF6, 0xF8, + 0xF9, 0xFC, 0xFF, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFC, 0xFD, 0xF9, 0xF7, 0xF6, 0x00, 0xF5, + 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF8, 0xF9, 0xFC, 0xFF, 0xFD, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF9, 0xFC, 0xF7, + 0xF6, 0x00, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF8, 0xF9, 0xFC, + 0xFF, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFC, 0xF7, 0xF7, 0xF9, 0xFC, 0xF7, 0xF5, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, + 0xF6, 0xF6, 0xF6, 0xF8, 0xF9, 0xFC, 0xFF, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFC, 0xF7, 0xF5, 0xF6, + 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0x2B, 0xF8, 0xF9, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xAC, 0xFC, 0xF7, 0xF7, + 0xF7, 0xF9, 0xFC, 0xF7, 0xF5, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0x2B, 0xF7, 0xF9, 0xFF, + 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, + 0xAC, 0x54, 0xFD, 0xFC, 0xF7, 0xF7, 0xF7, 0xF9, 0xFC, 0xF7, 0xF5, 0xF6, 0x2B, 0xF7, + 0xF9, 0xFF, 0xFD, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFC, 0xF7, 0xAC, 0x54, 0x54, 0xAB, 0xFD, 0xFC, 0xF7, 0xF7, 0xF7, 0xF9, + 0xFC, 0xF9, 0xFB, 0xFF, 0xFD, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xAC, 0x54, 0x54, 0x54, 0x54, 0xAB, + 0xFE, 0xFC, 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0x2B, 0xFD, 0x54, + 0x54, 0x54, 0x54, 0x7E, 0x54, 0xAB, 0xFD, 0xFC, 0xF7, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, + 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFC, 0xF7, 0xAC, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0x54, 0xAB, 0xFC, 0xF7, + 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xAC, 0x54, 0x54, 0x54, 0x7E, 0x54, 0x7E, 0x54, + 0x7E, 0x7E, 0xAC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF7, 0xFF, 0xAA, 0x54, 0x54, + 0x54, 0x54, 0x54, 0x54, 0x54, 0x7E, 0xAC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, + 0xAC, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, + 0xAA, 0x54, 0x7E, 0x54, 0x7E, 0x54, 0x7E, 0x54, 0x7E, 0x7E, 0xAC, 0xF7, 0xF9, 0xFB, + 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x54, 0x7E, + 0xAC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0xFF, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, + 0xFF, 0xAA, 0x7E, 0x7E, 0xAC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, + 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, 0xF1, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0xFF, + 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, 0x54, 0x7E, 0xAC, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, + 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, 0xF1, 0x7F, 0xFF, + 0x2A, 0x2A, 0x2A, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAC, 0x7E, 0x7E, 0xAC, 0xF7, + 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x7F, 0x7F, + 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, + 0x82, 0xFD, 0xAC, 0x2B, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0x00, 0x00, + 0x00, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, + 0x2A, 0x2A, 0xFF, 0xAA, 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, + 0xAC, 0xFF, 0xFD, 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, + 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAC, 0xFD, 0xF7, 0xF7, 0xF7, 0xF9, 0xFB, + 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0xFD, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, + 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, 0xFB, 0xFD, + 0xF9, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, 0xFD, 0xFD, 0xFD, 0xFF, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, + 0xFF, 0xAA, 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, 0xFB, 0xFC, 0xAC, 0xFF, + 0xFD, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0xF1, 0xF1, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, + 0xFF, 0xFF, 0x2A, 0x2A, 0xFF, 0xAA, 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFB, 0xFB, 0xFB, + 0xFC, 0xAC, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, 0x7F, 0x7F, 0xF1, 0xF1, + 0xF1, 0xFF, 0xFF, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, 0xF7, 0xF7, 0xF7, 0xF7, + 0xF9, 0xFB, 0xFB, 0xFC, 0xFD, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD, 0xFD, 0xFF, 0x7F, 0x7F, + 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xFF, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0xFF, 0xAA, + 0xF7, 0xF7, 0xF7, 0xF7, 0xF9, 0xFC, 0xFD, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFB, 0xF9, 0xF7, 0xFC, 0xFF, 0xFF, 0xFD, 0xFD, 0xFF, + 0xFF, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, + 0xFF, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, 0xFF, 0xFD, + 0xFD, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFD, 0xFD, 0x00, 0xFD, 0xFD, 0xFD, 0xFF, 0xFE, + 0xFD, 0xFD, 0xFD, 0xFF, 0xFF, 0xFD, 0xFD, 0xFD, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFD, 0xFD, 0xFD, 0xFE, 0xFE, 0xFE, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x69, 0x6C, 0x33, 0x32, 0x00, 0x00, 0x08, 0x9B, 0x8A, 0xFF, 0x04, + 0x22, 0x54, 0x33, 0x22, 0x22, 0x96, 0xFF, 0x09, 0x22, 0x54, 0x44, 0x88, 0xBB, 0x88, + 0x44, 0x33, 0x22, 0x22, 0x91, 0xFF, 0x0D, 0x22, 0x54, 0x44, 0x88, 0xBB, 0xFF, 0xE5, + 0xE1, 0xDC, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x8D, 0xFF, 0x11, 0x22, 0x54, 0x44, 0x88, + 0xBB, 0xFF, 0xEE, 0xE9, 0xE4, 0xDF, 0xDA, 0xD6, 0xD1, 0xAA, 0x88, 0x44, 0x22, 0x22, + 0x8B, 0xFF, 0x13, 0x44, 0x88, 0x54, 0xBB, 0xFF, 0xEE, 0xEC, 0xE7, 0xE1, 0xDD, 0xD8, + 0xD4, 0xD1, 0xCD, 0xC9, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x89, 0xFF, 0x15, 0x44, 0xDD, + 0xAA, 0x88, 0x54, 0xBB, 0xFF, 0xE5, 0xE0, 0xDB, 0xD6, 0xD3, 0xCF, 0xCB, 0xC8, 0xC4, + 0xC1, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x87, 0xFF, 0x15, 0x44, 0xDB, 0xDB, 0xDA, 0xD9, + 0x88, 0x54, 0xBB, 0xEE, 0xD9, 0xD5, 0xD1, 0xCE, 0xCA, 0xC6, 0xC2, 0xBF, 0xBC, 0xBB, + 0x88, 0x44, 0x22, 0x87, 0xFF, 0x15, 0x44, 0xDA, 0x54, 0x77, 0xAA, 0xD7, 0xD6, 0x88, + 0x54, 0xBB, 0xEE, 0xD0, 0xCC, 0xC8, 0xC5, 0xC2, 0xBF, 0xBB, 0x88, 0x44, 0x6D, 0x20, + 0x87, 0xFF, 0x15, 0x44, 0xD8, 0x42, 0x66, 0x54, 0x77, 0xAA, 0xD4, 0xD4, 0x88, 0x54, + 0xBB, 0xEC, 0xC7, 0xC3, 0xC0, 0x88, 0x44, 0x54, 0x6D, 0x77, 0x20, 0x87, 0xFF, 0x11, + 0x44, 0xD7, 0x42, 0x66, 0x7F, 0x66, 0x54, 0x77, 0xAA, 0xD1, 0xD1, 0x88, 0x54, 0x88, + 0xAA, 0x44, 0x54, 0x6D, 0x80, 0x77, 0x00, 0x1E, 0x87, 0xFF, 0x0F, 0x44, 0xD6, 0x42, + 0x66, 0x92, 0x90, 0x7F, 0x66, 0x54, 0x77, 0xAA, 0xCF, 0xCE, 0xAA, 0x55, 0x6D, 0x82, + 0x77, 0x00, 0x1C, 0x87, 0xFF, 0x0E, 0x44, 0xD5, 0x42, 0x66, 0x8F, 0x8C, 0x8A, 0x87, + 0x7F, 0x66, 0x54, 0x77, 0xAA, 0xCD, 0x88, 0x82, 0x77, 0x01, 0x74, 0x1B, 0x87, 0xFF, + 0x0E, 0x44, 0xD3, 0x42, 0x66, 0x8C, 0x89, 0x86, 0x83, 0x82, 0x7F, 0x71, 0x66, 0x54, + 0xCB, 0x88, 0x81, 0x77, 0x02, 0x73, 0x6C, 0x19, 0x87, 0xFF, 0x0E, 0x44, 0xD2, 0x42, + 0x66, 0x89, 0x86, 0x83, 0x80, 0x7F, 0x7C, 0x7B, 0x77, 0x44, 0xCB, 0x88, 0x80, 0x77, + 0x03, 0x72, 0x6A, 0x64, 0x18, 0x87, 0xFF, 0x15, 0x44, 0xD1, 0x00, 0x33, 0x85, 0x83, + 0x80, 0x7E, 0x7C, 0x7A, 0x77, 0x76, 0x44, 0xC9, 0x88, 0x77, 0x77, 0x70, 0x69, 0x62, + 0x5C, 0x16, 0x87, 0xFF, 0x15, 0x44, 0x00, 0x33, 0x66, 0x82, 0x80, 0x7D, 0x7C, 0x79, + 0x77, 0x76, 0x73, 0x44, 0xC9, 0x88, 0x76, 0x6E, 0x67, 0x61, 0x5A, 0x54, 0x15, 0x80, + 0xFF, 0x8D, 0x00, 0x0C, 0x75, 0x73, 0x71, 0x44, 0xC7, 0x88, 0x6D, 0x66, 0x5F, 0x59, + 0x53, 0x4E, 0x14, 0x80, 0xFF, 0x00, 0x00, 0x83, 0x66, 0x00, 0x00, 0x84, 0xCC, 0x0D, + 0x00, 0x33, 0x71, 0x6F, 0x44, 0xC7, 0x88, 0x64, 0x5E, 0x58, 0x53, 0x4D, 0x48, 0x12, + 0x80, 0xFF, 0x00, 0x00, 0x80, 0x66, 0x06, 0x00, 0x66, 0x66, 0x00, 0xCC, 0xCC, 0x00, + 0x81, 0xCC, 0x0D, 0x00, 0x33, 0x6E, 0x6D, 0x44, 0xC5, 0x88, 0x5D, 0x57, 0x52, 0x4C, + 0x47, 0x43, 0x10, 0x80, 0xFF, 0x00, 0x00, 0x80, 0x66, 0x02, 0x00, 0x66, 0x00, 0x80, + 0xCC, 0x00, 0x00, 0x81, 0xCC, 0x0D, 0x00, 0x33, 0x22, 0x6A, 0x44, 0xC4, 0x88, 0x56, + 0x51, 0x4B, 0x47, 0x42, 0x3E, 0x0E, 0x80, 0xFF, 0x00, 0x00, 0x82, 0x66, 0x00, 0x00, + 0x85, 0xCC, 0x0D, 0x00, 0x33, 0x6D, 0x22, 0x44, 0xC3, 0x88, 0x4F, 0x4A, 0x46, 0x41, + 0x3C, 0x38, 0x0C, 0x80, 0xFF, 0x00, 0x00, 0x82, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x11, + 0x00, 0x33, 0xC5, 0xAA, 0x88, 0xC3, 0x88, 0x49, 0x44, 0x40, 0x3B, 0x37, 0x33, 0x0B, + 0x22, 0xFF, 0xFF, 0x00, 0x82, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x0D, 0x00, 0x33, 0x00, + 0xC3, 0xC2, 0xC2, 0x88, 0x44, 0x3F, 0x3A, 0x36, 0x33, 0x2F, 0x08, 0x80, 0x22, 0x00, + 0x00, 0x82, 0x66, 0x81, 0x00, 0x82, 0xCC, 0x0D, 0x00, 0x33, 0x55, 0x00, 0x88, 0xC1, + 0x88, 0x3E, 0x3A, 0x35, 0x33, 0x33, 0x2B, 0x07, 0x80, 0x22, 0x00, 0x00, 0x84, 0x66, + 0x00, 0x00, 0x83, 0xCC, 0x0D, 0x00, 0x33, 0xC1, 0xC1, 0xC0, 0xC0, 0x88, 0x38, 0x34, + 0x33, 0x33, 0x2E, 0x22, 0x14, 0x80, 0x22, 0x04, 0x00, 0x66, 0x66, 0x00, 0x00, 0x80, + 0x66, 0x14, 0x00, 0xCC, 0xCC, 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x33, 0xC0, 0xC0, 0xBF, + 0xBF, 0x88, 0x33, 0x33, 0x2F, 0x2E, 0x22, 0x14, 0x08, 0x80, 0x22, 0x00, 0x00, 0x81, + 0x66, 0x83, 0x00, 0x81, 0xCC, 0x0C, 0x00, 0x33, 0xC0, 0xBF, 0xBF, 0xBE, 0x88, 0x33, + 0x2F, 0x28, 0x11, 0x14, 0x08, 0x81, 0x22, 0x00, 0x00, 0x84, 0x66, 0x00, 0x00, 0x83, + 0xCC, 0x0B, 0x00, 0x33, 0xBF, 0xBF, 0xBE, 0xBD, 0x88, 0x2E, 0x22, 0x11, 0x14, 0x08, + 0x81, 0x22, 0x00, 0xFF, 0x8D, 0x00, 0x09, 0x11, 0x22, 0x55, 0x88, 0xBD, 0x44, 0x18, + 0x14, 0x11, 0x08, 0x81, 0x22, 0x80, 0xFF, 0x85, 0x22, 0x00, 0x00, 0x82, 0x22, 0x09, + 0x00, 0x00, 0x22, 0x22, 0x19, 0x11, 0x00, 0x22, 0x11, 0x08, 0x81, 0x22, 0x89, 0xFF, + 0x04, 0x22, 0x00, 0x22, 0x22, 0xFF, 0x80, 0x22, 0x01, 0x00, 0x11, 0x80, 0x22, 0x01, + 0x11, 0x08, 0x81, 0x22, 0x91, 0xFF, 0x80, 0x22, 0x80, 0x11, 0x82, 0x22, 0x82, 0xFF, + 0x8A, 0xFF, 0x04, 0x22, 0x55, 0x33, 0x22, 0x22, 0x96, 0xFF, 0x09, 0x22, 0x55, 0x44, + 0x88, 0xBB, 0x88, 0x44, 0x33, 0x22, 0x22, 0x91, 0xFF, 0x0D, 0x22, 0x55, 0x44, 0x88, + 0xBB, 0xFF, 0xE5, 0xE0, 0xDC, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x8D, 0xFF, 0x11, 0x22, + 0x55, 0x44, 0x88, 0xBB, 0xFF, 0xEE, 0xE9, 0xE4, 0xDF, 0xDA, 0xD6, 0xD2, 0xAA, 0x88, + 0x44, 0x22, 0x22, 0x8B, 0xFF, 0x13, 0x44, 0x88, 0x55, 0xBB, 0xFF, 0xEE, 0xEC, 0xE7, + 0xE2, 0xDD, 0xD8, 0xD4, 0xD0, 0xCD, 0xC9, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x89, 0xFF, + 0x15, 0x44, 0xDD, 0xAA, 0x88, 0x55, 0xBB, 0xFF, 0xE5, 0xE0, 0xDB, 0xD6, 0xD3, 0xCF, + 0xCB, 0xC7, 0xC4, 0xC1, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x87, 0xFF, 0x15, 0x44, 0xDB, + 0xDB, 0xDA, 0xDA, 0x88, 0x55, 0xBB, 0xEE, 0xD9, 0xD5, 0xD1, 0xCE, 0xCA, 0xC7, 0xC3, + 0xBF, 0xBC, 0xBB, 0x88, 0x44, 0x22, 0x87, 0xFF, 0x15, 0x44, 0xDB, 0x55, 0x77, 0xAA, + 0xD8, 0xD6, 0x88, 0x55, 0xBB, 0xEE, 0xCF, 0xCC, 0xC8, 0xC5, 0xC2, 0xBE, 0xBB, 0x88, + 0x44, 0x6D, 0x20, 0x87, 0xFF, 0x15, 0x44, 0xD9, 0x42, 0x66, 0x55, 0x77, 0xAA, 0xD4, + 0xD3, 0x88, 0x55, 0xBB, 0xEC, 0xC7, 0xC4, 0xC0, 0x88, 0x44, 0x55, 0x6D, 0x77, 0x1F, + 0x87, 0xFF, 0x11, 0x44, 0xD7, 0x42, 0x66, 0x7E, 0x66, 0x55, 0x77, 0xAA, 0xD1, 0xD1, + 0x88, 0x55, 0x88, 0xAA, 0x44, 0x55, 0x6D, 0x80, 0x77, 0x00, 0x1E, 0x87, 0xFF, 0x0F, + 0x44, 0xD6, 0x42, 0x66, 0x92, 0x90, 0x7E, 0x66, 0x55, 0x77, 0xAA, 0xCF, 0xCE, 0xAA, + 0x55, 0x6D, 0x82, 0x77, 0x00, 0x1C, 0x87, 0xFF, 0x0E, 0x44, 0xD5, 0x42, 0x66, 0x90, + 0x8C, 0x8A, 0x86, 0x7E, 0x66, 0x55, 0x77, 0xAA, 0xCC, 0x88, 0x82, 0x77, 0x01, 0x74, + 0x1B, 0x87, 0xFF, 0x0E, 0x44, 0xD4, 0x42, 0x66, 0x8C, 0x89, 0x86, 0x84, 0x81, 0x7F, + 0x71, 0x66, 0x55, 0xCB, 0x88, 0x81, 0x77, 0x02, 0x72, 0x6B, 0x19, 0x87, 0xFF, 0x0E, + 0x44, 0xD3, 0x42, 0x66, 0x88, 0x86, 0x83, 0x81, 0x7E, 0x7C, 0x7A, 0x78, 0x44, 0xCB, + 0x88, 0x80, 0x77, 0x03, 0x72, 0x6A, 0x63, 0x18, 0x87, 0xFF, 0x15, 0x44, 0xD1, 0x00, + 0x33, 0x85, 0x83, 0x80, 0x7E, 0x7B, 0x7A, 0x78, 0x75, 0x44, 0xCA, 0x88, 0x77, 0x77, + 0x70, 0x69, 0x63, 0x5B, 0x17, 0x87, 0xFF, 0x15, 0x44, 0x00, 0x33, 0x66, 0x82, 0x7F, + 0x7D, 0x7B, 0x79, 0x77, 0x75, 0x73, 0x44, 0xC9, 0x88, 0x76, 0x6E, 0x67, 0x61, 0x5B, + 0x55, 0x15, 0x80, 0xFF, 0x8D, 0x00, 0x0C, 0x74, 0x72, 0x71, 0x44, 0xC7, 0x88, 0x6D, + 0x66, 0x5F, 0x59, 0x53, 0x4F, 0x14, 0x80, 0xFF, 0x00, 0x00, 0x83, 0x66, 0x00, 0x00, + 0x84, 0xCC, 0x0D, 0x00, 0x33, 0x71, 0x6F, 0x44, 0xC6, 0x88, 0x64, 0x5E, 0x58, 0x52, + 0x4E, 0x48, 0x12, 0x80, 0xFF, 0x00, 0x00, 0x80, 0x66, 0x06, 0x00, 0x66, 0x66, 0x00, + 0xCC, 0xCC, 0x00, 0x81, 0xCC, 0x0D, 0x00, 0x33, 0x6E, 0x6C, 0x44, 0xC6, 0x88, 0x5D, + 0x57, 0x52, 0x4D, 0x47, 0x43, 0x10, 0x80, 0xFF, 0x00, 0x00, 0x80, 0x66, 0x02, 0x00, + 0x66, 0x00, 0x80, 0xCC, 0x00, 0x00, 0x81, 0xCC, 0x0D, 0x00, 0x33, 0x22, 0x6A, 0x44, + 0xC4, 0x88, 0x55, 0x51, 0x4B, 0x46, 0x42, 0x3D, 0x0F, 0x80, 0xFF, 0x00, 0x00, 0x82, + 0x66, 0x00, 0x00, 0x85, 0xCC, 0x0D, 0x00, 0x33, 0x6D, 0x22, 0x44, 0xC4, 0x88, 0x50, + 0x4B, 0x46, 0x41, 0x3C, 0x37, 0x0C, 0x80, 0xFF, 0x00, 0x00, 0x82, 0x66, 0x00, 0x00, + 0x85, 0xCC, 0x11, 0x00, 0x33, 0xC4, 0xAA, 0x88, 0xC3, 0x88, 0x49, 0x44, 0x40, 0x3C, + 0x37, 0x33, 0x0B, 0x22, 0xFF, 0xFF, 0x00, 0x82, 0x66, 0x00, 0x00, 0x85, 0xCC, 0x0D, + 0x00, 0x33, 0x00, 0xC3, 0xC3, 0xC1, 0x88, 0x44, 0x3F, 0x3A, 0x36, 0x33, 0x30, 0x08, + 0x80, 0x22, 0x00, 0x00, 0x82, 0x66, 0x81, 0x00, 0x82, 0xCC, 0x0D, 0x00, 0x33, 0x55, + 0x00, 0x88, 0xC1, 0x88, 0x3E, 0x39, 0x34, 0x33, 0x33, 0x2B, 0x06, 0x80, 0x22, 0x00, + 0x00, 0x84, 0x66, 0x00, 0x00, 0x83, 0xCC, 0x0D, 0x00, 0x33, 0xC1, 0xC1, 0xC0, 0xC0, + 0x88, 0x38, 0x34, 0x33, 0x33, 0x2E, 0x22, 0x13, 0x80, 0x22, 0x04, 0x00, 0x66, 0x66, + 0x00, 0x00, 0x80, 0x66, 0x14, 0x00, 0xCC, 0xCC, 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x33, + 0xC1, 0xC0, 0xC0, 0xBF, 0x88, 0x33, 0x33, 0x30, 0x2E, 0x22, 0x13, 0x08, 0x80, 0x22, + 0x00, 0x00, 0x81, 0x66, 0x83, 0x00, 0x81, 0xCC, 0x0C, 0x00, 0x33, 0xBF, 0xBF, 0xBE, + 0xBE, 0x88, 0x33, 0x30, 0x27, 0x11, 0x13, 0x08, 0x81, 0x22, 0x00, 0x00, 0x84, 0x66, + 0x00, 0x00, 0x83, 0xCC, 0x0B, 0x00, 0x33, 0xBF, 0xBE, 0xBE, 0xBD, 0x88, 0x2E, 0x22, + 0x11, 0x13, 0x08, 0x81, 0x22, 0x00, 0xFF, 0x8D, 0x00, 0x09, 0x11, 0x22, 0x55, 0x88, + 0xBC, 0x44, 0x18, 0x13, 0x11, 0x08, 0x81, 0x22, 0x80, 0xFF, 0x85, 0x22, 0x00, 0x00, + 0x82, 0x22, 0x09, 0x00, 0x00, 0x22, 0x22, 0x19, 0x11, 0x00, 0x22, 0x11, 0x08, 0x81, + 0x22, 0x89, 0xFF, 0x04, 0x22, 0x00, 0x22, 0x22, 0xFF, 0x80, 0x22, 0x01, 0x00, 0x11, + 0x80, 0x22, 0x01, 0x11, 0x08, 0x81, 0x22, 0x91, 0xFF, 0x80, 0x22, 0x80, 0x11, 0x82, + 0x22, 0x82, 0xFF, 0x8A, 0xFF, 0x04, 0x22, 0x55, 0x33, 0x22, 0x22, 0x96, 0xFF, 0x09, + 0x22, 0x55, 0x44, 0x88, 0xBB, 0x88, 0x44, 0x33, 0x22, 0x22, 0x91, 0xFF, 0x0D, 0x22, + 0x55, 0x44, 0x88, 0xBB, 0xFF, 0xE6, 0xE0, 0xDC, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x8D, + 0xFF, 0x11, 0x22, 0x55, 0x44, 0x88, 0xBB, 0xFF, 0xEE, 0xE9, 0xE4, 0xDF, 0xDA, 0xD6, + 0xD1, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x8B, 0xFF, 0x13, 0x44, 0x88, 0x55, 0xBB, 0xFF, + 0xEE, 0xEC, 0xE7, 0xE1, 0xDC, 0xD8, 0xD4, 0xD0, 0xCC, 0xC8, 0xAA, 0x88, 0x44, 0x22, + 0x22, 0x89, 0xFF, 0x15, 0x44, 0xDD, 0xAA, 0x88, 0x55, 0xBB, 0xFF, 0xE5, 0xE0, 0xDB, + 0xD6, 0xD2, 0xCE, 0xCB, 0xC7, 0xC4, 0xC1, 0xAA, 0x88, 0x44, 0x22, 0x22, 0x87, 0xFF, + 0x15, 0x44, 0xDB, 0xDB, 0xDA, 0xD9, 0x88, 0x55, 0xBB, 0xEE, 0xD9, 0xD6, 0xD1, 0xCE, + 0xCA, 0xC7, 0xC3, 0xC0, 0xBD, 0xBB, 0x88, 0x44, 0x22, 0x87, 0xFF, 0x15, 0x44, 0xDA, + 0x55, 0x77, 0xAA, 0xD7, 0xD7, 0x88, 0x55, 0xBB, 0xEE, 0xD0, 0xCC, 0xC9, 0xC6, 0xC2, + 0xBE, 0xBB, 0x88, 0x44, 0x6D, 0x21, 0x87, 0xFF, 0x15, 0x44, 0xD8, 0x42, 0xCC, 0x55, + 0x77, 0xAA, 0xD4, 0xD3, 0x88, 0x55, 0xBB, 0xEC, 0xC8, 0xC4, 0xC0, 0x88, 0x44, 0x55, + 0x6D, 0x77, 0x20, 0x87, 0xFF, 0x11, 0x44, 0xD7, 0x42, 0xCC, 0xE5, 0xCC, 0x55, 0x77, + 0xAA, 0xD1, 0xD1, 0x88, 0x55, 0x88, 0xAA, 0x44, 0x55, 0x6D, 0x80, 0x77, 0x00, 0x1D, + 0x87, 0xFF, 0x0F, 0x44, 0xD6, 0x42, 0xCC, 0xF9, 0xF6, 0xE5, 0xCC, 0x55, 0x77, 0xAA, + 0xCF, 0xCF, 0xAA, 0x55, 0x6D, 0x82, 0x77, 0x00, 0x1C, 0x87, 0xFF, 0x0E, 0x44, 0xD5, + 0x42, 0xCC, 0xF5, 0xF2, 0xEF, 0xED, 0xE5, 0xCC, 0x55, 0x77, 0xAA, 0xCD, 0x88, 0x82, + 0x77, 0x01, 0x74, 0x1B, 0x87, 0xFF, 0x0E, 0x44, 0xD3, 0x42, 0xCC, 0xF2, 0xEF, 0xEC, + 0xE9, 0xE7, 0xE5, 0xD7, 0xCC, 0x55, 0xCB, 0x88, 0x81, 0x77, 0x02, 0x72, 0x6C, 0x1A, + 0x87, 0xFF, 0x0E, 0x44, 0xD2, 0x42, 0xCC, 0xEE, 0xEB, 0xE9, 0xE7, 0xE5, 0xE3, 0xE0, + 0xDD, 0x44, 0xCA, 0x88, 0x80, 0x77, 0x03, 0x71, 0x6A, 0x63, 0x18, 0x87, 0xFF, 0x15, + 0x44, 0xD1, 0x00, 0x66, 0xEB, 0xE9, 0xE6, 0xE4, 0xE1, 0xE0, 0xDD, 0xDC, 0x44, 0xC9, + 0x88, 0x77, 0x77, 0x70, 0x69, 0x62, 0x5C, 0x17, 0x87, 0xFF, 0x15, 0x44, 0x00, 0x66, + 0xCC, 0xE8, 0xE6, 0xE3, 0xE1, 0xDF, 0xDD, 0xDB, 0xD9, 0x44, 0xC8, 0x88, 0x76, 0x6F, + 0x68, 0x60, 0x5A, 0x55, 0x15, 0x80, 0xFF, 0x8D, 0x00, 0x0C, 0xDB, 0xD9, 0xD7, 0x44, + 0xC7, 0x88, 0x6D, 0x66, 0x5F, 0x59, 0x54, 0x4F, 0x14, 0x80, 0xFF, 0x00, 0x00, 0x83, + 0xCC, 0x00, 0x00, 0x84, 0xFF, 0x0D, 0x00, 0x99, 0xD7, 0xD4, 0x44, 0xC6, 0x88, 0x65, + 0x5E, 0x58, 0x53, 0x4D, 0x49, 0x12, 0x80, 0xFF, 0x00, 0x00, 0x80, 0xCC, 0x06, 0x55, + 0xCC, 0xCC, 0x00, 0xFF, 0xFF, 0x00, 0x81, 0xFF, 0x0D, 0x00, 0x99, 0xD5, 0xD2, 0x44, + 0xC5, 0x88, 0x5D, 0x57, 0x51, 0x4C, 0x47, 0x42, 0x11, 0x80, 0xFF, 0x00, 0x00, 0x80, + 0xCC, 0x02, 0x55, 0xCC, 0x00, 0x80, 0xFF, 0x00, 0x00, 0x81, 0xFF, 0x0D, 0x00, 0x66, + 0x22, 0xD0, 0x44, 0xC4, 0x88, 0x56, 0x51, 0x4C, 0x47, 0x42, 0x3D, 0x0E, 0x80, 0xFF, + 0x00, 0x00, 0x82, 0xCC, 0x00, 0x00, 0x85, 0xFF, 0x0D, 0x00, 0x99, 0x6D, 0x22, 0x44, + 0xC3, 0x88, 0x4F, 0x4B, 0x45, 0x41, 0x3C, 0x38, 0x0D, 0x80, 0xFF, 0x00, 0x00, 0x82, + 0xCC, 0x00, 0x00, 0x85, 0xFF, 0x11, 0x00, 0x99, 0xC5, 0xAA, 0x88, 0xC3, 0x88, 0x49, + 0x45, 0x40, 0x3B, 0x37, 0x33, 0x0A, 0x22, 0xFF, 0xFF, 0x00, 0x82, 0xCC, 0x00, 0x00, + 0x85, 0xFF, 0x0D, 0x00, 0x66, 0x00, 0xC3, 0xC2, 0xC2, 0x88, 0x43, 0x3F, 0x3B, 0x36, + 0x33, 0x2F, 0x08, 0x80, 0x22, 0x00, 0x00, 0x82, 0xCC, 0x81, 0x00, 0x82, 0xFF, 0x0D, + 0x00, 0x99, 0x55, 0x00, 0x88, 0xC1, 0x88, 0x3E, 0x39, 0x35, 0x33, 0x33, 0x2C, 0x07, + 0x80, 0x22, 0x00, 0x00, 0x84, 0xCC, 0x00, 0x00, 0x83, 0xFF, 0x01, 0x00, 0x99, 0x80, + 0xC1, 0x08, 0xC0, 0x88, 0x38, 0x34, 0x33, 0x33, 0x2E, 0x22, 0x13, 0x80, 0x22, 0x04, + 0x00, 0xCC, 0xCC, 0x55, 0x55, 0x80, 0xCC, 0x14, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, + 0xFF, 0x00, 0x99, 0xC0, 0xC1, 0xBF, 0xBF, 0x88, 0x33, 0x33, 0x2F, 0x2E, 0x22, 0x13, + 0x08, 0x80, 0x22, 0x00, 0x00, 0x81, 0xCC, 0x80, 0x55, 0x80, 0x00, 0x81, 0xFF, 0x01, + 0x00, 0x99, 0x80, 0xBF, 0x07, 0xBE, 0x88, 0x33, 0x2F, 0x28, 0x11, 0x13, 0x08, 0x81, + 0x22, 0x00, 0x00, 0x84, 0xCC, 0x00, 0x00, 0x83, 0xFF, 0x0B, 0x00, 0x99, 0xBE, 0xBE, + 0xBD, 0xBD, 0x88, 0x2E, 0x22, 0x11, 0x13, 0x08, 0x81, 0x22, 0x00, 0xFF, 0x8D, 0x00, + 0x09, 0x11, 0x22, 0x55, 0x88, 0xBC, 0x44, 0x18, 0x13, 0x11, 0x08, 0x81, 0x22, 0x80, + 0xFF, 0x85, 0x22, 0x00, 0x00, 0x82, 0x22, 0x09, 0x00, 0x00, 0x22, 0x22, 0x1A, 0x11, + 0x00, 0x22, 0x11, 0x08, 0x81, 0x22, 0x89, 0xFF, 0x04, 0x22, 0x00, 0x22, 0x22, 0xFF, + 0x80, 0x22, 0x01, 0x00, 0x11, 0x80, 0x22, 0x01, 0x11, 0x08, 0x81, 0x22, 0x91, 0xFF, + 0x80, 0x22, 0x80, 0x11, 0x82, 0x22, 0x82, 0xFF, 0x6C, 0x38, 0x6D, 0x6B, 0x00, 0x00, + 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3C, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x18, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0x2C, 0x11, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x86, 0x63, 0x2C, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xA0, 0x89, 0x3E, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x97, 0x71, 0x34, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x88, 0x4C, 0x18, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x88, 0x4C, + 0x23, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xAA, 0x88, 0x4C, 0x23, 0x00, 0x00, 0x00, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, + 0x4C, 0xFF, 0x86, 0x4C, 0x4C, 0x4C, 0x9A, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xAA, 0x88, 0x4C, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xFF, 0x4C, 0x18, 0x00, 0x18, 0x3C, 0x9A, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x88, 0x4C, 0x23, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x3C, 0x9A, 0xFF, 0xFF, 0xFF, 0xA0, 0x88, 0x4C, 0x23, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00}; + +unsigned char VersResource[44] = {0x00, 0x01, 0x20, 0x00, 0x00, 0x00, 0x03, 0x30, 0x2E, 0x31, 0x21, 0x30, 0x2E, 0x31, + 0x2C, 0x20, 0xA9, 0x20, 0x32, 0x30, 0x31, 0x31, 0x2D, 0x32, 0x30, 0x31, 0x38, 0x20, + 0x4E, 0x61, 0x74, 0x61, 0x6C, 0x69, 0x61, 0x20, 0x50, 0x6F, 0x72, 0x74, 0x69, 0x6C, + 0x6C, 0x6F}; + +unsigned char PictResource[9874] = {0x26, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xAB, 0x00, 0x11, 0x02, 0xFF, + 0x0C, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, + 0x00, 0x01, 0x00, 0x0A, 0x80, 0x01, 0x80, 0x01, 0x7F, 0xFF, 0x7F, 0xFF, 0x00, 0x9A, + 0x00, 0x00, 0x00, 0xFF, 0x82, 0xAC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xAB, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x48, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x03, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x3C, 0xCE, 0x35, 0x68, 0x3C, 0xCE, 0x3A, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x00, 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xAB, 0x00, 0x40, 0x00, 0x25, + 0xA0, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB4, 0xC9, 0xEE, 0xC1, 0xE7, + 0x9F, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xC1, 0xEF, 0x9E, + 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBF, 0xFF, 0x00, 0x28, 0xA1, 0xD6, 0x03, + 0xD7, 0xDA, 0xD2, 0xB6, 0xFE, 0xBE, 0x03, 0xBD, 0xB2, 0xE9, 0xEC, 0xC1, 0xE7, 0x9F, + 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xC1, 0xEF, 0x9E, 0xFF, + 0x00, 0xF4, 0xFE, 0xF8, 0x01, 0xF7, 0xF4, 0xBF, 0xFF, 0x00, 0x29, 0xA1, 0xD6, 0x0A, + 0xD8, 0xCC, 0xD5, 0xB8, 0xBF, 0xAE, 0xBF, 0xBA, 0xAD, 0xE3, 0xE9, 0xC1, 0xE7, 0xA0, + 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xC0, 0xEF, 0x9E, + 0xFF, 0x05, 0xF5, 0xF9, 0xE8, 0xF9, 0xF6, 0xF3, 0xBF, 0xFF, 0x00, 0x29, 0xA1, 0xD6, + 0x0A, 0xD9, 0xCF, 0xB4, 0xBA, 0xC0, 0xAF, 0xC0, 0xB7, 0xCD, 0xF2, 0xE8, 0xC1, 0xE7, + 0xA0, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xC0, 0xEF, + 0x9F, 0xFF, 0x05, 0xF3, 0xF6, 0xFA, 0xE9, 0xFA, 0xF5, 0xBE, 0xFF, 0x00, 0x27, 0xA1, + 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBE, 0xC1, 0xB0, 0xC0, 0xB3, 0xD9, 0xED, 0xC0, 0xE7, + 0xA0, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xC0, 0xEF, 0x9F, + 0xFF, 0x05, 0xF4, 0xF8, 0xFB, 0xEA, 0xFA, 0xF4, 0xBE, 0xFF, 0x00, 0x29, 0xA1, 0xD6, + 0x09, 0xDB, 0xD3, 0xB8, 0xBF, 0xB0, 0xB0, 0xBC, 0xAE, 0xE4, 0xEA, 0xC0, 0xE7, 0xA1, + 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xC0, 0xEF, + 0x9F, 0xFF, 0x05, 0xF5, 0xF9, 0xEA, 0xEA, 0xF8, 0xF3, 0xBE, 0xFF, 0x00, 0x29, 0xA2, + 0xD6, 0x0A, 0xD7, 0xDE, 0xB2, 0xBA, 0xBF, 0xAF, 0xC0, 0xB9, 0xCE, 0xF3, 0xE8, 0xC0, + 0xE7, 0xA1, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xBF, + 0xEF, 0xA0, 0xFF, 0x05, 0xF3, 0xF6, 0xF9, 0xE9, 0xFA, 0xF6, 0xBD, 0xFF, 0x00, 0x27, + 0xA2, 0xD6, 0x03, 0xD8, 0xD0, 0xB5, 0xBD, 0xFE, 0xBE, 0x02, 0xB4, 0xC9, 0xEE, 0xBF, + 0xE7, 0xA1, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xBF, 0xEF, + 0xA0, 0xFF, 0x01, 0xF4, 0xF7, 0xFE, 0xF8, 0x00, 0xF4, 0xBD, 0xFF, 0x00, 0x25, 0xA2, + 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB2, 0xE9, 0xEC, 0xBF, 0xE7, 0xA1, + 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xBF, 0xEF, 0xA0, 0xFF, + 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBD, 0xFF, 0x00, 0x28, 0xA2, 0xD6, 0x09, 0xDB, + 0xD4, 0xB9, 0xBF, 0xBE, 0xBE, 0xBA, 0xAD, 0xE3, 0xE9, 0xBF, 0xE7, 0xA2, 0xDE, 0x02, + 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xBE, 0xEF, 0xA0, 0xFF, 0x05, + 0xF6, 0xF9, 0xF8, 0xF8, 0xF6, 0xF3, 0xBD, 0xFF, 0x00, 0x29, 0xA3, 0xD6, 0x0A, 0xD7, + 0xDE, 0xB3, 0xAA, 0xBF, 0xAD, 0xBE, 0xB8, 0xCE, 0xF3, 0xE8, 0xBF, 0xE7, 0xA2, 0xDE, + 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xBE, 0xEF, 0xA1, 0xFF, + 0x05, 0xF4, 0xE6, 0xF9, 0xE7, 0xF8, 0xF5, 0xBC, 0xFF, 0x00, 0x27, 0xA3, 0xD6, 0x03, + 0xD8, 0xD0, 0xB6, 0xBE, 0xFE, 0xBF, 0x02, 0xB5, 0xC9, 0xEE, 0xBE, 0xE7, 0xA2, 0xDE, + 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xBE, 0xEF, 0xA1, 0xFF, 0x01, + 0xF5, 0xF8, 0xFE, 0xF9, 0x00, 0xF5, 0xBC, 0xFF, 0x00, 0x27, 0xA3, 0xD6, 0x09, 0xD9, + 0xD1, 0xB6, 0xBD, 0xBD, 0xBE, 0xAD, 0xB3, 0xE9, 0xEC, 0xBE, 0xE7, 0xA2, 0xDE, 0x01, + 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xBE, 0xEF, 0xA1, 0xFF, 0x05, 0xF4, + 0xF7, 0xF7, 0xF8, 0xE7, 0xF5, 0xBC, 0xFF, 0x00, 0x27, 0xA3, 0xD6, 0x09, 0xD9, 0xD1, + 0xB6, 0xBE, 0xBE, 0xBF, 0xBB, 0xAF, 0xE4, 0xEA, 0xBE, 0xE7, 0xA2, 0xDE, 0x01, 0xE4, + 0xC8, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xBD, 0xEF, 0xA1, 0xFF, 0x05, 0xF4, 0xF8, + 0xF8, 0xF9, 0xF7, 0xF4, 0xBC, 0xFF, 0x00, 0x27, 0xA3, 0xD6, 0x09, 0xDB, 0xD3, 0xB8, + 0xBE, 0xAE, 0xBF, 0xB9, 0xCF, 0xE1, 0xE9, 0xBE, 0xE7, 0xA3, 0xDE, 0x02, 0xE0, 0xE6, + 0xCA, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xBD, 0xEF, 0xA1, 0xFF, 0x04, 0xF5, 0xF8, + 0xE8, 0xF9, 0xF6, 0xBB, 0xFF, 0x00, 0x29, 0xA4, 0xD6, 0x0A, 0xD7, 0xDE, 0xB2, 0xBA, + 0xBE, 0xBF, 0xAE, 0xB7, 0xCC, 0xF1, 0xE8, 0xBE, 0xE7, 0xA3, 0xDE, 0x02, 0xE2, 0xC6, + 0xCC, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBD, 0xEF, 0xA2, 0xFF, 0x05, 0xF3, 0xF6, + 0xF8, 0xF9, 0xE8, 0xF5, 0xBB, 0xFF, 0x00, 0x27, 0xA4, 0xD6, 0x09, 0xD8, 0xD0, 0xB5, + 0xBD, 0xBE, 0xC0, 0xC0, 0xB6, 0xC9, 0xEE, 0xBD, 0xE7, 0xA3, 0xDE, 0x01, 0xE4, 0xC8, + 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xBD, 0xEF, 0xA2, 0xFF, 0x05, 0xF4, 0xF7, 0xF8, + 0xFA, 0xFA, 0xF6, 0xBB, 0xFF, 0x00, 0x27, 0xA4, 0xD6, 0x09, 0xD9, 0xD1, 0xB7, 0xBE, + 0xBF, 0xAE, 0xAE, 0xB3, 0xE9, 0xEC, 0xBD, 0xE7, 0xA3, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, + 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xBD, 0xEF, 0xA2, 0xFF, 0x05, 0xF5, 0xF8, 0xF9, 0xE8, + 0xE8, 0xF5, 0xBB, 0xFF, 0x00, 0x27, 0xA4, 0xD6, 0x03, 0xD9, 0xD1, 0xB7, 0xAD, 0xFE, + 0xBF, 0x02, 0xB1, 0xE7, 0xEA, 0xBD, 0xE7, 0xA3, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, + 0x02, 0xCD, 0xC0, 0xFA, 0xBC, 0xEF, 0xA2, 0xFF, 0x01, 0xF5, 0xE7, 0xFE, 0xF9, 0x00, + 0xF5, 0xBB, 0xFF, 0x00, 0x28, 0xA4, 0xD6, 0x09, 0xDA, 0xD2, 0xB8, 0xBE, 0xBE, 0xBD, + 0xBA, 0xAD, 0xE3, 0xE9, 0xBD, 0xE7, 0xA4, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, + 0x02, 0xCB, 0xCF, 0xF8, 0xBC, 0xEF, 0xA2, 0xFF, 0x05, 0xF6, 0xF8, 0xF8, 0xF7, 0xF6, + 0xF3, 0xBB, 0xFF, 0x00, 0x29, 0xA5, 0xD6, 0x0A, 0xD7, 0xDD, 0xC4, 0xB9, 0xBD, 0xBE, + 0xBE, 0xB9, 0xCE, 0xF3, 0xE8, 0xBD, 0xE7, 0xA4, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, + 0xCE, 0x02, 0xC9, 0xDE, 0xF6, 0xBC, 0xEF, 0xA3, 0xFF, 0x05, 0xF3, 0xF6, 0xF7, 0xF8, + 0xF8, 0xF6, 0xBA, 0xFF, 0x00, 0x27, 0xA5, 0xD6, 0x09, 0xD8, 0xCF, 0xB4, 0xBB, 0xBD, + 0xBE, 0xAD, 0xB6, 0xCA, 0xEF, 0xBC, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, + 0x02, 0xC8, 0xDD, 0xF5, 0xBC, 0xEF, 0xA3, 0xFF, 0x05, 0xF4, 0xF7, 0xF7, 0xF8, 0xE7, + 0xF5, 0xBA, 0xFF, 0x00, 0x27, 0xA5, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBD, 0xBD, 0xBE, + 0xBE, 0xB4, 0xD9, 0xED, 0xBC, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, + 0xC5, 0xDB, 0xF3, 0xBC, 0xEF, 0xA3, 0xFF, 0x05, 0xF4, 0xF7, 0xF7, 0xF8, 0xF8, 0xF5, + 0xBA, 0xFF, 0x00, 0x31, 0xA5, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB1, + 0xE8, 0xEB, 0xEE, 0xE7, 0x04, 0xE8, 0xE9, 0xEB, 0xEA, 0xE9, 0xD4, 0xE7, 0xA4, 0xDE, + 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xEC, 0xEF, 0xFE, 0xF1, 0xD4, + 0xEF, 0xA3, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBA, 0xFF, 0x00, 0x39, 0xA5, + 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB0, 0xE7, 0xEA, 0xF0, 0xE7, 0x07, + 0xE8, 0xEB, 0xF1, 0xE3, 0xE8, 0xD1, 0xEF, 0xE8, 0xD5, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, + 0xC8, 0xFE, 0xCE, 0x02, 0xCD, 0xC0, 0xFA, 0xEE, 0xEF, 0x05, 0xF1, 0xF4, 0xF8, 0xFC, + 0xD5, 0xF5, 0xD4, 0xEF, 0xA3, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBA, 0xFF, + 0x00, 0x46, 0xA5, 0xD6, 0x02, 0xD9, 0xD1, 0xB7, 0xFE, 0xBE, 0x03, 0xBB, 0xAE, 0xE3, + 0xE9, 0xF2, 0xE7, 0x09, 0xE8, 0xEB, 0xF1, 0xE5, 0xCC, 0xAD, 0xB1, 0xA9, 0xE3, 0xEA, + 0xD5, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCB, 0xCF, 0xF8, 0xF0, + 0xEF, 0x08, 0xF1, 0xF5, 0xFB, 0xDC, 0xCF, 0xC2, 0xBD, 0xFB, 0xF1, 0xD5, 0xEF, 0xA3, + 0xFF, 0x00, 0xF5, 0xFE, 0xF8, 0x01, 0xF7, 0xF4, 0xEB, 0xFF, 0x02, 0xF3, 0xF4, 0xF2, + 0xD3, 0xFF, 0x00, 0x4A, 0xA6, 0xD6, 0x0A, 0xD7, 0xDC, 0xD4, 0xB9, 0xAD, 0xBE, 0xBF, + 0xA9, 0xD0, 0xF3, 0xE8, 0xF2, 0xE7, 0x09, 0xEB, 0xE0, 0xCA, 0xB0, 0xB8, 0xBD, 0xBF, + 0xB4, 0xD9, 0xED, 0xD5, 0xE7, 0xA5, 0xDE, 0x02, 0xDF, 0xE5, 0xC9, 0xFE, 0xCE, 0x02, + 0xC9, 0xDE, 0xF6, 0xF1, 0xEF, 0x09, 0xF1, 0xF7, 0xDB, 0xC1, 0xC6, 0xCB, 0xCD, 0xC5, + 0xDB, 0xF3, 0xD5, 0xEF, 0xA3, 0xFF, 0x04, 0xF6, 0xE7, 0xF8, 0xF9, 0xE6, 0xEC, 0xFF, + 0x04, 0xF4, 0xF7, 0xF9, 0xF9, 0xF5, 0xD3, 0xFF, 0x00, 0x4C, 0xA6, 0xD6, 0x09, 0xD8, + 0xCE, 0xB3, 0xBB, 0xBE, 0xBE, 0xBF, 0xA7, 0xCD, 0xF0, 0xF1, 0xE7, 0x0A, 0xED, 0xC5, + 0xB1, 0xBC, 0xB0, 0xB2, 0xB0, 0xB9, 0xCD, 0xF2, 0xE8, 0xD6, 0xE7, 0xA5, 0xDE, 0x02, + 0xE1, 0xD6, 0xCB, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xF1, 0xEF, 0x03, 0xF3, 0xD9, + 0xC3, 0xCC, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xD5, 0xEF, 0xA4, 0xFF, 0x05, 0xF3, + 0xF7, 0xF8, 0xF8, 0xF9, 0xE5, 0xED, 0xFF, 0x05, 0xF3, 0xF8, 0xEA, 0xEC, 0xEA, 0xF7, + 0xD3, 0xFF, 0x00, 0x4D, 0xA6, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFE, 0xBD, 0x03, 0xBE, + 0xB6, 0xCB, 0xEF, 0xF1, 0xE7, 0x0A, 0xED, 0xD9, 0xB3, 0xC0, 0xB2, 0xB5, 0xB2, 0xBD, + 0xAF, 0xE5, 0xEB, 0xD6, 0xE7, 0xA5, 0xDE, 0x02, 0xE3, 0xC7, 0xCD, 0xFE, 0xCE, 0x02, + 0xC8, 0xDD, 0xF5, 0xF1, 0xEF, 0x02, 0xF3, 0xDB, 0xC5, 0xFD, 0xCE, 0x03, 0xCC, 0xC1, + 0xFB, 0xF1, 0xD6, 0xEF, 0xA4, 0xFF, 0x00, 0xF4, 0xFE, 0xF7, 0x01, 0xF8, 0xF5, 0xED, + 0xFF, 0x06, 0xF4, 0xFA, 0xEC, 0xEF, 0xEC, 0xF9, 0xF3, 0xD4, 0xFF, 0x00, 0x4B, 0xA6, + 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB3, 0xD9, 0xED, 0xF1, 0xE7, 0x0B, + 0xEA, 0xE4, 0xAE, 0xBC, 0xB1, 0xB4, 0xB2, 0xC0, 0xB6, 0xCC, 0xF1, 0xE8, 0xD7, 0xE7, + 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xF1, 0xEF, 0x03, + 0xF1, 0xFB, 0xC1, 0xCC, 0xFD, 0xCE, 0x02, 0xC7, 0xDD, 0xF5, 0xD6, 0xEF, 0xA4, 0xFF, + 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xED, 0xFF, 0x06, 0xF3, 0xF8, 0xEB, 0xEE, 0xEC, + 0xFA, 0xF5, 0xD4, 0xFF, 0x00, 0x4B, 0xA6, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, + 0x02, 0xB1, 0xE8, 0xEB, 0xF1, 0xE7, 0x0B, 0xE8, 0xF1, 0xCC, 0xB7, 0xC0, 0xB1, 0xB0, + 0xBF, 0xBA, 0xAE, 0xE4, 0xEA, 0xD7, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, + 0x02, 0xC3, 0xFD, 0xF1, 0xF0, 0xEF, 0x02, 0xF5, 0xDD, 0xC7, 0xFD, 0xCE, 0x03, 0xCC, + 0xC1, 0xFB, 0xF1, 0xD7, 0xEF, 0xA4, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xEC, + 0xFF, 0x06, 0xF6, 0xFA, 0xEB, 0xEA, 0xF9, 0xF6, 0xF3, 0xD5, 0xFF, 0x00, 0x49, 0xA6, + 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB0, 0xE7, 0xEA, 0xF0, 0xE7, 0x03, + 0xEB, 0xE5, 0xAF, 0xBB, 0xFE, 0xBF, 0x03, 0xBE, 0xB4, 0xD9, 0xED, 0xD7, 0xE7, 0xA5, + 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xEF, 0xEF, 0x03, 0xF1, 0xFB, + 0xC1, 0xCC, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xD7, 0xEF, 0xA4, 0xFF, 0x00, 0xF4, + 0xFD, 0xF7, 0x00, 0xF4, 0xEC, 0xFF, 0x01, 0xF3, 0xF7, 0xFE, 0xF9, 0x01, 0xF8, 0xF5, + 0xD5, 0xFF, 0x00, 0x48, 0xA6, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB0, + 0xE7, 0xEA, 0xF0, 0xE7, 0x0B, 0xE8, 0xF3, 0xCE, 0xB8, 0xBD, 0xBD, 0xBE, 0xAD, 0xB8, + 0xCD, 0xF2, 0xE8, 0xD8, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x01, 0xC1, + 0xFB, 0xEE, 0xEF, 0x02, 0xF7, 0xDF, 0xCA, 0xFD, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xD7, + 0xEF, 0xA4, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xEB, 0xFF, 0x05, 0xF5, 0xF7, + 0xF7, 0xF8, 0xE7, 0xF6, 0xD5, 0xFF, 0x00, 0x4B, 0xA6, 0xD6, 0x03, 0xD9, 0xD1, 0xB6, + 0xBD, 0xFE, 0xBE, 0x02, 0xB0, 0xE7, 0xEA, 0xEF, 0xE7, 0x0A, 0xEE, 0xC9, 0xB4, 0xBE, + 0xBF, 0xC0, 0xBF, 0xBB, 0xAF, 0xE5, 0xEB, 0xD8, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, + 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xEE, 0xEF, 0x02, 0xF3, 0xDB, 0xC5, 0xFD, 0xCE, 0x03, + 0xCC, 0xC1, 0xFB, 0xF1, 0xD8, 0xEF, 0xA4, 0xFF, 0x01, 0xF4, 0xF7, 0xFE, 0xF8, 0x00, + 0xF4, 0xEB, 0xFF, 0x06, 0xF4, 0xF8, 0xF9, 0xFA, 0xF9, 0xF7, 0xF3, 0xD6, 0xFF, 0x00, + 0x4D, 0xA6, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBD, 0xBF, 0xAE, 0xBF, 0xB0, 0xE7, 0xEA, + 0xEF, 0xE7, 0x0B, 0xEB, 0xE5, 0xAF, 0xBC, 0xB0, 0xB1, 0xC0, 0xBE, 0xB6, 0xCC, 0xF1, + 0xE8, 0xD9, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCD, 0xC0, 0xFA, + 0xEE, 0xEF, 0x03, 0xF1, 0xFB, 0xC1, 0xCC, 0xFD, 0xCE, 0x02, 0xC6, 0xDC, 0xF4, 0xD8, + 0xEF, 0xA4, 0xFF, 0x05, 0xF4, 0xF7, 0xF9, 0xE8, 0xF9, 0xF4, 0xEB, 0xFF, 0x06, 0xF3, + 0xF8, 0xEA, 0xEB, 0xFA, 0xF8, 0xF5, 0xD6, 0xFF, 0x00, 0x4C, 0xA6, 0xD6, 0x09, 0xD9, + 0xD1, 0xB6, 0xBE, 0xC0, 0xAF, 0xBC, 0xAD, 0xE3, 0xE9, 0xEF, 0xE7, 0x0B, 0xE8, 0xF1, + 0xCC, 0xB8, 0xB0, 0xB2, 0xB0, 0xBF, 0xBA, 0xAD, 0xE3, 0xE9, 0xD9, 0xE7, 0xA5, 0xDE, + 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCB, 0xCF, 0xF8, 0xED, 0xEF, 0x02, 0xF5, 0xDD, + 0xC7, 0xFD, 0xCE, 0x02, 0xCB, 0xCF, 0xF8, 0xD8, 0xEF, 0xA4, 0xFF, 0x05, 0xF4, 0xF8, + 0xFA, 0xE9, 0xF8, 0xF3, 0xEA, 0xFF, 0x06, 0xF7, 0xEA, 0xEC, 0xEA, 0xF9, 0xF6, 0xF3, + 0xD7, 0xFF, 0x00, 0x4C, 0xA6, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBF, 0xAF, 0xC0, 0xB9, + 0xCE, 0xF3, 0xE8, 0xEE, 0xE7, 0x0A, 0xEC, 0xE6, 0xB1, 0xBC, 0xC2, 0xB0, 0xC0, 0xBD, + 0xB2, 0xE9, 0xEC, 0xD9, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xC9, + 0xDE, 0xF6, 0xED, 0xEF, 0x03, 0xF1, 0xFB, 0xC1, 0xCC, 0xFE, 0xCE, 0x03, 0xCD, 0xC2, + 0xFC, 0xF1, 0xD9, 0xEF, 0xA4, 0xFF, 0x04, 0xF4, 0xF9, 0xE9, 0xFA, 0xF6, 0xE9, 0xFF, + 0x06, 0xF4, 0xF8, 0xFC, 0xEA, 0xFA, 0xF7, 0xF4, 0xD7, 0xFF, 0x00, 0x49, 0xA6, 0xD6, + 0x08, 0xD9, 0xD1, 0xB6, 0xC0, 0xAF, 0xC0, 0xB6, 0xCB, 0xF0, 0xED, 0xE7, 0x0B, 0xE9, + 0xE1, 0xCF, 0xB8, 0xC0, 0xAF, 0xC0, 0xBD, 0xB6, 0xCC, 0xF1, 0xE8, 0xDA, 0xE7, 0xA5, + 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xEC, 0xEF, 0x02, 0xF7, + 0xDF, 0xCA, 0xFD, 0xCE, 0x02, 0xC7, 0xDD, 0xF5, 0xD9, 0xEF, 0xA4, 0xFF, 0x04, 0xF4, + 0xFA, 0xE9, 0xFA, 0xF4, 0xE8, 0xFF, 0x05, 0xF5, 0xFA, 0xE9, 0xFA, 0xF7, 0xF5, 0xD7, + 0xFF, 0x00, 0x4A, 0xA6, 0xD6, 0x08, 0xD9, 0xD1, 0xB6, 0xBF, 0xAE, 0xBF, 0xB6, 0xCB, + 0xF0, 0xED, 0xE7, 0x0B, 0xE8, 0xEF, 0xCA, 0xB4, 0xBF, 0xAE, 0xBF, 0xBD, 0xBA, 0xAD, + 0xE3, 0xE9, 0xDA, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, + 0xF5, 0xEC, 0xEF, 0x02, 0xF3, 0xDB, 0xC5, 0xFD, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xD9, + 0xEF, 0xA4, 0xFF, 0x04, 0xF4, 0xF9, 0xE8, 0xF9, 0xF4, 0xE8, 0xFF, 0x06, 0xF4, 0xF9, + 0xE8, 0xF9, 0xF7, 0xF6, 0xF3, 0xD8, 0xFF, 0x00, 0x4A, 0xA6, 0xD6, 0x02, 0xD9, 0xD1, + 0xB6, 0xFE, 0xBE, 0x02, 0xB6, 0xCB, 0xF0, 0xEC, 0xE7, 0x0A, 0xEB, 0xE5, 0xB0, 0xBC, + 0xBF, 0xBB, 0xB6, 0xB2, 0xA7, 0xE1, 0xE9, 0xDA, 0xE7, 0xA5, 0xDE, 0x01, 0xE4, 0xC8, + 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xEC, 0xEF, 0x09, 0xF1, 0xFB, 0xC1, 0xCC, 0xCE, + 0xCC, 0xC7, 0xC3, 0xB9, 0xF7, 0xD9, 0xEF, 0xA4, 0xFF, 0x00, 0xF4, 0xFE, 0xF8, 0x00, + 0xF4, 0xE8, 0xFF, 0x06, 0xF4, 0xF8, 0xF9, 0xF7, 0xF5, 0xF4, 0xF2, 0xD8, 0xFF, 0x00, + 0x46, 0xA6, 0xD6, 0x02, 0xDB, 0xD3, 0xB8, 0xFE, 0xBD, 0x02, 0xB6, 0xCB, 0xF0, 0xEC, + 0xE7, 0x0A, 0xE8, 0xF1, 0xCB, 0xA2, 0xB5, 0xAF, 0xCC, 0xE9, 0xE1, 0xEE, 0xE8, 0xDA, + 0xE7, 0xA6, 0xDE, 0x02, 0xDF, 0xE5, 0xC9, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xEB, + 0xEF, 0x08, 0xF5, 0xDB, 0xC3, 0xC5, 0xC1, 0xDD, 0xFD, 0xF7, 0xF3, 0xD9, 0xEF, 0xA4, + 0xFF, 0x00, 0xF5, 0xFE, 0xF7, 0x00, 0xF4, 0xE7, 0xFF, 0x02, 0xE3, 0xF5, 0xF3, 0xD5, + 0xFF, 0x00, 0x3E, 0xA7, 0xD6, 0x09, 0xD7, 0xDE, 0xB2, 0xBA, 0xBE, 0xBF, 0xBF, 0xB7, + 0xCB, 0xF0, 0xEB, 0xE7, 0x08, 0xEB, 0xE2, 0xC9, 0xCB, 0xE5, 0xF1, 0xEC, 0xE9, 0xE8, + 0xD9, 0xE7, 0xA6, 0xDE, 0x02, 0xE1, 0xD6, 0xCB, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, + 0xEB, 0xEF, 0x06, 0xF1, 0xF7, 0xD9, 0xDB, 0xFB, 0xF5, 0xF1, 0xD7, 0xEF, 0xA5, 0xFF, + 0x05, 0xF3, 0xF6, 0xF8, 0xF9, 0xF9, 0xF5, 0xB8, 0xFF, 0x00, 0x38, 0xA7, 0xD6, 0x09, + 0xD8, 0xD0, 0xB5, 0xBD, 0xBF, 0xB0, 0xB0, 0xB8, 0xCB, 0xF0, 0xEB, 0xE7, 0x05, 0xE8, + 0xEC, 0xDC, 0xEF, 0xEB, 0xE8, 0xD6, 0xE7, 0xA6, 0xDE, 0x02, 0xE3, 0xC7, 0xCD, 0xFE, + 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xEA, 0xEF, 0x03, 0xF1, 0xF3, 0xF3, 0xF1, 0xD5, 0xEF, + 0xA5, 0xFF, 0x05, 0xF4, 0xF7, 0xF9, 0xEA, 0xEA, 0xF6, 0xB8, 0xFF, 0x00, 0x2B, 0xA7, + 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBD, 0xC0, 0xB2, 0xB2, 0xB9, 0xCB, 0xF0, 0xEA, 0xE7, + 0xFE, 0xE8, 0xD4, 0xE7, 0xA6, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC8, 0xDD, + 0xF5, 0xBA, 0xEF, 0xA5, 0xFF, 0x05, 0xF4, 0xF7, 0xFA, 0xEC, 0xEC, 0xF7, 0xB8, 0xFF, + 0x00, 0x2F, 0xBD, 0xD6, 0x04, 0xD7, 0xD8, 0xD9, 0xD8, 0xD7, 0xF0, 0xD6, 0x09, 0xD9, + 0xD1, 0xB6, 0xBD, 0xC0, 0xB2, 0xB2, 0xB9, 0xCB, 0xF0, 0xBA, 0xE7, 0xA6, 0xDE, 0x01, + 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xA5, 0xFF, 0x05, 0xF4, + 0xF7, 0xFA, 0xEC, 0xEC, 0xF7, 0xB8, 0xFF, 0x00, 0x36, 0xBF, 0xD6, 0x07, 0xD7, 0xD8, + 0xDA, 0xCC, 0xCD, 0xCC, 0xD9, 0xD7, 0xF1, 0xD6, 0x09, 0xD8, 0xD0, 0xB5, 0xBD, 0xC0, + 0xB2, 0xB2, 0xB9, 0xCB, 0xF0, 0xBA, 0xE7, 0xBC, 0xDE, 0xFE, 0xDF, 0xEE, 0xDE, 0x01, + 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xA5, 0xFF, 0x05, 0xF4, + 0xF7, 0xFA, 0xEC, 0xEC, 0xF7, 0xB8, 0xFF, 0x00, 0x41, 0xC2, 0xD6, 0x0A, 0xD7, 0xD8, + 0xD9, 0xDA, 0xCA, 0xCE, 0xD3, 0xB0, 0xD1, 0xCA, 0xD8, 0xF1, 0xD6, 0x09, 0xD8, 0xE1, + 0xB5, 0xBD, 0xBF, 0xB0, 0xB0, 0xB8, 0xCB, 0xF0, 0xBA, 0xE7, 0xBD, 0xDE, 0x03, 0xDF, + 0xE1, 0xD0, 0xE0, 0xEE, 0xDE, 0x02, 0xE3, 0xC7, 0xCD, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, + 0xF5, 0xBA, 0xEF, 0xBB, 0xFF, 0x00, 0xF1, 0xEC, 0xFF, 0x05, 0xF4, 0xF7, 0xF9, 0xEA, + 0xEA, 0xF6, 0xB8, 0xFF, 0x00, 0x45, 0xC2, 0xD6, 0x0A, 0xD8, 0xC9, 0xCD, 0xD0, 0xD3, + 0xD6, 0xB6, 0xB4, 0xD4, 0xCB, 0xD9, 0xF1, 0xD6, 0x09, 0xD8, 0xD0, 0xB5, 0xBD, 0xBE, + 0xC0, 0xC0, 0xB8, 0xCB, 0xF0, 0xBA, 0xE7, 0xC0, 0xDE, 0x06, 0xDF, 0xE0, 0xE1, 0xE2, + 0xD3, 0xD2, 0xE1, 0xEE, 0xDE, 0x02, 0xE3, 0xD8, 0xCD, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, + 0xF5, 0xBA, 0xEF, 0xBC, 0xFF, 0x01, 0xF4, 0xF3, 0xEC, 0xFF, 0x05, 0xF4, 0xF7, 0xF8, + 0xFA, 0xFA, 0xF6, 0xB8, 0xFF, 0x00, 0x4A, 0xC2, 0xD6, 0x0B, 0xD8, 0xCA, 0xD1, 0xB2, + 0xB4, 0xB6, 0xB8, 0xB8, 0xD6, 0xCE, 0xDA, 0xD7, 0xF2, 0xD6, 0x09, 0xD9, 0xCF, 0xB4, + 0xBA, 0xBD, 0xBE, 0xAD, 0xB7, 0xCB, 0xF0, 0xBA, 0xE7, 0xC0, 0xDE, 0x07, 0xE0, 0xD1, + 0xD2, 0xD3, 0xD4, 0xD4, 0xE2, 0xDF, 0xEF, 0xDE, 0x02, 0xE1, 0xC5, 0xCB, 0xFE, 0xCE, + 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xBF, 0xFF, 0x04, 0xF2, 0xF3, 0xF4, 0xF5, 0xF5, + 0xEC, 0xFF, 0x05, 0xF3, 0xF6, 0xF7, 0xF8, 0xE7, 0xF5, 0xB8, 0xFF, 0x00, 0x4B, 0xC2, + 0xD6, 0x0B, 0xD7, 0xDA, 0xD0, 0xB4, 0xB6, 0xDC, 0xB8, 0xBA, 0xB6, 0xD3, 0xCC, 0xD8, + 0xF2, 0xD6, 0x09, 0xD8, 0xCC, 0xD5, 0xB8, 0xBE, 0xBF, 0xBF, 0xB7, 0xCB, 0xF0, 0xBA, + 0xE7, 0xC0, 0xDE, 0x08, 0xE0, 0xD2, 0xD3, 0xE5, 0xD4, 0xD5, 0xD3, 0xE1, 0xDF, 0xF0, + 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xBF, + 0xFF, 0x05, 0xF3, 0xF4, 0xFF, 0xF5, 0xF6, 0xF4, 0xEC, 0xFF, 0x04, 0xF5, 0xF8, 0xF9, + 0xF9, 0xF5, 0xB8, 0xFF, 0x00, 0x49, 0xC1, 0xD6, 0x0A, 0xD9, 0xCD, 0xD6, 0xB4, 0xDC, + 0xB8, 0xBD, 0xBA, 0xB4, 0xCF, 0xD9, 0xF2, 0xD6, 0x09, 0xD7, 0xDA, 0xD2, 0xB6, 0xBF, + 0xAE, 0xBF, 0xB6, 0xCB, 0xF0, 0xBA, 0xE7, 0xC0, 0xDE, 0x08, 0xDF, 0xE2, 0xD2, 0xE5, + 0xD4, 0xD6, 0xD5, 0xD2, 0xE0, 0xEF, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xC8, + 0xDD, 0xF5, 0xBA, 0xEF, 0xBE, 0xFF, 0x05, 0xF3, 0xFF, 0xF5, 0xF7, 0xF6, 0xF3, 0xED, + 0xFF, 0x04, 0xF4, 0xF9, 0xE8, 0xF9, 0xF4, 0xB8, 0xFF, 0x00, 0x48, 0xC1, 0xD6, 0x0B, + 0xD8, 0xCA, 0xD3, 0xB4, 0xBA, 0xBA, 0xBD, 0xBD, 0xB6, 0xD2, 0xDA, 0xD7, 0xF2, 0xD6, + 0x08, 0xD9, 0xD1, 0xB6, 0xC0, 0xAF, 0xC0, 0xB6, 0xCB, 0xF0, 0xBA, 0xE7, 0xBF, 0xDE, + 0x07, 0xE1, 0xD2, 0xD5, 0xD5, 0xD6, 0xD6, 0xD3, 0xE1, 0xEF, 0xDE, 0x01, 0xE4, 0xC8, + 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBA, 0xEF, 0xBE, 0xFF, 0x05, 0xF3, 0xF6, 0xF6, + 0xF7, 0xF7, 0xF4, 0xED, 0xFF, 0x04, 0xF4, 0xFA, 0xE9, 0xFA, 0xF4, 0xB8, 0xFF, 0x00, + 0x4A, 0xC1, 0xD6, 0x04, 0xD7, 0xDA, 0xD0, 0xB4, 0xBA, 0xFE, 0xBD, 0x03, 0xB8, 0xD5, + 0xCC, 0xD8, 0xF2, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xC0, 0xAF, 0xC0, 0xB8, 0xCE, 0xF3, + 0xE8, 0xBB, 0xE7, 0xBF, 0xDE, 0x02, 0xE0, 0xD2, 0xD5, 0xFE, 0xD6, 0x02, 0xD4, 0xE2, + 0xDF, 0xF0, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xC9, 0xDE, 0xF6, 0xBA, 0xEF, + 0xBE, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF7, 0x00, 0xF5, 0xED, 0xFF, 0x04, 0xF4, 0xFA, + 0xE9, 0xFA, 0xF5, 0xB8, 0xFF, 0x00, 0x4B, 0xC0, 0xD6, 0x03, 0xD8, 0xCC, 0xD5, 0xB8, + 0xFE, 0xBD, 0x04, 0xBA, 0xB4, 0xD0, 0xDA, 0xD7, 0xF3, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, + 0xBF, 0xAE, 0xBF, 0xBA, 0xAD, 0xE3, 0xE9, 0xBB, 0xE7, 0xBF, 0xDE, 0x02, 0xDF, 0xE2, + 0xD4, 0xFE, 0xD6, 0x02, 0xD5, 0xD2, 0xE0, 0xF0, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, + 0x02, 0xCB, 0xCF, 0xF8, 0xBA, 0xEF, 0xBD, 0xFF, 0x00, 0xF5, 0xFE, 0xF7, 0x01, 0xF6, + 0xF3, 0xEE, 0xFF, 0x05, 0xF4, 0xF9, 0xE8, 0xF9, 0xF6, 0xF3, 0xB9, 0xFF, 0x00, 0x47, + 0xC0, 0xD6, 0x03, 0xD7, 0xDA, 0xD2, 0xB6, 0xFD, 0xBD, 0x03, 0xB6, 0xD3, 0xCA, 0xD8, + 0xF3, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFE, 0xBE, 0x03, 0xBD, 0xB0, 0xE7, 0xEA, 0xBB, + 0xE7, 0xBE, 0xDE, 0x01, 0xE1, 0xD3, 0xFD, 0xD6, 0x01, 0xD3, 0xE1, 0xF0, 0xDE, 0x01, + 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCD, 0xC0, 0xFA, 0xBA, 0xEF, 0xBD, 0xFF, 0x00, 0xF4, + 0xFD, 0xF7, 0x00, 0xF4, 0xEE, 0xFF, 0x00, 0xF4, 0xFE, 0xF8, 0x01, 0xF7, 0xF4, 0xB9, + 0xFF, 0x00, 0x47, 0xBF, 0xD6, 0x03, 0xD9, 0xCF, 0xB4, 0xBA, 0xFE, 0xBD, 0x03, 0xB8, + 0xD6, 0xCD, 0xD9, 0xF3, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, 0xB0, 0xE7, + 0xEA, 0xBB, 0xE7, 0xBE, 0xDE, 0x02, 0xE0, 0xD2, 0xD5, 0xFE, 0xD6, 0x02, 0xD4, 0xE2, + 0xDF, 0xF1, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xBA, 0xEF, 0xBD, + 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF7, 0x00, 0xF5, 0xEE, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, + 0x00, 0xF4, 0xB9, 0xFF, 0x00, 0x4A, 0xBF, 0xD6, 0x0B, 0xD8, 0xCC, 0xD3, 0xB6, 0xBA, + 0xBD, 0xBD, 0xBA, 0xB4, 0xD0, 0xDA, 0xD7, 0xF4, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFE, + 0xBE, 0x03, 0xBD, 0xB0, 0xE7, 0xEA, 0xBB, 0xE7, 0xBE, 0xDE, 0x08, 0xDF, 0xE1, 0xD3, + 0xD5, 0xD6, 0xD6, 0xD5, 0xD2, 0xE0, 0xF1, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x01, + 0xC1, 0xFB, 0xBA, 0xEF, 0xBC, 0xFF, 0x05, 0xF4, 0xF6, 0xF7, 0xF7, 0xF6, 0xF3, 0xEF, + 0xFF, 0x00, 0xF4, 0xFE, 0xF8, 0x01, 0xF7, 0xF4, 0xB9, 0xFF, 0x00, 0x49, 0xBF, 0xD6, + 0x04, 0xD7, 0xDA, 0xCE, 0xD6, 0xB8, 0xFE, 0xBD, 0x03, 0xB8, 0xD5, 0xCC, 0xD8, 0xF4, + 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBF, 0xAE, 0xBF, 0xBD, 0xB0, 0xE7, 0xEA, 0xBB, 0xE7, + 0xBD, 0xDE, 0x02, 0xDF, 0xE2, 0xD4, 0xFE, 0xD6, 0x02, 0xD4, 0xE2, 0xDF, 0xF2, 0xDE, + 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xBA, 0xEF, 0xBB, 0xFF, 0x00, 0xF5, + 0xFE, 0xF7, 0x00, 0xF5, 0xEF, 0xFF, 0x05, 0xF4, 0xF9, 0xE8, 0xF9, 0xF7, 0xF4, 0xB9, + 0xFF, 0x00, 0x4A, 0xBE, 0xD6, 0x0B, 0xD8, 0xCA, 0xD3, 0xB6, 0xBD, 0xBD, 0xBA, 0xB8, + 0xB2, 0xD0, 0xDA, 0xD7, 0xF5, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xC0, 0xAF, 0xC0, 0xBD, + 0xB1, 0xE8, 0xEB, 0xBB, 0xE7, 0xBC, 0xDE, 0x07, 0xE1, 0xD3, 0xD6, 0xD6, 0xD5, 0xD4, + 0xD1, 0xE0, 0xF2, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xBB, + 0xEF, 0xBB, 0xFF, 0x05, 0xF4, 0xF7, 0xF7, 0xF6, 0xF5, 0xF2, 0xF0, 0xFF, 0x05, 0xF4, + 0xFA, 0xE9, 0xFA, 0xF7, 0xF4, 0xB9, 0xFF, 0x00, 0x4A, 0xBE, 0xD6, 0x0B, 0xD7, 0xDA, + 0xD0, 0xB4, 0xBA, 0xBD, 0xBA, 0xDF, 0xB4, 0xD3, 0xCA, 0xD8, 0xF5, 0xD6, 0x09, 0xD9, + 0xD1, 0xB6, 0xC0, 0xAF, 0xC0, 0xBD, 0xB3, 0xD9, 0xED, 0xBB, 0xE7, 0xBC, 0xDE, 0x07, + 0xE0, 0xD2, 0xD5, 0xD6, 0xD5, 0xE6, 0xD2, 0xE1, 0xF2, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, + 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xBB, 0xEF, 0xBB, 0xFF, 0x05, 0xF3, 0xF6, 0xF7, 0xF6, + 0xFF, 0xF3, 0xF0, 0xFF, 0x05, 0xF4, 0xFA, 0xE9, 0xFA, 0xF7, 0xF4, 0xB9, 0xFF, 0x00, + 0x49, 0xBD, 0xD6, 0x0A, 0xD9, 0xCD, 0xD6, 0xB6, 0xB8, 0xB4, 0xB4, 0xB0, 0xD1, 0xCA, + 0xD8, 0xF5, 0xD6, 0x09, 0xD8, 0xD0, 0xB5, 0xC0, 0xAF, 0xC0, 0xBD, 0xB5, 0xCA, 0xEF, + 0xBB, 0xE7, 0xBC, 0xDE, 0x07, 0xDF, 0xE2, 0xD3, 0xD4, 0xD2, 0xD2, 0xD0, 0xE0, 0xF2, + 0xDE, 0x02, 0xE3, 0xC7, 0xCD, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBB, 0xEF, 0xBA, + 0xFF, 0x04, 0xF4, 0xF5, 0xF3, 0xF3, 0xF1, 0xF0, 0xFF, 0x05, 0xF4, 0xFA, 0xE9, 0xFA, + 0xF7, 0xF4, 0xB9, 0xFF, 0x00, 0x44, 0xBD, 0xD6, 0x0A, 0xD8, 0xCA, 0xD1, 0xB0, 0xD6, + 0xD3, 0xD2, 0xCF, 0xCC, 0xD9, 0xD7, 0xF5, 0xD6, 0x09, 0xD7, 0xDE, 0xB2, 0xBD, 0xAF, + 0xC0, 0xBD, 0xB6, 0xCB, 0xF0, 0xBB, 0xE7, 0xBB, 0xDE, 0x06, 0xE0, 0xD0, 0xE2, 0xE1, + 0xE1, 0xE0, 0xDF, 0xF2, 0xDE, 0x02, 0xE1, 0xD6, 0xCB, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, + 0xF5, 0xBB, 0xEF, 0xBA, 0xFF, 0x00, 0xF1, 0xEC, 0xFF, 0x05, 0xF3, 0xF9, 0xE9, 0xFA, + 0xF7, 0xF4, 0xB9, 0xFF, 0x00, 0x38, 0xBD, 0xD6, 0x09, 0xD7, 0xDA, 0xCE, 0xCF, 0xCE, + 0xCA, 0xDA, 0xD9, 0xD8, 0xD7, 0xF3, 0xD6, 0x09, 0xDB, 0xD3, 0xBA, 0xAE, 0xBF, 0xBD, + 0xB8, 0xCE, 0xF3, 0xE8, 0xBC, 0xE7, 0xBB, 0xDE, 0xFE, 0xDF, 0xEE, 0xDE, 0x02, 0xDF, + 0xE5, 0xC9, 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xBB, 0xEF, 0xA3, 0xFF, 0x04, 0xF7, + 0xE8, 0xF9, 0xF7, 0xF5, 0xB9, 0xFF, 0x00, 0x30, 0xBC, 0xD6, 0x05, 0xD8, 0xC9, 0xCA, + 0xDA, 0xD8, 0xD7, 0xF0, 0xD6, 0x09, 0xD9, 0xD1, 0xB7, 0xBE, 0xBE, 0xBD, 0xBA, 0xAD, + 0xE3, 0xE9, 0xBC, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, + 0xF9, 0xBB, 0xEF, 0xA3, 0xFF, 0x05, 0xF5, 0xF8, 0xF8, 0xF7, 0xF6, 0xF3, 0xBA, 0xFF, + 0x00, 0x2B, 0xBC, 0xD6, 0x03, 0xD7, 0xD8, 0xD8, 0xD7, 0xEE, 0xD6, 0x02, 0xD9, 0xD1, + 0xB6, 0xFD, 0xBD, 0x02, 0xB0, 0xE7, 0xEA, 0xBC, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, + 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xBB, 0xEF, 0xA3, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, + 0xF4, 0xBA, 0xFF, 0x00, 0x25, 0xA5, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, 0x02, + 0xB2, 0xE9, 0xEC, 0xBC, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC3, + 0xFD, 0xF1, 0xBC, 0xEF, 0xA3, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBA, 0xFF, + 0x00, 0x25, 0xA5, 0xD6, 0x02, 0xD8, 0xD0, 0xB5, 0xFD, 0xBD, 0x02, 0xB4, 0xC9, 0xEE, + 0xBC, 0xE7, 0xA4, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xBC, + 0xEF, 0xA3, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xBA, 0xFF, 0x00, 0x29, 0xA5, + 0xD6, 0x03, 0xD7, 0xDE, 0xB2, 0xBA, 0xFE, 0xBD, 0x03, 0xB6, 0xCC, 0xF1, 0xE8, 0xBD, + 0xE7, 0xA4, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xC8, 0xDD, 0xF5, 0xBC, + 0xEF, 0xA3, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF7, 0x00, 0xF4, 0xBA, 0xFF, 0x00, 0x2E, + 0xA4, 0xD6, 0x09, 0xDB, 0xD3, 0xB9, 0xBE, 0xBE, 0xBD, 0xB8, 0xCF, 0xE1, 0xE9, 0xEC, + 0xE7, 0x03, 0xE8, 0xE9, 0xE9, 0xE8, 0xD6, 0xE7, 0xA4, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, + 0xFE, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xBC, 0xEF, 0xA2, 0xFF, 0x04, 0xF6, 0xF8, 0xF8, + 0xF7, 0xF5, 0xBA, 0xFF, 0x00, 0x39, 0xA4, 0xD6, 0x09, 0xD9, 0xD1, 0xB7, 0xAD, 0xBF, + 0xBF, 0xBC, 0xAF, 0xE4, 0xEA, 0xEE, 0xE7, 0x06, 0xE8, 0xEB, 0xF1, 0xE3, 0xE1, 0xEE, + 0xE8, 0xD7, 0xE7, 0xA3, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, + 0xEC, 0xEF, 0x04, 0xF1, 0xF5, 0xF8, 0xF6, 0xF2, 0xD6, 0xEF, 0xA2, 0xFF, 0x05, 0xF5, + 0xE7, 0xF9, 0xF9, 0xF8, 0xF4, 0xBB, 0xFF, 0x00, 0x44, 0xA4, 0xD6, 0x09, 0xD9, 0xD1, + 0xB7, 0xBE, 0xBF, 0xAE, 0xAE, 0xB3, 0xE9, 0xEC, 0xF1, 0xE7, 0x09, 0xE8, 0xEA, 0xED, + 0xF2, 0xE5, 0xCC, 0xAD, 0xA7, 0xE1, 0xE9, 0xD7, 0xE7, 0xA3, 0xDE, 0x01, 0xE4, 0xC8, + 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xF0, 0xEF, 0x07, 0xF1, 0xF3, 0xF7, 0xFB, 0xDD, + 0xBE, 0xC9, 0xF6, 0xD6, 0xEF, 0xA2, 0xFF, 0x05, 0xF5, 0xF8, 0xF9, 0xE8, 0xE8, 0xF5, + 0xE9, 0xFF, 0x01, 0xF3, 0xF2, 0xD5, 0xFF, 0x00, 0x4E, 0xA4, 0xD6, 0x09, 0xD8, 0xD0, + 0xB5, 0xBD, 0xBE, 0xBF, 0xBF, 0xB5, 0xC9, 0xEE, 0xF3, 0xE7, 0x0B, 0xE8, 0xEB, 0xF1, + 0xE4, 0xD9, 0xCD, 0xAF, 0xB6, 0xBA, 0xB0, 0xE7, 0xEA, 0xE5, 0xE7, 0xFE, 0xE8, 0xF6, + 0xE7, 0xA3, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xF2, 0xEF, + 0x09, 0xF1, 0xF5, 0xFB, 0xDB, 0xDF, 0xC1, 0xC7, 0xCB, 0xC0, 0xFA, 0xD6, 0xEF, 0xA2, + 0xFF, 0x05, 0xF4, 0xF7, 0xF8, 0xF9, 0xF9, 0xF5, 0xEB, 0xFF, 0x03, 0xF3, 0xF5, 0xF6, + 0xF4, 0xD5, 0xFF, 0x00, 0x65, 0xA4, 0xD6, 0x03, 0xD7, 0xDE, 0xB2, 0xBA, 0xFE, 0xBD, + 0x03, 0xB8, 0xCE, 0xF3, 0xE8, 0xF7, 0xE7, 0x0E, 0xE8, 0xEA, 0xED, 0xF2, 0xE5, 0xCC, + 0xAE, 0xB4, 0xB8, 0xBB, 0xBD, 0xBD, 0xB0, 0xE7, 0xEA, 0xE6, 0xE7, 0x05, 0xE8, 0xEE, + 0xDE, 0xF1, 0xEB, 0xE8, 0xF8, 0xE7, 0xA3, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, + 0x02, 0xCA, 0xDF, 0xF7, 0xF5, 0xEF, 0x0C, 0xF1, 0xF3, 0xF7, 0xFB, 0xDD, 0xC1, 0xC5, + 0xCA, 0xCC, 0xCE, 0xCE, 0xC1, 0xFB, 0xE4, 0xEF, 0x03, 0xF3, 0xF5, 0xF5, 0xF1, 0xF7, + 0xEF, 0xA2, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF7, 0x00, 0xF5, 0xEE, 0xFF, 0x02, 0xF3, + 0xF5, 0xF6, 0xFE, 0xF7, 0x00, 0xF4, 0xD5, 0xFF, 0x00, 0x72, 0xA3, 0xD6, 0x02, 0xDB, + 0xD3, 0xB8, 0xFE, 0xBE, 0x03, 0xBA, 0xAD, 0xE3, 0xE9, 0xF9, 0xE7, 0x10, 0xE8, 0xEB, + 0xF1, 0xE4, 0xD9, 0xCD, 0xAF, 0xB6, 0xBB, 0xC0, 0xB0, 0xC1, 0xBF, 0xBE, 0xB2, 0xE9, + 0xEC, 0xE7, 0xE7, 0x07, 0xE8, 0xEE, 0xE7, 0xA8, 0xCC, 0xE4, 0xEF, 0xE9, 0xF9, 0xE7, + 0xA3, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xF7, 0xEF, + 0x07, 0xF1, 0xF5, 0xFB, 0xDB, 0xDF, 0xC1, 0xC7, 0xCC, 0xFC, 0xCE, 0x02, 0xC3, 0xFD, + 0xF1, 0xE6, 0xEF, 0x06, 0xF3, 0xFB, 0xBB, 0xDD, 0xFB, 0xF5, 0xF1, 0xF9, 0xEF, 0xA1, + 0xFF, 0x00, 0xF5, 0xFE, 0xF8, 0x01, 0xF6, 0xF3, 0xF1, 0xFF, 0x08, 0xF3, 0xF5, 0xF7, + 0xFA, 0xEA, 0xFB, 0xF9, 0xF8, 0xF4, 0xE2, 0xFF, 0x00, 0xF2, 0xF5, 0xFF, 0x00, 0x80, + 0xA3, 0xD6, 0x09, 0xD9, 0xD1, 0xB6, 0xBF, 0xAF, 0xC0, 0xBE, 0xB2, 0xE9, 0xEC, 0xFC, + 0xE7, 0x13, 0xE8, 0xEB, 0xEE, 0xF3, 0xE5, 0xCC, 0xAE, 0xB4, 0xB8, 0xBB, 0xBD, 0xBF, + 0xB1, 0xB3, 0xB3, 0xB0, 0xBF, 0xB4, 0xC9, 0xEE, 0xE8, 0xE7, 0x0A, 0xE8, 0xEE, 0xE7, + 0xAF, 0xB6, 0xB6, 0xAE, 0xD9, 0xF2, 0xEB, 0xE8, 0xFB, 0xE7, 0xA2, 0xDE, 0x01, 0xE4, + 0xC8, 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xFB, 0xEF, 0x08, 0xF1, 0xF3, 0xF7, 0xFB, + 0xDD, 0xC1, 0xC5, 0xCA, 0xCC, 0xFA, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xE7, 0xEF, 0x08, + 0xF3, 0xFB, 0xC1, 0xC7, 0xC7, 0xC1, 0xDB, 0xF7, 0xF1, 0xFA, 0xEF, 0xA1, 0xFF, 0x05, + 0xF4, 0xF9, 0xE9, 0xFA, 0xF8, 0xF4, 0xF4, 0xFF, 0x0B, 0xF3, 0xF5, 0xF6, 0xF7, 0xF7, + 0xF9, 0xEB, 0xED, 0xED, 0xEA, 0xF9, 0xF4, 0xE3, 0xFF, 0x03, 0xF4, 0xF5, 0xF5, 0xF3, + 0xF7, 0xFF, 0x00, 0x88, 0xA3, 0xD6, 0x22, 0xD9, 0xD1, 0xB6, 0xBF, 0xB0, 0xB0, 0xBF, + 0xB4, 0xC9, 0xEE, 0xE7, 0xE7, 0xE8, 0xE9, 0xEC, 0xF1, 0xE5, 0xC9, 0xCE, 0xB0, 0xB8, + 0xBC, 0xC0, 0xAE, 0xBF, 0xBD, 0xC0, 0xB2, 0xB5, 0xB5, 0xB2, 0xC0, 0xB6, 0xCB, 0xF0, + 0xE9, 0xE7, 0x0B, 0xE8, 0xEE, 0xE7, 0xAF, 0xB8, 0xBE, 0xBE, 0xBA, 0xB2, 0xCA, 0xDF, + 0xEA, 0xFB, 0xE7, 0xA2, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, + 0xFD, 0xEF, 0x07, 0xF1, 0xF5, 0xFB, 0xDB, 0xDF, 0xC1, 0xC7, 0xCC, 0xF7, 0xCE, 0x02, + 0xC8, 0xDD, 0xF5, 0xE8, 0xEF, 0x0A, 0xF2, 0xFA, 0xC0, 0xC9, 0xCE, 0xCE, 0xCC, 0xC5, + 0xDD, 0xF7, 0xF1, 0xFB, 0xEF, 0xA1, 0xFF, 0x05, 0xF4, 0xF9, 0xEA, 0xEA, 0xF9, 0xF4, + 0xF6, 0xFF, 0x0D, 0xF4, 0xF7, 0xF8, 0xFA, 0xE8, 0xF9, 0xF7, 0xFA, 0xEC, 0xEF, 0xEF, + 0xEC, 0xFA, 0xF4, 0xE4, 0xFF, 0x05, 0xF4, 0xF6, 0xF8, 0xF8, 0xF7, 0xF4, 0xF8, 0xFF, + 0x00, 0x8F, 0xA3, 0xD6, 0x23, 0xD8, 0xCE, 0xB3, 0xBB, 0xC1, 0xB1, 0xC1, 0xB9, 0xCE, + 0xF3, 0xE9, 0xEB, 0xEF, 0xE1, 0xE6, 0xCC, 0xAF, 0xB4, 0xB9, 0xBD, 0xB0, 0xB0, 0xC2, + 0xB0, 0xC0, 0xBD, 0xBF, 0xB0, 0xB3, 0xB4, 0xB2, 0xC0, 0xB8, 0xCE, 0xF3, 0xE8, 0xEB, + 0xE7, 0x0C, 0xE8, 0xEE, 0xE7, 0xAF, 0xB8, 0xBE, 0xBF, 0xAE, 0xBE, 0xB8, 0xAC, 0xD1, + 0xEA, 0xFB, 0xE7, 0xA2, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x0C, 0xCA, 0xDF, + 0xF7, 0xEF, 0xF1, 0xF3, 0xF7, 0xFB, 0xDD, 0xC1, 0xC5, 0xCA, 0xCC, 0xF5, 0xCE, 0x02, + 0xCA, 0xDF, 0xF7, 0xE9, 0xEF, 0x03, 0xF3, 0xFA, 0xD1, 0xC8, 0xFD, 0xCE, 0x03, 0xCA, + 0xBF, 0xD5, 0xF1, 0xFB, 0xEF, 0xA1, 0xFF, 0x05, 0xF3, 0xF7, 0xFB, 0xEB, 0xFB, 0xF6, + 0xF9, 0xFF, 0x10, 0xF3, 0xF4, 0xF6, 0xF9, 0xEA, 0xEA, 0xFC, 0xEA, 0xFA, 0xF7, 0xF9, + 0xEA, 0xED, 0xEE, 0xEC, 0xFA, 0xF5, 0xE5, 0xFF, 0x07, 0xF4, 0xF6, 0xF8, 0xF9, 0xE8, + 0xF8, 0xF5, 0xF2, 0xF9, 0xFF, 0x00, 0x96, 0xA3, 0xD6, 0x23, 0xD7, 0xDC, 0xD4, 0xB8, + 0xC0, 0xB1, 0xB1, 0xBC, 0xAF, 0xE8, 0xF4, 0xE5, 0xCA, 0xD0, 0xB2, 0xB9, 0xBC, 0xBE, + 0xBF, 0xB0, 0xB2, 0xC3, 0xB2, 0xB0, 0xBF, 0xBD, 0xBB, 0xBC, 0xBE, 0xB1, 0xB0, 0xBF, + 0xBA, 0xAD, 0xE3, 0xE9, 0xEC, 0xE7, 0x0D, 0xE8, 0xEE, 0xE7, 0xAF, 0xB8, 0xBD, 0xBE, + 0xAE, 0xBF, 0xBB, 0xB4, 0xCB, 0xF2, 0xE9, 0xFB, 0xE7, 0xA2, 0xDE, 0x02, 0xE0, 0xE6, + 0xCA, 0xFE, 0xCE, 0x09, 0xCC, 0xC1, 0xFD, 0xF7, 0xFB, 0xDB, 0xDF, 0xC1, 0xC7, 0xCC, + 0xF8, 0xCE, 0xFE, 0xCC, 0xFE, 0xCE, 0x02, 0xCC, 0xBF, 0xF9, 0xEA, 0xEF, 0x04, 0xF3, + 0xFB, 0xC0, 0xC8, 0xCD, 0xFE, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xFB, 0xEF, + 0xA0, 0xFF, 0x05, 0xF5, 0xFA, 0xEB, 0xEB, 0xF8, 0xF3, 0xFC, 0xFF, 0x00, 0xF5, 0xFE, + 0xF8, 0x0F, 0xF9, 0xEA, 0xEC, 0xFD, 0xEC, 0xEA, 0xF9, 0xF7, 0xF7, 0xF8, 0xFA, 0xEB, + 0xEA, 0xF9, 0xF6, 0xF3, 0xE7, 0xFF, 0x07, 0xF4, 0xF6, 0xF7, 0xF8, 0xE8, 0xF9, 0xF7, + 0xF4, 0xF8, 0xFF, 0x00, 0x96, 0xA2, 0xD6, 0x22, 0xD9, 0xD1, 0xB7, 0xC1, 0xB2, 0xB1, + 0xBF, 0xB6, 0xD3, 0xCF, 0xAF, 0xB4, 0xB9, 0xAB, 0xB0, 0xAF, 0xBF, 0xC0, 0xB0, 0xC2, + 0xB0, 0xB0, 0xBD, 0xB9, 0xB6, 0xB4, 0xDA, 0xB9, 0xBF, 0xBF, 0xBE, 0xBD, 0xB0, 0xE7, + 0xEA, 0xED, 0xE7, 0x0D, 0xE8, 0xEE, 0xE7, 0xAF, 0xB8, 0xBD, 0xBD, 0xBE, 0xBE, 0xBB, + 0xB4, 0xCD, 0xE1, 0xEB, 0xFA, 0xE7, 0xA1, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x06, + 0xC7, 0xE3, 0xDF, 0xC1, 0xC5, 0xCA, 0xCC, 0xF9, 0xCE, 0x05, 0xCC, 0xCA, 0xC8, 0xC6, + 0xEA, 0xCA, 0xFD, 0xCE, 0x01, 0xC1, 0xFB, 0xEB, 0xEF, 0x03, 0xF3, 0xFB, 0xC1, 0xC9, + 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xFA, 0xEF, 0xA0, 0xFF, 0x1E, 0xF5, + 0xFB, 0xEC, 0xEB, 0xF9, 0xF5, 0xFF, 0xFF, 0xF3, 0xF4, 0xF6, 0xE7, 0xEA, 0xE9, 0xF9, + 0xFA, 0xEA, 0xFC, 0xEA, 0xEA, 0xF9, 0xF6, 0xF4, 0xF3, 0xFF, 0xF6, 0xF9, 0xF9, 0xF8, + 0xF7, 0xF4, 0xE8, 0xFF, 0x07, 0xF4, 0xF6, 0xF7, 0xF7, 0xF8, 0xF8, 0xF7, 0xF4, 0xF7, + 0xFF, 0x00, 0x96, 0xA2, 0xD6, 0x1B, 0xD9, 0xCF, 0xB5, 0xAC, 0xB1, 0xC1, 0xC0, 0xBB, + 0xB9, 0xB8, 0xBB, 0xBE, 0xBF, 0xBF, 0xC1, 0xAF, 0xBF, 0xBF, 0xAE, 0xC0, 0xBC, 0xBA, + 0xB4, 0xD4, 0xD1, 0xD0, 0xD5, 0xB6, 0xFD, 0xBD, 0x02, 0xB2, 0xE9, 0xEC, 0xEE, 0xE7, + 0x0E, 0xE9, 0xEF, 0xE8, 0xAF, 0xB9, 0xBE, 0xBE, 0xBD, 0xBD, 0xBA, 0xB4, 0xCD, 0xE2, + 0xEC, 0xE8, 0xFA, 0xE7, 0xA1, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, + 0xCA, 0xCA, 0xCC, 0xF8, 0xCE, 0x07, 0xCC, 0xCA, 0xC6, 0xE6, 0xE4, 0xE2, 0xE6, 0xC8, + 0xFD, 0xCE, 0x02, 0xC3, 0xFD, 0xF1, 0xEE, 0xEF, 0x04, 0xF1, 0xF5, 0xFD, 0xC1, 0xC9, + 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF9, 0xEF, 0xA0, 0xFF, 0x14, 0xF4, + 0xE8, 0xEB, 0xFB, 0xFA, 0xF7, 0xF6, 0xF5, 0xF7, 0xF8, 0xF9, 0xF9, 0xFB, 0xE9, 0xF9, + 0xF9, 0xE8, 0xFA, 0xF8, 0xF7, 0xF4, 0xFD, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, + 0xE9, 0xFF, 0x07, 0xF4, 0xF7, 0xF8, 0xF8, 0xF7, 0xF7, 0xF6, 0xF4, 0xF6, 0xFF, 0x00, + 0x91, 0xA2, 0xD6, 0x1B, 0xD8, 0xCC, 0xD6, 0xBA, 0xC0, 0xAE, 0xBF, 0xAD, 0xBE, 0xBD, + 0xBF, 0xAF, 0xC1, 0xBF, 0xBF, 0xBE, 0xBE, 0xBB, 0xB9, 0xB7, 0xB3, 0xD4, 0xCE, 0xDC, + 0xD9, 0xDA, 0xD1, 0xB5, 0xFE, 0xBE, 0x03, 0xBD, 0xB4, 0xC9, 0xEE, 0xEF, 0xE7, 0x0E, + 0xEA, 0xF1, 0xD9, 0xB0, 0xB8, 0xBF, 0xAE, 0xBF, 0xBD, 0xBA, 0xB4, 0xCD, 0xE2, 0xEC, + 0xE8, 0xF9, 0xE7, 0xA1, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xF4, 0xCE, 0x0A, 0xCC, 0xCA, + 0xC8, 0xC6, 0xE6, 0xE2, 0xE0, 0xDE, 0xDE, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, + 0xF3, 0xEF, 0xEF, 0x04, 0xF1, 0xF7, 0xDB, 0xC3, 0xC9, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, + 0xDD, 0xF7, 0xF1, 0xF8, 0xEF, 0x9F, 0xFF, 0x11, 0xF7, 0xFA, 0xE8, 0xF9, 0xE7, 0xF8, + 0xF7, 0xF9, 0xE9, 0xFB, 0xF9, 0xF9, 0xF8, 0xF8, 0xF7, 0xF6, 0xF5, 0xF3, 0xFB, 0xFF, + 0x00, 0xF4, 0xFE, 0xF8, 0x01, 0xF7, 0xF4, 0xEA, 0xFF, 0x07, 0xF4, 0xF6, 0xF9, 0xE8, + 0xF9, 0xF7, 0xF6, 0xF4, 0xF5, 0xFF, 0x00, 0x91, 0xA2, 0xD6, 0x23, 0xD7, 0xDA, 0xD2, + 0xB6, 0xBE, 0xBF, 0xC1, 0xC0, 0xBF, 0xBD, 0xBF, 0xAF, 0xB0, 0xAE, 0xBE, 0xBA, 0xB8, + 0xB3, 0xD4, 0xD1, 0xCE, 0xDC, 0xD8, 0xD7, 0xD6, 0xD7, 0xDE, 0xB2, 0xBC, 0xAE, 0xBF, + 0xBD, 0xB8, 0xCE, 0xF3, 0xE8, 0xF2, 0xE7, 0x0F, 0xE8, 0xEB, 0xF3, 0xCA, 0xB2, 0xB9, + 0xBE, 0xC0, 0xAF, 0xBF, 0xBA, 0xB4, 0xCD, 0xE2, 0xEC, 0xE8, 0xF8, 0xE7, 0xA0, 0xDE, + 0x01, 0xE4, 0xC8, 0xF6, 0xCE, 0x06, 0xCC, 0xCA, 0xC6, 0xE6, 0xE4, 0xE2, 0xE0, 0xFD, + 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xC9, 0xDE, 0xF6, 0xF0, 0xEF, 0x04, + 0xF1, 0xF7, 0xDD, 0xC5, 0xCC, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF7, + 0xEF, 0x9F, 0xFF, 0x0E, 0xF4, 0xF8, 0xF9, 0xFB, 0xFA, 0xF9, 0xF7, 0xF9, 0xE9, 0xEA, + 0xE8, 0xF8, 0xF6, 0xF5, 0xF3, 0xF8, 0xFF, 0x05, 0xF3, 0xF8, 0xE8, 0xF9, 0xF7, 0xF5, + 0xEB, 0xFF, 0x07, 0xF4, 0xF6, 0xF8, 0xFA, 0xE9, 0xF9, 0xF6, 0xF4, 0xF4, 0xFF, 0x00, + 0x8E, 0xA1, 0xD6, 0x14, 0xD8, 0xCE, 0xB3, 0xBA, 0xBE, 0xAE, 0xAE, 0xBE, 0xBD, 0xBE, + 0xBF, 0xBD, 0xBA, 0xB7, 0xB3, 0xD4, 0xCE, 0xDC, 0xD9, 0xD8, 0xD7, 0xFD, 0xD6, 0x09, + 0xDB, 0xD3, 0xBA, 0xAF, 0xC0, 0xBF, 0xBB, 0xAE, 0xE3, 0xE9, 0xF3, 0xE7, 0x0F, 0xE8, + 0xEE, 0xE3, 0xCE, 0xB4, 0xBC, 0xBF, 0xC0, 0xAF, 0xC0, 0xBB, 0xB4, 0xCD, 0xE2, 0xEC, + 0xE8, 0xF7, 0xE7, 0xA0, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFA, 0xCE, 0x06, 0xCC, 0xCA, + 0xC8, 0xC6, 0xE6, 0xE2, 0xE0, 0xFA, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, + 0xCB, 0xCF, 0xF8, 0xF1, 0xEF, 0x04, 0xF3, 0xF9, 0xDF, 0xC5, 0xCC, 0xFD, 0xCE, 0x04, + 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF6, 0xEF, 0x9F, 0xFF, 0x0C, 0xF3, 0xF6, 0xF8, 0xE8, + 0xE8, 0xF8, 0xF7, 0xF8, 0xF9, 0xF9, 0xF7, 0xF5, 0xF3, 0xF5, 0xFF, 0x05, 0xF7, 0xE9, + 0xFA, 0xF9, 0xF7, 0xF4, 0xED, 0xFF, 0x07, 0xF5, 0xF8, 0xF9, 0xFA, 0xE9, 0xFA, 0xF7, + 0xF4, 0xF3, 0xFF, 0x00, 0x8A, 0xA1, 0xD6, 0x11, 0xD7, 0xDC, 0xD4, 0xB8, 0xBE, 0xBF, + 0xBF, 0xBE, 0xBD, 0xBA, 0xB8, 0xB3, 0xD4, 0xD1, 0xCE, 0xDC, 0xD8, 0xD7, 0xFA, 0xD6, + 0x09, 0xD9, 0xD1, 0xB7, 0xC0, 0xAF, 0xC0, 0xAD, 0xB2, 0xE8, 0xEB, 0xF5, 0xE7, 0x10, + 0xE8, 0xEB, 0xF1, 0xE9, 0xAD, 0xB6, 0xBC, 0xB0, 0xB0, 0xC1, 0xAE, 0xBC, 0xB4, 0xCD, + 0xE2, 0xEC, 0xE8, 0xF6, 0xE7, 0xA0, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFC, 0xCE, 0x06, + 0xCC, 0xCA, 0xC6, 0xE6, 0xE4, 0xE2, 0xE0, 0xF7, 0xDE, 0x01, 0xE4, 0xC8, 0xFE, 0xCE, + 0x03, 0xCD, 0xC2, 0xFC, 0xF1, 0xF4, 0xEF, 0x05, 0xF1, 0xF5, 0xFD, 0xBF, 0xC7, 0xCC, + 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF5, 0xEF, 0x9E, 0xFF, 0x08, 0xF5, + 0xF8, 0xF9, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF3, 0xF2, 0xFF, 0x05, 0xF5, 0xFA, 0xE9, + 0xFA, 0xE7, 0xF5, 0xEF, 0xFF, 0x08, 0xF3, 0xF5, 0xF8, 0xEA, 0xEA, 0xFB, 0xE8, 0xF8, + 0xF4, 0xF2, 0xFF, 0x00, 0x81, 0xA0, 0xD6, 0x0E, 0xD9, 0xD1, 0xB6, 0xBD, 0xBD, 0xBA, + 0xB8, 0xB6, 0xB3, 0xD4, 0xCE, 0xDC, 0xD9, 0xD8, 0xD7, 0xF8, 0xD6, 0x09, 0xD9, 0xD1, + 0xB6, 0xC0, 0xAF, 0xC1, 0xBE, 0xB4, 0xD9, 0xED, 0xF6, 0xE7, 0x10, 0xE8, 0xEC, 0xE1, + 0xCA, 0xB1, 0xB8, 0xBD, 0xBF, 0xB1, 0xB1, 0xC1, 0xBB, 0xB4, 0xCC, 0xE1, 0xEC, 0xE8, + 0xF5, 0xE7, 0x9F, 0xDE, 0x0A, 0xE4, 0xC8, 0xCE, 0xCE, 0xCC, 0xCA, 0xC8, 0xC6, 0xE6, + 0xE2, 0xE0, 0xF4, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xF5, + 0xEF, 0x04, 0xF1, 0xF7, 0xDB, 0xC3, 0xC9, 0xFC, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, + 0xF1, 0xF4, 0xEF, 0x9E, 0xFF, 0x06, 0xF4, 0xF7, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF0, + 0xFF, 0x05, 0xF4, 0xFA, 0xE9, 0xFB, 0xF8, 0xF5, 0xF0, 0xFF, 0x08, 0xF4, 0xF6, 0xF7, + 0xF9, 0xEB, 0xEB, 0xFB, 0xF7, 0xF5, 0xF1, 0xFF, 0x00, 0x7D, 0xA0, 0xD6, 0x0B, 0xD8, + 0xCE, 0xB3, 0xB8, 0xB8, 0xB3, 0xD4, 0xD1, 0xCE, 0xDC, 0xD8, 0xD7, 0xF5, 0xD6, 0x0A, + 0xD8, 0xCE, 0xB3, 0xBD, 0xAF, 0xC0, 0xBD, 0xB7, 0xCD, 0xF2, 0xE8, 0xF9, 0xE7, 0x11, + 0xE8, 0xEB, 0xF1, 0xE6, 0xCF, 0xB4, 0xBA, 0xBD, 0xBD, 0xBE, 0xC0, 0xAF, 0xBB, 0xB2, + 0xCA, 0xF3, 0xEB, 0xE8, 0xF4, 0xE7, 0x9F, 0xDE, 0x08, 0xE2, 0xC5, 0xC9, 0xC9, 0xC6, + 0xE6, 0xE4, 0xE2, 0xE0, 0xF2, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x02, 0xC9, + 0xDE, 0xF6, 0xF7, 0xEF, 0x05, 0xF1, 0xF5, 0xFB, 0xDF, 0xC5, 0xCC, 0xFC, 0xCE, 0x04, + 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF3, 0xEF, 0x9E, 0xFF, 0x03, 0xF3, 0xF5, 0xF5, 0xF3, + 0xED, 0xFF, 0x05, 0xF3, 0xF9, 0xE9, 0xFA, 0xF7, 0xF5, 0xF1, 0xFF, 0x08, 0xF4, 0xF6, + 0xF7, 0xF7, 0xF8, 0xFA, 0xE9, 0xF8, 0xF4, 0xF0, 0xFF, 0x00, 0x76, 0xA0, 0xD6, 0x09, + 0xD7, 0xDC, 0xD2, 0xB1, 0xD4, 0xCE, 0xDC, 0xD9, 0xD8, 0xD7, 0xF3, 0xD6, 0x0A, 0xD7, + 0xDC, 0xD4, 0xBA, 0xAE, 0xBF, 0xBD, 0xBA, 0xAD, 0xE3, 0xE9, 0xFA, 0xE7, 0x06, 0xE8, + 0xEC, 0xE1, 0xCA, 0xAF, 0xB6, 0xBA, 0xFE, 0xBE, 0x06, 0xBD, 0xBB, 0xB7, 0xAF, 0xD9, + 0xF1, 0xEA, 0xF2, 0xE7, 0x9F, 0xDE, 0x05, 0xE0, 0xE3, 0xD4, 0xE5, 0xE2, 0xE0, 0xEF, + 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x02, 0xCB, 0xCF, 0xF8, 0xF8, 0xEF, 0x05, + 0xF1, 0xF7, 0xDB, 0xC1, 0xC7, 0xCC, 0xFD, 0xCE, 0x05, 0xCC, 0xC7, 0xC1, 0xDB, 0xF7, + 0xF1, 0xF2, 0xEF, 0x9D, 0xFF, 0x00, 0xF2, 0xEA, 0xFF, 0x05, 0xF7, 0xE8, 0xF9, 0xF7, + 0xF6, 0xF3, 0xF4, 0xFF, 0x02, 0xF3, 0xF5, 0xF6, 0xFE, 0xF8, 0x03, 0xF7, 0xF7, 0xF6, + 0xF4, 0xEF, 0xFF, 0x00, 0x68, 0x9F, 0xD6, 0x05, 0xD8, 0xCB, 0xCC, 0xDC, 0xD8, 0xD7, + 0xEF, 0xD6, 0x09, 0xD9, 0xD1, 0xB7, 0xBE, 0xBE, 0xBD, 0xBD, 0xB2, 0xE9, 0xEC, 0xFC, + 0xE7, 0x06, 0xE8, 0xEB, 0xF1, 0xE6, 0xCF, 0xB5, 0xBC, 0xFE, 0xBF, 0x07, 0xAE, 0xBE, + 0xBA, 0xB4, 0xCF, 0xE5, 0xEF, 0xE9, 0xF1, 0xE7, 0x9E, 0xDE, 0xFE, 0xDF, 0xEC, 0xDE, + 0x01, 0xE4, 0xC8, 0xFE, 0xCE, 0x03, 0xCD, 0xC2, 0xFC, 0xF1, 0xFB, 0xEF, 0x05, 0xF1, + 0xF5, 0xFB, 0xDF, 0xC5, 0xCC, 0xFC, 0xCE, 0x05, 0xCC, 0xC5, 0xDF, 0xFB, 0xF5, 0xF1, + 0xF1, 0xEF, 0x85, 0xFF, 0x05, 0xF5, 0xF8, 0xF8, 0xF7, 0xF7, 0xF4, 0xF5, 0xFF, 0x01, + 0xF5, 0xF8, 0xFE, 0xF9, 0x03, 0xE8, 0xF8, 0xF6, 0xF4, 0xED, 0xFF, 0x00, 0x61, 0x9F, + 0xD6, 0x03, 0xD7, 0xD8, 0xD8, 0xD7, 0xED, 0xD6, 0x02, 0xD9, 0xD1, 0xB6, 0xFD, 0xBD, + 0x18, 0xB4, 0xCA, 0xEF, 0xE8, 0xE7, 0xE7, 0xE8, 0xEB, 0xF1, 0xE5, 0xCD, 0xB0, 0xB7, + 0xBB, 0xAF, 0xAF, 0xC0, 0xAF, 0xC0, 0xBB, 0xB2, 0xCB, 0xE1, 0xEC, 0xE8, 0xF0, 0xE7, + 0x86, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, 0x02, 0xC5, 0xDB, 0xF3, 0xFD, 0xEF, 0x06, + 0xF1, 0xF5, 0xFB, 0xDD, 0xC1, 0xC7, 0xCC, 0xFC, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, + 0xF1, 0xEF, 0xEF, 0x85, 0xFF, 0x00, 0xF4, 0xFD, 0xF7, 0x00, 0xF4, 0xF7, 0xFF, 0x09, + 0xF4, 0xF6, 0xF7, 0xE9, 0xE9, 0xFA, 0xE9, 0xFA, 0xF8, 0xF4, 0xEC, 0xFF, 0x00, 0x5D, + 0x87, 0xD6, 0x1E, 0xD8, 0xCE, 0xB3, 0xBA, 0xBD, 0xBE, 0xBE, 0xB9, 0xCF, 0xE1, 0xE9, + 0xE7, 0xE9, 0xED, 0xE2, 0xCA, 0xAF, 0xB8, 0xAB, 0xBF, 0xBF, 0xC1, 0xB0, 0xC0, 0xBC, + 0xA7, 0xAF, 0xD9, 0xF2, 0xEB, 0xE8, 0xEF, 0xE7, 0x86, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, + 0xFE, 0xCE, 0x0B, 0xCA, 0xDF, 0xF7, 0xEF, 0xEF, 0xF1, 0xF3, 0xF9, 0xDB, 0xC1, 0xC7, + 0xCC, 0xFC, 0xCE, 0x05, 0xCC, 0xC7, 0xC1, 0xDB, 0xF7, 0xF1, 0xEE, 0xEF, 0x85, 0xFF, + 0x05, 0xF3, 0xF6, 0xF7, 0xF8, 0xF8, 0xF6, 0xF9, 0xFF, 0x0A, 0xF3, 0xF7, 0xE7, 0xF9, + 0xF9, 0xFB, 0xEA, 0xFA, 0xF8, 0xE6, 0xF4, 0xEB, 0xFF, 0x00, 0x58, 0x87, 0xD6, 0x1C, + 0xD7, 0xDC, 0xD4, 0xB8, 0xBD, 0xBE, 0xAD, 0xBB, 0xB0, 0xE6, 0xED, 0xEB, 0xF2, 0xD6, + 0xD0, 0xB5, 0xBC, 0xC2, 0xB0, 0xC0, 0xBE, 0xAE, 0xBF, 0xBB, 0xB5, 0xD0, 0xE6, 0xEF, + 0xE9, 0xED, 0xE7, 0x86, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFE, 0xCE, 0x09, 0xCC, 0xC1, + 0xFB, 0xF1, 0xF1, 0xF7, 0xD9, 0xE1, 0xC5, 0xCC, 0xFB, 0xCE, 0x05, 0xCC, 0xC5, 0xDF, + 0xFB, 0xF5, 0xF1, 0xED, 0xEF, 0x84, 0xFF, 0x05, 0xF5, 0xF7, 0xF8, 0xE7, 0xF7, 0xF3, + 0xFB, 0xFF, 0x09, 0xF5, 0xF8, 0xFC, 0xEA, 0xFA, 0xF8, 0xE8, 0xF9, 0xF7, 0xF5, 0xE9, + 0xFF, 0x00, 0x54, 0x86, 0xD6, 0x03, 0xD9, 0xD1, 0xB6, 0xBD, 0xFE, 0xBE, 0x13, 0xB6, + 0xCE, 0xFA, 0xE5, 0xCD, 0xB0, 0xB7, 0xBC, 0xB0, 0xB2, 0xB0, 0xBF, 0xBE, 0xBB, 0xB7, + 0xAF, 0xCA, 0xE1, 0xEC, 0xE8, 0xEC, 0xE7, 0x85, 0xDE, 0x01, 0xE4, 0xC8, 0xFD, 0xCE, + 0x07, 0xC7, 0xDF, 0xFB, 0xFB, 0xDF, 0xC3, 0xCA, 0xCC, 0xFC, 0xCE, 0x05, 0xCC, 0xC7, + 0xC1, 0xDB, 0xF7, 0xF1, 0xEB, 0xEF, 0x84, 0xFF, 0x01, 0xF4, 0xF7, 0xFE, 0xF8, 0x00, + 0xF5, 0xFD, 0xFF, 0x0A, 0xF3, 0xF5, 0xF8, 0xEA, 0xEC, 0xEA, 0xF9, 0xF8, 0xF7, 0xF6, + 0xF3, 0xE8, 0xFF, 0x00, 0x51, 0x86, 0xD6, 0x03, 0xD8, 0xCE, 0xB3, 0xBA, 0xFE, 0xBE, + 0x12, 0xBA, 0xB3, 0xD3, 0xAF, 0xB6, 0xBB, 0xBF, 0xC1, 0xB1, 0xB1, 0xC0, 0xBE, 0xB9, + 0xB2, 0xCD, 0xE5, 0xF1, 0xEB, 0xE8, 0xEB, 0xE7, 0x85, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, + 0xFE, 0xCE, 0x05, 0xCC, 0xC5, 0xE3, 0xC1, 0xC7, 0xCC, 0xFB, 0xCE, 0x05, 0xCC, 0xC5, + 0xDF, 0xFB, 0xF5, 0xF1, 0xEA, 0xEF, 0x84, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF8, 0x0D, + 0xF6, 0xF4, 0xFF, 0xF3, 0xF5, 0xF7, 0xF9, 0xFB, 0xEB, 0xEB, 0xFA, 0xF8, 0xF6, 0xF4, + 0xE6, 0xFF, 0x00, 0x48, 0x86, 0xD6, 0x07, 0xD7, 0xDC, 0xD4, 0xB8, 0xBE, 0xAE, 0xBF, + 0xBE, 0xFE, 0xBA, 0x0C, 0xBD, 0xBF, 0xB0, 0xB1, 0xC1, 0xBF, 0xBB, 0xB6, 0xAE, 0xD9, + 0xF2, 0xEB, 0xE8, 0xE9, 0xE7, 0x85, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0xFE, + 0xCC, 0xFB, 0xCE, 0x05, 0xCC, 0xC7, 0xC1, 0xDB, 0xF7, 0xF1, 0xE8, 0xEF, 0x83, 0xFF, + 0x04, 0xF5, 0xF8, 0xE8, 0xF9, 0xF8, 0xFE, 0xF6, 0x08, 0xF7, 0xF9, 0xEA, 0xEB, 0xFB, + 0xF9, 0xF7, 0xF5, 0xF3, 0xE5, 0xFF, 0x00, 0x3F, 0x85, 0xD6, 0x14, 0xD9, 0xD1, 0xB6, + 0xBE, 0xBF, 0xAF, 0xC0, 0xC0, 0xBF, 0xBE, 0xBD, 0xBF, 0xB0, 0xB0, 0xBC, 0xB6, 0xAF, + 0xCC, 0xE4, 0xEF, 0xE9, 0xE7, 0xE7, 0x84, 0xDE, 0x01, 0xE4, 0xC8, 0xF6, 0xCE, 0x06, + 0xCC, 0xC7, 0xC1, 0xDD, 0xFB, 0xF5, 0xF1, 0xE7, 0xEF, 0x83, 0xFF, 0x0E, 0xF4, 0xF8, + 0xF9, 0xE9, 0xFA, 0xFA, 0xF9, 0xF8, 0xF7, 0xF9, 0xEA, 0xEA, 0xF8, 0xF5, 0xF3, 0xE3, + 0xFF, 0x00, 0x3F, 0x88, 0xD6, 0x16, 0xD7, 0xD8, 0xD9, 0xDB, 0xD2, 0xB6, 0xBD, 0xBE, + 0xBF, 0xAF, 0xAF, 0xAE, 0xBE, 0xBD, 0xBE, 0xBC, 0xB9, 0xB1, 0xCD, 0xE5, 0xF1, 0xEB, + 0xE8, 0xE6, 0xE7, 0x84, 0xDE, 0x01, 0xE4, 0xC8, 0xF8, 0xCE, 0x06, 0xCC, 0xCA, 0xC3, + 0xDF, 0xFB, 0xF5, 0xF1, 0xE5, 0xEF, 0x83, 0xFF, 0x0C, 0xF4, 0xF7, 0xF8, 0xF9, 0xE9, + 0xE9, 0xE8, 0xF8, 0xF7, 0xF8, 0xF8, 0xF7, 0xF4, 0xE1, 0xFF, 0x00, 0x41, 0x8A, 0xD6, + 0x16, 0xD7, 0xD8, 0xDA, 0xCC, 0xCF, 0xD2, 0xD7, 0xB8, 0xBD, 0xBE, 0xBF, 0xC0, 0xC0, + 0xBF, 0xBE, 0xBD, 0xB9, 0xB2, 0xCE, 0xD5, 0xF2, 0xEB, 0xE8, 0xE4, 0xE7, 0x87, 0xDE, + 0x05, 0xDF, 0xE0, 0xE1, 0xE5, 0xC8, 0xCD, 0xFB, 0xCE, 0x06, 0xCD, 0xCB, 0xC4, 0xE1, + 0xD9, 0xF7, 0xF1, 0xE3, 0xEF, 0x83, 0xFF, 0x0A, 0xF5, 0xF7, 0xF8, 0xF9, 0xFA, 0xFA, + 0xF9, 0xF8, 0xF7, 0xF6, 0xF4, 0xDF, 0xFF, 0x00, 0x45, 0x8D, 0xD6, 0x17, 0xD7, 0xD8, + 0xD9, 0xDA, 0xCA, 0xCE, 0xD3, 0xB4, 0xB6, 0xB8, 0xBA, 0xBD, 0xBE, 0xAE, 0xC0, 0xBF, + 0xBE, 0xBA, 0xB6, 0xAE, 0xD9, 0xF3, 0xEC, 0xE9, 0xE2, 0xE7, 0x88, 0xDE, 0x06, 0xDF, + 0xE1, 0xD2, 0xD3, 0xD5, 0xD9, 0xCC, 0xFC, 0xCE, 0x06, 0xCC, 0xC6, 0xD1, 0xDA, 0xF9, + 0xF3, 0xF1, 0xE2, 0xEF, 0x86, 0xFF, 0x0C, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xE8, + 0xFA, 0xF9, 0xF8, 0xF6, 0xF5, 0xF3, 0xDE, 0xFF, 0x00, 0x47, 0x90, 0xD6, 0x0B, 0xD7, + 0xD8, 0xD9, 0xDA, 0xCA, 0xCD, 0xD0, 0xD3, 0xD6, 0xB6, 0xBA, 0xBD, 0xFE, 0xBA, 0x09, + 0xBE, 0xC0, 0xB1, 0xB1, 0xC0, 0xB9, 0xD3, 0xE7, 0xEF, 0xE9, 0xE0, 0xE7, 0x8B, 0xDE, + 0x0A, 0xDF, 0xE0, 0xE1, 0xE2, 0xD3, 0xD5, 0xD6, 0xD5, 0xD7, 0xC9, 0xCD, 0xFD, 0xCE, + 0x04, 0xCA, 0xE2, 0xFC, 0xF4, 0xF1, 0xE0, 0xEF, 0x87, 0xFF, 0x02, 0xF4, 0xF6, 0xF7, + 0xFE, 0xF6, 0x05, 0xF8, 0xFA, 0xEB, 0xEB, 0xFA, 0xF6, 0xDC, 0xFF, 0x00, 0x4D, 0x93, + 0xD6, 0x1A, 0xD7, 0xD8, 0xD9, 0xDA, 0xCA, 0xCD, 0xD0, 0xD1, 0xD2, 0xB0, 0xB4, 0xB8, + 0xBA, 0xBD, 0xBD, 0xBA, 0xDF, 0xBA, 0xBD, 0xBF, 0xB1, 0xB3, 0xB1, 0xBA, 0xCF, 0xF4, + 0xE9, 0xDF, 0xE7, 0x8E, 0xDE, 0x00, 0xDF, 0xFE, 0xE0, 0x09, 0xD0, 0xD2, 0xD4, 0xD5, + 0xD6, 0xD6, 0xD5, 0xE7, 0xD9, 0xCC, 0xFD, 0xCE, 0x02, 0xCA, 0xDF, 0xF7, 0xDE, 0xEF, + 0x8A, 0xFF, 0x0E, 0xF1, 0xF3, 0xF5, 0xF6, 0xF7, 0xF7, 0xF6, 0xFF, 0xF6, 0xF7, 0xF9, + 0xEB, 0xED, 0xEB, 0xF7, 0xDC, 0xFF, 0x00, 0x5A, 0x97, 0xD6, 0x0F, 0xD7, 0xD8, 0xD9, + 0xD9, 0xDA, 0xCA, 0xCD, 0xD0, 0xD3, 0xD6, 0xB4, 0xB4, 0xD8, 0xD8, 0xB8, 0xBA, 0xFE, + 0xBD, 0x0B, 0xB8, 0xB6, 0xB4, 0xB8, 0xBB, 0xC1, 0xB3, 0xB2, 0xBD, 0xAF, 0xE5, 0xEB, + 0xDF, 0xE7, 0x91, 0xDE, 0x09, 0xDF, 0xE0, 0xE1, 0xE2, 0xD2, 0xD2, 0xE3, 0xE3, 0xD4, + 0xD5, 0xFE, 0xD6, 0x04, 0xD4, 0xD3, 0xD4, 0xC8, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, 0xC1, + 0xFB, 0xF1, 0xDF, 0xEF, 0x8D, 0xFF, 0x05, 0xF3, 0xF3, 0xFF, 0xFF, 0xF5, 0xF6, 0xFE, + 0xF7, 0x09, 0xF5, 0xF4, 0xF3, 0xF5, 0xF7, 0xFB, 0xED, 0xEC, 0xF9, 0xF3, 0xDD, 0xFF, + 0x00, 0x65, 0x9B, 0xD6, 0x23, 0xD7, 0xD8, 0xD9, 0xD9, 0xDA, 0xCA, 0xCD, 0xCF, 0xD2, + 0xD3, 0xD6, 0xB4, 0xB6, 0xB8, 0xBA, 0xB8, 0xB4, 0xB2, 0xDA, 0xBA, 0xBD, 0xBA, 0xB8, + 0xB4, 0xD6, 0xD4, 0xD8, 0xB8, 0xC0, 0xB2, 0xB2, 0xC0, 0xB6, 0xCC, 0xF1, 0xE8, 0xE0, + 0xE7, 0x95, 0xDE, 0x15, 0xDF, 0xE0, 0xE1, 0xE1, 0xE2, 0xD2, 0xD3, 0xD4, 0xD5, 0xD4, + 0xD2, 0xD1, 0xE4, 0xD5, 0xD6, 0xD5, 0xD4, 0xD2, 0xE2, 0xE2, 0xE7, 0xCA, 0xFD, 0xCE, + 0x02, 0xC7, 0xDD, 0xF5, 0xDF, 0xEF, 0x90, 0xFF, 0x0C, 0xF3, 0xF4, 0xF5, 0xF6, 0xF5, + 0xF3, 0xF2, 0xFF, 0xF6, 0xF7, 0xF6, 0xF5, 0xF3, 0xFE, 0xFF, 0x05, 0xF5, 0xFA, 0xEC, + 0xEC, 0xFA, 0xF5, 0xDD, 0xFF, 0x00, 0x72, 0xA0, 0xD6, 0x01, 0xD7, 0xD8, 0xFE, 0xD9, + 0x0B, 0xDA, 0xCA, 0xCB, 0xCD, 0xD0, 0xD3, 0xD6, 0xB4, 0xB4, 0xB2, 0xB4, 0xB8, 0xFE, + 0xBD, 0x02, 0xBA, 0xDC, 0xDA, 0xFE, 0xB8, 0x0E, 0xB4, 0xD6, 0xD1, 0xCE, 0xCB, 0xD0, + 0xB3, 0xBC, 0xB0, 0xB0, 0xBF, 0xBA, 0xAF, 0xE5, 0xEB, 0xE0, 0xE7, 0x98, 0xDE, 0x08, + 0xDF, 0xE0, 0xE1, 0xE2, 0xD2, 0xD2, 0xD1, 0xD2, 0xD4, 0xFE, 0xD6, 0x02, 0xD5, 0xE5, + 0xE4, 0xFE, 0xD4, 0x07, 0xD2, 0xE2, 0xE0, 0xDF, 0xDE, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, + 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xE0, 0xEF, 0x94, 0xFF, 0x04, 0xF3, 0xF3, 0xF2, 0xF3, + 0xF5, 0xFE, 0xF7, 0x02, 0xF6, 0xFF, 0xFF, 0xFE, 0xF5, 0x00, 0xF3, 0xFC, 0xFF, 0x06, + 0xF3, 0xF8, 0xEA, 0xEA, 0xF9, 0xF6, 0xF3, 0xDE, 0xFF, 0x00, 0x7B, 0xB6, 0xD6, 0x01, + 0xD7, 0xD8, 0xED, 0xD9, 0x10, 0xDA, 0xCA, 0xCB, 0xCD, 0xCF, 0xD2, 0xD3, 0xD4, 0xD6, + 0xB4, 0xB6, 0xB8, 0xBA, 0xB8, 0xD8, 0xD8, 0xB8, 0xFE, 0xBD, 0x01, 0xBA, 0xB6, 0xFE, + 0xB4, 0x10, 0xD5, 0xD0, 0xCD, 0xCA, 0xDA, 0xD9, 0xDD, 0xD4, 0xB9, 0xBF, 0xBF, 0xBE, + 0xBD, 0xB6, 0xCC, 0xF1, 0xE8, 0xE1, 0xE7, 0x9D, 0xDE, 0x01, 0xDF, 0xE0, 0xFE, 0xE1, + 0x08, 0xE2, 0xD2, 0xD3, 0xD4, 0xD5, 0xD4, 0xE3, 0xE3, 0xD4, 0xFE, 0xD6, 0x01, 0xD5, + 0xD3, 0xFE, 0xD2, 0x02, 0xE2, 0xE0, 0xDF, 0xFE, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, + 0xCE, 0x02, 0xC7, 0xDD, 0xF5, 0xE0, 0xEF, 0x97, 0xFF, 0x07, 0xF3, 0xF4, 0xF5, 0xF6, + 0xF5, 0xFF, 0xFF, 0xF5, 0xFE, 0xF7, 0x01, 0xF6, 0xF4, 0xFE, 0xF3, 0xF9, 0xFF, 0x05, + 0xF6, 0xF9, 0xF9, 0xF8, 0xF7, 0xF5, 0xDE, 0xFF, 0x00, 0x88, 0xB6, 0xD6, 0x01, 0xD8, + 0xC9, 0xF2, 0xCB, 0x01, 0xCD, 0xCF, 0xFE, 0xD1, 0x09, 0xD2, 0xD3, 0xD4, 0xD6, 0xB4, + 0xB4, 0xB2, 0xB0, 0xB4, 0xB8, 0xFE, 0xBD, 0x15, 0xB6, 0xD6, 0xD6, 0xB8, 0xBD, 0xBA, + 0xB8, 0xB6, 0xB4, 0xD5, 0xD2, 0xCF, 0xCC, 0xDA, 0xD9, 0xD8, 0xD7, 0xD6, 0xD8, 0xCE, + 0xB3, 0xBA, 0xFE, 0xBD, 0x03, 0xBA, 0xAF, 0xE5, 0xEB, 0xE1, 0xE7, 0xA5, 0xDE, 0x01, + 0xDF, 0xE0, 0xFB, 0xE1, 0x06, 0xE2, 0xD2, 0xD2, 0xD1, 0xD0, 0xD2, 0xD4, 0xFE, 0xD6, + 0x0C, 0xD3, 0xE2, 0xE2, 0xD4, 0xD6, 0xD5, 0xD4, 0xD3, 0xD2, 0xE2, 0xE1, 0xE0, 0xDF, + 0xFB, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xE1, + 0xEF, 0x9C, 0xFF, 0x05, 0xF3, 0xF3, 0xF2, 0xF1, 0xF3, 0xF5, 0xFE, 0xF7, 0x08, 0xF4, + 0xFF, 0xFF, 0xF5, 0xF7, 0xF6, 0xF5, 0xF4, 0xF3, 0xF6, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, + 0xF7, 0x01, 0xF6, 0xF3, 0xDF, 0xFF, 0x00, 0x90, 0xB6, 0xD6, 0x03, 0xD9, 0xCB, 0xD0, + 0xD2, 0xF4, 0xD4, 0x03, 0xD6, 0xB4, 0xB6, 0xB6, 0xFE, 0xB4, 0x07, 0xB6, 0xB8, 0xBA, + 0xBA, 0xDC, 0xDA, 0xDC, 0xBA, 0xFE, 0xBD, 0x0D, 0xB8, 0xDA, 0xB4, 0xB6, 0xB6, 0xB4, + 0xD5, 0xD2, 0xCF, 0xCC, 0xDA, 0xD9, 0xD8, 0xD7, 0xFD, 0xD6, 0x03, 0xD7, 0xDC, 0xD4, + 0xB8, 0xFD, 0xBD, 0x03, 0xB6, 0xCC, 0xF1, 0xE8, 0xE2, 0xE7, 0xB4, 0xDE, 0x01, 0xDF, + 0xE0, 0xF4, 0xE1, 0x03, 0xE2, 0xD2, 0xD3, 0xD3, 0xFE, 0xD2, 0x07, 0xD3, 0xD4, 0xD5, + 0xD5, 0xE5, 0xE4, 0xE5, 0xD5, 0xFE, 0xD6, 0x09, 0xD4, 0xE4, 0xD2, 0xD3, 0xD3, 0xD2, + 0xE2, 0xE1, 0xE0, 0xDF, 0xF8, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0x02, 0xC7, + 0xDD, 0xF5, 0xE1, 0xEF, 0xA4, 0xFF, 0x02, 0xF3, 0xF4, 0xF4, 0xFE, 0xF3, 0x03, 0xF4, + 0xF5, 0xF6, 0xF6, 0xFE, 0xFF, 0x00, 0xF6, 0xFE, 0xF7, 0x05, 0xF5, 0xFF, 0xF3, 0xF4, + 0xF4, 0xF3, 0xF2, 0xFF, 0x00, 0xF5, 0xFD, 0xF7, 0x00, 0xF5, 0xDF, 0xFF, 0x00, 0x91, + 0xB6, 0xD6, 0x03, 0xD9, 0xCD, 0xD4, 0xB4, 0xF4, 0xB6, 0x06, 0xB8, 0xBA, 0xBD, 0xBD, + 0xB8, 0xDC, 0xB8, 0xFE, 0xBD, 0x12, 0xB8, 0xB6, 0xB4, 0xB8, 0xBA, 0xBD, 0xBA, 0xB8, + 0xB4, 0xB4, 0xB2, 0xD5, 0xD2, 0xCF, 0xCC, 0xDA, 0xD9, 0xD8, 0xD7, 0xF9, 0xD6, 0x03, + 0xD8, 0xCE, 0xB3, 0xBA, 0xFE, 0xBD, 0x04, 0xBA, 0xAF, 0xE6, 0xEC, 0xE8, 0xE3, 0xE7, + 0xB5, 0xDE, 0x02, 0xDF, 0xE1, 0xD2, 0xF4, 0xD3, 0x06, 0xD4, 0xD5, 0xD6, 0xD6, 0xD4, + 0xE5, 0xD4, 0xFE, 0xD6, 0x0E, 0xD4, 0xD3, 0xD2, 0xD4, 0xD5, 0xD6, 0xD5, 0xD4, 0xD2, + 0xD2, 0xD1, 0xE2, 0xE1, 0xE0, 0xDF, 0xF4, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, + 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xE2, 0xEF, 0xB3, 0xFF, 0x00, 0xF3, 0xF4, 0xF4, 0x06, + 0xF5, 0xF6, 0xF7, 0xF7, 0xF5, 0xFF, 0xF5, 0xFE, 0xF7, 0x0A, 0xF5, 0xF4, 0xF3, 0xF5, + 0xF6, 0xF7, 0xF6, 0xF5, 0xF3, 0xF3, 0xF2, 0xEF, 0xFF, 0x01, 0xF3, 0xF6, 0xFE, 0xF7, + 0x01, 0xF6, 0xF3, 0xE0, 0xFF, 0x00, 0x78, 0xB6, 0xD6, 0x03, 0xD9, 0xCF, 0xB4, 0xBA, + 0xF0, 0xBD, 0x02, 0xB8, 0xDC, 0xB8, 0xFE, 0xBD, 0x01, 0xBA, 0xDC, 0xFD, 0xB6, 0x09, + 0xB4, 0xD6, 0xD3, 0xD2, 0xCF, 0xCC, 0xDA, 0xD9, 0xD8, 0xD7, 0xF6, 0xD6, 0x0B, 0xD7, + 0xDC, 0xD4, 0xB8, 0xBD, 0xBD, 0xBE, 0xBE, 0xB7, 0xCE, 0xE0, 0xEA, 0xE3, 0xE7, 0xB5, + 0xDE, 0x02, 0xE0, 0xD2, 0xD5, 0xF0, 0xD6, 0x02, 0xD4, 0xE5, 0xD4, 0xFE, 0xD6, 0x01, + 0xD5, 0xE5, 0xFD, 0xD3, 0x05, 0xD2, 0xE2, 0xE1, 0xE1, 0xE0, 0xDF, 0xF1, 0xDE, 0x02, + 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0x03, 0xC7, 0xDF, 0xF7, 0xF1, 0xE3, 0xEF, 0xB4, 0xFF, + 0x01, 0xF3, 0xF6, 0xF0, 0xF7, 0x02, 0xF5, 0xFF, 0xF5, 0xFE, 0xF7, 0x01, 0xF6, 0xFF, + 0xFD, 0xF4, 0x00, 0xF3, 0xEA, 0xFF, 0x05, 0xF5, 0xF7, 0xF7, 0xF8, 0xF8, 0xF6, 0xE0, + 0xFF, 0x00, 0x8E, 0xB7, 0xD6, 0x0C, 0xD7, 0xDA, 0xD2, 0xB6, 0xBD, 0xBD, 0xBA, 0xB8, + 0xB6, 0xB8, 0xBA, 0xBD, 0xBD, 0xFE, 0xBA, 0xFB, 0xBD, 0x12, 0xBA, 0xBA, 0xB8, 0xB8, + 0xB6, 0xB6, 0xB4, 0xB2, 0xD4, 0xD4, 0xD3, 0xD2, 0xCF, 0xCD, 0xCA, 0xDA, 0xD9, 0xD8, + 0xD7, 0xF2, 0xD6, 0x0B, 0xD8, 0xCE, 0xB3, 0xBA, 0xBD, 0xBF, 0xAE, 0xBC, 0xB3, 0xDA, + 0xF0, 0xE8, 0xE4, 0xE7, 0xB5, 0xDE, 0x0A, 0xE1, 0xD3, 0xD6, 0xD6, 0xD5, 0xD4, 0xD3, + 0xD4, 0xD5, 0xD6, 0xD6, 0xFE, 0xD5, 0xFB, 0xD6, 0x07, 0xD5, 0xD5, 0xD4, 0xD4, 0xD3, + 0xD3, 0xD2, 0xD1, 0xFD, 0xE1, 0x01, 0xE0, 0xDF, 0xEC, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, + 0xFE, 0xCE, 0x03, 0xCC, 0xC5, 0xDB, 0xF5, 0xE3, 0xEF, 0xB4, 0xFF, 0x09, 0xF4, 0xF7, + 0xF7, 0xF6, 0xF5, 0xF4, 0xF5, 0xF6, 0xF7, 0xF7, 0xFE, 0xF6, 0xFB, 0xF7, 0x07, 0xF6, + 0xF6, 0xF5, 0xF5, 0xF4, 0xF4, 0xF3, 0xF2, 0xE5, 0xFF, 0x06, 0xF3, 0xF6, 0xF7, 0xF9, + 0xE8, 0xF8, 0xF4, 0xE1, 0xFF, 0x00, 0x8E, 0xB7, 0xD6, 0x0F, 0xD8, 0xCA, 0xD1, 0xB2, + 0xB8, 0xBA, 0xBA, 0xDC, 0xD8, 0xDA, 0xB8, 0xBD, 0xBD, 0xBA, 0xDF, 0xBA, 0xFE, 0xBD, + 0x01, 0xBA, 0xB8, 0xFE, 0xB6, 0x0D, 0xB4, 0xD6, 0xD4, 0xD4, 0xD3, 0xD0, 0xCD, 0xCB, + 0xCA, 0xDA, 0xD9, 0xD9, 0xD8, 0xD7, 0xEF, 0xD6, 0x0B, 0xD7, 0xDC, 0xD4, 0xB8, 0xBD, + 0xC0, 0xAF, 0xC0, 0xB9, 0xAE, 0xE4, 0xEB, 0xE4, 0xE7, 0xB5, 0xDE, 0x0D, 0xE0, 0xD1, + 0xD4, 0xD5, 0xD5, 0xE5, 0xE3, 0xE4, 0xD4, 0xD6, 0xD6, 0xD5, 0xE6, 0xD5, 0xFE, 0xD6, + 0x01, 0xD5, 0xD4, 0xFE, 0xD3, 0x01, 0xD2, 0xE2, 0xFE, 0xE1, 0x01, 0xE0, 0xDF, 0xE7, + 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0x03, 0xCC, 0xC1, 0xFB, 0xF1, 0xE4, 0xEF, + 0xB4, 0xFF, 0x03, 0xF2, 0xF5, 0xF6, 0xF6, 0xFE, 0xFF, 0x05, 0xF5, 0xF7, 0xF7, 0xF6, + 0xFF, 0xF6, 0xFE, 0xF7, 0x01, 0xF6, 0xF5, 0xFE, 0xF4, 0x00, 0xF3, 0xDF, 0xFF, 0x06, + 0xF5, 0xF7, 0xFA, 0xE9, 0xFA, 0xF6, 0xF3, 0xE2, 0xFF, 0x00, 0x7A, 0xB7, 0xD6, 0x0C, + 0xD8, 0xCA, 0xCF, 0xD2, 0xD6, 0xB4, 0xB4, 0xB2, 0xAE, 0xD4, 0xB2, 0xB6, 0xB6, 0xFE, + 0xB4, 0xFE, 0xB6, 0x0E, 0xB4, 0xD6, 0xD4, 0xD4, 0xD3, 0xD0, 0xCD, 0xCB, 0xCB, 0xCA, + 0xDA, 0xD9, 0xD9, 0xD8, 0xD7, 0xEA, 0xD6, 0x0B, 0xD8, 0xCE, 0xB3, 0xBA, 0xBF, 0xAF, + 0xC1, 0xBF, 0xB7, 0xCC, 0xF1, 0xE8, 0xE5, 0xE7, 0xB5, 0xDE, 0x0A, 0xDF, 0xE0, 0xE2, + 0xD2, 0xD2, 0xD1, 0xCF, 0xE1, 0xD1, 0xD3, 0xD3, 0xFE, 0xD2, 0xFE, 0xD3, 0x01, 0xD2, + 0xE2, 0xFE, 0xE1, 0x01, 0xE0, 0xDF, 0xE1, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFD, 0xCE, + 0x02, 0xC7, 0xDD, 0xF5, 0xE4, 0xEF, 0xB2, 0xFF, 0x07, 0xF3, 0xF3, 0xF2, 0xF0, 0xFF, + 0xF2, 0xF4, 0xF4, 0xFE, 0xF3, 0xFE, 0xF4, 0x00, 0xF3, 0xDA, 0xFF, 0x06, 0xF3, 0xF6, + 0xF9, 0xE9, 0xFB, 0xF9, 0xF6, 0xE2, 0xFF, 0x00, 0x59, 0xB7, 0xD6, 0x07, 0xD7, 0xD9, + 0xCA, 0xCB, 0xCD, 0xCF, 0xD1, 0xD1, 0xFE, 0xCF, 0xF9, 0xD1, 0x05, 0xCF, 0xCD, 0xCB, + 0xCB, 0xCA, 0xDA, 0xFE, 0xD9, 0x01, 0xD8, 0xD7, 0xE6, 0xD6, 0x0C, 0xD7, 0xDB, 0xD1, + 0xB5, 0xBB, 0xBF, 0xAF, 0xAE, 0xBB, 0xB1, 0xE9, 0xEE, 0xE8, 0xE6, 0xE7, 0xB3, 0xDE, + 0x03, 0xDF, 0xE0, 0xE1, 0xE1, 0xFE, 0xE0, 0xF9, 0xE1, 0x01, 0xE0, 0xDF, 0xDC, 0xDE, + 0x03, 0xE0, 0xE4, 0xC8, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, 0xC2, 0xFC, 0xF2, 0xE5, 0xEF, + 0x81, 0xFF, 0xFB, 0xFF, 0x06, 0xF4, 0xF7, 0xF9, 0xE9, 0xE8, 0xF7, 0xF4, 0xE3, 0xFF, + 0x00, 0x3A, 0xB6, 0xD6, 0x01, 0xD7, 0xD8, 0xED, 0xD9, 0x01, 0xD8, 0xD7, 0xE0, 0xD6, + 0x0B, 0xD7, 0xDC, 0xD4, 0xB8, 0xBE, 0xBF, 0xBF, 0xBE, 0xB8, 0xAD, 0xE3, 0xEB, 0xE6, + 0xE7, 0x81, 0xDE, 0xFC, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0x03, 0xC8, 0xCF, + 0xF8, 0xF1, 0xE6, 0xEF, 0x81, 0xFF, 0xFA, 0xFF, 0x06, 0xF5, 0xF8, 0xF9, 0xF9, 0xF8, + 0xF6, 0xF3, 0xE4, 0xFF, 0x00, 0x32, 0x81, 0xD6, 0xFC, 0xD6, 0x04, 0xD8, 0xCE, 0xB3, + 0xBA, 0xBD, 0xFE, 0xBE, 0x03, 0xB6, 0xCC, 0xF1, 0xE8, 0xE7, 0xE7, 0x81, 0xDE, 0xFB, + 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFE, 0xCE, 0x03, 0xCD, 0xC6, 0xDC, 0xF5, 0xE6, 0xEF, + 0x81, 0xFF, 0xFA, 0xFF, 0x02, 0xF3, 0xF6, 0xF7, 0xFE, 0xF8, 0x00, 0xF5, 0xE4, 0xFF, + 0x00, 0x34, 0x81, 0xD6, 0xFC, 0xD6, 0x0C, 0xD7, 0xDC, 0xD2, 0xB6, 0xBA, 0xBF, 0xAE, + 0xBF, 0xBA, 0xB1, 0xE9, 0xEE, 0xE8, 0xE8, 0xE7, 0x81, 0xDE, 0xFB, 0xDE, 0x03, 0xE0, + 0xE4, 0xC8, 0xCC, 0xFE, 0xCE, 0x03, 0xCC, 0xC3, 0xFD, 0xF3, 0xE7, 0xEF, 0x81, 0xFF, + 0xF9, 0xFF, 0x06, 0xF4, 0xF6, 0xF9, 0xE8, 0xF9, 0xF6, 0xF4, 0xE5, 0xFF, 0x00, 0x33, + 0x81, 0xD6, 0xFB, 0xD6, 0x0C, 0xD8, 0xCC, 0xD5, 0xB8, 0xBF, 0xAF, 0xC0, 0xBE, 0xB8, + 0xAD, 0xE4, 0xEC, 0xE8, 0xE9, 0xE7, 0x81, 0xDE, 0xFA, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, + 0xFD, 0xCE, 0x03, 0xC9, 0xBF, 0xF9, 0xF1, 0xE8, 0xEF, 0x81, 0xFF, 0xF8, 0xFF, 0x06, + 0xF5, 0xF9, 0xE9, 0xFA, 0xF8, 0xF6, 0xF3, 0xE6, 0xFF, 0x00, 0x33, 0x81, 0xD6, 0xFB, + 0xD6, 0x0C, 0xD7, 0xD9, 0xCF, 0xB3, 0xBB, 0xC0, 0xAF, 0xBF, 0xBD, 0xB6, 0xCF, 0xE1, + 0xEB, 0xE9, 0xE7, 0x81, 0xDE, 0xF9, 0xDE, 0x02, 0xE2, 0xC6, 0xCC, 0xFD, 0xCE, 0x03, + 0xC7, 0xDF, 0xF7, 0xF1, 0xE9, 0xEF, 0x81, 0xFF, 0xF8, 0xFF, 0x06, 0xF3, 0xF7, 0xFA, + 0xE9, 0xF9, 0xF7, 0xF5, 0xE6, 0xFF, 0x00, 0x35, 0x81, 0xD6, 0xFA, 0xD6, 0x0C, 0xD7, + 0xDB, 0xD1, 0xB5, 0xBC, 0xAE, 0xBF, 0xBD, 0xBA, 0xB4, 0xCB, 0xF2, 0xE9, 0xEA, 0xE7, + 0x81, 0xDE, 0xF9, 0xDE, 0x03, 0xE0, 0xE4, 0xC8, 0xCC, 0xFE, 0xCE, 0x04, 0xCC, 0xC5, + 0xDD, 0xF7, 0xF1, 0xEA, 0xEF, 0x81, 0xFF, 0xF7, 0xFF, 0x06, 0xF4, 0xF8, 0xE8, 0xF9, + 0xF7, 0xF6, 0xF4, 0xE7, 0xFF, 0x00, 0x33, 0x81, 0xD6, 0xF9, 0xD6, 0x0C, 0xD7, 0xDC, + 0xD4, 0xB9, 0xBE, 0xBE, 0xBD, 0xBD, 0xBA, 0xB2, 0xD9, 0xEF, 0xE8, 0xEB, 0xE7, 0x81, + 0xDE, 0xF8, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFD, 0xCE, 0x03, 0xCC, 0xC5, 0xDB, 0xF5, + 0xEA, 0xEF, 0x81, 0xFF, 0xF6, 0xFF, 0x06, 0xF6, 0xF8, 0xF8, 0xF7, 0xF7, 0xF6, 0xF4, + 0xE8, 0xFF, 0x00, 0x32, 0x81, 0xD6, 0xF8, 0xD6, 0x03, 0xD8, 0xCE, 0xB3, 0xBA, 0xFD, + 0xBD, 0x04, 0xB9, 0xB0, 0xE8, 0xEE, 0xE8, 0xEC, 0xE7, 0x81, 0xDE, 0xF7, 0xDE, 0x02, + 0xE2, 0xC6, 0xCC, 0xFD, 0xCE, 0x03, 0xCC, 0xC3, 0xFD, 0xF3, 0xEB, 0xEF, 0x81, 0xFF, + 0xF6, 0xFF, 0x01, 0xF3, 0xF6, 0xFD, 0xF7, 0x01, 0xF6, 0xF4, 0xE9, 0xFF, 0x00, 0x36, + 0x81, 0xD6, 0xF8, 0xD6, 0x05, 0xD7, 0xDB, 0xD1, 0xB5, 0xBA, 0xBD, 0xFE, 0xBE, 0x04, + 0xB8, 0xAD, 0xE4, 0xEC, 0xE8, 0xED, 0xE7, 0x81, 0xDE, 0xF7, 0xDE, 0x03, 0xE0, 0xE4, + 0xC8, 0xCC, 0xFD, 0xCE, 0x03, 0xC9, 0xBF, 0xF9, 0xF1, 0xEC, 0xEF, 0x81, 0xFF, 0xF5, + 0xFF, 0x02, 0xF4, 0xF6, 0xF7, 0xFE, 0xF8, 0x01, 0xF6, 0xF3, 0xEA, 0xFF, 0x00, 0x35, + 0x81, 0xD6, 0xF7, 0xD6, 0x0D, 0xD7, 0xDB, 0xD1, 0xB5, 0xBA, 0xBF, 0xAE, 0xC0, 0xBE, + 0xB7, 0xCF, 0xE2, 0xEC, 0xE8, 0xEE, 0xE7, 0x81, 0xDE, 0xF6, 0xDE, 0x03, 0xE0, 0xE4, + 0xC8, 0xCC, 0xFD, 0xCE, 0x03, 0xC7, 0xDF, 0xF7, 0xF1, 0xED, 0xEF, 0x81, 0xFF, 0xF4, + 0xFF, 0x06, 0xF4, 0xF6, 0xF9, 0xE8, 0xFA, 0xF8, 0xF6, 0xEA, 0xFF, 0x00, 0x36, 0x81, + 0xD6, 0xF6, 0xD6, 0x0D, 0xD7, 0xDC, 0xD4, 0xB8, 0xBF, 0xAE, 0xC1, 0xAF, 0xBD, 0xB5, + 0xCD, 0xE2, 0xEC, 0xE8, 0xEF, 0xE7, 0x81, 0xDE, 0xF5, 0xDE, 0x03, 0xE0, 0xE5, 0xC9, + 0xCD, 0xFE, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xEE, 0xEF, 0x81, 0xFF, 0xF3, + 0xFF, 0x06, 0xF5, 0xF9, 0xE8, 0xFB, 0xE9, 0xF9, 0xF5, 0xEB, 0xFF, 0x00, 0x36, 0x81, + 0xD6, 0xF5, 0xD6, 0x0D, 0xD8, 0xCE, 0xB3, 0xBB, 0xBE, 0xC1, 0xB1, 0xB1, 0xBC, 0xB4, + 0xCD, 0xE2, 0xEC, 0xE8, 0xF0, 0xE7, 0x81, 0xDE, 0xF4, 0xDE, 0x02, 0xE1, 0xD6, 0xCB, + 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xEF, 0xEF, 0x81, 0xFF, 0xF3, 0xFF, + 0x07, 0xF3, 0xF7, 0xF8, 0xFB, 0xEB, 0xEB, 0xF8, 0xF4, 0xEC, 0xFF, 0x00, 0x38, 0x81, + 0xD6, 0xF5, 0xD6, 0x0E, 0xD7, 0xDB, 0xD1, 0xB5, 0xBA, 0xBF, 0xB1, 0xB1, 0xC0, 0xBA, + 0xB4, 0xCD, 0xE2, 0xEC, 0xE8, 0xF1, 0xE7, 0x81, 0xDE, 0xF4, 0xDE, 0x03, 0xDF, 0xE3, + 0xC7, 0xCC, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF0, 0xEF, 0x81, 0xFF, + 0xF2, 0xFF, 0x07, 0xF4, 0xF6, 0xF9, 0xEB, 0xEB, 0xFA, 0xF6, 0xF4, 0xED, 0xFF, 0x00, + 0x38, 0x81, 0xD6, 0xF4, 0xD6, 0x0E, 0xD7, 0xDB, 0xD1, 0xB5, 0xBB, 0xC0, 0xAF, 0xBF, + 0xBE, 0xBB, 0xB5, 0xCD, 0xE2, 0xEC, 0xE8, 0xF2, 0xE7, 0x81, 0xDE, 0xF3, 0xDE, 0x03, + 0xE0, 0xE4, 0xC8, 0xCC, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, 0xF1, 0xEF, + 0x81, 0xFF, 0xF1, 0xFF, 0x07, 0xF4, 0xF7, 0xFA, 0xE9, 0xF9, 0xF8, 0xF7, 0xF5, 0xEE, + 0xFF, 0x00, 0x38, 0x81, 0xD6, 0xF3, 0xD6, 0x04, 0xD7, 0xDB, 0xD1, 0xB5, 0xBB, 0xFE, + 0xBE, 0x06, 0xAD, 0xBB, 0xB4, 0xCD, 0xE2, 0xEC, 0xE8, 0xF3, 0xE7, 0x81, 0xDE, 0xF2, + 0xDE, 0x03, 0xE0, 0xE4, 0xC8, 0xCC, 0xFD, 0xCE, 0x04, 0xCC, 0xC5, 0xDD, 0xF7, 0xF1, + 0xF2, 0xEF, 0x81, 0xFF, 0xF0, 0xFF, 0x01, 0xF4, 0xF7, 0xFE, 0xF8, 0x02, 0xE7, 0xF7, + 0xF4, 0xEF, 0xFF, 0x00, 0x35, 0x81, 0xD6, 0xF2, 0xD6, 0x05, 0xD7, 0xDC, 0xD4, 0xB8, + 0xBD, 0xBD, 0xFE, 0xBE, 0x04, 0xBA, 0xB2, 0xC9, 0xDD, 0xE9, 0xF3, 0xE7, 0x81, 0xDE, + 0xF1, 0xDE, 0x02, 0xE0, 0xE6, 0xCA, 0xFC, 0xCE, 0x03, 0xCC, 0xC3, 0xD9, 0xF3, 0xF2, + 0xEF, 0x81, 0xFF, 0xEF, 0xFF, 0x02, 0xF5, 0xF7, 0xF7, 0xFE, 0xF8, 0x01, 0xF6, 0xF3, + 0xF0, 0xFF, 0x00, 0xFF}; + +#endif + +//#endif \ No newline at end of file diff --git a/setter/macos.r b/setter/macos.r index ff00cda..a449fbe 100644 --- a/setter/macos.r +++ b/setter/macos.r @@ -1 +1,42 @@ -/**************************************************************************** The Disc Image Chef ----------------------------------------------------------------------------- Filename : macos.r Author(s) : Natalia Portillo Component : fstester.setter --[ Description ] ----------------------------------------------------------- Contains Mac OS resources --[ License ] --------------------------------------------------------------- This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warraty of MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ----------------------------------------------------------------------------- Copyright (C) 2011-2018 Natalia Portillo *****************************************************************************/ #include "Types.r" resource 'vers' (1) { 0x00, 0x01, development, 0x00, verUS, "0.1", "0.1, © 2011-2018 Natalia Portillo" }; \ No newline at end of file +/**************************************************************************** +The Disc Image Chef +----------------------------------------------------------------------------- + +Filename : macos.r +Author(s) : Natalia Portillo + +Component : fstester.setter + +--[ Description ] ----------------------------------------------------------- + +Contains Mac OS resources + +--[ License ] --------------------------------------------------------------- + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warraty of + MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +----------------------------------------------------------------------------- +Copyright (C) 2011-2018 Natalia Portillo +*****************************************************************************/ + +#include "Types.r" + + resource 'vers' (1) { + 0x00, + 0x01, + development, + 0x00, + verUS, + "0.1", + "0.1, © 2011-2018 Natalia Portillo" + }; \ No newline at end of file