changeset 11218:ed017b9c532d

[gaim-migrate @ 13350] crazychat commit, first one. committer: Tailor Script <tailor@pidgin.im>
author Charlie Stockman <chuckleberry>
date Tue, 09 Aug 2005 07:10:23 +0000
parents f854402837ba
children 0fabe3892b97
files plugins/crazychat/Makefile.am plugins/crazychat/QTUtilities.c plugins/crazychat/QTUtilities.h plugins/crazychat/Utilities.c plugins/crazychat/Utilities.h plugins/crazychat/camdata.c plugins/crazychat/camdata.h plugins/crazychat/camproc.c plugins/crazychat/camproc.h plugins/crazychat/cc_features.c plugins/crazychat/cc_gaim_plugin.c plugins/crazychat/cc_gtk_gl.c plugins/crazychat/cc_gtk_gl.h plugins/crazychat/cc_interface.h plugins/crazychat/cc_network.c plugins/crazychat/cc_network.h plugins/crazychat/cc_output.c plugins/crazychat/configure.ac plugins/crazychat/crazychat.c plugins/crazychat/crazychat.h plugins/crazychat/dog_lids.c plugins/crazychat/dog_lids.h plugins/crazychat/doggy.c plugins/crazychat/doggy.h plugins/crazychat/draw.c plugins/crazychat/eye.c plugins/crazychat/eye.h plugins/crazychat/eyes.c plugins/crazychat/eyes.h plugins/crazychat/face.c plugins/crazychat/face.h plugins/crazychat/filter.c plugins/crazychat/filter.h plugins/crazychat/glm.c plugins/crazychat/glm.h plugins/crazychat/lids.c plugins/crazychat/lids.h plugins/crazychat/main.c plugins/crazychat/mat_struct.h plugins/crazychat/models.c plugins/crazychat/models.h plugins/crazychat/sharky.c plugins/crazychat/sharky.h plugins/crazychat/test.h plugins/crazychat/util.h
diffstat 45 files changed, 13401 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/Makefile.am	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,43 @@
+plugindir = $(libdir)/gaim
+
+if ENABLE_DEBUG
+DEBUG_CPPFLAGS = -g -pg
+# DEBUG_CPPFLAGS = -D_DEBUG_ -g -pg 
+DEBUG_LDFLAGS = -pg
+else
+DEBUG_CPPFLAGS = -O2
+DEBUG_LDFLAGS =
+endif
+
+plugin_LTLIBRARIES = crazychat.la
+if DISABLE_QT
+crazychat_la_LDFLAGS = -module -avoid-version $(DEBUG_LDFLAGS)
+crazychat_la_SOURCES = cc_gaim_plugin.c cc_gtk_gl.c cc_gtk_gl.h \
+	cc_interface.h crazychat.c crazychat.h util.h \
+	cc_network.c cc_network.h filter.c filter.h\
+	cc_output.c face.c face.h doggy.c doggy.h glm.h glm.c sharky.h sharky.c models.h models.c
+
+QT_CPPFLAGS = -D_DISABLE_QT_
+else
+crazychat_la_LDFLAGS = -module -avoid-version $(DEBUG_LDFLAGS) \
+	-XCClinker -framework -XCClinker Carbon -XCClinker -framework \
+	-XCClinker QuickTime
+
+crazychat_la_SOURCES = cc_features.c cc_gaim_plugin.c cc_gtk_gl.c cc_gtk_gl.h \
+	cc_interface.h crazychat.c crazychat.h util.h \
+	cc_network.c cc_network.h filter.c filter.h\
+	cc_output.c face.c face.h doggy.c doggy.h glm.h glm.c sharky.h sharky.c models.h models.c\
+	QTUtilities.c Utilities.c camdata.c camproc.c Utilities.h
+
+QT_CPPFLAGS =
+endif
+
+crazychat_la_LIBADD = $(PTHREAD_LIB) $(GTKGLEXT_LIBS)
+
+AM_CFLAGS = $(GTK_CFLAGS) \
+	$(GTKGLEXT_CFLAGS) \
+	-I$(top_srcdir)/include
+
+AM_CPPFLAGS = -DGAIM_PLUGINS \
+	$(DEBUG_CPPFLAGS) \
+	$(QT_CPPFLAGS)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/QTUtilities.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,306 @@
+/*
+	File:		QTUtilities.c
+	
+	Description: Miscellaneous QuickTime utility routines.
+
+	Copyright: 	© Copyright 2003 Apple Computer, Inc. All rights reserved.
+	
+	Disclaimer:	IMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.
+				("Apple") in consideration of your agreement to the following terms, and your
+				use, installation, modification or redistribution of this Apple software
+				constitutes acceptance of these terms.  If you do not agree with these terms,
+				please do not use, install, modify or redistribute this Apple software.
+
+				In consideration of your agreement to abide by the following terms, and subject
+				to these terms, Apple grants you a personal, non-exclusive license, under Apple’s
+				copyrights in this original Apple software (the "Apple Software"), to use,
+				reproduce, modify and redistribute the Apple Software, with or without
+				modifications, in source and/or binary forms; provided that if you redistribute
+				the Apple Software in its entirety and without modifications, you must retain
+				this notice and the following text and disclaimers in all such redistributions of
+				the Apple Software.  Neither the name, trademarks, service marks or logos of
+				Apple Computer, Inc. may be used to endorse or promote products derived from the
+				Apple Software without specific prior written permission from Apple.  Except as
+				expressly stated in this notice, no other rights or licenses, express or implied,
+				are granted by Apple herein, including but not limited to any patent rights that
+				may be infringed by your derivative works or by other works in which the Apple
+				Software may be incorporated.
+
+				The Apple Software is provided by Apple on an "AS IS" basis.  APPLE MAKES NO
+				WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
+				WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+				PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
+				COMBINATION WITH YOUR PRODUCTS.
+
+				IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
+				CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+				GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+				ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION
+				OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT
+				(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN
+				ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+				
+	Change History (most recent first):
+
+*/
+
+#include "QTUtilities.h"
+#include "Utilities.h"
+
+#define BailErr(x) {if (x != noErr) goto bail;}
+
+//////////
+//
+// GetMovieFromFile
+// Opens a movie file, then creates a new movie for the file
+//
+//////////
+
+OSErr GetMovieFromFile(FSSpec *fsspecPtr, Movie *theMovie)
+{
+	short	resRefNum = -1;
+    OSErr	result;
+
+    *theMovie = NULL;
+    
+	result = OpenMovieFile(fsspecPtr, &resRefNum, 0);
+	if (result == noErr)
+    {
+        short actualResId = DoTheRightThing;
+        
+        result = NewMovieFromFile(theMovie, 
+                                resRefNum, 
+                                &actualResId, 
+                                (unsigned char *) 0,
+                                0,
+                                (Boolean *) 0);
+        CloseMovieFile(resRefNum);
+    }
+    
+    return result;
+}
+
+//////////
+//
+// GetAMovieFile
+// Prompt the user for a movie file, then open
+// the file and create a movie for it.
+//
+//////////
+
+OSErr GetAMovieFile(Movie *theMovie)
+{
+    OSType 	myTypeList[2] = {kQTFileTypeMovie, kQTFileTypeQuickTimeImage};
+    FSSpec	theFSSpec;
+    OSErr	result = noErr;
+
+    *theMovie = nil;
+    
+    result = GetOneFileWithPreview(2, myTypeList, &theFSSpec, NULL);
+    if (result != userCanceledErr)
+    {            
+        result = GetMovieFromFile(&theFSSpec, theMovie);
+    }
+    
+    return result;
+}
+
+//////////
+//
+// NormalizeMovieRect
+//
+//////////
+
+void NormalizeMovieRect(Movie theMovie)
+{
+    Rect movieBounds;
+    
+	GetMovieBox(theMovie, &movieBounds);
+	OffsetRect(&movieBounds, -movieBounds.left, -movieBounds.top);
+	movieBounds.right = movieBounds.left + 640;
+	movieBounds.bottom = movieBounds.top + 480;
+	SetMovieBox(theMovie, &movieBounds);
+}
+
+//////////
+//
+// EraseRectAndAlpha
+// Zeros out a section of the GWorld, including alpha.
+//
+//////////
+
+void EraseRectAndAlpha(GWorldPtr gWorld, Rect *pRect)
+{
+	PixMapHandle	pixMap = GetGWorldPixMap(gWorld);
+	long			rows;
+	Ptr				rowBaseAddr;
+
+
+    LockPixels(pixMap);
+	rows = pRect->bottom - pRect->top;
+    
+    rowBaseAddr = GetPixBaseAddr(pixMap) + (GetPixRowBytes(pixMap) & 0x3fff) * pRect->top + pRect->left * GetPixDepth(pixMap) / 8;
+	do
+	{
+		long	cols;
+		UInt32	*baseAddr;
+		
+		cols = pRect->right - pRect->left;
+		baseAddr = (UInt32*)rowBaseAddr;
+		rowBaseAddr += (**pixMap).rowBytes & 0x3fff;
+		do
+		{
+			*baseAddr++ = 0;
+		} while (--cols);
+	} while (--rows);
+
+    UnlockPixels(pixMap);
+
+} // EraseRectAndAlpha
+
+//////////
+//
+// CreateDecompSeqForSGChannelData
+// Create a decompression sequence for the passed
+// Sequence Grabber channel data
+//
+//////////
+
+OSErr CreateDecompSeqForSGChannelData(SGChannel sgChannel, Rect *srcBounds, GWorldPtr imageDestination, ImageSequence *imageSeqID)
+{
+	OSErr err = noErr;
+	
+	ImageDescriptionHandle	imageDesc = (ImageDescriptionHandle)NewHandle(sizeof(ImageDescription));
+	if (imageDesc)
+	{
+
+		err = SGGetChannelSampleDescription(sgChannel,(Handle)imageDesc);
+		// The original version of this code had a bug - it passed in a Crop Rect to DecompressSequenceBegin instead of a scaling matrix
+		// This only worked because of another bug inside QT that reated the crop Rect as a destination rect for DV
+		// the following code does the right thing in all cases.
+		
+		if (err == noErr)
+		{
+			MatrixRecord 	mr;
+			Rect 			fromR;
+
+			fromR.left = 0;
+			fromR.top = 0;
+			fromR.right = (**imageDesc).width;
+			fromR.bottom = (**imageDesc).height;
+			RectMatrix(&mr, &fromR, srcBounds);
+			
+			err = DecompressSequenceBegin(imageSeqID, imageDesc, imageDestination, 0, nil, &mr,srcCopy,nil,0, codecNormalQuality, bestSpeedCodec);
+		}
+		
+		DisposeHandle((Handle)imageDesc);
+	}
+	else
+	{
+		err = MemError();
+	}
+	
+	return err;
+}
+
+
+//////////
+//
+// CreateDecompSeqForGWorldData
+// Create a decompression sequence for the specified gworld data
+//
+//////////
+
+OSErr CreateDecompSeqForGWorldData(GWorldPtr srcGWorld, Rect *srcBounds, MatrixRecordPtr mr, GWorldPtr imageDestination, ImageSequence *imageSeqID)
+{
+    OSErr err;
+    
+    ImageDescriptionHandle imageDesc = (ImageDescriptionHandle)NewHandle(sizeof(ImageDescription));
+    if (imageDesc)
+    {
+        err = MakeImageDescriptionForPixMap (GetGWorldPixMap(srcGWorld), &imageDesc);
+        err = DecompressSequenceBegin(	imageSeqID, 
+                                        imageDesc, 
+                                        imageDestination, 
+                                        0, 
+                                        srcBounds, 
+                                        mr, 
+                                        srcCopy, 
+                                        nil, 
+                                        0, 
+                                        codecNormalQuality, 
+                                        bestSpeedCodec);
+        DisposeHandle((Handle)imageDesc);
+    }
+    else
+    {
+        err = MemError();
+    }
+    
+    return err;
+}
+
+//////////
+//
+// CreateNewSGChannelForRecording
+// - create a new Sequence Grabber video channel
+// - let the use configure the channel
+// - set the channel bounds, usage
+// - set a data proc for the channel
+// - start recording data
+//
+//////////
+
+OSErr CreateNewSGChannelForRecording(ComponentInstance seqGrab, SGDataUPP dataProc, CGrafPtr drawPort, Rect *theRect, SGChannel *sgChannel, long refCon)
+{
+	OSErr err = noErr;
+	
+	BailErr((err = SGInitialize(seqGrab)));
+
+	// tell it we're not making a movie
+	BailErr((err = SGSetDataRef(seqGrab,0,0,seqGrabDontMakeMovie)));
+	// It wants a port, even if its not drawing to it
+	BailErr((err = SGSetGWorld(seqGrab, drawPort, GetMainDevice())));
+	BailErr((err = SGNewChannel(seqGrab, VideoMediaType, sgChannel)));
+	
+	// let the user configure the video channel
+	//BailErr((err = SGSettingsDialog(seqGrab, *sgChannel, 0, nil, 0, nil, 0)));    // ************************
+// ************************************************************	
+	
+	
+	
+	BailErr((err = SGSetChannelBounds(*sgChannel, theRect)));
+	// set usage for new video channel to avoid playthrough
+	BailErr((err = SGSetChannelUsage(*sgChannel, seqGrabRecord ))); //note we don't set seqGrabPlayDuringRecord
+    BailErr((err = SGSetDataProc(seqGrab, dataProc, refCon)));
+	BailErr((err = SGStartRecord(seqGrab)));
+
+bail:
+    return err;
+}
+
+//////////
+//
+// DoCloseSG
+// Terminate recording for our SG channel - dispose of the channel and 
+// the associated SG component instance
+//
+//////////
+
+void DoCloseSG(ComponentInstance seqGrab, SGChannel sgChannel, SGDataUPP dataProc)
+{
+	if(seqGrab) 
+    {
+		SGStop(seqGrab);
+        SGSetDataProc(seqGrab, NULL ,NULL);
+        if (dataProc)
+        {
+            DisposeSGDataUPP(dataProc);
+        }
+
+        SGDisposeChannel(seqGrab, sgChannel);
+		CloseComponent(seqGrab);
+	}
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/QTUtilities.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,65 @@
+/*
+	File:		QTUtilities.h
+	
+	Description: Interface file for QTUtilities.c source code.
+
+	Copyright: 	© Copyright 2003 Apple Computer, Inc. All rights reserved.
+	
+	Disclaimer:	IMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.
+				("Apple") in consideration of your agreement to the following terms, and your
+				use, installation, modification or redistribution of this Apple software
+				constitutes acceptance of these terms.  If you do not agree with these terms,
+				please do not use, install, modify or redistribute this Apple software.
+
+				In consideration of your agreement to abide by the following terms, and subject
+				to these terms, Apple grants you a personal, non-exclusive license, under Apple’s
+				copyrights in this original Apple software (the "Apple Software"), to use,
+				reproduce, modify and redistribute the Apple Software, with or without
+				modifications, in source and/or binary forms; provided that if you redistribute
+				the Apple Software in its entirety and without modifications, you must retain
+				this notice and the following text and disclaimers in all such redistributions of
+				the Apple Software.  Neither the name, trademarks, service marks or logos of
+				Apple Computer, Inc. may be used to endorse or promote products derived from the
+				Apple Software without specific prior written permission from Apple.  Except as
+				expressly stated in this notice, no other rights or licenses, express or implied,
+				are granted by Apple herein, including but not limited to any patent rights that
+				may be infringed by your derivative works or by other works in which the Apple
+				Software may be incorporated.
+
+				The Apple Software is provided by Apple on an "AS IS" basis.  APPLE MAKES NO
+				WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
+				WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+				PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
+				COMBINATION WITH YOUR PRODUCTS.
+
+				IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
+				CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+				GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+				ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION
+				OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT
+				(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN
+				ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+				
+	Change History (most recent first):
+
+*/
+
+#ifdef __APPLE_CC__
+//	#include <Carbon/Carbon.h>
+	#include <QuickTime/QuickTime.h>
+#else
+//	#include <Carbon.h>
+	#include <QuickTime.h>
+#endif
+
+#define kSourceNoneName					FOUR_CHAR_CODE('srcZ')
+
+
+OSErr GetMovieFromFile(FSSpec *fsspecPtr, Movie *theMovie);
+void NormalizeMovieRect(Movie theMovie);
+void EraseRectAndAlpha(GWorldPtr gWorld, Rect *pRect);
+OSErr GetAMovieFile(Movie *theMovie);
+OSErr CreateDecompSeqForSGChannelData(SGChannel sgChannel, Rect *srcBounds, GWorldPtr imageDestination, ImageSequence *imageSeqID);
+OSErr CreateDecompSeqForGWorldData(GWorldPtr srcGWorld, Rect *srcBounds, MatrixRecordPtr mr, GWorldPtr imageDestination, ImageSequence *imageSeqID);
+OSErr CreateNewSGChannelForRecording(ComponentInstance seqGrab, SGDataUPP dataProc, CGrafPtr drawPort, Rect *theRect, SGChannel *sgChannel, long refCon);
+void DoCloseSG(ComponentInstance seqGrab, SGChannel sgChannel, SGDataUPP dataProc);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/Utilities.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,283 @@
+/*
+	File:		Utilities.c
+	
+	Description: Miscellaneous Utility routines.
+
+	Copyright: 	© Copyright 2003 Apple Computer, Inc. All rights reserved.
+	
+	Disclaimer:	IMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.
+				("Apple") in consideration of your agreement to the following terms, and your
+				use, installation, modification or redistribution of this Apple software
+				constitutes acceptance of these terms.  If you do not agree with these terms,
+				please do not use, install, modify or redistribute this Apple software.
+
+				In consideration of your agreement to abide by the following terms, and subject
+				to these terms, Apple grants you a personal, non-exclusive license, under Apple’s
+				copyrights in this original Apple software (the "Apple Software"), to use,
+				reproduce, modify and redistribute the Apple Software, with or without
+				modifications, in source and/or binary forms; provided that if you redistribute
+				the Apple Software in its entirety and without modifications, you must retain
+				this notice and the following text and disclaimers in all such redistributions of
+				the Apple Software.  Neither the name, trademarks, service marks or logos of
+				Apple Computer, Inc. may be used to endorse or promote products derived from the
+				Apple Software without specific prior written permission from Apple.  Except as
+				expressly stated in this notice, no other rights or licenses, express or implied,
+				are granted by Apple herein, including but not limited to any patent rights that
+				may be infringed by your derivative works or by other works in which the Apple
+				Software may be incorporated.
+
+				The Apple Software is provided by Apple on an "AS IS" basis.  APPLE MAKES NO
+				WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
+				WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+				PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
+				COMBINATION WITH YOUR PRODUCTS.
+
+				IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
+				CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+				GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+				ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION
+				OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT
+				(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN
+				ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+				
+	Change History (most recent first):
+
+*/
+
+#ifndef __UTILITIES__
+    #include "Utilities.h"
+#endif
+
+const OSType    kApplicationSignature  = FOUR_CHAR_CODE('cvmj');
+const ResType   kOpenResourceType = FOUR_CHAR_CODE('open');
+const StringPtr kApplicationName = "\pYourAppNameHere";
+
+//////////
+//
+// GetOneFileWithPreview
+// Display the appropriate file-opening dialog box, with an optional QuickTime preview pane. If the user
+// selects a file, return information about it using the theFSSpecPtr parameter.
+//
+// Note that both StandardGetFilePreview and NavGetFile use the function specified by theFilterProc as a
+// file filter. This framework always passes NULL in the theFilterProc parameter. If you use this function
+// in your own code, keep in mind that on Windows the function specifier must be of type FileFilterUPP and 
+// on Macintosh it must be of type NavObjectFilterUPP. (You can use the QTFrame_GetFileFilterUPP to create
+// a function specifier of the appropriate type.) Also keep in mind that Navigation Services expects a file 
+// filter function to return true if a file is to be displayed, while the Standard File Package expects the
+// filter to return false if a file is to be displayed.
+//
+//////////
+
+OSErr GetOneFileWithPreview (short theNumTypes, TypeListPtr theTypeList, FSSpecPtr theFSSpecPtr, void *theFilterProc)
+{
+	
+#if TARGET_OS_WIN32
+	StandardFileReply	myReply;
+#endif
+#if TARGET_OS_MAC
+	NavReplyRecord		myReply;
+	NavDialogOptions		myDialogOptions;
+	NavTypeListHandle	myOpenList = NULL;
+	NavEventUPP		myEventUPP = NewNavEventUPP(HandleNavEvent);
+#endif
+	OSErr				myErr = noErr;
+	
+	if (theFSSpecPtr == NULL)
+		return(paramErr);
+
+#if TARGET_OS_WIN32
+	// prompt the user for a file
+	StandardGetFilePreview((FileFilterUPP)theFilterProc, theNumTypes, (ConstSFTypeListPtr)theTypeList, &myReply);
+	if (!myReply.sfGood)
+		return(userCanceledErr);
+	
+	// make an FSSpec record
+	myErr = FSMakeFSSpec(myReply.sfFile.vRefNum, myReply.sfFile.parID, myReply.sfFile.name, theFSSpecPtr);
+#endif
+
+#if TARGET_OS_MAC
+	// specify the options for the dialog box
+	NavGetDefaultDialogOptions(&myDialogOptions);
+	myDialogOptions.dialogOptionFlags -= kNavNoTypePopup;
+	myDialogOptions.dialogOptionFlags -= kNavAllowMultipleFiles;
+	BlockMoveData(kApplicationName, myDialogOptions.clientName, kApplicationName[0] + 1);
+	
+	// create a handle to an 'open' resource
+	myOpenList = (NavTypeListHandle)CreateOpenHandle(kApplicationSignature, theNumTypes, theTypeList);
+	if (myOpenList != NULL)
+		HLock((Handle)myOpenList);
+	
+	// prompt the user for a file
+	myErr = NavGetFile(NULL, &myReply, &myDialogOptions, myEventUPP, NULL, (NavObjectFilterUPP)theFilterProc, myOpenList, NULL);
+	if ((myErr == noErr) && myReply.validRecord) {
+		AEKeyword		myKeyword;
+		DescType		myActualType;
+		Size			myActualSize = 0;
+		
+		// get the FSSpec for the selected file
+		if (theFSSpecPtr != NULL)
+			myErr = AEGetNthPtr(&(myReply.selection), 1, typeFSS, &myKeyword, &myActualType, theFSSpecPtr, sizeof(FSSpec), &myActualSize);
+
+		NavDisposeReply(&myReply);
+	}
+	
+	if (myOpenList != NULL) {
+		HUnlock((Handle)myOpenList);
+		DisposeHandle((Handle)myOpenList);
+	}
+	
+	DisposeNavEventUPP(myEventUPP);
+#endif
+ 
+	return(myErr);
+}
+
+//////////
+//
+// CreateOpenHandle
+// Get the 'open' resource or dynamically create a NavTypeListHandle.
+//
+//////////
+
+Handle CreateOpenHandle (OSType theApplicationSignature, short theNumTypes, TypeListPtr theTypeList)
+{
+	Handle			myHandle = NULL;
+	
+	// see if we have an 'open' resource...
+	myHandle = Get1Resource('open', 128);
+	if ( myHandle != NULL && ResError() == noErr ) {
+		DetachResource( myHandle );
+		return myHandle;
+	} else {
+		myHandle = NULL;
+	}
+	
+	// nope, use the passed in types and dynamically create the NavTypeList
+	if (theTypeList == NULL)
+		return myHandle;
+	
+	if (theNumTypes > 0) {
+		myHandle = NewHandle(sizeof(NavTypeList) + (theNumTypes * sizeof(OSType)));
+		if (myHandle != NULL) {
+			NavTypeListHandle 	myOpenResHandle	= (NavTypeListHandle)myHandle;
+			
+			(*myOpenResHandle)->componentSignature = theApplicationSignature;
+			(*myOpenResHandle)->osTypeCount = theNumTypes;
+			BlockMoveData(theTypeList, (*myOpenResHandle)->osType, theNumTypes * sizeof(OSType));
+		}
+	}
+	
+	return myHandle;
+}
+
+//////////
+//
+// HandleNavEvent
+// A callback procedure that handles events while a Navigation Service dialog box is displayed.
+//
+//////////
+
+PASCAL_RTN void HandleNavEvent(NavEventCallbackMessage theCallBackSelector, NavCBRecPtr theCallBackParms, void *theCallBackUD)
+{
+#pragma unused(theCallBackUD)
+	
+	if (theCallBackSelector == kNavCBEvent) {
+		switch (theCallBackParms->eventData.eventDataParms.event->what) {
+			case updateEvt:
+#if TARGET_OS_MAC
+				// Handle Update Event
+#endif
+				break;
+			case nullEvent:
+				// Handle Null Event
+				break;
+		}
+	}
+}
+
+//////////
+//
+// PutFile
+// Save a file under the specified name. Return Boolean values indicating whether the user selected a file
+// and whether the selected file is replacing an existing file.
+//
+//////////
+
+OSErr PutFile (ConstStr255Param thePrompt, ConstStr255Param theFileName, FSSpecPtr theFSSpecPtr, Boolean *theIsSelected, Boolean *theIsReplacing)
+{
+	NavReplyRecord		myReply;
+	NavDialogOptions		myDialogOptions;
+	NavEventUPP		myEventUPP = NewNavEventUPP(HandleNavEvent);
+	OSErr				myErr = noErr;
+
+	if ((theFSSpecPtr == NULL) || (theIsSelected == NULL) || (theIsReplacing == NULL))
+		return(paramErr);
+	
+	// assume we are not replacing an existing file
+	*theIsReplacing = false;
+	
+        *theIsSelected = false;
+        
+	// specify the options for the dialog box
+	NavGetDefaultDialogOptions(&myDialogOptions);
+	myDialogOptions.dialogOptionFlags += kNavNoTypePopup;
+	myDialogOptions.dialogOptionFlags += kNavDontAutoTranslate;
+	BlockMoveData(theFileName, myDialogOptions.savedFileName, theFileName[0] + 1);
+	BlockMoveData(thePrompt, myDialogOptions.message, thePrompt[0] + 1);
+	
+	// prompt the user for a file
+	myErr = NavPutFile(NULL, &myReply, &myDialogOptions, myEventUPP, MovieFileType, sigMoviePlayer, NULL);
+	if ((myErr == noErr) && myReply.validRecord) 
+    {
+		AEKeyword		myKeyword;
+		DescType		myActualType;
+		Size			myActualSize = 0;
+		
+		// get the FSSpec for the selected file
+		if (theFSSpecPtr != NULL)
+			myErr = AEGetNthPtr(&(myReply.selection), 1, typeFSS, &myKeyword, &myActualType, theFSSpecPtr, sizeof(FSSpec), &myActualSize);
+
+                *theIsSelected = myReply.validRecord;
+                if (myReply.validRecord)
+                {
+                    *theIsReplacing = myReply.replacing;
+                }
+
+		NavDisposeReply(&myReply);
+	}
+		
+
+	DisposeNavEventUPP(myEventUPP);
+
+	return(myErr);
+}
+
+//////////
+//
+// DrawLobsterPICTtoGWorld
+// Draws our lobster image to the specified gworld
+//
+//////////
+
+void DrawLobsterPICTtoGWorld(CGrafPtr destGWorld, Rect *srcRect)
+{
+        // put the overlay into the GWorld, move the picture to the bottom right of the movie
+    PicHandle	pict = GetPicture(129);
+    if (pict)
+    {
+        CGrafPtr	oldPort;
+        GDHandle	oldDevice;
+        Rect		frame = (**pict).picFrame;
+        
+        GetGWorld(&oldPort, &oldDevice);
+        SetGWorld(destGWorld, nil);
+        // normalize coordinates
+        OffsetRect(&frame, -frame.left, -frame.left);
+        // grow frame to be as big as source rect
+        OffsetRect(&frame, srcRect->right - frame.right, srcRect->bottom - frame.bottom);
+        DrawPicture(pict, &frame);
+        SetGWorld(oldPort, oldDevice);
+        ReleaseResource((Handle)pict);
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/Utilities.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,83 @@
+/*
+	File:		Utilities.h
+	
+	Description: Interface file for Utilities.c source code.
+
+	Copyright: 	© Copyright 2003 Apple Computer, Inc. All rights reserved.
+	
+	Disclaimer:	IMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.
+				("Apple") in consideration of your agreement to the following terms, and your
+				use, installation, modification or redistribution of this Apple software
+				constitutes acceptance of these terms.  If you do not agree with these terms,
+				please do not use, install, modify or redistribute this Apple software.
+
+				In consideration of your agreement to abide by the following terms, and subject
+				to these terms, Apple grants you a personal, non-exclusive license, under Apple’s
+				copyrights in this original Apple software (the "Apple Software"), to use,
+				reproduce, modify and redistribute the Apple Software, with or without
+				modifications, in source and/or binary forms; provided that if you redistribute
+				the Apple Software in its entirety and without modifications, you must retain
+				this notice and the following text and disclaimers in all such redistributions of
+				the Apple Software.  Neither the name, trademarks, service marks or logos of
+				Apple Computer, Inc. may be used to endorse or promote products derived from the
+				Apple Software without specific prior written permission from Apple.  Except as
+				expressly stated in this notice, no other rights or licenses, express or implied,
+				are granted by Apple herein, including but not limited to any patent rights that
+				may be infringed by your derivative works or by other works in which the Apple
+				Software may be incorporated.
+
+				The Apple Software is provided by Apple on an "AS IS" basis.  APPLE MAKES NO
+				WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
+				WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+				PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN
+				COMBINATION WITH YOUR PRODUCTS.
+
+				IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR
+				CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+				GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+				ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION
+				OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT
+				(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN
+				ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+				
+	Change History (most recent first):
+
+*/
+
+#ifdef __APPLE_CC__
+//	#include <Carbon/Carbon.h>
+	#include <QuickTime/QuickTime.h>
+#else
+//	#include <Carbon.h>
+	#include <QuickTime.h>
+#endif
+
+
+#define	kTypeListCount	2
+#if TARGET_OS_MAC
+	#define PASCAL_RTN pascal
+#endif
+
+#ifdef __APPLE_CC__
+	#define     sigMoviePlayer        FOUR_CHAR_CODE('TVOD')
+#else
+    #include <FileTypesAndCreators.h>
+#endif    
+
+
+//
+// Typedefs
+//
+typedef const OSTypePtr TypeListPtr;
+
+
+//
+// Prototypes
+//
+OSErr GetOneFileWithPreview (short theNumTypes, TypeListPtr theTypeList, FSSpecPtr theFSSpecPtr, void *theFilterProc);
+Handle CreateOpenHandle (OSType theApplicationSignature, short theNumTypes, TypeListPtr theTypeList);
+PASCAL_RTN void HandleNavEvent(NavEventCallbackMessage theCallBackSelector, NavCBRecPtr theCallBackParms, void *theCallBackUD);
+OSErr PutFile (ConstStr255Param thePrompt, ConstStr255Param theFileName, FSSpecPtr theFSSpecPtr, Boolean *theIsSelected, Boolean *theIsReplacing);
+void DrawLobsterPICTtoGWorld(CGrafPtr destGWorld, Rect *srcRect);
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/camdata.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,213 @@
+/*
+ *  camdata.c
+ *  basecame
+ *
+ *  Created by CS194 on Mon Apr 26 2004.
+ *  Copyright (c) 2004 __MyCompanyName__. All rights reserved.
+ *
+ */
+
+#include "camdata.h"
+//#include "AppBlit_Component.h"
+#include "QTUtilities.h"
+#include "Utilities.h"
+
+
+#define	BailNULL(n)  if (!n) goto bail;
+#define	BailError(n) if (n) goto bail;
+#define	BailNil(n) if (!n) goto bail;
+#define BailErr(x) {if (x != noErr) goto bail;}
+#define bitdepth 32
+
+mungDataPtr myMungData = NULL;
+long		mWorlds[20];
+UInt32		mRedCount[256], mGreenCound[256], mBlueCount[256];
+
+static void DecompressSequencePreflight(GWorldPtr srcGWorld, 
+                                        ImageSequence *imageSeq,
+                                        GWorldPtr destGWorld,
+                                        Rect *srcRect);
+//static void DrawRGBHistogram(mungDataRecord *theMungData);
+//static void CreateEffectDescription(mungDataRecord *theMungData);
+//static void CreateEffectDecompSequence(mungDataRecord *theMungData);
+//static void AddGWorldDataSourceToEffectDecompSeq(mungDataRecord *theMungData);
+//static void MakeEffectTimeBaseForEffect(mungDataRecord *theMungData);
+//static void DrawUsingEffect(mungDataRecord *theMungData);
+
+
+OSErr InitializeMungData(Rect bounds)
+{
+	OSErr err = noErr;
+    
+	if(myMungData) 
+    {
+        DisposeMungData();
+	}
+    
+	myMungData = (mungDataPtr)NewPtrClear(sizeof(mungDataRecord));
+	if (myMungData == nil) 
+    {
+        err = MemError();
+        goto bail;
+    }
+
+	myMungData->effect = 0; // always
+    
+
+	BailErr(QTNewGWorld(&(myMungData->gw),bitdepth,&bounds,0,0,0));
+	LockPixels(GetGWorldPixMap(myMungData->gw));
+    
+    SetMungDataColorDefaults();
+
+
+
+	myMungData->selectedIndex = 0;
+	myMungData->overlay = NULL;
+
+	SetCurrentClamp(-1);
+
+            
+	
+	myMungData->bounds = bounds;
+
+	SetRect(&bounds, 0, 0, 256*2+4, 128*3 + 20);
+	BailErr(QTNewGWorld(&(myMungData->histoWorld),bitdepth,&bounds,0,0,0));
+	LockPixels(GetGWorldPixMap(myMungData->histoWorld));
+
+bail:
+	return err;
+}
+
+OSErr DisposeMungData(void)
+{  // check this out
+    OSErr err = noErr;
+    
+    if(myMungData) 
+    {
+        //if(myMungData->drawSeq) 
+        //{
+        //    CDSequenceEnd(myMungData->drawSeq);
+        //}
+        
+        if(myMungData->gw) 
+        {
+            DisposeGWorld(myMungData->gw); 
+            myMungData->gw = nil;
+        }
+        
+        if(myMungData->overlay) 
+        {
+            DisposeGWorld(myMungData->overlay); 
+            myMungData->overlay = nil;
+        }
+        
+        if(myMungData->histoWorld) 
+        {
+            DisposeGWorld(myMungData->histoWorld); 
+            myMungData->histoWorld = nil;
+        }
+    
+        if (myMungData->effectTimeBase)
+        {
+            DisposeTimeBase(myMungData->effectTimeBase);
+        }
+        if (myMungData->effectParams)
+        {
+            QTDisposeAtomContainer(myMungData->effectParams);
+        }
+        if (myMungData->effectDesc)
+        {
+            DisposeHandle((Handle)myMungData->effectDesc);
+        }
+
+        DisposePtr((Ptr)myMungData);
+        myMungData = nil;
+    }
+    return err;
+}
+
+static void DecompressSequencePreflight(GWorldPtr srcGWorld, 
+                                        ImageSequence *imageSeq,
+                                        GWorldPtr destGWorld,
+                                        Rect *srcRect)
+// might not need this one
+										
+{
+    ImageDescriptionHandle imageDesc = nil;
+    
+    BailErr(MakeImageDescriptionForPixMap (GetGWorldPixMap(srcGWorld), &imageDesc));
+    
+    // use our built-in decompressor to draw
+   // (**imageDesc).cType = kCustomDecompressorType;
+	
+// *********** MIGHT BE MAKING A BIG MISTAKE ******************
+    // pass a compressed sample so a codec can perform preflighting before the first DecompressSequenceFrameWhen call
+
+    BailErr(DecompressSequenceBegin(imageSeq, 
+                                    imageDesc, 
+                                    destGWorld,
+                                    0,
+                                    srcRect, 
+                                    nil,
+                                    srcCopy,
+                                    nil,
+                                    0,
+                                    codecNormalQuality,
+                                    bestSpeedCodec));
+
+bail:
+    if (imageDesc)
+    {
+        DisposeHandle((Handle)imageDesc);
+    }
+}
+
+ImageSequence GetMungDataDrawSeq()
+{
+	return myMungData->drawSeq;
+}
+
+void SetMungDataColorDefaults()
+{
+	if(myMungData) 
+    {
+        myMungData->redMin = 2;
+        myMungData->redMax = 254;
+        myMungData->greenMin = 2;
+        myMungData->greenMax = 254;
+        myMungData->blueMin = 2;
+        myMungData->blueMax = 254;
+    }
+}
+
+void GetMungDataBoundsRect(Rect *boundsRect)
+// might not need this one
+{
+	MacSetRect (boundsRect, 
+			myMungData->bounds.left, 
+			myMungData->bounds.top, 
+			myMungData->bounds.right, 
+			myMungData->bounds.bottom
+	);
+}
+
+void SetCurrentClamp(short index)     // :crazy:20040426 
+{
+    myMungData->selectedIndex = index;
+}
+
+GWorldPtr GetMungDataOffscreen()
+{
+    return (myMungData->gw);
+}
+
+void SetMungDataDrawSeq(ImageSequence theDrawSeq)
+{
+	myMungData->drawSeq = theDrawSeq;
+}
+
+
+CGrafPtr GetMungDataWindowPort()
+{
+	return GetWindowPort(myMungData->window);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/camdata.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,63 @@
+/*
+ *  camdata.h
+ *  basecame
+ *
+ *  Created by CS194 on Mon Apr 26 2004.
+ *  Copyright (c) 2004 __MyCompanyName__. All rights reserved.
+ *
+ */
+ 
+#pragma once
+
+#ifdef __APPLE_CC__
+//	#include <Carbon/Carbon.h>
+	#include <QuickTime/QuickTime.h>
+#else
+//	#include <Carbon.h>
+	#include <QuickTime.h>
+#endif
+
+typedef struct 
+{
+	GWorldPtr 				gw;
+	GWorldPtr 				overlay;
+	GWorldPtr 				histoWorld;
+	
+	Rect 					bounds;
+	WindowPtr				window;
+	ImageSequence 			drawSeq;
+	UInt32					redMin, redMax;
+	UInt32					greenMin, greenMax;
+	UInt32					blueMin, blueMax;
+
+	long					selectedIndex;
+	OSType					effect;
+	TimeBase				effectTimeBase;
+	QTAtomContainer			effectParams;
+	ImageDescriptionHandle 	effectDesc, effectDesc2;
+}	mungDataRecord;
+typedef mungDataRecord *mungDataPtr;
+
+OSErr DisposeMungData(void);
+OSErr InitializeMungData(Rect bounds);
+void SetCurrentClamp(short index);
+
+//void BlitOneMungData(mungDataRecord *theMungData);
+
+//void AdjustColorClampEndpoints(short hMouseCoord);
+//void IncrementCurrentClamp();
+//void DecrementCurrentClamp();
+void SetMungDataColorDefaults();
+CGrafPtr GetMungDataWindowPort();
+
+GWorldPtr GetMungDataOffscreen(void);
+//OSType GetMungDataEffectType();
+
+//long GetCurrentClamp();
+//void SetCurrentClamp(short index);
+
+void GetMungDataBoundsRect(Rect *movieRect);
+//CGrafPtr GetMungDataWindowPort();
+
+void SetMungDataDrawSeq(ImageSequence theDrawSeq);
+//ImageSequence GetMungDataDrawSeq();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/camproc.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,812 @@
+/*
+ *  camproc.c
+ *  basecame
+ *
+ *  Created by CS194 on Mon Apr 26 2004.
+ *  Copyright (c) 2004 __MyCompanyName__. All rights reserved.
+ *
+ */
+
+
+#include "camdata.h"
+#include "Utilities.h"
+#include "QTUtilities.h"
+#include "stdio.h"
+#include "math.h"
+#include <gtk/gtk.h>
+#include "cc_interface.h"
+#include "filter.h"
+
+
+extern int detection_mode;
+extern mungDataPtr myMungData;
+extern int x_click;
+extern int y_click;
+
+
+#define kMinimumIdleDurationInMillis	kEventDurationMillisecond
+#define BailErr(x) {if (x != noErr) goto bail;}
+#define PRE_CALIBRATE_MODE 0
+#define CALIBRATE_MODE 1
+#define SCAN_MODE 2
+
+#define CALIB_TOP 190
+#define CALIB_BOTTOM 200
+#define CALIB_LEFT 200
+#define CALIB_RIGHT 210
+
+#define CALIB_RADIUS 5
+
+#define NUM_FRAMES_EYE_SEARCH 50
+#define EYE_UNCONFIDENCE_LIMIT 7
+
+#define BLINK_THRESHOLD 75
+#define BLINK_LENGTH 10
+#define WHITE_THRESH 25
+#define WHITE_COUNT_MAX 200
+
+
+struct input_instance* instance;
+int scan_region_left;
+int scan_region_right;
+int scan_region_top;
+int scan_region_bottom;
+
+int lum_thresh=150;
+int face_left;
+int face_right;
+int face_top;
+int face_bottom;
+int old_left_eye_x=50;
+int old_left_eye_y=50;
+int old_right_eye_x=50;
+int old_right_eye_y=50;
+int left_eye_x;
+int left_eye_y;
+int right_eye_x;
+int right_eye_y;
+int eye_search_frame_count=0;
+int bozo_bit=0;
+int eye_unconfidence=0;
+int last_eye_count_left=0;
+int last_eye_count_right=0;
+int mouth_ctr_x;
+int mouth_ctr_y;
+int mouth_size, mouth_left, mouth_right, mouth_top, mouth_bottom;
+int white_count;
+guint8 head_size_old;
+int left_eye_blink_count;
+int right_eye_blink_count;
+
+int left_eye_top, left_eye_bottom, left_eye_right, left_eye_left;
+int right_eye_top, right_eye_bottom, right_eye_right, right_eye_left;
+
+filter_bank *bank;
+
+static SeqGrabComponent		mSeqGrab		= NULL;
+static SGChannel 			mSGChanVideo 	= NULL;
+static SGDataUPP 			mMyDataProcPtr 	= NULL;
+static EventLoopTimerRef 	mSGTimerRef 	= 0;
+static ImageSequence 		mDecomSeq 		= 0;
+static EventLoopTimerUPP	mSGTimerUPP		= nil;
+static Rect					mMungRect 		= {0, 0, 480, 640};
+int					lower_left_corner_x = 200;
+int					lower_left_corner_y = 200;
+int					upper_right_corner_x = 210;
+int					upper_right_corner_y = 190;
+
+
+static pascal OSErr MiniMungDataProc(SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType, long refCon);
+static pascal void SGIdlingTimer(EventLoopTimerRef inTimer, void *inUserData);
+static void DetectLobster(GWorldPtr mungDataOffscreen);
+int SkinDetect(double Y, double E, double S);
+void ScanSkin(PixMapHandle p);
+void drawbox(int top, int bottom, int left, int right, int color);
+void SkinStats (PixMapHandle p, int top, int bottom, int left, int right);
+void SetEyeSearchRegions(void);
+
+
+typedef enum  {RED, GREEN, BLUE} color;
+color saved_best=-1;
+
+int filenum=0;
+
+
+OSErr CamProc(struct input_instance *inst, filter_bank *f)
+{
+	OSStatus error;
+	OSErr err = noErr;
+	
+	BailErr(err = InitializeMungData(mMungRect)); 
+	
+	bank = f;
+	
+	instance=inst;
+	mMyDataProcPtr 	= NewSGDataUPP(MiniMungDataProc);
+	mSeqGrab 		= OpenDefaultComponent(SeqGrabComponentType, 0);
+    BailErr((err = CreateNewSGChannelForRecording(	mSeqGrab, 
+                                    mMyDataProcPtr, 
+                                    GetMungDataOffscreen(), // drawing destination
+                                    &mMungRect, 
+                                    &mSGChanVideo, 
+                                    NULL)));
+
+bail:
+    return err;
+}
+
+void QueryCam (void)
+{
+	SGIdle(mSeqGrab);
+}
+
+static pascal void SGIdlingTimer(EventLoopTimerRef inTimer, void *inUserData)
+{
+#pragma unused(inUserData)
+
+    if (mSeqGrab)
+    {
+        SGIdle(mSeqGrab);
+    }
+    
+    // Reschedule the event loop timer
+    SetEventLoopTimerNextFireTime(inTimer, kMinimumIdleDurationInMillis);
+}
+
+static pascal OSErr MiniMungDataProc(SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType, long refCon)
+{
+
+
+#pragma unused(offset,chRefCon,time,writeType,refCon)
+	ComponentResult err = noErr;
+	CodecFlags 		ignore;
+    GWorldPtr 		gWorld;
+    
+
+
+
+	if (!myMungData) goto bail;
+    
+    gWorld = GetMungDataOffscreen();
+	if(gWorld)
+	{
+		if (mDecomSeq == 0)	// init a decompression sequence
+		{
+			Rect bounds;
+			
+			GetMungDataBoundsRect(&bounds);
+                    
+            BailErr( CreateDecompSeqForSGChannelData(c, &bounds, gWorld, &mDecomSeq));
+    
+			if(1)
+            //if ((!mUseOverlay) && (GetCurrentClamp() == -1) && (!mUseEffect))
+            {
+				ImageSequence drawSeq;
+				
+                err = CreateDecompSeqForGWorldData(	gWorld, 
+                                                    &bounds, 
+                                                    nil, 
+                                                    GetMungDataWindowPort(),
+                                                    &drawSeq);
+				SetMungDataDrawSeq(drawSeq);
+            }
+		}
+        
+        // decompress data to our offscreen gworld
+		BailErr(DecompressSequenceFrameS(mDecomSeq,p,len,0,&ignore,nil));
+		
+		// image is now in the GWorld - manipulate it at will!
+		//if ((mUseOverlay) || (GetCurrentClamp() != -1) || (mUseEffect))
+        //{
+			// use our custom decompressor to "decompress" the data
+			// to the screen with overlays or color clamping
+          //  BlitOneMungData(myMungData);
+        //}
+		//else
+        //{
+			// we are doing a motion detect grab, so
+			// search for lobsters in our image data
+            DetectLobster(gWorld);
+        //}
+		
+	}
+	
+bail:
+	return err;
+}
+
+void Die()
+{
+	//RemoveEventLoopTimer(mSGTimerRef);
+       // mSGTimerRef = nil;
+      //  DisposeEventLoopTimerUPP(mSGTimerUPP);
+       	DoCloseSG(mSeqGrab, mSGChanVideo, mMyDataProcPtr);
+	
+}
+
+
+float Y_mean=-1;
+float Y_dev,E_mean,E_dev,S_mean,S_dev;
+/*
+	extern colorBuf[480][640];
+*/
+extern unsigned int (*colorBuf)[644];
+extern struct input_instance input_data;
+	
+static void DetectLobster(GWorldPtr mungDataOffscreen)
+{
+    CGrafPtr	oldPort;
+    GDHandle	oldDevice;
+    int			x, y;
+    Rect		bounds;
+    PixMapHandle	pix = GetGWorldPixMap(mungDataOffscreen);
+    UInt32		* baseAddr;
+    UInt32		reds = 0;
+    Str255		tempString;
+    int			minX = 10000, maxX = -10000;
+    int			minY = 10000, maxY = -10000;
+	Rect		tempRect;
+    float		percent;
+    OSErr		err;
+	CodecFlags 	ignore;
+	color best;
+    long R_total=0;
+	long G_total=0;
+	long B_total=0;
+	
+
+
+	//fprintf(stderr, "Starting to find some lobsters...\n");	
+
+
+    GetPortBounds(mungDataOffscreen, &bounds);
+    OffsetRect(&bounds, -bounds.left, -bounds.top);
+    
+	
+	UInt32			color;
+
+			
+	int sum_x,sum_y=0;
+	int count=0;
+	int k,j;
+	long			R;
+	long			G;
+	long			B;
+	int search_width=200;
+	int search_height=200;
+
+
+	colorBuf = GetPixBaseAddr(pix);
+
+	switch (detection_mode) {
+	
+	case PRE_CALIBRATE_MODE:
+		//drawbox(CALIB_TOP, CALIB_BOTTOM, CALIB_LEFT, CALIB_RIGHT);
+		break;
+	
+	case CALIBRATE_MODE:
+		SkinStats(pix, y_click-CALIB_RADIUS, y_click+CALIB_RADIUS, x_click-CALIB_RADIUS, x_click+CALIB_RADIUS);
+		scan_region_left=x_click-CALIB_RADIUS;//10;
+		scan_region_right=x_click+CALIB_RADIUS;//630;
+		scan_region_top=y_click-CALIB_RADIUS;//10;
+		scan_region_bottom=y_click+CALIB_RADIUS;//470;
+		ScanSkin(pix);
+		detection_mode=SCAN_MODE;
+		//fprintf(stderr, "scan left: %d scan right: %d \n",scan_region_left,scan_region_right);
+		head_size_old=50;
+		break;
+		
+	case SCAN_MODE:
+		ScanSkin(pix);
+		drawbox(face_top, face_bottom, face_left, face_right,1);
+		//drawbox(scan_region_top, scan_region_bottom, scan_region_left, scan_region_right);
+		drawbox((left_eye_y-5),(left_eye_y+5),(left_eye_x-5),(left_eye_x+5),0);
+		drawbox((right_eye_y-5),(right_eye_y+5),(right_eye_x-5),(right_eye_x+5),0);
+		int face_scale=instance->face.head_size;
+		int mouth_width=face_scale;
+		int mouth_height=face_scale;
+	//	if (bozo_bit==1) drawbax((mouth_ctr_y-mouth_height),(mouth_ctr_y+mouth_height),(mouth_ctr_x-mouth_width),(mouth_ctr_x+mouth_width));
+		filter(&instance->face, bank);
+		break;
+	}
+
+	//fprintf(stderr, "Lobsters found...\n");	
+
+
+}
+	
+	
+			
+	
+void ScanSkin(PixMapHandle p)
+{
+	int y,x,j,k;
+	int right_eye_x_sum,right_eye_y_sum,left_eye_x_sum,left_eye_y_sum,right_eye_pt_count,left_eye_pt_count;
+	right_eye_x_sum=right_eye_y_sum=left_eye_x_sum=left_eye_y_sum=right_eye_pt_count=left_eye_pt_count=0;
+	long R,G,B,sum_x,sum_y;
+	int count;
+	double Y,E,S,lum;
+	double min_lum_mouth=766;
+	double min_lum_left=766;
+	double min_lum_right=766;
+	UInt32			color;
+	UInt32		* baseAddr;
+	int max_horz=0;
+	int max_vert=0;
+	sum_x=sum_y=count=0;
+	int horz_count[480];
+	int vert_count[640];
+	
+
+	
+	memset(horz_count,0,480*sizeof(int));
+	memset(vert_count,0,640*sizeof(int));
+	
+	if (eye_search_frame_count<NUM_FRAMES_EYE_SEARCH) eye_search_frame_count++;  
+	else if (eye_search_frame_count==NUM_FRAMES_EYE_SEARCH && bozo_bit==0)
+	{
+	bozo_bit=1;
+	//fprintf(stderr, "GOOD You flipped the bozo bit (to good)\n");
+	}
+
+	SetEyeSearchRegions();
+
+
+	for (y = scan_region_top; y < scan_region_bottom; y++)  // change this to only calculate in bounding box
+    {
+        baseAddr = (UInt32*)(GetPixBaseAddr(p) + y * GetPixRowBytes(p));
+        for (x = scan_region_left; x < scan_region_right; x++)
+        {
+			color=baseAddr[x];
+            R = (color & 0x00FF0000) >> 16;
+            G = (color & 0x0000FF00) >> 8;
+            B = (color & 0x000000FF) >> 0;
+			Y=.253*R+.684*G+.063*B;
+			E=.5*R-.5*G;
+			S=.25*R+.25*G-.5*B;
+			lum=R+G+B;
+
+			if (y>left_eye_top && y<left_eye_bottom)
+			{
+				if (x > left_eye_left && x<left_eye_right)
+				{
+					if (lum < lum_thresh) {
+					left_eye_x_sum+=x;
+					left_eye_y_sum+=y;
+					left_eye_pt_count++;
+					//colorBuf[y][x]=0x0000FF00;
+					}
+				}
+			}
+			if (y>right_eye_top && y<right_eye_bottom)
+			{
+				if (x > right_eye_left && x < right_eye_right)
+				{
+					if (lum < lum_thresh) {
+					right_eye_x_sum+=x;
+					right_eye_y_sum+=y;
+					right_eye_pt_count++;
+					//colorBuf[y][x]=0x0000FF00;
+					}
+				}   
+			}
+
+			if(SkinDetect(Y,E,S))
+			{
+				sum_x+=x;
+				sum_y+=y;
+				count++;
+		
+				++horz_count[y];
+				++vert_count[x];
+				
+				if (horz_count[y]>max_horz) max_horz=horz_count[y];
+				if (vert_count[x]>max_vert) max_vert=vert_count[x];
+				
+				//colorBuf[y][x]=0x00FF0000;
+			}
+
+		}
+	}
+	
+	
+	left_eye_x=left_eye_x_sum/left_eye_pt_count;
+	left_eye_y=left_eye_y_sum/left_eye_pt_count;
+	right_eye_x=right_eye_x_sum/right_eye_pt_count;
+	right_eye_y=right_eye_y_sum/right_eye_pt_count;
+
+
+					
+	int width=right_eye_x-left_eye_x;
+	int height=right_eye_y-left_eye_y;
+	double face_ang;
+	if (width!=0) face_ang=atan((double)height/width);
+	else face_ang=0;
+	face_ang=face_ang*180/pi;
+	//fprintf(stderr,"face angle: %f \n",face_ang);
+			
+	if ((left_eye_pt_count<5 || right_eye_pt_count<5 || width==0 || face_ang > 30 || face_ang < -30 
+		|| left_eye_y < (face_top+.15*(face_bottom-face_top)) 
+		|| right_eye_y < (face_top+.15*(face_bottom-face_top)))
+		&& bozo_bit==1){
+		eye_unconfidence++;
+		left_eye_x=old_left_eye_x;
+		left_eye_y=old_left_eye_y;
+		right_eye_x=old_right_eye_x;
+		right_eye_y=old_right_eye_y;
+	}
+	else {
+		eye_unconfidence=0;
+		old_left_eye_x=left_eye_x;
+		old_left_eye_y=left_eye_y;
+		old_right_eye_x=right_eye_x;
+		old_right_eye_y=right_eye_y;
+	}
+
+
+	if (eye_unconfidence==EYE_UNCONFIDENCE_LIMIT){
+		bozo_bit=0;
+		eye_search_frame_count=0;
+		//fprintf(stderr, "Recalibrating eyes\n");
+	}
+	
+	if ((last_eye_count_left-left_eye_pt_count> BLINK_THRESHOLD) && eye_unconfidence==0)
+	{
+	left_eye_blink_count=BLINK_LENGTH;	
+	}
+	if (left_eye_blink_count>0){
+		instance->face.left_eye_open=0;
+		left_eye_blink_count--;
+	}
+	else instance->face.left_eye_open=1;	
+	
+	if ((last_eye_count_right-right_eye_pt_count> BLINK_THRESHOLD) && eye_unconfidence==0)
+	{
+	right_eye_blink_count=BLINK_LENGTH;
+	}
+	if (right_eye_blink_count>0){
+		instance->face.right_eye_open=0;
+		right_eye_blink_count--;
+	}
+	else instance->face.right_eye_open=1;
+
+	if (instance->face.right_eye_open==0) instance->face.left_eye_open=0;
+	if (instance->face.left_eye_open==0) instance->face.right_eye_open=0;
+	
+	last_eye_count_left=left_eye_pt_count;
+	last_eye_count_right=right_eye_pt_count;
+
+	float x_shift=0;
+	if (width!=0) x_shift= (float)height/(float)width; // --> note dependence on earlier data here
+
+	
+if (bozo_bit==1){	
+	int mouth_search_start_y=face_top+(.6*(face_bottom-face_top));
+	int mouth_search_end_y=face_bottom;
+	int mouth_search_start_x=(left_eye_x+right_eye_x)/2 + (-x_shift*(mouth_search_start_y-((right_eye_y+left_eye_y)/2))) ;
+
+for (y=mouth_search_start_y; y < mouth_search_end_y; y++)
+{
+	x=mouth_search_start_x+((y - mouth_search_start_y)*(-x_shift));
+	baseAddr = (UInt32*)(GetPixBaseAddr(p) + y * GetPixRowBytes(p));
+	//colorBuf[y][x] = 0x0000FF00;
+	color=baseAddr[x];
+	R = (color & 0x00FF0000) >> 16;
+	G = (color & 0x0000FF00) >> 8;
+	B = (color & 0x000000FF) >> 0;
+	lum=R+G+B;
+	
+	if (lum<min_lum_mouth) {
+		min_lum_mouth=lum;
+		mouth_ctr_x=x;
+		mouth_ctr_y=y;
+	}
+}
+	
+	mouth_size=(face_right-face_left)*100/640;
+	mouth_left=mouth_ctr_x-mouth_size;
+	if (mouth_left < face_left) mouth_left=face_left;
+	mouth_right=mouth_ctr_x+mouth_size;
+	if (mouth_right > face_right) mouth_right=face_right;
+	mouth_top=mouth_ctr_y-mouth_size;
+	if (mouth_top < face_top) mouth_top=face_top;
+	mouth_bottom=mouth_ctr_y+mouth_size;
+	if (mouth_bottom > face_bottom) mouth_bottom=face_bottom;
+	
+	white_count=0;
+
+	for (y=mouth_top; y< mouth_bottom; y++){
+		baseAddr = (UInt32*)(GetPixBaseAddr(p) + y * GetPixRowBytes(p));
+		for (x=mouth_left; x< mouth_right; x++){
+			color=baseAddr[x];
+			R = (color & 0x00FF0000) >> 16;
+			G = (color & 0x0000FF00) >> 8;
+			B = (color & 0x000000FF) >> 0;
+			if ((abs(R-G) < WHITE_THRESH) && (abs(G-B) < WHITE_THRESH) && (abs(R-B) < WHITE_THRESH))
+			{
+				white_count++;
+				//colorBuf[y][x]=0x0000FF00;
+			}
+		}
+	}
+	
+	}
+else white_count=10;
+
+// This next section finds the face region and sets the face_* parameters.
+	
+	int scan;
+	float thresh=.3;
+	scan=scan_region_left+1;
+	if (scan<0) scan=0;
+	//fprintf(stderr,"threshold value: %d boxtop value: %d \n", (max_horz), horz_count[scan_region_top]);
+	while(1)
+	{
+		if (vert_count[scan]>=(thresh*max_vert))
+			{
+				face_left=scan;
+				break;
+			}	
+		scan++;
+	}
+	
+	scan=scan_region_right-1;
+	if (scan>=640) scan=639;
+	while(1)
+	{
+		if (vert_count[scan]>=(thresh*max_vert))
+			{
+				face_right=scan;
+				break;
+			}	
+		scan--;
+	}
+	
+	scan=scan_region_top+1;
+	if (scan<0) scan=0;
+	while(1)
+	{
+		if (horz_count[scan]>=(thresh*max_horz))
+			{
+				face_top=scan;
+				break;
+			}	
+		scan++;
+	}
+	
+	
+	scan=scan_region_bottom-1;
+	if (scan>=480) scan=479;
+	while(1)
+	{
+		if (horz_count[scan]>=(thresh*max_horz))
+			{
+				face_bottom=scan;
+				break;
+			}	
+		scan--;
+	}
+	
+	// Base scan region on face region here
+	scan_region_left=face_left-10;
+	if (scan_region_left <= 0) scan_region_left=1;
+	scan_region_right=face_right+10;
+	if (scan_region_right >= 640) scan_region_right=639;
+	scan_region_top=face_top-10;
+	if (scan_region_top <= 0) scan_region_top=1;
+	scan_region_bottom=face_bottom+10;
+	if (scan_region_bottom >= 480) scan_region_bottom=479;
+	
+	
+	// Calculate some stats
+	
+	// face size
+	width=face_right-face_left;
+	guint8 temp=width*100/640;
+	instance->face.head_size=temp;
+
+	// face location
+	temp=((double)100/(double)640)*(double)(face_right+face_left)/2;
+	instance->face.x=temp;
+	temp=((double)100/(double)480)*(double)(face_top+face_bottom)/2;
+	instance->face.y=temp;
+	
+	// face angle-Z
+	instance->face.head_z_rot=face_ang+50;
+
+	// face angle-Y
+	int center=(face_right+face_left)/2;
+	int right_eye_strad=right_eye_x-center;
+	int left_eye_strad=center-left_eye_x;
+	double y_ang;
+	if (right_eye_strad > left_eye_strad) y_ang= (double)right_eye_strad/(double)left_eye_strad;
+	else y_ang=(double)left_eye_strad/(double)right_eye_strad;
+	y_ang=y_ang*5;
+	if (y_ang >= 10) y_ang=30;
+	if (y_ang <= 1) y_ang=1;
+
+	if (right_eye_strad > left_eye_strad) y_ang=-y_ang;
+	temp = (guint8) 50 + y_ang;
+	instance->face.head_y_rot=temp;
+	
+	if (abs (temp-50) > 15) instance->face.head_size=head_size_old;
+	else head_size_old=instance->face.head_size;
+
+	temp = (guint8) 100 * white_count / WHITE_COUNT_MAX;
+	if (temp > 100) temp=100;
+	instance->face.mouth_open = temp;
+	
+}
+	
+
+
+
+
+
+ // draw bounding box for either calibration or face
+	
+
+void SetEyeSearchRegions(void)
+{
+			if (bozo_bit==0)
+			{
+				left_eye_top=face_top+(.25*(face_bottom-face_top));
+				left_eye_bottom=face_top+(.6*(face_bottom-face_top));
+				left_eye_right=((face_left+face_right)/2);
+				left_eye_left=face_left+.15*(face_right-face_left);
+			
+				right_eye_top=face_top+(.25*(face_bottom-face_top));
+				right_eye_bottom=face_top+(.6*(face_bottom-face_top));
+				right_eye_right=face_right-.15*(face_right-face_left);
+				right_eye_left=((face_left+face_right)/2);
+			}
+			
+			if (bozo_bit==1)
+			{
+				left_eye_top=left_eye_y-20;
+				left_eye_bottom=left_eye_y+20;
+				left_eye_left=left_eye_x-20;
+				left_eye_right=left_eye_x+20;
+				
+				right_eye_top=right_eye_y-20;
+				right_eye_bottom=right_eye_y+20;
+				right_eye_left=right_eye_x-20;
+				right_eye_right=right_eye_x+20;
+			}	
+}
+
+
+void drawbox(int top, int bottom, int left, int right, int color)
+{
+	int y, x, j;
+
+	unsigned int col;
+	
+
+	if (color==1)
+		col=0x00FFFF00;
+	else
+		col=0x00FF00FF;
+
+	if (top<0) top =0;
+	if (top>=480) top=479;
+	if (bottom<0) bottom =0;
+	if (bottom>=480) bottom=479;
+	if (left<0) left =0;
+	if (left>=640) left=639;
+	if (right<0) right =0;
+	if (right>=640) right=639;
+	
+	if (color==1){
+
+	for (y=top; y<bottom; y++)
+	{
+		for (j=0;j<5;j++){	
+			colorBuf[y][left+j] =  col;
+			colorBuf[y][right-j] = col;
+		}
+
+	}
+	
+	for (x=left; x<right; x++)
+	{
+
+	for (j=0;j<5;j++){
+		
+		colorBuf[bottom-j][x] = col;
+		colorBuf[top+j][x] = col;
+
+		}	
+
+	}
+
+
+	} else {
+
+
+
+	for (y=top; y<bottom; y++)
+	{
+		for (x=left;x<right;x++){	
+			colorBuf[y][x] =  col;
+			colorBuf[y][x] = col;
+		}
+
+	}
+
+	}
+}
+
+
+
+void SkinStats (PixMapHandle p, int top, int bottom, int left, int right)
+{
+		double Y_sum,E_sum,S_sum;
+		int R,G,B;
+		int count=0;
+		Y_sum=E_sum=S_sum=0;
+		double			Y,E,S;
+		UInt32			color;
+		int			x, y;
+		UInt32		* baseAddr;
+
+		for (y=top; y<bottom; y++)
+			{
+				baseAddr = (UInt32*)(GetPixBaseAddr(p) + y * GetPixRowBytes(p));
+				for (x=left; x<right; x++)
+				{
+				count++;
+				color=baseAddr[x];
+					
+				R = (color & 0x00FF0000) >> 16;
+				G = (color & 0x0000FF00) >> 8;
+				B = (color & 0x000000FF) >> 0;
+				Y=.253*R+.684*G+.063*B;
+				E=.5*R-.5*G;
+				S=.25*R+.25*G-.5*B; 
+				Y_sum+=Y;
+				E_sum+=E;
+				S_sum+=S;
+				}
+			}
+				
+		Y_mean=Y_sum/count;
+		E_mean=E_sum/count;
+		S_mean=S_sum/count;
+				
+		Y_sum=E_sum=S_sum=0;
+				
+		for (y=top; y<bottom; y++)
+			{
+			baseAddr = (UInt32*)(GetPixBaseAddr(p) + y * GetPixRowBytes(p));
+			for (x=left; x<right; x++)
+				{
+				color=baseAddr[x];
+				R = (color & 0x00FF0000) >> 16;
+				G = (color & 0x0000FF00) >> 8;
+				B = (color & 0x000000FF) >> 0;
+				Y=.253*R+.684*G+.063*B;
+				E=.5*R-.5*G;
+				S=.25*R+.25*G-.5*B; 
+					
+				Y_sum+=(Y-Y_mean)*(Y-Y_mean);
+				E_sum+=(E-E_mean)*(E-E_mean);
+				S_sum+=(S-S_mean)*(S-S_mean);
+
+				}
+			}
+				
+		Y_dev=sqrt(Y_sum/(count-1));
+		E_dev=sqrt(E_sum/(count-1));
+		S_dev=sqrt(S_sum/(count-1));
+				
+		//fprintf(stderr,"Y: %f, %f\n E: %f, %f\nS: %f, %f\n",Y_mean,E_mean,S_mean,Y_dev,E_dev,S_dev);			
+
+}
+
+int SkinDetect(double Y, double E, double S)
+{
+	if (E>(E_mean-(2*E_dev)) && E<(E_mean+(2*E_dev))) return 1;
+	else return 0;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/camproc.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,29 @@
+/*
+ *  camproc.h
+ *  basecame
+ *
+ *  Created by CS194 on Mon Apr 26 2004.
+ *  Copyright (c) 2004 __MyCompanyName__. All rights reserved.
+ *
+ */
+
+
+
+//#pragma once
+
+#ifdef __APPLE_CC__
+	#include <Carbon/Carbon.h>
+
+#else
+	#include <Carbon.h>
+
+#endif
+
+#include "cc_interface.h"
+#include "filter.h"
+
+void Die();
+OSErr CamProc(struct input_instance *inst, filter_bank *bank);
+void QueryCam (void);
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/cc_features.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,522 @@
+#include <assert.h>
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include "cc_interface.h"
+#include "crazychat.h"
+
+#include "Utilities.h"
+#include "QTUtilities.h"
+#include "camdata.h"
+#include "camproc.h"
+#include "util.h"
+#include <unistd.h>
+
+
+#ifdef __APPLE_CC__
+#include <Carbon/Carbon.h>
+#else
+#include <Carbon.h>
+#endif
+
+/* temporarily including for development testing */
+#include "cc_gtk_gl.h"
+
+/* hard coding the webcam dimensions: BAD, but we're not probing hardware yet */
+
+#define WEBCAM_X		644	/* webcam's x dim */
+#define WEBCAM_Y		480	/* webcam's y dim */
+
+/* default webcam timer callback delay */
+#define WEBCAM_CALLBACK_DELAY	40	/* in ms */
+
+int x_click, y_click;
+int mode_change=0;
+
+struct input_instance input_data;
+
+/* move this to input_instance eventually */
+/*
+UInt32 colorBuf[WEBCAM_Y][WEBCAM_X];
+*/
+unsigned int (*colorBuf)[640];
+int detection_mode=0;
+int draw_mode=0; //0=pixels, 1=face
+int easter_count;
+static void *kickstart(void *data);
+static void *facefind(void *data);
+
+/**
+ * Resets the OpenGL viewport stuff on widget reconfiguration (resize,
+ * reposition)
+ * @param widget	widget that got reconfigured
+ * @param event		the configuration event
+ * @param data		unused
+ * @return		TRUE ( i don't know what FALSE would do )
+ */
+static gboolean config_wrapper(GtkWidget *widget, GdkEventConfigure *event,
+		void *data);
+
+/**
+ * Debug features test.  Draws pixels directly to the frame buffer.
+ * @param widget	widget that we're drawing
+ * @param event		the draw event
+ * @param data		array of pixels
+ * @return		DUNNO
+ */
+static gboolean mydraw(GtkWidget *widget, GdkEventExpose *event,
+			      void *data);
+
+/**
+ * Periodically querys the webcam for more data.
+ * @param instance	webcam input instance data
+ * @return 		TRUE to stop other handler, FALSE to continue
+ */
+static gboolean webcam_cb(struct input_instance *instance);
+
+/**
+ * Init window code, adding our click callback.
+ * @param widget	the window we clicked in
+ * @param instance	webcam input instance data
+ */
+static void init_cb(GtkWidget *widget, struct input_instance *instance);
+
+/**
+ * Click callback
+ * @param widget	the window we clicked in
+ * @param event		the button click event structure
+ * @param instance	input instance data
+ * @return 		TRUE to stop other handler, FALSE to continue
+ */
+static gboolean click_cb(GtkWidget *widget, GdkEventButton *event,
+		struct input_instance *instance);
+
+/**
+ * Button callback
+ * @param button	the button we clicked on
+ * @param instance	input instance data
+ */
+static void button_cb(GtkWidget *button, struct input_instance *instance);
+
+/**
+ * Destroy callback.  Called when the input processing window is destroyed.
+ * @param widget	the window we clicked in
+ * @param cc		crazychat global data structure
+ */
+static void destroy_cb(GtkWidget *widget, struct crazychat *cc);
+
+/**
+ * Set feature material.
+ * @param entry		model selector combo box entry
+ * @param material	pointer to material we're setting
+ */
+static void material_set(GtkWidget *entry, guint8 *material);
+
+struct input_instance *init_input(struct crazychat *cc)
+{
+
+	pthread_t userinput_t; // should we put this in a nicer wrapper?
+	struct draw_info *info;
+	struct input_instance *instance; 
+	info = (struct draw_info*)malloc(sizeof(*info));
+	assert(info);
+	memset(info, 0, sizeof(*info));
+	info->timeout = TRUE;
+	info->delay_ms = DEFAULT_FRAME_DELAY;
+	info->data = &input_data;
+	instance = (struct input_instance*)info->data;
+	memset(instance, 0, sizeof(*instance));
+	instance->output.features = &instance->face;
+	EnterMovies();
+	filter_bank *bank;
+	bank = Filter_Initialize();
+	assert(CamProc(instance, bank) == noErr); // change this prototype-> no windows
+	instance->timer_id = g_timeout_add(WEBCAM_CALLBACK_DELAY,
+		(GSourceFunc)webcam_cb, instance);
+//	THREAD_CREATE(&userinput_t, facefind, instance); // is this being created correctly?
+	struct window_box ret;
+	cc_new_gl_window(init_cb, config_wrapper, mydraw,
+			info, &ret);
+	instance->widget = ret.window;
+	gtk_window_set_title(GTK_WINDOW(ret.window), "Local User");
+	instance->box = ret.vbox;
+	GtkWidget *label = gtk_label_new("Click your face");
+	instance->label = label;
+	gtk_box_pack_start(GTK_BOX(ret.vbox), label, FALSE, FALSE, 0);
+	gtk_box_reorder_child(GTK_BOX(ret.vbox), label, 0);
+	gtk_widget_show(label);
+	GtkWidget *button = gtk_button_new_with_label("Confirm");
+	gtk_box_pack_start(GTK_BOX(ret.vbox), button, FALSE, FALSE, 0);
+	g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(button_cb),
+			instance);
+	instance->button = button;
+	gtk_widget_show(button);
+
+	GtkWidget *hbox = gtk_hbox_new(TRUE, 0);
+	gtk_box_pack_start(GTK_BOX(ret.vbox), hbox, FALSE, FALSE, 0);
+	gtk_widget_show(hbox);
+
+	GtkWidget *model_combo = gtk_combo_new();
+	GList *glist = NULL;
+
+	glist = g_list_append(glist, "Dog");
+	glist = g_list_append(glist, "Shark");
+	gtk_combo_set_popdown_strings(GTK_COMBO(model_combo), glist);
+	g_list_free(glist);
+	//gtk_combo_box_set_column_span_column(GTK_COMBO(model_combo),
+	//		10);
+	gtk_box_pack_start(GTK_BOX(hbox), model_combo, TRUE, TRUE, 0);
+	gtk_widget_show(model_combo);
+	instance->model = model_combo;
+
+	GtkWidget *head_material_combo = gtk_combo_new();
+	glist = NULL;
+	glist = g_list_append(glist, "Red");
+	glist = g_list_append(glist, "Dark Brown");
+	glist = g_list_append(glist, "Light Brown");
+	glist = g_list_append(glist, "White");
+	glist = g_list_append(glist, "Green");
+	glist = g_list_append(glist, "Black");
+	gtk_combo_set_popdown_strings(GTK_COMBO(head_material_combo), glist);
+	g_list_free(glist);
+	//gtk_combo_box_set_column_span_column(GTK_COMBO(head_material_combo),
+	//		10);
+	gtk_box_pack_start(GTK_BOX(hbox), head_material_combo, TRUE, TRUE, 0);
+	gtk_widget_show(head_material_combo);
+	instance->head = head_material_combo;
+
+	GtkWidget *appendage_material_combo = gtk_combo_new();
+	glist = NULL;
+	glist = g_list_append(glist, "Red");
+	glist = g_list_append(glist, "Dark Brown");
+	glist = g_list_append(glist, "Light Brown");
+	glist = g_list_append(glist, "White");
+	glist = g_list_append(glist, "Green");
+	glist = g_list_append(glist, "Black");
+	gtk_combo_set_popdown_strings(GTK_COMBO(appendage_material_combo),
+			glist);
+	g_list_free(glist);
+	//gtk_combo_box_set_column_span_column(GTK_COMBO(appendage_material_combo), 10);
+	gtk_box_pack_start(GTK_BOX(hbox), appendage_material_combo,
+			TRUE, TRUE, 0);
+	gtk_widget_show(appendage_material_combo);
+	instance->appendage = appendage_material_combo;
+
+	hbox = gtk_hbox_new(TRUE, 0);
+	gtk_box_pack_start(GTK_BOX(ret.vbox), hbox, FALSE, FALSE, 0);
+	gtk_widget_show(hbox);
+	
+	GtkWidget *lids_material_combo = gtk_combo_new();
+	glist = NULL;
+	glist = g_list_append(glist, "Red");
+	glist = g_list_append(glist, "Dark Brown");
+	glist = g_list_append(glist, "Light Brown");
+	glist = g_list_append(glist, "White");
+	glist = g_list_append(glist, "Green");
+	glist = g_list_append(glist, "Black");
+	gtk_combo_set_popdown_strings(GTK_COMBO(lids_material_combo), glist);
+	g_list_free(glist);
+	//gtk_combo_box_set_column_span_column(GTK_COMBO(lids_material_combo), 10);
+	gtk_box_pack_start(GTK_BOX(hbox), lids_material_combo, TRUE, TRUE, 0);
+	gtk_widget_show(lids_material_combo);
+	instance->lid = lids_material_combo;
+
+	GtkWidget *left_iris_material_combo = gtk_combo_new();
+	glist = NULL;
+	glist = g_list_append(glist, "Red");
+	glist = g_list_append(glist, "Dark Brown");
+	glist = g_list_append(glist, "Light Brown");
+	glist = g_list_append(glist, "White");
+	glist = g_list_append(glist, "Green");
+	glist = g_list_append(glist, "Black");
+	gtk_combo_set_popdown_strings(GTK_COMBO(left_iris_material_combo),
+			glist);
+	g_list_free(glist);
+	//gtk_combo_box_set_column_span_column(GTK_COMBO(left_iris_material_combo), 10);
+	gtk_box_pack_start(GTK_BOX(hbox), left_iris_material_combo,
+			TRUE, TRUE, 0);
+	gtk_widget_show(left_iris_material_combo);
+	instance->left_iris = left_iris_material_combo;
+
+	/*
+	GtkWidget *right_iris_material_combo = gtk_combo_new();
+	glist = NULL;
+	glist = g_list_append(glist, "Red");
+	glist = g_list_append(glist, "Dark Brown");
+	glist = g_list_append(glist, "Light Brown");
+	glist = g_list_append(glist, "White");
+	glist = g_list_append(glist, "Green");
+	glist = g_list_append(glist, "Black");
+	gtk_combo_set_popdown_strings(GTK_COMBO(right_iris_material_combo),
+			glist);
+	g_list_free(glist);
+	//gtk_combo_box_set_column_span_column(GTK_COMBO(right_iris_material_combo), 10);
+	gtk_box_pack_start(GTK_BOX(hbox), right_iris_material_combo,
+			TRUE, TRUE, 0);
+	gtk_widget_show(right_iris_material_combo);
+	instance->right_iris = right_iris_material_combo;
+*/
+	gtk_widget_add_events(ret.draw_area, GDK_BUTTON_PRESS_MASK);
+	g_signal_connect(G_OBJECT(ret.draw_area), "button_press_event",
+			G_CALLBACK(click_cb), instance);
+	g_signal_connect(G_OBJECT(ret.window), "destroy",
+			G_CALLBACK(destroy_cb),	cc);
+//	gtk_widget_set_size_request(window, 640, 480);
+	gtk_window_set_default_size(GTK_WINDOW(ret.window),320,300);
+
+
+	GdkGeometry hints;
+        hints.max_width = 640;
+        hints.max_height = 480;
+
+        gtk_window_set_geometry_hints (GTK_WINDOW(ret.window),
+                                       NULL,
+                                      &hints,
+                                       GDK_HINT_MAX_SIZE);
+	gtk_widget_show(ret.window);
+	return instance;
+}
+
+static gboolean webcam_cb(struct input_instance *instance)
+{
+	assert(instance);
+	QueryCam();
+	return TRUE;
+}
+
+static void *facefind(void *data)
+{
+	fprintf(stderr, "waiting\n");
+	getchar();
+	fprintf(stderr,"got you");
+	detection_mode=1;
+	return;
+}
+
+void destroy_input(struct input_instance *instance)
+{
+	extern filter_bank *bank;
+	assert(instance);
+	Filter_Destroy(bank);
+	g_source_remove(instance->timer_id);
+	Die();
+	ExitMovies();
+}
+
+static gboolean config_wrapper(GtkWidget *widget, GdkEventConfigure *event,
+		void *data)
+{
+
+
+	GdkGLContext *glcontext = gtk_widget_get_gl_context(widget);
+	GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(widget);
+
+	GLfloat w = widget->allocation.width;
+	GLfloat h = widget->allocation.height;
+	GLfloat aspect;
+
+//	fprintf(stderr,"Homicide  %f   %f  %d\n", w,h,draw_mode);
+
+	if (draw_mode==1){
+//		fprintf(stderr, "Bad place to be- actually not so bad\n");
+		return configure(widget, event, data);
+	}
+
+	/*** OpenGL BEGIN ***/
+	if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext))
+		return FALSE;
+	
+
+/* Undo all of the Model lighting here*/
+
+//	glDisable(GL_LIGHTING);
+	glDisable(GL_DEPTH_TEST);
+//	glDisable(GL_CULL_FACE);
+//	glDisable(GL_LIGHT0);
+//	glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
+/* */
+
+
+	glViewport(0,-(h/14),w*2,h*2);
+
+	glMatrixMode(GL_PROJECTION);
+	glLoadIdentity();
+	gluOrtho2D(0,0,640,640);
+	glRasterPos2i(0,0);
+	glPixelZoom(-w/(1*640),(-h/(1*480)));
+	glMatrixMode(GL_MODELVIEW);
+	glLoadIdentity();
+
+
+	
+	
+	gdk_gl_drawable_gl_end(gldrawable);
+	/*** OpenGL END ***/
+
+	return TRUE;
+}
+
+static gboolean mydraw(GtkWidget *widget, GdkEventExpose *event,
+			      void *data)
+{
+	GdkGLContext *glcontext = gtk_widget_get_gl_context (widget);
+	GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (widget);
+	struct input_instance *instance = (struct input_instance*)data;
+	unsigned int *boo;
+	struct cc_features *features = &instance->face;
+
+	char *string = gtk_entry_get_text(GTK_COMBO(instance->model)->entry);
+	if (!strcmp(string, "Dog")) {
+		features->kind = 0;
+	} else if (!strcmp(string, "Shark")) {
+		features->kind = 1;
+	}
+	
+	material_set(GTK_ENTRY(GTK_COMBO(instance->head)->entry),
+			&features->head_color);
+	material_set(GTK_ENTRY(GTK_COMBO(instance->appendage)->entry),
+			&features->appendage_color);
+	material_set(GTK_ENTRY(GTK_COMBO(instance->lid)->entry),
+			&features->lid_color);
+	material_set(GTK_ENTRY(GTK_COMBO(instance->left_iris)->entry),
+			&features->left_iris_color);
+	material_set(GTK_ENTRY(GTK_COMBO(instance->left_iris)->entry),
+			&features->right_iris_color);
+
+	if (easter_count>0) {
+		easter_count--;
+	} else {
+		instance->face.mode = 0;
+	}
+	
+	if (mode_change>0){
+		mode_change--;
+		config_wrapper(widget, event, data);
+	}
+
+	if (draw_mode==1){
+		instance->output.my_output=LOCAL;
+		return draw(widget,event,&instance->output);
+	}
+
+
+	boo = (unsigned int*)colorBuf;
+
+	assert(instance);
+	assert(gtk_widget_is_gl_capable(widget));
+
+	/*** OpenGL BEGIN ***/
+
+	if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext)) {
+	//	fprintf(stderr, "We're fucked this time.\n");
+		return FALSE;
+	}
+	
+	glClearColor(0.0, 0.0, 0.0, 0.0);
+	glClear(GL_COLOR_BUFFER_BIT);
+
+	glDrawPixels(WEBCAM_X, WEBCAM_Y-70, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, boo);
+
+	if (gdk_gl_drawable_is_double_buffered(gldrawable))
+		gdk_gl_drawable_swap_buffers(gldrawable);
+	else
+		glFlush();
+	
+	gdk_gl_drawable_gl_end(gldrawable);
+	
+	/*** OpenGL END ***/
+	
+	return TRUE;
+}
+
+static void init_cb(GtkWidget *widget, struct input_instance *instance)
+{
+	setupDrawlists(LOCAL);
+//	fprintf(stderr,"init_cb\n");
+}
+
+static gboolean click_cb(GtkWidget *widget, GdkEventButton *event,
+		struct input_instance *instance)
+{
+
+	GLfloat w = widget->allocation.width;
+	GLfloat h = widget->allocation.height;
+	GLfloat aspect;
+
+	if (draw_mode==1) {
+		switch (event->button) {
+			case 1:
+				Debug("F U!\n");
+				instance->face.mode = 1;
+				easter_count = 5;
+				break;
+			case 3:
+				Debug("should never get here\n");
+				instance->face.mode = 2;
+				easter_count = 5;
+				break;
+			default:
+				instance->face.mode = 0;
+				break;
+		}
+		return FALSE;
+	}
+
+	x_click=(event->x*(640/w));
+	x_click=640-x_click;
+	y_click=(event->y-(h/14))*(480/(h-(h/14)));
+	detection_mode=1;
+	//Debug("@@@ x:%d y:%d\n", x_click, y_click);
+
+	gtk_label_set_text(instance->label,
+			"Put on the box, then press confirm.");
+	if (x_click <= 10) x_click=10;
+	if (x_click >= WEBCAM_X-10) x_click=WEBCAM_X-60;
+	if (y_click <= 10) y_click=10;
+	if (y_click >= WEBCAM_Y-10) y_click=WEBCAM_Y-60;
+
+	return FALSE;
+}
+
+static void button_cb(GtkWidget *button, struct input_instance *instance)
+{
+	if (!draw_mode) { /* transition to face mode */
+		if (detection_mode == 0) { /* ignore confirm if no calibrate */
+			return;
+		}
+		setupLighting(instance->widget);
+		mode_change = 1;
+		gtk_button_set_label(GTK_BUTTON(button), "Calibrate");
+		gtk_label_set_label(instance->label,
+				"If things get too crazy, click Calibrate.");
+	} else { /* transition to calibration mode */
+		gtk_label_set_label(instance->label, "Click your face");
+		mode_change = 2;
+		gtk_button_set_label(GTK_BUTTON(button), "Confirm");
+	}
+	draw_mode = !draw_mode;
+}
+
+static void destroy_cb(GtkWidget *widget, struct crazychat *cc)
+{
+	cc->features_state = 0;
+	destroy_input(cc->input_data);
+	cc->input_data = NULL;
+}
+
+static void material_set(GtkWidget *entry, guint8 *material)
+{
+	char *string = gtk_entry_get_text(GTK_ENTRY(entry));
+	if (!strcmp(string, "Red")) {
+		*material = 0;
+	} else if (!strcmp(string, "Dark Brown")) {
+		*material = 1;
+	} else if (!strcmp(string, "Light Brown")) {
+		*material = 2;
+	} else if (!strcmp(string, "White")) {
+		*material = 3;
+	} else if (!strcmp(string, "Green")) {
+		*material = 4;
+	} else if (!strcmp(string, "Black")) {
+		*material = 5;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/cc_gaim_plugin.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,482 @@
+#include <stdio.h>
+#include <assert.h>
+#include <internal.h>
+#include <plugin.h>
+#include <gtkplugin.h>
+#include <gtkblist.h>
+#include <gtkutils.h>
+#include <connection.h>
+#include <conversation.h>
+#include <network.h>
+#include <gtk/gtkgl.h>
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include "crazychat.h"
+#include "cc_network.h"
+#include "cc_interface.h"
+#include "cc_gtk_gl.h"
+#include "util.h"
+
+/* --- begin type and global variable definitions --- */
+
+static struct crazychat cc_info;
+
+/* --- begin function declarations --- */
+
+/**
+ * Called by gaim plugin to start CrazyChat
+ * @param cc	the crazychat struct
+ */
+static void cc_init(struct crazychat *cc);
+
+/**
+ * Called by gaim plugin to destroy CrazyChat
+ * @param cc	the crazychat struct
+ */
+static void cc_destroy(struct crazychat *cc);
+
+
+/**
+ * Buddy menu drawing callback.  Adds a CrazyChat menuitem.
+ * @param menu	the buddy menu widget
+ * @param b	the buddy whose menu this is
+ */
+static gboolean cc_buddy_menu(GtkWidget *menu, GaimBuddy *b);
+
+/**
+ * Buddy menu callback.  Initiates the CrazyChat session.
+ * @param item	the gtk buddy menu item
+ * @param b	the buddy whose menu the item was in
+ */
+static void cc_menu_cb(GtkMenuItem *item, GaimBuddy *b);
+
+/**
+ * IM callback.  Handles receiving a CrazyChat session request.
+ * @param account	the account we received the IM on
+ * @param sender	the buddy who we received the message from
+ * @param message	the message we received
+ * @param flags		IM flags
+ * @param data		user data
+ */
+static gboolean receive_im_cb(GaimAccount *account, char **sender,
+		char **message,	int *flags, void *data);
+
+/**
+ * Displaying IM callback.  Drops CrazyChat messages from IM window.
+ * @param account	the account we are displaying the IM on
+ * @param conv		the conversation we are displaying the IM on
+ * @param message	the message we are displaying
+ * @param data		user data
+ */
+static gboolean display_im_cb(GaimAccount *account, GaimConversation *conv,
+		char **message, void *data);
+
+/**
+ * Callback for CrazyChat plugin configuration frame
+ * @param plugin	the plugin data
+ * @return	the configuration frame
+ */
+static GtkWidget *get_config_frame(GaimPlugin *plugin);
+
+/**
+ * TCP port callback.  Changes the port used to listen for new CC sessions
+ * @param spin		the spinner button whose value changed
+ * @param data		user data
+ */
+static void tcp_port_cb(GtkSpinButton *spin, struct crazychat *cc);
+
+/**
+ * UDP port callback.  Changes the port used to send/recv CC session frames
+ * @param spin		the spinner button whose value changed
+ * @param data		user data
+ */
+static void udp_port_cb(GtkSpinButton *spin, struct crazychat *cc);
+
+/**
+ * Features enabling/disabling callback.  Initializes the input processing
+ * or shuts it down.
+ * @param data		user data
+ */
+static void features_enable_cb(struct crazychat *cc);
+
+/**
+ * User signed on callback.  Now we have a buddy list to connect a signal
+ * handler to.
+ * @param gc		the gaim connection we are signed on
+ * @param plugin	our plugin struct
+ */
+static gboolean cc_signed_on(GaimConnection *gc, void *plugin);
+
+/**
+ * Plugin loading callback.  If a buddy list exists, connect our buddy menu
+ * drawing callback to the signal handler, otherwise, connect a signed on
+ * signal handler so we know when we get a buddy list.
+ * @param plugin	our plugin struct
+ */
+static gboolean plugin_load(GaimPlugin *plugin);
+
+/**
+ * Plugin unloading callback.  Disconnect all handlers and free data.
+ * @param plugin	our plugin struct
+ */
+static gboolean plugin_unload(GaimPlugin *plugin);
+
+
+/* --- end function declarations --- */
+
+
+#define CRAZYCHAT_PLUGIN_ID "gtk-crazychat"
+
+static GaimGtkPluginUiInfo ui_info = {
+	get_config_frame				/**< get_config_frame */
+};
+
+static GaimPluginInfo info = {
+	2,						  /**< api_version    */
+	GAIM_PLUGIN_STANDARD,				  /**< type           */
+	GAIM_GTK_PLUGIN_TYPE,				  /**< ui_requirement */
+	0,						  /**< flags          */
+	NULL,						  /**< dependencies   */
+	GAIM_PRIORITY_DEFAULT,				  /**< priority       */
+
+	CRAZYCHAT_PLUGIN_ID,				  /**< id             */
+	N_("Crazychat"),				  /**< name           */
+	VERSION,					  /**< version        */
+							  /**  summary        */
+	N_("Plugin to establish a Crazychat session."),
+							  /**  description    */
+	N_("Uses Gaim to obtain buddy ips to connect for a Crazychat session"),
+	"\n"
+	"William Chan <chanman@stanford.edu>\n"
+	"Ian Spiro <ispiro@stanford.edu>\n"
+	"Charlie Stockman<stockman@stanford.edu>\n"
+	"Steve Yelderman<scy@stanford.edu>",		  /**< author         */
+	GAIM_WEBSITE,					  /**< homepage       */
+
+	plugin_load,					  /**< load           */
+	plugin_unload,					  /**< unload         */
+	NULL,						  /**< destroy        */
+
+	&ui_info,					  /**< ui_info        */
+	&cc_info					  /**< extra_info     */
+};
+
+/* --- end plugin struct definition --- */
+
+static void cc_init(struct crazychat *cc)
+{
+	/* initialize main crazychat thread */
+	
+	assert(cc);
+	memset(cc, 0, sizeof(*cc));
+
+	/* initialize network configuration */
+	cc->tcp_port = DEFAULT_CC_PORT;
+	cc->udp_port = DEFAULT_CC_PORT;
+
+	/* disable input subsystem */
+	//cc->features_state = 0;
+
+	/* initialize input subsystem */
+	cc->features_state = 1;
+	cc->input_data = init_input(cc);
+}
+
+static void cc_destroy(struct crazychat *cc)
+{
+	assert(cc);
+
+	if (cc->features_state) {
+		destroy_input(cc->input_data);
+	}
+	memset(cc, 0, sizeof(*cc));
+}
+
+static gboolean cc_buddy_menu(GtkWidget *menu, GaimBuddy *b)
+{
+	GtkWidget *menuitem;
+
+	menuitem = gtk_menu_item_new_with_mnemonic("CrazyChat");
+	g_signal_connect(G_OBJECT(menuitem), "activate",
+			G_CALLBACK(cc_menu_cb), b);
+	gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
+	return FALSE;
+}
+
+static void cc_menu_cb(GtkMenuItem *item, GaimBuddy *b)
+{
+	assert(item);
+	assert(b);
+
+	/* send the invite */
+	cc_net_send_invite(&cc_info, b->name, b->account);
+}
+
+static gboolean receive_im_cb(GaimAccount *account, char **sender,
+		char **message,	int *flags, void *data)
+{
+	struct crazychat *cc;
+
+	cc = (struct crazychat*)data;
+	assert(cc);
+	if (!strncmp(*message, CRAZYCHAT_INVITE_CODE,
+				strlen(CRAZYCHAT_INVITE_CODE))) {
+		Debug(*message);
+		char *split = strchr(*message, '!');
+		assert(split);
+		*split = 0;
+		split++;
+		cc_net_recv_invite(account, cc, *sender,
+				&(*message)[strlen(CRAZYCHAT_INVITE_CODE)],
+				split);
+		return TRUE;
+	} else if (!strncmp(*message, CRAZYCHAT_ACCEPT_CODE,
+				strlen(CRAZYCHAT_ACCEPT_CODE))) {
+		cc_net_recv_accept(account, cc, *sender,
+				&(*message)[strlen(CRAZYCHAT_ACCEPT_CODE)]);
+		return TRUE;
+	} else if (!strncmp(*message, CRAZYCHAT_READY_CODE,
+				strlen(CRAZYCHAT_READY_CODE))) {
+		cc_net_recv_ready(account, cc, *sender);
+		return TRUE;
+	}
+	
+	return FALSE;
+}
+
+static gboolean display_im_cb(GaimAccount *account, GaimConversation *conv,
+		char **message, void *data)
+{
+	struct crazychat *cc;
+
+	cc = (struct crazychat*)data;
+	assert(cc);
+	if (!strncmp(*message, CRAZYCHAT_INVITE_CODE,
+				strlen(CRAZYCHAT_INVITE_CODE))) {
+		return TRUE;
+	} else if (!strncmp(*message, CRAZYCHAT_ACCEPT_CODE,
+				strlen(CRAZYCHAT_ACCEPT_CODE))) {
+		return TRUE;
+	} else if (!strncmp(*message, CRAZYCHAT_READY_CODE,
+				strlen(CRAZYCHAT_READY_CODE))) {
+		return TRUE;
+	}
+
+	return FALSE;
+}
+
+static GtkWidget *get_config_frame(GaimPlugin *plugin)
+{
+	GtkWidget *ret;
+	GtkWidget *frame;
+	GtkWidget *vbox, *hbox;
+	GtkWidget *drawing_area;
+	GtkWidget *label;
+	GtkAdjustment *adj;
+	GtkWidget *spinner;
+	GtkWidget *button, *button1, *button2;
+	GSList *group;
+	struct draw_info *info;
+	struct crazychat *cc;
+
+	cc = (struct crazychat*)plugin->info->extra_info;
+	assert(cc);
+
+	/* create widgets */
+
+	/* creating the config frame */
+	ret = gtk_vbox_new(FALSE, 18);
+	gtk_container_set_border_width(GTK_CONTAINER(ret), 12);
+
+	/* make the network configuration frame */
+	frame = gaim_gtk_make_frame(ret, _("Network Configuration"));
+	gtk_widget_show(frame);
+
+	/* add boxes for packing purposes */
+	vbox = gtk_vbox_new(FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(frame), vbox, TRUE, TRUE, 0);
+	gtk_widget_show(vbox);
+
+	/* add widgets to row 1 */
+	hbox = gtk_hbox_new(FALSE, 0);
+	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+	gtk_widget_show(hbox);
+	label = gtk_label_new(_("TCP port"));
+	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 15);
+	gtk_widget_show(label);
+	adj = (GtkAdjustment*)gtk_adjustment_new(DEFAULT_CC_PORT, 1,
+			G_MAXUSHORT, 1, 1000, 0);
+	spinner = gtk_spin_button_new(adj, 1, 0);
+	g_signal_connect(G_OBJECT(spinner), "value_changed",
+			G_CALLBACK(tcp_port_cb), cc);
+	gtk_box_pack_start(GTK_BOX(hbox), spinner, FALSE, FALSE, 0);
+	gtk_widget_show(spinner);
+	label = gtk_label_new(_("UDP port"));
+	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 15);
+	gtk_widget_show(label);
+	adj = (GtkAdjustment*)gtk_adjustment_new(DEFAULT_CC_PORT, 1,
+			G_MAXUSHORT, 1, 1000, 0);
+	spinner = gtk_spin_button_new(adj, 1, 0);
+	g_signal_connect(G_OBJECT(spinner), "value_changed",
+			G_CALLBACK(udp_port_cb), cc);
+	gtk_box_pack_start(GTK_BOX(hbox), spinner, FALSE, FALSE, 0);
+	gtk_widget_show(spinner);
+
+	/* make the feature configuration frame */
+	frame = gaim_gtk_make_frame(ret, _("Feature Calibration"));
+	gtk_widget_show(frame);
+
+	/* add hbox for packing purposes */
+	hbox = gtk_hbox_new(TRUE, 40);
+	gtk_box_pack_start(GTK_BOX(frame), hbox, TRUE, TRUE, 0);
+	gtk_widget_show(hbox);
+
+	/* add feature calibration options */
+
+	/* add vbox for packing purposes */
+	vbox = gtk_vbox_new(TRUE, 0);
+	gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
+	gtk_widget_show(vbox);
+
+	/* add enabled / disabled */
+	button1 = gtk_radio_button_new_with_label(NULL, _("Enabled"));
+	gtk_box_pack_start(GTK_BOX(vbox), button1, TRUE, TRUE, 0);
+	gtk_widget_show(button1);
+	
+	group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(button1));
+	button2 = gtk_radio_button_new_with_label(group, _("Disabled"));
+	gtk_box_pack_start(GTK_BOX(vbox), button2, TRUE, TRUE, 0);
+	gtk_widget_show(button2);
+
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button1),
+			cc->features_state);
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button2),
+			!cc->features_state);
+	g_signal_connect_swapped(G_OBJECT(button1), "toggled",
+			G_CALLBACK(features_enable_cb), cc);
+
+	/* add vbox for packing purposes */
+	vbox = gtk_vbox_new(TRUE, 0);
+	gtk_box_pack_end(GTK_BOX(hbox), vbox, TRUE, TRUE, 0);
+	gtk_widget_show(vbox);
+
+	/* add calibrate button */
+	button = gtk_button_new_with_label("Calibrate");
+	gtk_box_pack_start(GTK_BOX(vbox), button, TRUE, FALSE, 0);
+	gtk_widget_show(button);
+	
+	gtk_widget_show(ret);
+	
+	return ret;
+}
+
+static void tcp_port_cb(GtkSpinButton *spin, struct crazychat *cc)
+{
+	assert(spin);
+	assert(cc);
+	cc->tcp_port = gtk_spin_button_get_value_as_int(spin);
+	Debug("New tcp port: %d\n", cc->tcp_port);
+}
+
+static void udp_port_cb(GtkSpinButton *spin, struct crazychat *cc)
+{
+	assert(spin);
+	assert(cc);
+	cc->udp_port = gtk_spin_button_get_value_as_int(spin);
+	Debug("New udp port: %d\n", cc->udp_port);
+}
+
+static void features_enable_cb(struct crazychat *cc)
+{
+	Debug("Changing features state\n");
+	cc->features_state = !cc->features_state;
+	if (cc->features_state) {
+		cc->input_data = init_input(cc);
+	} else {
+		if (cc->input_data) {
+			gtk_widget_destroy(cc->input_data->widget);
+		}
+	}
+}
+
+static gboolean cc_signed_on(GaimConnection *gc, void *plugin)
+{
+	struct crazychat *extra;
+	void *conv_handle;
+
+	assert(plugin);
+	extra = (struct crazychat*)((GaimPlugin*)plugin)->info->extra_info;
+	gaim_signal_disconnect
+	    (gaim_connections_get_handle(), "signed-on",
+	     plugin, GAIM_CALLBACK(cc_signed_on));
+	gaim_signal_connect(GAIM_GTK_BLIST
+			    (gaim_get_blist()),
+			    "drawing-menu", plugin,
+			    GAIM_CALLBACK(cc_buddy_menu), NULL);
+	conv_handle = gaim_conversations_get_handle();
+	gaim_signal_connect(conv_handle, "received-im-msg", plugin,
+		GAIM_CALLBACK(receive_im_cb), extra);
+	gaim_signal_connect(conv_handle, "displaying-im-msg", plugin,
+		GAIM_CALLBACK(display_im_cb), extra);
+	return FALSE;
+}
+
+static gboolean plugin_load(GaimPlugin *plugin)
+{
+	GaimBuddyList *buddy_list;
+	void *conv_handle;
+
+	if (cc_init_gtk_gl())
+		return FALSE;
+
+	cc_init(&cc_info);
+	buddy_list = gaim_get_blist();
+	if (buddy_list) {
+		gaim_signal_connect(GAIM_GTK_BLIST
+				    (buddy_list),
+				    "drawing-menu", plugin,
+				    GAIM_CALLBACK(cc_buddy_menu), NULL);
+		conv_handle = gaim_conversations_get_handle();
+		gaim_signal_connect(conv_handle, "received-im-msg", plugin,
+			GAIM_CALLBACK(receive_im_cb), &cc_info);
+		gaim_signal_connect(conv_handle, "displaying-im-msg", plugin,
+			GAIM_CALLBACK(display_im_cb), &cc_info);
+	} else {
+		gaim_signal_connect
+		    (gaim_connections_get_handle(), "signed-on",
+		     plugin, GAIM_CALLBACK(cc_signed_on), plugin);
+	}
+
+	Debug("CrazyChat plugin loaded.\n");
+	
+	return TRUE;
+}
+
+static gboolean plugin_unload(GaimPlugin *plugin)
+{
+	void *conv_handle;
+	struct crazychat *extra;
+	assert(plugin);
+	extra = (struct crazychat*) plugin->info->extra_info;
+	cc_destroy(extra);
+	conv_handle = gaim_conversations_get_handle();
+	gaim_signal_disconnect(GAIM_GTK_BLIST
+			       (gaim_get_blist()),
+			       "drawing-menu", plugin,
+			       GAIM_CALLBACK(cc_buddy_menu));
+	gaim_signal_disconnect(conv_handle, "received-im", plugin,
+			       GAIM_CALLBACK(receive_im_cb));
+	gaim_signal_disconnect(conv_handle, "displaying-im-msg", plugin,
+			       GAIM_CALLBACK(display_im_cb));
+	Debug("CrazyChat plugin unloaded.\n");
+	return TRUE;
+}
+
+static void init_plugin(GaimPlugin *plugin)
+{
+	gtk_gl_init(NULL, NULL);
+	memset(&cc_info, 0, sizeof(cc_info));
+	Debug("CrazyChat plugin initialized\n");
+}
+
+GAIM_INIT_PLUGIN(crazychat, init_plugin, info)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/cc_gtk_gl.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,288 @@
+#include <assert.h>
+#include <stdio.h>
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include "cc_gtk_gl.h"
+#include "util.h"
+
+static GdkGLConfig *glconfig = NULL;
+
+/**
+ * Resets the OpenGL viewport stuff on widget reconfiguration (resize,
+ * reposition)
+ * @param widget	widget that got reconfigured
+ * @param event		the configuration event
+ * @param data		unused
+ * @return		FALSE to propagate other handlers
+ */
+static gboolean configure_event(GtkWidget *widget, GdkEventConfigure *event,
+		void *data);
+
+/**
+ * Maps the widget to the screen.
+ * @param widget	widget that got mapped
+ * @param event		the map event
+ * @param data		draw info struct
+ * @return		FALSE to propagate other handlers
+ */
+static gboolean map_event(GtkWidget *widget, GdkEventAny *event, void *data);
+
+/**
+ * Unmaps the widget from the screen.
+ * @param widget	widget that got unmapped
+ * @param event		the configuration event
+ * @param data		draw info struct
+ * @return		FALSE to propagate other handlers
+ */
+static gboolean unmap_event(GtkWidget *widget, GdkEventAny *event, void *data);
+
+/**
+ * Respond to widget visibility change.
+ * @param widget	widget whose visibility changed
+ * @param event		the visibility event
+ * @param data		draw info struct
+ * @return		FALSE to propagate other handlers
+ */
+static gboolean visibility_notify_event(GtkWidget *widget,
+		GdkEventVisibility *event, void *data);
+
+/**
+ * Add a glib timer to periodically draw the widget.
+ * @param widget	widget we're drawing
+ * @param info		draw info struct
+ */
+static void widget_draw_timer_add(GtkWidget *widget, struct draw_info *info);
+
+/**
+ * Remove glib timer that was drawing this widget.
+ * @param widget	widget we're drawing
+ * @param info		draw info struct
+ */
+static void widget_draw_timer_remove(GtkWidget *widget, struct draw_info *info);
+
+/**
+ * Periodically invalidates gtk gl widget and tells GTK to redraw
+ * @param widget	widget we're drawing
+ */
+static gboolean widget_draw_timer(GtkWidget *widget);
+
+/**
+ * Cleanup widget stuff when it's getting destroyed.
+ * @param widget	widget that got destroyed
+ * @param data		draw info struct
+ */
+static void destroy_event(GtkWidget *widget, struct draw_info *data);
+
+int cc_init_gtk_gl()
+{
+	if (glconfig)
+		return 0;
+
+	/* configure OpenGL */
+
+	glconfig = gdk_gl_config_new_by_mode(GDK_GL_MODE_RGB |
+					     GDK_GL_MODE_DEPTH |
+					     GDK_GL_MODE_DOUBLE);
+
+	if (glconfig == NULL) {
+		Debug("*** Cannot find the double-buffered visual.\n");
+		Debug("*** Trying single-buffered visual.\n");
+
+		/* Try single-buffered visual */
+		glconfig = gdk_gl_config_new_by_mode(GDK_GL_MODE_RGB |
+						     GDK_GL_MODE_DEPTH);
+		if (glconfig == NULL) {
+			Debug("*** No appropriate OpenGL-capable visual "
+			      "found.\n");
+			return 1;
+		}
+	}
+
+	return 0;
+}
+
+void cc_new_gl_window(gl_init_func init, gl_config_func config,
+		gl_draw_func draw, struct draw_info *data,
+		struct window_box *ret)
+{
+	GtkWidget *window;
+	GtkWidget *vbox;
+	GtkWidget *drawing_area;
+
+	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+	gtk_container_set_reallocate_redraws(GTK_CONTAINER(window), TRUE);
+
+	vbox = gtk_vbox_new(FALSE, 0);
+	gtk_container_add(GTK_CONTAINER(window), vbox);
+	gtk_widget_show(vbox);
+
+	if (!data) {
+		data = (struct draw_info*)malloc(sizeof(*data));
+		assert(data);
+		memset(data, 0, sizeof(*data));
+		data->timeout = TRUE;
+		data->delay_ms = DEFAULT_FRAME_DELAY;
+	}
+	drawing_area = cc_new_gl_area(init, config, draw, data);
+	gtk_box_pack_start(GTK_BOX(vbox), drawing_area, TRUE, TRUE, 0);
+	gtk_widget_show(drawing_area);
+	ret->window = window;
+	ret->vbox = vbox;
+	ret->draw_area = drawing_area;
+}
+
+GtkWidget *cc_new_gl_area(gl_init_func init, gl_config_func config,
+		gl_draw_func draw, struct draw_info *data)
+{
+	GtkWidget *drawing_area;
+
+	assert(data);
+	
+	drawing_area = gtk_drawing_area_new();
+	assert(drawing_area);
+
+	assert(gtk_widget_set_gl_capability(drawing_area, glconfig, NULL, FALSE,
+				     GDK_GL_RGBA_TYPE));
+	gtk_widget_add_events (drawing_area, GDK_VISIBILITY_NOTIFY_MASK);
+	if (init) {
+		g_signal_connect_after(G_OBJECT(drawing_area), "realize",
+			G_CALLBACK(init), data->data);
+	}
+	if (config) {
+		g_signal_connect(G_OBJECT(drawing_area), "configure_event",
+			G_CALLBACK(config), NULL);
+	} else {
+		g_signal_connect(G_OBJECT(drawing_area), "configure_event",
+			G_CALLBACK(configure_event), NULL);
+	}
+	if (draw) {
+		g_signal_connect(G_OBJECT(drawing_area), "expose_event",
+			G_CALLBACK(draw), data->data);
+	}
+	g_signal_connect(G_OBJECT(drawing_area), "map_event",
+			G_CALLBACK(map_event), data);
+	g_signal_connect(G_OBJECT(drawing_area), "unmap_event",
+			G_CALLBACK(unmap_event), data);
+	g_signal_connect(G_OBJECT(drawing_area), "visibility_notify_event",
+			G_CALLBACK(visibility_notify_event), data);
+	g_signal_connect(G_OBJECT(drawing_area), "destroy",
+			G_CALLBACK(destroy_event), data);
+
+	return drawing_area;
+}
+
+
+static gboolean configure_event(GtkWidget *widget,
+				GdkEventConfigure *event, void *data)
+{
+	GdkGLContext *glcontext = gtk_widget_get_gl_context(widget);
+	GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(widget);
+
+	GLfloat w = widget->allocation.width;
+	GLfloat h = widget->allocation.height;
+	GLfloat aspect;
+
+//	Debug("configuring\n");
+	
+	/*** OpenGL BEGIN ***/
+	if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext))
+		return FALSE;
+
+	glViewport(0, 0, w, h);
+	glMatrixMode(GL_PROJECTION);
+
+	glLoadIdentity();
+	if (w > h) {
+		aspect = w / h;
+		glFrustum(-aspect, aspect, -1.0, 1.0, 2.0, 60.0);
+	} else {
+		aspect = h / w;
+		glFrustum(-1.0, 1.0, -aspect, aspect, 2.0, 60.0);
+	}
+	glMatrixMode(GL_MODELVIEW);
+	glLoadIdentity();
+
+	gdk_gl_drawable_gl_end(gldrawable);
+	/*** OpenGL END ***/
+
+	return FALSE;
+}
+
+static int map_event(GtkWidget *widget, GdkEventAny *event, void *data)
+{
+	struct draw_info *info = (struct draw_info*)data;
+	Debug("map\n");
+	
+	if (info->timeout) {
+		widget_draw_timer_add(widget, info);
+	}
+	return FALSE;
+}
+
+static int unmap_event(GtkWidget *widget, GdkEventAny *event, void *data)
+{
+	struct draw_info *info = (struct draw_info*)data;
+	Debug("unmap\n");
+	
+	if (info->timeout) {
+		widget_draw_timer_remove(widget, info);
+	}
+	return FALSE;
+}
+
+static int visibility_notify_event(GtkWidget *widget, GdkEventVisibility *event,
+		void *data)
+{
+	struct draw_info *info = (struct draw_info*)data;
+	Debug("visibility\n");
+	
+	if (event->state == GDK_VISIBILITY_FULLY_OBSCURED) {
+		Debug("obscured\n");
+		if (info->timeout) {
+			widget_draw_timer_remove(widget, info);
+		}
+	} else {
+		Debug("visible\n");
+		if (info->timeout) {
+			widget_draw_timer_add(widget, info);
+		}
+	}
+	return FALSE;
+}
+
+static void widget_draw_timer_add(GtkWidget *widget, struct draw_info *info)
+{
+	if (!info->timer_id) {
+		info->timer_id = g_timeout_add(info->delay_ms,
+				(GSourceFunc)widget_draw_timer, widget);
+	}
+}
+
+static void widget_draw_timer_remove(GtkWidget *widget, struct draw_info *info)
+{
+	if (info->timer_id) {
+		g_source_remove(info->timer_id);
+		info->timer_id = 0;
+	}
+}
+
+static gboolean widget_draw_timer(GtkWidget *widget)
+{
+	/* invalidate the window */
+	gdk_window_invalidate_rect (widget->window, &widget->allocation, FALSE);
+
+	/* tell gtk to update it _now_ */
+	gdk_window_process_updates (widget->window, FALSE);
+
+	return TRUE;
+}
+
+static void destroy_event(GtkWidget *widget, struct draw_info *data)
+{
+	Debug("destroying widget\n");
+	
+	if (data) {
+		widget_draw_timer_remove(widget, data);
+		free(data);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/cc_gtk_gl.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,50 @@
+#include <gtk/gtk.h>
+#include <gtk/gtkgl.h>
+
+#define DEFAULT_FRAME_DELAY		40
+
+typedef void (gl_init_func) (GtkWidget *widget, void *data);
+typedef gboolean (*gl_config_func) (GtkWidget *widget, GdkEventConfigure *event,
+		void *data);
+typedef gboolean (*gl_draw_func) (GtkWidget *widget, GdkEventExpose *event,
+			      void *data);
+
+struct draw_info {
+	gboolean timeout;		/* use/not use a timer callback */
+	int timer_id;			/* glib timer callback id */
+	guint delay_ms;			/* timer callback delay in ms */
+	void *data;			/* drawing data */
+};
+
+struct window_box {
+	GtkWidget *window;
+	GtkWidget *vbox;
+	GtkWidget *draw_area;
+};
+
+/**
+ * Initialize the gtkglext framework for all our widgets.
+ * @return		0 on success, non-zero on failure
+ */
+int cc_init_gtk_gl();
+
+/**
+ * Create a new OpenGL enabled window
+ * @param init		the initialize callback function
+ * @param draw		the drawing callback function
+ * @param data		drawing metadata
+ * @param ret		struct with returned window and vbox
+ */
+void cc_new_gl_window(gl_init_func init, gl_config_func config,
+		gl_draw_func draw, struct draw_info *data,
+		struct window_box *ret);
+
+/**
+ * Create a new OpenGL enabled drawing area widget.
+ * @param init		the initialize callback function
+ * @param draw		the drawing callback function
+ * @param data		drawing metadata
+ * @return 		the drawing widget
+ */
+GtkWidget *cc_new_gl_area(gl_init_func init, gl_config_func config,
+		gl_draw_func draw, struct draw_info *data);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/cc_interface.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,124 @@
+#ifndef __CC_INTERFACE_H__
+#define __CC_INTERFACE_H__
+
+#include <gtk/gtk.h>
+#include "crazychat.h"
+
+/* XXX feature encapsulation: still in flux, not stable XXX */
+
+//charlie
+typedef enum {REMOTE, LOCAL} OUTPUT;
+
+gboolean configure(GtkWidget *widget,
+				GdkEventConfigure *event, void *data);
+
+gboolean draw(GtkWidget *widget, GdkEventExpose *event,
+			      void *data);
+
+void init (GtkWidget *widget, void *data);
+
+void setupLighting(GtkWidget *widget);
+
+void setupDrawlists(OUTPUT output);
+
+struct cc_features {
+	guint8 head_size;
+	guint8 left_eye_open, right_eye_open;		/*booleans*/
+	guint8 mouth_open;				/*percentage*/
+	guint8 head_x_rot, head_y_rot, head_z_rot;	/* head rotation */
+	guint8 x, y;					/*center of head*/
+	guint8 head_color, appendage_color, lid_color, right_iris_color, left_iris_color; //colors
+	guint8 mode, kind;
+};
+
+struct output_instance {
+	struct cc_features *features;
+	struct cc_session *session;
+	float past_y;
+	OUTPUT my_output;
+	GtkWidget *widget;
+	GtkWidget *box;
+};
+
+struct input_instance {
+	int timer_id;
+	struct cc_features face;
+	GtkWidget *widget;
+	GtkWidget *box;
+	GtkWidget *button;
+	GtkWidget *label;
+	GtkWidget *model;
+	GtkWidget *head, *appendage, *lid, *right_iris, *left_iris;
+	struct output_instance output;
+};
+
+struct output_handlers {
+	int (*configure)(GtkWidget *widget, GdkEventConfigure *event,
+			void *data);
+	void (*init) (GtkWidget *widget, void *data);
+	gboolean (*draw) (GtkWidget *widget, GdkEventExpose *event, void *data);
+};
+
+struct cc_session {
+	struct crazychat *cc;			/**< crazychat global data */
+	char *name;				/**< session peer */
+	guint32 peer_ip;			/**< peer's ip addr, nbo */
+	guint16 peer_port;			/**< peer's port hbo */
+	struct sockaddr_in peer;		/**< peer udp sock addr */
+	CC_STATE state;				/**< connection state */
+	int timer_id;				/**< glib timer callback id */
+	int tcp_sock;				/**< tcp socket connection */
+	int udp_sock;				/**< udp socket connection */
+	struct cc_features features;		/**< network peer features */
+	struct output_instance *output;		/**< output instance data */
+	filter_bank *filter;			/**< filter instance */
+};
+
+struct crazychat {
+	guint16 tcp_port;			/**< tcp port to bind on */
+	guint16 udp_port;			/**< udp session data port */
+	struct cc_session_node *sessions;	/**< list of sessions */
+	struct input_instance *input_data;	/**< input instance data */
+	gboolean features_state;		/**< features state on/off */
+};
+
+/* --- input feature interface --- */
+
+#ifdef _DISABLE_QT_
+#define init_input(a)				NULL
+#define destroy_input(a)
+#else
+
+/**
+ * Initializes the input subsystem.
+ * @param cc		global crazychat data structure
+ * @return		pointer to an input instance
+ */
+struct input_instance *init_input(struct crazychat *cc);
+
+/**
+ * Destroys the input subsystem.
+ * @param instance	input instance
+ */
+void destroy_input(struct input_instance *instance);
+
+#endif /* _DISABLE_QT_ */
+
+/* --- output feature interface --- */
+
+/**
+ * Initializes an output instance.
+ * @param features	pointer to features
+ * @param session	pointer to the crazychat session
+ * @return		pointer to the output instance
+ */
+struct output_instance *init_output(struct cc_features *features,
+		struct cc_session *session);
+
+/**
+ * Destroys an output instance.
+ * @param instance	output instance
+ */
+void destroy_output(struct output_instance *instance);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/cc_network.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,540 @@
+#include <assert.h>
+#include <errno.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include <conversation.h>
+#include <network.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <sys/time.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include "cc_network.h"
+#include "cc_interface.h"
+#include "util.h"
+
+/* --- begin constant definitions --- */
+
+#define NETWORK_TIMEOUT_DELAY	40		/* in ms */
+#define MAX_ACCEPT_CHECKS	1000
+
+/* --- begin type declarations --- */
+
+struct accept_args {
+	GaimAccount *account;
+	struct crazychat *cc;
+	char *name;
+	guint32 peer_ip;
+	guint16 peer_port;
+};
+
+struct sock_accept_args {
+	GaimAccount *account;
+	struct cc_session *session;
+};
+
+/* --- begin function prototypes --- */
+
+/**
+ * Creates a server socket and sends a response to the peer.
+ * @param account		the gaim account sending the ready msg
+ * @param session		the peer CrazyChat session
+ */
+static void cc_net_send_ready(GaimAccount *account, struct cc_session *session);
+
+/**
+ * Handles responses from the CrazyChat session invite dialog box.
+ * @param dialog		the dialog box
+ * @param response		the dialog box button response
+ * @param args			account, crazychat global data, peer name
+ */
+static void invite_handler(GtkDialog *dialog, gint response,
+		struct accept_args *args);
+
+/**
+ * Periodically checks the server socket for peer's connection.  Gives up
+ * after a set number of checks.
+ * @param args			peer session and account
+ * @return			TRUE to continue checking, FALSE to stop
+ */
+static gboolean accept_cb(struct sock_accept_args *args);
+
+/**
+ * Initialize CrazyChat network session.  Sets up the UDP socket and port.
+ * @param account		the account the session is part of
+ * @param session		the CrazyChat network session
+ */
+static void init_cc_net_session(GaimAccount *account,
+		struct cc_session *session);
+
+/**
+ * Handles checking the network for new feature data and sending out the 
+ * latest features.
+ * @param session		the session we're checking for network traffic
+ */
+static gboolean network_cb(struct cc_session *session);
+
+/**
+ * Generates random bytes in the user specified byte buffer.
+ * @param buf		the byte buffer
+ * @param len		length of the byte buffer
+ */
+static void generate_randomness(uint8_t buf[], unsigned int len);
+
+/**
+ * Sends data over a socket.
+ * @param s   socket file descriptor
+ * @param buf data buffer
+ * @param len data buffer length
+ * @return    number of bytes sent or -1 if an error occurred
+ */
+static int __send(int s, char *buf, int len);
+
+/* --- begin function definitions --- */
+
+void cc_net_send_invite(struct crazychat *cc, char *name, GaimAccount *account)
+{
+	struct cc_session *session;
+	GaimConversation *conv;
+	GaimConvIm *im;
+	char buf[BUFSIZ];
+	
+	session = cc_find_session(cc, name);
+	if (session) return; /* already have a session with this guy */
+	session = cc_add_session(cc, name);
+	session->state = INVITE;
+	conv = gaim_find_conversation_with_account(name, account);
+	if (!conv) {
+		conv = gaim_conversation_new(GAIM_CONV_IM, account, name);
+	}
+	im = gaim_conversation_get_im_data(conv);
+	snprintf(buf, BUFSIZ, "%s%s!%d", CRAZYCHAT_INVITE_CODE,
+		gaim_network_get_ip_for_account(account, -1), cc->tcp_port);
+	Debug("Sent invite to %s for port: %d\n", name, cc->tcp_port);
+	gaim_conv_im_send(im, buf);
+}
+
+void cc_net_recv_invite(GaimAccount *account, struct crazychat *cc, char *name,
+		const char *peer_ip, const char *peer_port)
+{
+	struct cc_session *session;
+	GaimConversation *conv;
+	GaimConvWindow *convwin;
+	char buf[BUFSIZ];
+	struct accept_args *args;
+
+	assert(cc);
+	assert(name);
+	Debug("Received a CrazyChat session invite from %s on port %s!\n",
+			name, peer_port);
+	session = cc_find_session(cc, name);
+	if (!session) {
+		Debug("Creating a CrazyChat session invite dialog box!\n");
+		conv = gaim_find_conversation_with_account(name, account);
+		if (conv) convwin = gaim_conversation_get_window(conv);
+		else convwin = NULL;
+		/* pop gtk window asking if want to accept */
+		GtkWidget *dialog =
+			gtk_dialog_new_with_buttons("CrazyChat Session Invite",
+			GTK_WINDOW(convwin),
+			GTK_DIALOG_MODAL |
+			GTK_DIALOG_DESTROY_WITH_PARENT,
+			GTK_STOCK_OK,
+			GTK_RESPONSE_ACCEPT,
+			GTK_STOCK_CANCEL,
+			GTK_RESPONSE_REJECT,
+			NULL);
+		snprintf(buf, BUFSIZ, "Would you like to CRaZYchAT with %s?", name);
+		GtkWidget *label = gtk_label_new(buf);
+		gtk_container_add(GTK_CONTAINER (GTK_DIALOG(dialog)->vbox),
+				label);
+		args = (struct accept_args*)malloc(sizeof(*args));
+		args->account = account;
+		args->cc = cc;
+		args->name = strdup(name);
+		assert(inet_aton(peer_ip, (struct in_addr*)&args->peer_ip));
+		args->peer_port = atoi(peer_port);
+
+		g_signal_connect(GTK_OBJECT(dialog), "response",
+				G_CALLBACK(invite_handler), args);
+		
+		gtk_widget_show_all(dialog);
+	}
+}
+
+void cc_net_recv_accept(GaimAccount *account, struct crazychat *cc, char *name,
+		const char *peer_ip)
+{
+	struct cc_session *session;
+	struct in_addr peer_addr;
+
+	assert(cc);
+	assert(name);
+	Debug("Received a CrazyChat session accept!\n");
+	session = cc_find_session(cc, name);
+	if (session && session->state == INVITE) {
+		session->state = ACCEPTED;
+		assert(inet_aton(peer_ip, &peer_addr));
+		session->peer_ip = peer_addr.s_addr;
+		cc_net_send_ready(account, session);
+	}
+}
+
+static void cc_net_send_ready(GaimAccount *account, struct cc_session *session)
+{
+	struct sock_accept_args *args;
+	
+	assert(session);
+	Debug("Initializing the server socket and sending ready message\n");
+	/* create the server socket */
+	session->tcp_sock = socket(AF_INET, SOCK_STREAM, 0);
+	assert(session->tcp_sock != -1);
+	int reuse = 1;
+	assert(setsockopt(session->tcp_sock, SOL_SOCKET, SO_REUSEADDR,
+				&reuse, sizeof(int)) != -1);
+	struct sockaddr_in my_addr;
+	my_addr.sin_family = AF_INET;
+	my_addr.sin_port = htons(session->cc->tcp_port);
+	assert(inet_aton(gaim_network_get_ip_for_account(account, -1),
+			&my_addr.sin_addr));
+	memset(&my_addr.sin_zero, 0, sizeof(my_addr.sin_zero));
+	assert(bind(session->tcp_sock, (struct sockaddr*)&my_addr,
+				sizeof(my_addr)) != -1);
+	Debug("Listening on port: %d\n", my_addr.sin_port);
+	assert(listen(session->tcp_sock, 1) != -1);
+
+	/* socket created, send the ready message */
+	GaimConversation *conv;
+	GaimConvIm *im;
+
+	conv = gaim_find_conversation_with_account(session->name, account);
+	if (!conv) {
+		conv = gaim_conversation_new(GAIM_CONV_IM, account,
+				session->name);
+	}
+	im = gaim_conversation_get_im_data(conv);
+	gaim_conv_im_send(im, CRAZYCHAT_READY_CODE);
+
+	/* register timer callback for checking socket connection */
+	args = (struct sock_accept_args*)malloc(sizeof(*args));
+	args->session = session;
+	args->account = account;
+	session->udp_sock = MAX_ACCEPT_CHECKS;
+	session->timer_id = g_timeout_add(NETWORK_TIMEOUT_DELAY,
+		(GSourceFunc)accept_cb, args);
+}
+
+void cc_net_recv_ready(GaimAccount *account, struct crazychat *cc, char *name)
+{
+	struct cc_session *session;
+	struct sockaddr_in server_addr, my_addr;
+	int sock;
+
+	assert(cc);
+	assert(name);
+	Debug("Received a CrazyChat session ready!\n");
+	session = cc_find_session(cc, name);
+	if (session && session->state == ACCEPTED) {
+		/* connect to peer */
+		session->tcp_sock = socket(AF_INET, SOCK_STREAM, 0);
+		assert(session->tcp_sock != -1);
+		server_addr.sin_family = AF_INET;
+		server_addr.sin_port = session->peer_port;
+		server_addr.sin_addr.s_addr = session->peer_ip;
+		memset(&(server_addr.sin_zero), 0,
+				sizeof(server_addr.sin_zero));
+		assert(connect(session->tcp_sock,
+				(struct sockaddr*)&server_addr,
+				sizeof(server_addr)) != -1);
+		Debug("Connecting to peer on port %d\n", session->peer_port);
+
+		/* now set state */
+		session->state = CONNECTED;
+		init_cc_net_session(account, session);
+	}
+}
+
+static void invite_handler(GtkDialog *dialog, gint response, struct accept_args *args)
+{
+	struct cc_session *session;
+	char buf[BUFSIZ];
+	GaimConversation *conv;
+	GaimConvIm *im;
+	
+	if (response == GTK_RESPONSE_ACCEPT) {
+		assert(args);
+		session = cc_find_session(args->cc, args->name);
+		assert(!session);
+		session = cc_add_session(args->cc, args->name);
+		session->state = ACCEPTED;
+		session->peer_ip = args->peer_ip;
+		session->peer_port = args->peer_port;
+		snprintf(buf, BUFSIZ, "%s%s", CRAZYCHAT_ACCEPT_CODE,
+			gaim_network_get_ip_for_account(args->account, -1));
+		conv = gaim_find_conversation_with_account(args->name,
+				args->account);
+		if (!conv) {
+			conv = gaim_conversation_new(GAIM_CONV_IM,
+				args->account, args->name);
+		}
+		im = gaim_conversation_get_im_data(conv);
+		gaim_conv_im_send(im, buf);
+	}
+	free(args->name);
+	free(args);
+	gtk_widget_destroy(GTK_WIDGET(dialog));
+}
+
+static gboolean accept_cb(struct sock_accept_args *args)
+{
+	fd_set fds;
+	struct timeval zero;
+	int ret;
+	GaimAccount *account;
+	struct cc_session *session;
+
+	assert(args);
+	account = args->account;
+	session = args->session;
+	assert(account);
+	assert(session);
+
+	/* set select to check on our tcp socket */
+	FD_ZERO(&fds);
+	FD_SET(session->tcp_sock, &fds);
+	memset(&zero, 0, sizeof(zero));
+
+	/* check socket */
+	ret = select(session->tcp_sock+1,&fds, NULL, NULL, &zero);
+	assert(ret != -1);
+
+	if (ret) { /* got something to check */
+		Debug("Checking pending connection\n");
+		int sock;
+		struct sockaddr_in client_addr;
+		socklen_t sin_size;
+
+		sin_size = sizeof(client_addr);
+		sock = accept(session->tcp_sock,
+				(struct sockaddr*)&client_addr, &sin_size);
+		assert(sock != -1);
+		
+		/* check if it's a match */
+		if (client_addr.sin_addr.s_addr == session->peer_ip) {
+			/* cool, we're set */
+			Debug("Accepted tcp connect from %s\n", session->name);
+			close(session->tcp_sock);
+			session->tcp_sock = sock;
+			session->state = CONNECTED;
+			session->timer_id = 0;
+			init_cc_net_session(account, session);
+			Debug("Will start sending to port %d\n",
+					session->peer_port);
+			free(args);
+			return FALSE;
+		}
+	}
+
+	session->udp_sock--;
+
+	if (!session->udp_sock) { /* timed out */
+		/* remove session from session list */
+		cc_remove_session(session->cc, session);
+		free(args);
+		return FALSE;
+	}
+
+	return TRUE;
+}
+
+static void init_cc_net_session(GaimAccount *account,
+		struct cc_session *session)
+{
+	struct sockaddr_in my_addr;
+	struct sockaddr_in peer_addr;
+	int reuse;
+	
+	/* send/obtain the udp port information */
+	
+	assert(__send(session->tcp_sock, (char*)&session->cc->udp_port,
+			sizeof(session->cc->udp_port)) ==
+			sizeof(session->cc->udp_port));
+	assert(recv(session->tcp_sock, (char*)&session->peer_port,
+			sizeof(session->peer_port), 0) ==
+			sizeof(session->peer_port));
+
+	Debug("Established a CrazyChat session with %s!\n", session->name);
+	
+	/* connect the udp sockets */
+	
+	session->udp_sock = socket(AF_INET, SOCK_DGRAM, 0);
+
+	assert(!setsockopt(session->udp_sock, SOL_SOCKET, SO_REUSEADDR,
+			&reuse, sizeof(reuse)));
+	
+	my_addr.sin_family = AF_INET;
+	my_addr.sin_port = htons(session->cc->udp_port);
+	assert(inet_aton(gaim_network_get_ip_for_account(account, -1),
+				&my_addr.sin_addr));
+	memset(my_addr.sin_zero, 0, sizeof(my_addr.sin_zero));
+	assert(!bind(session->udp_sock, (struct sockaddr*)&my_addr,
+			sizeof(my_addr)));
+	session->peer.sin_family = AF_INET;
+	session->peer.sin_port = htons(session->peer_port);
+	session->peer.sin_addr.s_addr = session->peer_ip;
+	memset(&session->peer.sin_zero, 0, sizeof(session->peer.sin_zero));
+
+	Debug("Bound udp sock to port %d, connecting to port %d\n",
+		session->cc->udp_port, session->peer_port);
+	
+	memset(&session->features, 0, sizeof(session->features));
+
+	session->output = init_output(&session->features, session);
+
+	session->filter = Filter_Initialize();
+
+	/* initialize timer callback */
+	session->timer_id = g_timeout_add(NETWORK_TIMEOUT_DELAY,
+		(GSourceFunc)network_cb, session);
+
+	/* initialize input subsystem if not initialized */
+	if (!session->cc->features_state) {
+		session->cc->input_data = init_input(session->cc);
+		session->cc->features_state = 1;
+	}
+}
+
+static gboolean network_cb(struct cc_session *session)
+{
+	fd_set fds;
+	struct timeval zero;
+	int ret;
+	int command;
+	struct cc_features *features;
+
+	assert(session);
+
+	Debug("Checking for data\n");
+
+	/* set select to check on our tcp socket */
+	FD_ZERO(&fds);
+	FD_SET(session->tcp_sock, &fds);
+	memset(&zero, 0, sizeof(zero));
+
+	/* check tcp socket */
+	ret = select(session->tcp_sock+1, &fds, NULL, NULL, &zero);
+	assert(ret != -1);
+
+	while (ret) {
+		ret = recv(session->tcp_sock, &command, sizeof(command), 0);
+		assert(ret != -1);
+		if (!ret) {
+			/* tcp connection closed, destroy connection */
+			gtk_widget_destroy(session->output->widget);
+			return FALSE;
+		}
+		assert(ret == sizeof(command));
+
+		FD_ZERO(&fds);
+		FD_SET(session->tcp_sock, &fds);
+		ret = select(session->tcp_sock+1, &fds, NULL, NULL, &zero);
+		assert(ret != -1);
+	}
+
+	/* set select to check on our udp socket */
+	FD_ZERO(&fds);
+	FD_SET(session->udp_sock, &fds);
+	memset(&zero, 0, sizeof(zero));
+
+	/* check udp socket */
+	ret = select(session->udp_sock+1, &fds, NULL, NULL, &zero);
+	assert(ret != -1);
+
+	features = &session->features;
+		
+	while (ret) { /* have data, let's copy it for output */
+		struct sockaddr_in from;
+		int fromlen;
+		ret = recvfrom(session->udp_sock, &session->features,
+				sizeof(session->features),
+				0, (struct sockaddr*)&from, &fromlen);
+		Debug("Received %d bytes from port %d\n", ret,
+				ntohs(from.sin_port));
+		filter(features, session->filter);
+		Debug("\thead size: %d\n", features->head_size);
+		Debug("\topen: left(%s), right(%s), mouth(%s)\n",
+				features->left_eye_open ? "yes" : "no",
+				features->right_eye_open ? "yes" : "no",
+				features->mouth_open ? "yes" : "no");
+		Debug("\thead rotation: x(%d), y(%d), z(%d)\n",
+			features->head_x_rot, features->head_y_rot,
+			features->head_z_rot);
+		Debug("\tx(%d), y(%d)\n", features->x, features->y);
+		if (ret == -1) {
+			perror("wtf:");
+		}
+		assert(ret != -1);
+
+		FD_ZERO(&fds);
+		FD_SET(session->udp_sock, &fds);
+		ret = select(session->udp_sock+1, &fds, NULL, NULL, &zero);
+		assert(ret != -1);
+	}
+
+#ifdef _DISABLE_QT_
+	struct cc_features bogus;
+	features = &bogus;
+	generate_randomness((uint8_t*)features, sizeof(*features));
+#else
+	features = &session->cc->input_data->face;
+#endif
+	assert(sendto(session->udp_sock, (char*)features,
+			sizeof(*features), 0, (struct sockaddr*)&session->peer,
+			sizeof(session->peer)) == sizeof(*features));
+	Debug("Sent %d bytes\n", sizeof(*features));
+	Debug("\thead size: %d\n", features->head_size);
+	Debug("\topen: left(%s), right(%s), mouth(%s)\n",
+			features->left_eye_open ? "yes" : "no",
+			features->right_eye_open ? "yes" : "no",
+			features->mouth_open ? "yes" : "no");
+	Debug("\thead rotation: x(%d), y(%d), z(%d)\n",
+		features->head_x_rot, features->head_y_rot,
+		features->head_z_rot);
+	Debug("\tx(%d), y(%d)\n", features->x, features->y);
+
+	/* clear easter egg */
+	features->mode = 0;
+
+	return TRUE;
+}
+
+static void generate_randomness(uint8_t buf[], unsigned int len)
+{
+	int fd;
+
+	fd = open("/dev/random", O_RDONLY);
+	assert(fd != -1);
+
+	assert(read(fd, buf, len) == len);
+	close(fd);
+}
+
+static int __send(int s, char *buf, int len)
+{
+	int total = 0;		/* how many bytes we've sent */
+	int bytesleft = len;	/* how many we have left to send */
+	int n;
+
+	while (total < len) {
+		n = send(s, buf + total, bytesleft, 0);
+		if (n == -1) {
+			Debug("ERROR: %s\n", strerror(errno));
+			return -1;
+		}
+		total += n;
+		bytesleft -= n;
+	}
+
+	return total;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/cc_network.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,78 @@
+#ifndef __CC_NETWORK_H__
+#define __CC_NETWORK_H__
+
+#include <account.h>
+#include <conversation.h>
+#include "crazychat.h"
+
+/* --- begin constant definition --- */
+
+#define DEFAULT_CC_PORT		6543
+
+#define CRAZYCHAT_INVITE_CODE	"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" \
+				"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" \
+				"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" \
+				"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" \
+				"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" \
+				"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+#define CRAZYCHAT_ACCEPT_CODE	"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" \
+				"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" \
+				"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" \
+				"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" \
+				"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" \
+				"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
+#define CRAZYCHAT_READY_CODE	"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" \
+				"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" \
+				"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" \
+				"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" \
+				"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" \
+				"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"
+
+/* --- begin function declarations --- */
+
+/**
+ * Creates a new CrazyChat session if one doesn't exist and sends the invite.
+ * @param cc		global crazychat data structure
+ * @param name		the peer name
+ * @param account	the gaim account
+ */
+void cc_net_send_invite(struct crazychat *cc, char *name, GaimAccount *account);
+
+/**
+ * Pops up the CrazyChat invitation accept window if a CrazyChat session does
+ * not exist yet for this peer.
+ * @param account	gaim account
+ * @param cc		global crazychat data structure
+ * @param name		the peer name
+ * @param peer_ip	the peer's ip address
+ * @param peer_port	the peer's tcp port
+ */
+void cc_net_recv_invite(GaimAccount *account, struct crazychat *cc, char *name,
+		const char *peer_ip, const char *peer_port);
+
+/**
+ * Accepts the CrazyChat invitation and sends the response.
+ * @param session	the CrazyChat session
+ */
+void cc_net_send_accept(struct cc_session *session);
+
+/**
+ * Receives a CrazyChat accept message, and if appropriate, creates a server
+ * socket and sends the ready message.
+ * @param account	the gaim account which received the message
+ * @param cc		global crazychat data structure
+ * @param name		the peer name
+ * @param peer_ip	the peer's ip address
+ */
+void cc_net_recv_accept(GaimAccount *account, struct crazychat *cc, char *name,
+		const char *peer_ip);
+
+/**
+ * Receives a CrazyChat ready message, and if appropriate, connects to peer
+ * @param account	the gaim account which received the message
+ * @param cc		global crazychat data structure
+ * @param name		the peer name
+ */
+void cc_net_recv_ready(GaimAccount *account, struct crazychat *cc, char *name);
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/cc_output.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,353 @@
+#include <assert.h>
+#include <string.h>
+#include <stdlib.h>
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include <math.h>
+#include "util.h"
+#include "cc_interface.h"
+#include "crazychat.h"
+#include <stdio.h>
+
+#include "cc_gtk_gl.h"
+
+#include "face.h"
+#include "glm.h"
+
+
+#define TAN_30 0.577
+#define ROOT_3 1.73
+//this will be the width of all heads
+#define HEAD_WIDTH 2.5
+#define HEAD_HEIGHT 2.5 //same for now, this will actually vary from head
+#define PERSONS_HEAD 1
+#define MOVEMENT .33
+
+GLfloat ambient[] = {1.0, 1.0, 1.0, 1.0};
+GLfloat diffuse[] = {.7, .7, .7, 1};
+GLfloat specular[] = {1, 1, 1, 1};
+GLfloat lightpos[] = {0.0, 0.0, 20, 1};
+GLfloat specref[] = {1.0, 1, 1, 1,};
+
+GLfloat xrot, yrot, zrot;
+GLfloat x, y,  z, mouth_open;
+GLint left_eye_frame, right_eye_frame;		//between 0 - 8
+GLint mouth_type;
+GLint mouth_frame;
+DIRECTION dir;
+BOOL left_open, right_open;
+GLfloat window_aspect;
+
+FACE remote_shark_face, remote_dog_face, local_shark_face, local_dog_face;
+int count = 0;
+int curr_materials[DOG_SHARK_CHANGE]; //these are the materials from output_instance
+OUTPUT_MODE curr_mode;
+KIND which_face;
+
+static void destroy_cb(GtkWidget *widget, struct output_instance *data);
+
+void Interpolate(struct output_instance* instance){
+	GLfloat rangeX, rangeY, minZ, adj, angle, temp;
+	count++;
+/*	yrot=90;
+	zrot=0;
+	z=5;
+	x=0;
+	y=0;
+	left_open = right_open = TRUE;
+	mouth_open = (float)(count%10)/10;
+	dir = CONST;
+	curr_mode = NORMAL;
+	return;
+*/
+	
+	//find z plane from percentage of face
+	if(instance->features->head_size==0){
+		z = 5;
+	}	
+
+	temp = (GLfloat)instance->features->head_size/40.0;
+	//printf("head size %d\n", instance->features->head_size);
+	
+	minZ = ROOT_3;
+	z = ROOT_3*(PERSONS_HEAD/temp);
+	if(z < minZ)
+		z = minZ;
+	 	
+	//these calculations are based on a 90 degree viewing angle
+	rangeX = z*(TAN_30)*2;
+	rangeY = window_aspect*rangeX;
+	temp = (GLfloat)instance->features->x;
+	if(temp>50) { //then its on the left
+		temp = (temp - 50.0)/50.0;
+		x = 0 - temp*rangeX/1.0;
+	}
+	else {
+		temp = (50.0-temp)/50.0;
+		x = 0 + temp*rangeX/1.0;
+	}
+
+	temp = (GLfloat)instance->features->y;	
+
+	if(temp>50){
+		temp = (temp-50.0)/50.0;
+		y = 0 - temp*rangeY/1.0;
+	}
+	else {
+		temp = (50.0-temp)/50.0;
+		y = 0 + temp*rangeY/1.0;
+	}
+
+	temp = (GLfloat)instance->features->head_y_rot;
+	yrot = temp - 50;
+	temp = (GLfloat)instance->features->head_z_rot;
+	zrot = temp-50;
+
+	if(y-instance->past_y < -MOVEMENT)
+	  dir = DOWN;
+	else if(y-instance->past_y > MOVEMENT)
+	  dir = UP;
+	else
+	  dir = CONST;
+	instance->past_y=y;
+
+	mouth_open = (float)instance->features->mouth_open/105;
+	count++;
+	//mouth_open = (count%10)/(10);	
+
+	if(instance->features->left_eye_open==0){
+		left_open = FALSE;
+	}
+	else{
+		left_open = TRUE;
+	}	
+
+	if(instance->features->right_eye_open==0)
+		right_open = FALSE;
+	else
+		right_open = TRUE;
+	//right_open =1 - (count%5)/4;
+
+	//set the materials
+	curr_materials[APPENDAGE]=instance->features->appendage_color;
+	curr_materials[HEAD]=instance->features->head_color;
+	curr_materials[LIDS]=instance->features->lid_color;
+	curr_materials[LEFT_IRIS]=instance->features->left_iris_color;
+	curr_materials[RIGHT_IRIS]=instance->features->right_iris_color;
+	// we don't get an x rotation
+	xrot = 0;
+	curr_mode=instance->features->mode;
+	if(instance->features->kind==0)
+		which_face=DOG;
+	else
+		which_face=SHARK;
+	
+}
+
+
+
+gboolean configure(GtkWidget *widget,
+				GdkEventConfigure *event, void *data)
+{
+	GdkGLContext *glcontext = gtk_widget_get_gl_context(widget);
+	GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable(widget);
+	
+	GLfloat w = widget->allocation.width;
+	GLfloat h = widget->allocation.height;
+	GLfloat aspect;
+
+	Debug("configuring\n");
+
+
+	/*** OpenGL BEGIN ***/
+	if (!gdk_gl_drawable_gl_begin(gldrawable, glcontext))
+		return FALSE;
+
+	glEnable(GL_DEPTH_TEST);
+	glViewport(0, 0, w, h);
+	glMatrixMode(GL_PROJECTION);
+	glLoadIdentity();
+
+	if (w > h) {
+		window_aspect = w / h;
+	} else {
+		window_aspect = h / w;
+	}
+
+	//glOrtho(-10, 10, -10,10, 0.0001, 1000); 
+	gluPerspective(90.0, window_aspect, 0.0001, 1000.0);
+
+	glMatrixMode(GL_MODELVIEW);
+	glLoadIdentity();
+
+	gdk_gl_drawable_gl_end(gldrawable);
+	/*** OpenGL END ***/
+
+	return TRUE;
+}
+
+gboolean draw(GtkWidget *widget, GdkEventExpose *event,
+			      void *data)
+{
+	struct output_instance *instance = (struct output_instance*)data;
+	if(!data) {
+		fprintf(stderr,"null\n");
+	}
+	assert(instance);
+	Interpolate(instance);	
+
+	GdkGLContext *glcontext = gtk_widget_get_gl_context (widget);
+	GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (widget);
+
+	//return TRUE;
+
+	assert(gtk_widget_is_gl_capable(widget));
+
+	if (!gdk_gl_drawable_gl_begin (gldrawable, glcontext)) {
+		fprintf(stderr, "We're fucked this time.\n");
+		return FALSE;
+	}
+
+
+	glClearColor(1.0, 1.0, 1.0, 0.0);
+	//glDisable(GL_CULL_FACE);
+
+	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);	
+	glColor3f(1.0, 1.0, 1.0);
+	glMatrixMode(GL_MODELVIEW);
+	glLoadIdentity();
+	
+	glTranslatef(x, y, -z);
+	if(instance->my_output==LOCAL){
+		if(which_face==DOG){
+			change_materials(local_dog_face, curr_materials, DOG_SHARK_CHANGE);
+			draw_face(local_dog_face, zrot, yrot, left_open, right_open, mouth_open, dir, curr_mode);
+		}
+		else {
+			change_materials(local_shark_face, curr_materials, DOG_SHARK_CHANGE);
+			draw_face(local_shark_face, zrot, yrot, left_open, right_open, mouth_open, dir, curr_mode);
+		}	
+	}
+	else{
+		if(which_face==DOG){
+			change_materials(remote_dog_face, curr_materials, DOG_SHARK_CHANGE);
+			draw_face(remote_dog_face, zrot, yrot, left_open, right_open, mouth_open, dir, curr_mode);
+		}
+		else{
+			change_materials(remote_shark_face, curr_materials, DOG_SHARK_CHANGE);
+			draw_face(remote_shark_face, zrot, yrot, left_open, right_open, mouth_open, dir, curr_mode);
+		}
+	}
+	if (gdk_gl_drawable_is_double_buffered (gldrawable))
+		gdk_gl_drawable_swap_buffers (gldrawable);
+	else
+		glFlush ();
+	return TRUE;
+}
+
+void init (GtkWidget *widget, void *data) 
+{
+	setupDrawlists(REMOTE);
+	setupLighting(widget);
+}
+
+
+void setupDrawlists(OUTPUT output)
+{
+	if(output==REMOTE){
+		remote_shark_face = init_face(SHARK);
+		remote_dog_face = init_face(DOG);
+	}
+	if(output==LOCAL){
+		local_shark_face = init_face(SHARK);
+		local_dog_face = init_face(DOG);
+	}
+}
+
+
+void setupLighting(GtkWidget *widget)
+{
+
+	GLfloat w = widget->allocation.width;
+	GLfloat h = widget->allocation.height;
+	glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
+        glEnable(GL_DEPTH_TEST);
+        glEnable(GL_LIGHTING);
+        //glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+        glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+        glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
+        glLightfv(GL_LIGHT0, GL_POSITION, lightpos);
+        glEnable(GL_LIGHT0);
+        //glEnable(GL_COLOR_MATERIAL);
+        //glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
+        glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);
+        glMateriali(GL_FRONT, GL_SHININESS, 128);
+        
+        //glEnable(GL_CULL_FACE);
+        
+        glClear(GL_COLOR_BUFFER_BIT);
+	glMatrixMode(GL_PROJECTION);
+	glLoadIdentity();
+	//glOrtho(-2, 2, -2, 2, 0.0001, 1000);
+	
+	if (w > h) {
+		window_aspect = w / h;
+	} else {
+		window_aspect = h / w;
+	}
+
+	gluPerspective(90.0, window_aspect, 0.0001, 1000.0);
+	//glFrustum(-100.0, 100.0, -100.0, 100.0, 0, 10);
+	glMatrixMode(GL_MODELVIEW);
+	//gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
+}
+
+struct output_instance *init_output(struct cc_features *features,
+		struct cc_session *session)
+{
+	struct draw_info *info;
+	struct output_instance *instance;
+	struct window_box ret;
+
+	instance = (struct output_instance*)malloc(sizeof(*instance));
+	assert(instance);
+	memset(instance, 0, sizeof(*instance));
+	instance->features = features;
+	instance->session = session;
+
+	info = (struct draw_info*)malloc(sizeof(*info));
+	memset(info, 0, sizeof(*info));
+	info->timeout = TRUE;
+	info->delay_ms = 40;
+	info->data = instance;
+
+
+	cc_new_gl_window(init, configure, draw, info, &ret);
+	g_signal_connect(GTK_OBJECT(ret.window), "destroy",
+			G_CALLBACK(destroy_cb),	instance);
+	gtk_window_set_default_size(ret.window,640,480);
+	if (session) {
+		gtk_window_set_title(ret.window, session->name);
+	}
+	gtk_widget_show(ret.window);
+	instance->widget = ret.window;
+	instance->box = ret.vbox;
+	return instance;
+}
+
+static void destroy_cb(GtkWidget *widget, struct output_instance *data)
+{
+	Debug("Closing output window\n");
+	if (data->session) {
+		cc_remove_session(data->session->cc, data->session);
+		close(data->session->tcp_sock);
+		close(data->session->udp_sock);
+		Filter_Destroy(data->session->filter);
+		destroy_output(data->session->output);
+	}
+}
+
+void destroy_output(struct output_instance *instance)
+{
+	free(instance);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/configure.ac	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,93 @@
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.57)
+AC_INIT(src/crazychat.c)
+AM_INIT_AUTOMAKE(CrazyChat, 0.0.1)
+AC_CONFIG_HEADER([config.h])
+
+# Checks for programs.
+AC_PROG_CXX
+AC_PROG_CC
+AC_PROG_CPP
+AM_PROG_CC_STDC
+AC_HEADER_STDC
+AC_PROG_INSTALL
+AC_DISABLE_STATIC
+AC_PROG_LIBTOOL
+
+# Check for debug
+AC_ARG_ENABLE(debug,
+[AC_HELP_STRING([--enable-debug], [enable debugging])],
+[case "${enableval}" in
+	yes) debug=true ;;
+	no) debug=false ;;
+	*) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
+esac
+test -z "${enableval}" || debug=false],[debug=true])
+AM_CONDITIONAL(ENABLE_DEBUG, test x$debug = xtrue)
+
+# Check for disabling Quicktime
+AC_ARG_ENABLE(qt,
+[AC_HELP_STRING([--disable-qt], [disable Quicktime])],
+[case "${enableval}" in
+	yes) qt=true ;;
+	no) qt=false ;;
+	*) AC_MSG_ERROR(bad value ${enableval} for --disable-qt) ;;
+esac
+test -z "${enableval}" || qt=true],[qt=false])
+AM_CONDITIONAL(DISABLE_QT, test x$qt = xtrue)
+
+# before gettexting, in case iconv matters
+case "$host_os" in
+darwin*)
+        AC_MSG_CHECKING([for fink])
+        if test -d /sw; then
+                AC_MSG_RESULT([found, adding /sw to search paths])
+                CFLAGS="$CFLAGS -I/sw/include"
+        else
+                AC_MSG_RESULT([not found])
+        fi
+        ;;
+*)
+        ;;
+esac
+
+# Checks for libraries.
+AC_PATH_X
+
+AM_PATH_GLIB_2_0(2.0.0,,AC_MSG_ERROR([
+*** GLib 2.0 is required to build CrazyChat; please make sure you have the GLib
+*** development headers installed. The latest version of GLib is
+*** always available at http://www.gtk.org/.]))
+AM_PATH_GTK_2_0(2.0.0,,AC_MSG_ERROR([
+*** GTK+ 2.0 is required to build CrazyChat; please make sure you have the GTK+
+*** development headers installed. The latest version of GTK+ is
+*** always available at http://www.gtk.org/.]))
+AM_PATH_GTKGLEXT_1_0(1.0.0,,AC_MSG_ERROR([
+*** gtkglext is required to build CrazyChat; please make sure you have the 
+*** gtkglext development headers installed.]))
+
+AC_CHECK_LIB([pthread], [pthread_create])
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_HEADER_SYS_WAIT
+AC_CHECK_HEADERS([assert.h arpa/inet.h fcntl.h langinfo.h libintl.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_TYPE_SIZE_T
+AC_HEADER_TIME
+AC_STRUCT_TM
+AC_C_VOLATILE
+
+# Checks for library functions.
+AC_CHECK_FUNCS([gettimeofday memset])
+AC_CHECK_FUNC(inet_aton, , [AC_CHECK_LIB(resolv, inet_aton, ,
+				         [AC_ERROR(inet_aton not found)])])
+
+# Output to Makefile
+AC_OUTPUT([Makefile
+		src/Makefile
+		])
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/crazychat.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,96 @@
+#include <assert.h>
+#include <stdlib.h>
+#include <string.h>
+#include "cc_interface.h"
+
+struct cc_session_node {
+	struct cc_session session;
+	struct cc_session_node *next;
+};
+
+struct cc_session *cc_find_session(struct crazychat *cc, char *handle)
+{
+	struct cc_session_node *curr;
+
+	assert(cc);
+	assert(handle);
+
+	curr = cc->sessions;
+	while (curr) {
+		struct cc_session *session = &curr->session;
+		if (!strncmp(session->name, handle, strlen(session->name))) {
+			return session;
+		}
+		curr = curr->next;
+	}
+	return NULL;
+}
+
+struct cc_session *cc_add_session(struct crazychat *cc, char *handle)
+{
+	struct cc_session_node *curr;
+
+	assert(cc);
+	assert(handle);
+
+	if (!cc->sessions) {
+		cc->sessions = (struct cc_session_node*)
+			malloc(sizeof(*cc->sessions));
+		memset(cc->sessions, 0, sizeof(*cc->sessions));
+		cc->sessions->session.cc = cc;
+		cc->sessions->session.name = strdup(handle);
+		return &cc->sessions->session;
+	} else {
+		if (!strncmp(cc->sessions->session.name, handle,
+				strlen(cc->sessions->session.name))) {
+			return &cc->sessions->session;
+		}
+	}
+
+	curr = cc->sessions;
+	while (curr->next) {
+		struct cc_session *session = &curr->next->session;
+		if (!strncmp(session->name, handle, strlen(session->name))) {
+			return session;
+		}
+		curr = curr->next;
+	}
+	curr->next = (struct cc_session_node*)malloc(sizeof(*curr->next));
+	memset(curr->next, 0, sizeof(*curr->next));
+	curr->next->session.cc = cc;
+	curr->next->session.name = strdup(handle);
+	return &curr->next->session;
+}
+
+void cc_remove_session(struct crazychat *cc, struct cc_session *session)
+{
+	struct cc_session_node *curr, *prev;
+	
+	assert(cc);
+	assert(session);
+
+	assert(cc->sessions);
+
+	curr = cc->sessions;
+	prev = NULL;
+
+	while (curr) {
+		if (&curr->session == session) {
+			if (prev) {
+				prev->next = curr->next;
+			} else {
+				cc->sessions = curr->next;
+			}
+			/* destroy curr */
+			free(curr);
+			g_source_remove(session->timer_id);
+			free(session->name);
+			free(session);
+			return;
+		}
+		prev = curr;
+		curr = curr->next;
+	}
+
+	assert(0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/crazychat.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,41 @@
+#ifndef __CRAZYCHAT_H__
+#define __CRAZYCHAT_H__
+
+#include <glib.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <gtk/gtk.h>
+#include "filter.h"
+
+struct crazychat;
+
+/* --- type definitions --- */
+
+typedef enum { INVITE = 0, ACCEPT, ACCEPTED, CONNECTED } CC_STATE;
+
+/**
+ * Finds the CrazyChat session with the handle.
+ * @param cc		global crazychat data structure
+ * @param handle	the peer name
+ * @return		the cc_session if found, or NULL
+ */
+struct cc_session *cc_find_session(struct crazychat *cc, char *handle);
+
+/**
+ * Adds a new session with a peer, unless a peer session already exists.
+ * Makes a deep copy of the handle.
+ * @param cc		global crazychat data structure
+ * @param handle	the peer name
+ * @return		the new/old cc_session
+ */
+struct cc_session *cc_add_session(struct crazychat *cc, char *handle);
+
+/**
+ * Removes a crazychat session with a peer.
+ * @param cc		global crazychat data structure
+ * @param session	the cc_session to remove
+ */
+void cc_remove_session(struct crazychat *cc, struct cc_session *session);
+
+#endif				/* __CRAZYCHAT_H__ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/dog_lids.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,48 @@
+#include
+
+#include "lid1.h"
+#include "lid2.h"
+#include "lid3.h"
+#include "lid4.h"
+#include "lid5.h"
+#include "lid6.h"
+#include "lid8.h"
+#include "lid9.h"
+#include "lid10.h"
+
+#define NUM_LIDS 9
+
+GLint lidLists[NUM_LIDS];
+
+void initLids(){
+	GLint test;
+	int i;
+	
+	GLint[0]=Gen3DObjectListLid1();
+	GLint[1]=Gen3DObjectListLid2();
+	GLint[2]=Gen3DObjectListLid3();
+	GLint[3]=Gen3DObjectListLid4();
+	GLint[4]=Gen3DObjectListLid5();
+	GLint[5]=Gen3DObjectListLid6();
+	GLint[6]=Gen3DObjectListLid8();
+	GLint[7]=Gen3DObjectListLid9();
+	GLint[8]=Gen3DObjectListLid10();
+
+};
+
+void drawLids(int left, right) {
+	//draw left
+	GLfloat offset = .5;
+
+	glPushMatrix();
+	glTranslatef(offset, 0, 0);
+	glCallList(lidLists[left]);
+	glPopMatrix();
+
+	//draw right
+	glPushMatrix();
+	glTranslatef(-offset, 0, 0);
+	glScalef(-1, 1, 1);
+	glCallList(lidLists[right]);
+	glPopMatrix();
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/dog_lids.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,3 @@
+void initLids();
+
+void drawLids(int left, int right);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/doggy.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,227 @@
+#include "face.h"
+#include "doggy.h"
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include "models.h"
+
+#define NUM_DOGS 11
+#define NUM_DOG_LIDS 10
+#define NUM_EARS 3
+#define NUM_EYES 1
+#define NUM_PUPILS 1
+#define NUM_IRIS 1
+#define SCALE .020
+#define EYES_Y 32.78*SCALE // .295
+#define EYES_X 28.89*SCALE // .26
+#define EYES_Z 42.22*SCALE // .38
+#define EARS_X 60*SCALE //.65
+#define EARS_Y 20*SCALE//.18
+#define EARS_Z -5.56*SCALE //.05
+#define IRIS_X 0*SCALE
+#define IRIS_Y 1.67*SCALE//.015
+#define IRIS_Z 7*SCALE//.08
+#define PUP_X 0*SCALE
+#define PUP_Y 0*SCALE 
+#define PUP_Z 1.2*SCALE //.028
+#define IRIS_SCALE .12*SCALE
+#define PUP_SCALE .11*SCALE
+#define EAR_SCALE .7*SCALE
+#define EYE_SCALE .7*SCALE
+#define LID_SCALE .77*SCALE
+#define DOG_SCALE .58*SCALE
+#define MAX_FILE_LEN 64
+#define MAX_EAR_ANGLE 90.0
+#define MIN_EAR_ANGLE -20.0
+
+
+char dog_mtl_file[MAX_FILE_LEN] = "dog.mtl";
+// the initial dog materials
+GLint init_dog_mats[NUM_PARTS] = {1, 2, 2, 4, 0, 3, 5, 0, 0, 0};
+
+void draw_pupil(FACE f, PART p) {
+	struct doggy_struct* dog=(struct doggy_struct*)f->char_struct;
+	glPushMatrix();
+	glTranslatef(IRIS_X, -IRIS_Z, IRIS_Y);
+	if(p==LEFT_IRIS)
+		glmSetMat(f->materials, f->mat_indeces[LEFT_IRIS]);
+	else
+		glmSetMat(f->materials, f->mat_indeces[RIGHT_IRIS]);
+	glCallList(dog->iris[0]);
+	glTranslatef(PUP_X, -PUP_Z, PUP_Y);
+	glmSetMat(f->materials, f->mat_indeces[PUPIL]);
+	glCallList(dog->pupil[0]);
+	glPopMatrix();
+}
+
+void draw_left_eye(FACE f, BOOL open, int max) {
+	struct doggy_struct* dog=(struct doggy_struct*)f->char_struct;
+	if(f->my_mode==CRAZY2)
+		dog->curr_left_lid=NUM_DOG_LIDS-1;
+	else
+		dog->curr_left_lid = compute_lid(open, dog->curr_left_lid, max);
+	glPushMatrix();
+	glTranslatef(-EYES_X, 0.0, 0.0);
+	glPushMatrix();
+	glTranslatef(0.0, -f->curr_eye_pop, 0.0);
+	draw_pupil(f, LEFT_IRIS);
+	glmSetMat(f->materials, f->mat_indeces[EYES]);
+	glCallList(dog->eyes[dog->curr_left_eye]);
+	glPopMatrix();
+	glmSetMat(f->materials, f->mat_indeces[LIDS]);
+	glCallList(dog->lids[dog->curr_left_lid]);
+	glPopMatrix();
+}
+
+void draw_right_eye(FACE f, BOOL open, int max) {
+	struct doggy_struct* dog=(struct doggy_struct*)f->char_struct;
+	if(f->my_mode==CRAZY2)
+		dog->curr_right_lid=NUM_DOG_LIDS-1;
+	else
+		dog->curr_right_lid = compute_lid(open, dog->curr_right_lid, max);
+	glPushMatrix();
+	glTranslatef(EYES_X, 0.0, 0.0);
+		glScalef(-1, 1, 1);
+	glPushMatrix();
+	glTranslatef(0.0, -f->curr_eye_pop, 0.0);
+	draw_pupil(f, RIGHT_IRIS);
+	glmSetMat(f->materials, f->mat_indeces[EYES]);
+	glCallList(dog->eyes[dog->curr_right_eye]);
+	glPopMatrix();
+	glmSetMat(f->materials, f->mat_indeces[LIDS]);
+	glCallList(dog->lids[dog->curr_right_lid]);
+	glPopMatrix();
+}
+
+void dog_eyes(FACE f, GLfloat angle, GLfloat yangle, BOOL left_open, BOOL right_open, DIRECTION dir)
+{
+	struct doggy_struct* dog=(struct doggy_struct*)f->char_struct;
+	int max_eye;
+	if(dir==CONST) { //then not moving, eyes are gettin sleepy
+		f->eye_count--;
+	}
+	else{
+		f->eye_count=EYE_TIME*NUM_DOG_LIDS-1;
+	}
+	max_eye=f->eye_count/EYE_TIME;
+	if(max_eye<0)
+		max_eye=0;
+	if(f->my_mode==CRAZY2)
+		f->curr_eye_pop=f->curr_eye_pop + (MAX_EYE_POP - f->curr_eye_pop)/2;
+	else
+		f->curr_eye_pop=f->curr_eye_pop - (f->curr_eye_pop-0)/2;
+	glPushMatrix();
+	glTranslatef(0, 0, EYES_Y);
+	glTranslatef(0, -EYES_Z,0);
+	draw_left_eye(f, left_open, max_eye);
+	draw_right_eye(f, right_open, max_eye);	
+	glPopMatrix();
+}
+
+void dog_ears(FACE f, DIRECTION dir){
+	struct doggy_struct* dog=(struct doggy_struct*)f->char_struct;
+	//printf("ears %f\n", ears);
+	if(dir==DOWN){
+		if(dog->curr_ear < (NUM_EARS-1))
+			dog->curr_ear++;
+		dog->curr_ear_angle = dog->curr_ear_angle+(MAX_EAR_ANGLE-dog->curr_ear_angle)/2;
+	}
+	if(dir==UP){
+		if(dog->curr_ear > 0)
+			dog->curr_ear--;
+		dog->curr_ear_angle = dog->curr_ear_angle+(MIN_EAR_ANGLE-dog->curr_ear_angle)/2;
+	}
+	else if(dir==CONST){
+		dog->curr_ear=1;
+		dog->curr_ear_angle = dog->curr_ear_angle+(0-dog->curr_ear_angle)/3;
+	}
+
+	glPushMatrix();
+	glTranslatef(-EARS_X, -EARS_Z, EARS_Y);
+	if(f->my_mode==CRAZY1)
+		glRotatef(MAX_EAR_ANGLE, 0.0, 1.0, 0.0);
+	else
+		glRotatef(dog->curr_ear_angle, 0.0, 1.0, 0.0);
+	glmSetMat(f->materials, f->mat_indeces[APPENDAGE]);
+	glCallList(dog->ears[dog->curr_ear]);
+	glPopMatrix();
+	glPushMatrix();
+	glTranslatef(EARS_X, -EARS_Z, EARS_Y);
+	glScalef(-1, 1, 1);
+	if(f->my_mode==CRAZY1)
+		glRotatef(MIN_EAR_ANGLE, 0.0, 1.0, 0.0);
+	else
+		glRotatef(dog->curr_ear_angle, 0.0, 1.0, 0.0);
+	glCallList(dog->ears[dog->curr_ear]);
+	glPopMatrix();
+}
+
+void draw_dog(FACE f, GLfloat angle, GLfloat yangle, BOOL left_open, BOOL right_open, GLfloat open, DIRECTION dir, OUTPUT_MODE mode){
+	int next_face; 
+	struct doggy_struct* dog;	
+	f->crazy_count--;
+	if(f->crazy_count==0){
+		f->my_mode = mode;
+		if(mode!=NORMAL)
+			f->crazy_count = CRAZY_COUNT;
+		else
+			f->crazy_count = 1;
+	}
+	apply_output_mode(f, &angle, &yangle, &left_open, &right_open, &open, &dir);
+	next_face = NUM_DOGS - open*NUM_DOGS - 1;
+	dog  = (struct doggy_struct*)f->char_struct;
+	if(next_face > dog->curr_face)
+		dog->curr_face++;
+	else if(next_face < dog->curr_face)
+		dog->curr_face--;
+
+	glPushMatrix();
+	glRotatef(-90, 1.0, 0.0, 0.0);
+	glRotatef(-yangle, 0.0, 0.0, -1.0);
+	glRotatef(-angle, 0, 1, 0);
+	dog_eyes(f, angle, yangle, left_open, right_open, dir);	
+	dog_ears(f, dir);
+	glmSetMat(f->materials, f->mat_indeces[HEAD]);
+	glCallList(dog->faces[dog->curr_face]);
+	glPopMatrix();
+}
+
+void init_dog(FACE f){
+	int i;
+	struct doggy_struct* dog;
+	f->char_struct = (struct doggy_struct*)malloc(sizeof(struct doggy_struct));
+	f->materials = glmMTL(dog_mtl_file);
+	f->mat_indeces=(GLint*)malloc(sizeof(GLint)*NUM_PARTS);
+	//initialize all of the parts to some colors
+	change_materials(f, init_dog_mats, NUM_PARTS);
+	f->my_mode = NORMAL;
+	f->eye_count = EYE_TIME*NUM_DOG_LIDS-1;
+	f->crazy_count = 1;
+	f->curr_z_angle = 0;
+	f->curr_eye_pop = 0;
+	f->name = strdup("dog");
+	f->draw_func = draw_dog;
+	dog = (struct doggy_struct*)f->char_struct;
+	
+	printf("\nReading models: ");
+	fflush(0);
+	
+	//initialize the draw lists
+	init_lists(&dog->faces, &dog->m_faces, NUM_DOGS, f->name, DOG_SCALE);
+	init_lists(&dog->lids, &dog->m_lids, NUM_DOG_LIDS, "lid", LID_SCALE);
+	init_lists(&dog->ears, &dog->m_ears, NUM_EARS, "ear", EAR_SCALE);
+	init_lists(&dog->eyes, &dog->m_eyes, NUM_EYES, "dogeye", EYE_SCALE);
+	init_lists(&dog->pupil, &dog->m_pupil, NUM_PUPILS, "dogpupil", PUP_SCALE);
+	init_lists(&dog->iris, &dog->m_iris, NUM_IRIS, "dogiris", IRIS_SCALE);
+
+	printf("\n");
+	fflush(0);
+		
+	dog->curr_face = 0;
+	dog->curr_ear = 1;
+	dog->curr_left_lid = 9;
+	dog->curr_right_lid = 0;
+	dog->curr_left_eye = 0;
+	dog->curr_right_eye = 0;
+	dog->curr_pupil = 0;
+	dog->curr_ear_angle = 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/doggy.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,10 @@
+#include "glm.h"
+
+struct doggy_struct{
+	GLint* faces, *lids, *ears, *eyes, *iris, *pupil;
+	GLMmodel** m_faces, **m_lids, **m_ears, **m_eyes, **m_iris, **m_pupil;
+	int curr_face, curr_ear, curr_left_lid, curr_right_lid, curr_right_eye, curr_left_eye, curr_pupil, eye_count;
+	float curr_ear_angle;
+};
+
+void init_dog(FACE f);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/draw.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,107 @@
+#include "righteye10.h"
+
+typedef struct _point{
+  GLshort x;
+  GLshort y;
+} Point;
+
+typedef struct Packet{
+  Point mouthLeft;
+  Point mouthRight;
+  Point mouthTop;
+  Point mouthBottom;
+  Point eyeLeft;
+  Point eyeRight;
+} Packet;
+
+#define NUM_EYE_FRAMES 10
+
+GLint rightEyes[NUM_EYE_FRAMES];
+
+void CalculateMouthPoints(GLshort[][][] ctrlpoints, struct Packet* p)
+{
+    GLshort points[4][3];
+    points[0][0]=p->mouthLeft.x;
+    points[0][1]=p->mouthLeft.y;
+    points[0][2]=front;
+
+    points[1][0]=p->mouthBottom.x;
+    points[1][1]=p->mouthTop.y;
+    points[1][2]=front;
+
+    points[2][0]=p->mouthRight.x;
+    points[2][1]=p->mouthRight.y;
+    points[2][2]=front;
+
+    points[3][0]=p->mouthTop.x;
+    points[3][1]=p->mouthTop.y;
+    points[3][2]=front;
+
+    ctrlpoints[0][0][0]=points[0][0];
+    ctrlpoints[0][0][1]=points[0][1];
+    ctrlpoints[0][0][2]=points[0][2];
+    
+    ctrlpoints[0][1][0]=points[1][0];
+    ctrlpoints[0][1][1]=points[1][1];
+    ctrlpoints[0][1][2]=points[1][2];
+    
+    ctrlpoints[0][2][0]=points[2][0];
+    ctrlpoints[0][2][1]=points[2][1];
+    ctrlpoints[0][2][2]=points[2][2];
+    
+    ctrlpoints[1][0][0]=points[0][0];
+    ctrlpoints[1][0][1]=points[0][1];
+    ctrlpoints[1][0][2]=points[0][2];
+    
+    ctrlpoints[1][1][0]=0;
+    ctrlpoints[1][1][1]=0;
+    ctrlpoints[1][1][2]=back;
+    
+    ctrlpoints[1][2][0]=points[2][0];
+    ctrlpoints[1][2][1]=points[2][1];
+    ctrlpoints[1][2][2]=points[2][2];
+    
+    ctrlpoints[2][0][0]=points[0][0];
+    ctrlpoints[2][0][1]=points[0][1];
+    ctrlpoints[2][0][2]=points[0][2];
+    
+    ctrlpoints[2][1][0]=points[3][0];
+    ctrlpoints[2][1][1]=points[3][1];
+    ctrlpoints[2][1][2]=points[3][2];
+    
+    ctrlpoints[2][2][0]=points[2][0];
+    ctrlpoints[2][2][1]=points[2][1];
+    ctrlpoints[2][2][2]=points[2][2];
+}
+
+void drawMouth(struct Packet* p)
+{
+    GLshort[4][3][3] ctrlpoints;
+    CalculateMouthPoints(ctrlpoints, p);
+    
+    glMap2f(GL_MAP2_VERTEX_3, 0, 10, 3, 3, 0.0, 10.0, 9, 3, &ctrlpoints[0][0][0]);
+    glEnable(GL_MAP2_VERTEX_3);
+    glMapGrid2f(10, 0, 10, 10, 0, 10);
+    glEnable(GL_AUTO_NORMAL);
+    glEvalMesh2(GL_FILL, 0, 10, 0, 10);
+}
+
+void initEyes(){
+	
+
+void drawEyes(struct Packet* p){
+    GLshort eye[3][3][3];
+    CalculateEyePoints(eye, p, LEFT);
+    glMap2f(GL_MAP2_VERTEX_3, 0, 10, 3, 3, 0.0, 10.0, 9, 3, &eyep[0][0][0]);
+    glMapGrid2f(10, 0, 10, 10, 0, 10);
+    glEvalMesh2(GL_FILL, 0, 10, 0, 10);
+    
+    CalculateEyePoints(eye, p, RIGHT);
+    glMap2f(GL_MAP2_VERTEX_3, 0, 10, 3, 3, 0.0, 10.0, 9, 3, &eyep[0][0][0]);
+    glMapGrid2f(10, 0, 10, 10, 0, 10);
+    glEvalMesh2(GL_FILL, 0, 10, 0, 10);
+    
+}
+
+void drawHead(struct Packet* p){
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/eye.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,812 @@
+/*
+This file was produced by Deep Exploration Plugin: CPP Export filter. 
+
+Deep Exploration 
+
+Copyright (c) 1999-2003 Right Hemisphere, Inc 
+
+WWW http://www.righthemisphere.com/dexp.htm 
+eMail support@righthemisphere.com
+*/
+//#include <windows.h>
+#include <GL/gl.h>
+#include <GL/glu.h>
+
+#include <math.h> 
+
+typedef struct sample_MATERIAL{
+ GLfloat ambient[3];
+ GLfloat diffuse[3];
+ GLfloat specular[3];
+ GLfloat emission[3];
+ GLfloat alpha;
+ GLfloat phExp;
+ int   texture;
+} sample_MATERIAL;
+
+typedef struct sample_TEXTURE{
+ char * name;
+ GLint  id;
+} sample_TEXTURE;
+
+static sample_MATERIAL materials [2] = {
+ {{0.117647f,0.117647f,0.117647f},	{0.752941f,0.752941f,0.752941f},	{0.752941f,0.752941f,0.752941f},	{0.0f,0.0f,0.0f},	1.0f,8.0f,-1}, //Explorer Default
+ {{1.0f,1.0f,1.0f},	{1.0f,1.0f,1.0f},	{1.0f,1.0f,1.0f},	{1.0f,1.0f,1.0f},	1.0f,32.0f,0} //Material #5
+};
+
+static sample_TEXTURE texture_maps [1] = {
+{"eye10.bmp_0.bmp",0}
+};
+
+// 244 Verticies
+// 152 Texture Coordinates
+// 328 Normals
+// 448 Triangles
+
+static short face_indicies[448][9] = {
+// Object #-1
+	{0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 },
+	{0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 },
+	{0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 },
+	{0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 },
+	{0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 },
+	{0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 },
+	{0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 },
+	{1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 },
+	{3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 },
+	{4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 },
+	{6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 },
+	{7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 },
+	{8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 },
+	{9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 },
+	{10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 },
+	{11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 },
+	{12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 },
+	{13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 },
+	{14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 },
+	{15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 },
+	{16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 },
+	{17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 },
+	{18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 },
+	{19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 },
+	{20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 },
+	{21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 },
+	{22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 },
+	{23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 },
+	{24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 },
+	{25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 },
+	{26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 },
+	{27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 },
+	{28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 },
+	{29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 },
+	{30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 },
+	{31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 },
+	{32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 },
+	{33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 },
+	{34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 },
+	{35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 },
+	{36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 },
+	{37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 },
+	{38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 },
+	{39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 },
+	{40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 },
+	{41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 },
+	{42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 },
+	{43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 },
+	{44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 },
+	{45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 },
+	{46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 },
+	{47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 },
+	{48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 }
+// Object #-1
+	, {65,66,67 ,86,87,88 ,0,1,2 }, {65,67,68 ,89,88,90 ,3,2,4 },
+	{65,68,69 ,91,90,92 ,5,4,6 }, {65,69,70 ,93,92,94 ,7,6,8 }, {65,70,71 ,95,94,96 ,9,8,10 },
+	{65,71,72 ,97,96,98 ,11,10,12 }, {65,72,73 ,99,98,100 ,13,12,14 },
+	{65,73,74 ,101,100,102 ,15,14,16 }, {65,74,75 ,103,102,104 ,17,16,18 },
+	{65,75,76 ,105,104,106 ,19,18,20 }, {65,76,77 ,107,106,108 ,21,20,22 },
+	{65,77,78 ,109,108,110 ,23,22,24 }, {65,78,79 ,111,110,112 ,25,24,26 },
+	{65,79,80 ,113,112,114 ,27,26,28 }, {65,80,81 ,115,114,116 ,29,28,30 },
+	{65,81,66 ,117,116,117 ,31,30,32 }, {66,82,83 ,87,118,119 ,1,33,34 },
+	{66,83,67 ,87,119,88 ,1,34,2 }, {67,83,84 ,88,119,120 ,2,34,35 },
+	{67,84,68 ,88,120,90 ,2,35,4 }, {68,84,85 ,90,120,121 ,4,35,36 },
+	{68,85,69 ,90,121,92 ,4,36,6 }, {69,85,86 ,92,121,122 ,6,36,37 },
+	{69,86,70 ,92,122,94 ,6,37,8 }, {70,86,87 ,94,122,123 ,8,37,38 },
+	{70,87,71 ,94,123,96 ,8,38,10 }, {71,87,88 ,96,123,124 ,10,38,39 },
+	{71,88,72 ,96,124,98 ,10,39,12 }, {72,88,89 ,98,124,125 ,12,39,40 },
+	{72,89,73 ,98,125,100 ,12,40,14 }, {73,89,90 ,100,125,126 ,14,40,41 },
+	{73,90,74 ,100,126,102 ,14,41,16 }, {74,90,91 ,102,126,127 ,16,41,42 },
+	{74,91,75 ,102,127,104 ,16,42,18 }, {75,91,92 ,104,127,128 ,18,42,43 },
+	{75,92,76 ,104,128,106 ,18,43,20 }, {76,92,93 ,106,128,129 ,20,43,44 },
+	{76,93,77 ,106,129,108 ,20,44,22 }, {77,93,94 ,108,129,130 ,22,44,45 },
+	{77,94,78 ,108,130,110 ,22,45,24 }, {78,94,95 ,110,130,131 ,24,45,46 },
+	{78,95,79 ,110,131,112 ,24,46,26 }, {79,95,96 ,112,131,132 ,26,46,47 },
+	{79,96,80 ,112,132,114 ,26,47,28 }, {80,96,97 ,114,132,133 ,28,47,48 },
+	{80,97,81 ,114,133,116 ,28,48,30 }, {81,97,82 ,116,133,134 ,30,48,49 },
+	{81,82,66 ,116,135,135 ,30,49,32 }, {82,98,99 ,118,136,137 ,33,50,51 },
+	{82,99,83 ,118,137,119 ,33,51,34 }, {83,99,100 ,119,137,138 ,34,51,52 },
+	{83,100,84 ,119,138,120 ,34,52,35 }, {84,100,101 ,120,138,139 ,35,52,53 },
+	{84,101,85 ,120,139,121 ,35,53,36 }, {85,101,102 ,121,139,140 ,36,53,54 },
+	{85,102,86 ,121,140,122 ,36,54,37 }, {86,102,103 ,122,140,141 ,37,54,55 },
+	{86,103,87 ,122,141,123 ,37,55,38 }, {87,103,104 ,123,141,142 ,38,55,56 },
+	{87,104,88 ,123,142,124 ,38,56,39 }, {88,104,105 ,124,142,143 ,39,56,57 },
+	{88,105,89 ,124,143,125 ,39,57,40 }, {89,105,106 ,125,143,144 ,40,57,58 },
+	{89,106,90 ,125,144,126 ,40,58,41 }, {90,106,107 ,126,144,145 ,41,58,59 },
+	{90,107,91 ,126,145,127 ,41,59,42 }, {91,107,108 ,127,145,146 ,42,59,60 },
+	{91,108,92 ,127,146,128 ,42,60,43 }, {92,108,109 ,128,146,147 ,43,60,61 },
+	{92,109,93 ,128,147,129 ,43,61,44 }, {93,109,110 ,129,147,148 ,44,61,62 },
+	{93,110,94 ,129,148,130 ,44,62,45 }, {94,110,111 ,130,148,149 ,45,62,63 },
+	{94,111,95 ,130,149,131 ,45,63,46 }, {95,111,112 ,131,149,150 ,46,63,64 },
+	{95,112,96 ,131,150,132 ,46,64,47 }, {96,112,113 ,132,150,151 ,47,64,65 },
+	{96,113,97 ,132,151,133 ,47,65,48 }, {97,113,98 ,133,151,152 ,48,65,66 },
+	{97,98,82 ,133,153,153 ,48,66,49 }, {98,114,115 ,136,154,155 ,50,67,68 },
+	{98,115,99 ,136,155,137 ,50,68,51 }, {99,115,116 ,137,155,156 ,51,68,69 },
+	{99,116,100 ,137,156,138 ,51,69,52 }, {100,116,117 ,138,156,157 ,52,69,70 },
+	{100,117,101 ,138,157,139 ,52,70,53 }, {101,117,118 ,139,157,158 ,53,70,71 },
+	{101,118,102 ,139,158,140 ,53,71,54 }, {102,118,119 ,140,158,159 ,54,71,72 },
+	{102,119,103 ,140,159,141 ,54,72,55 }, {103,119,120 ,141,159,160 ,55,72,73 },
+	{103,120,104 ,141,160,142 ,55,73,56 }, {104,120,121 ,142,160,161 ,56,73,74 },
+	{104,121,105 ,142,161,143 ,56,74,57 }, {105,121,122 ,143,161,162 ,57,74,75 },
+	{105,122,106 ,143,162,144 ,57,75,58 }, {106,122,123 ,144,162,163 ,58,75,76 },
+	{106,123,107 ,144,163,145 ,58,76,59 }, {107,123,124 ,145,163,164 ,59,76,77 },
+	{107,124,108 ,145,164,146 ,59,77,60 }, {108,124,125 ,146,164,165 ,60,77,78 },
+	{108,125,109 ,146,165,147 ,60,78,61 }, {109,125,126 ,147,165,166 ,61,78,79 },
+	{109,126,110 ,147,166,148 ,61,79,62 }, {110,126,127 ,148,166,167 ,62,79,80 },
+	{110,127,111 ,148,167,149 ,62,80,63 }, {111,127,128 ,149,167,168 ,63,80,81 },
+	{111,128,112 ,149,168,150 ,63,81,64 }, {112,128,129 ,150,168,169 ,64,81,82 },
+	{112,129,113 ,150,169,151 ,64,82,65 }, {113,129,114 ,151,169,170 ,65,82,83 },
+	{113,114,98 ,151,171,171 ,65,83,66 }, {114,130,131 ,154,172,173 ,67,84,85 },
+	{114,131,115 ,154,173,155 ,67,85,68 }, {115,131,132 ,155,173,174 ,68,85,86 },
+	{115,132,116 ,155,174,156 ,68,86,69 }, {116,132,133 ,156,174,175 ,69,86,87 },
+	{116,133,117 ,156,175,157 ,69,87,70 }, {117,133,134 ,157,175,176 ,70,87,88 },
+	{117,134,118 ,157,176,158 ,70,88,71 }, {118,134,135 ,158,176,177 ,71,88,89 },
+	{118,135,119 ,158,177,159 ,71,89,72 }, {119,135,136 ,159,177,178 ,72,89,90 },
+	{119,136,120 ,159,178,160 ,72,90,73 }, {120,136,137 ,160,178,179 ,73,90,91 },
+	{120,137,121 ,160,179,161 ,73,91,74 }, {121,137,138 ,161,179,180 ,74,91,92 },
+	{121,138,122 ,161,180,162 ,74,92,75 }, {122,138,139 ,162,180,181 ,75,92,93 },
+	{122,139,123 ,162,181,163 ,75,93,76 }, {123,139,140 ,163,181,182 ,76,93,94 },
+	{123,140,124 ,163,182,164 ,76,94,77 }, {124,140,141 ,164,182,183 ,77,94,95 },
+	{124,141,125 ,164,183,165 ,77,95,78 }, {125,141,142 ,165,183,184 ,78,95,96 },
+	{125,142,126 ,165,184,166 ,78,96,79 }, {126,142,143 ,166,184,185 ,79,96,97 },
+	{126,143,127 ,166,185,167 ,79,97,80 }, {127,143,144 ,167,185,186 ,80,97,98 },
+	{127,144,128 ,167,186,168 ,80,98,81 }, {128,144,145 ,168,186,187 ,81,98,99 },
+	{128,145,129 ,168,187,169 ,81,99,82 }, {129,145,130 ,169,187,188 ,82,99,100 },
+	{129,130,114 ,169,189,189 ,82,100,83 }, {130,146,147 ,172,190,191 ,84,101,102 },
+	{130,147,131 ,172,191,173 ,84,102,85 }, {131,147,148 ,173,191,192 ,85,102,103 },
+	{131,148,132 ,173,192,174 ,85,103,86 }, {132,148,149 ,174,192,193 ,86,103,104 },
+	{132,149,133 ,174,193,175 ,86,104,87 }, {133,149,150 ,175,193,194 ,87,104,105 },
+	{133,150,134 ,175,194,176 ,87,105,88 }, {134,150,151 ,176,194,195 ,88,105,106 },
+	{134,151,135 ,176,195,177 ,88,106,89 }, {135,151,152 ,177,195,196 ,89,106,107 },
+	{135,152,136 ,177,196,178 ,89,107,90 }, {136,152,153 ,178,196,197 ,90,107,108 },
+	{136,153,137 ,178,197,179 ,90,108,91 }, {137,153,154 ,179,197,198 ,91,108,109 },
+	{137,154,138 ,179,198,180 ,91,109,92 }, {138,154,155 ,180,198,199 ,92,109,110 },
+	{138,155,139 ,180,199,181 ,92,110,93 }, {139,155,156 ,181,199,200 ,93,110,111 },
+	{139,156,140 ,181,200,182 ,93,111,94 }, {140,156,157 ,182,200,201 ,94,111,112 },
+	{140,157,141 ,182,201,183 ,94,112,95 }, {141,157,158 ,183,201,202 ,95,112,113 },
+	{141,158,142 ,183,202,184 ,95,113,96 }, {142,158,159 ,184,202,203 ,96,113,114 },
+	{142,159,143 ,184,203,185 ,96,114,97 }, {143,159,160 ,185,203,204 ,97,114,115 },
+	{143,160,144 ,185,204,186 ,97,115,98 }, {144,160,161 ,186,204,205 ,98,115,116 },
+	{144,161,145 ,186,205,187 ,98,116,99 }, {145,161,146 ,187,205,206 ,99,116,117 },
+	{145,146,130 ,187,207,207 ,99,117,100 }, {146,162,163 ,190,208,209 ,101,118,119 },
+	{146,163,147 ,190,209,191 ,101,119,102 }, {147,163,164 ,191,209,210 ,102,119,120 },
+	{147,164,148 ,191,210,192 ,102,120,103 }, {148,164,165 ,192,210,211 ,103,120,121 },
+	{148,165,149 ,192,211,193 ,103,121,104 }, {149,165,166 ,193,211,212 ,104,121,122 },
+	{149,166,150 ,193,212,194 ,104,122,105 }, {150,166,167 ,194,212,213 ,105,122,123 },
+	{150,167,151 ,194,213,195 ,105,123,106 }, {151,167,168 ,195,213,214 ,106,123,124 },
+	{151,168,152 ,195,214,196 ,106,124,107 }, {152,168,169 ,196,214,215 ,107,124,125 },
+	{152,169,153 ,196,215,197 ,107,125,108 }, {153,169,170 ,197,215,216 ,108,125,126 },
+	{153,170,154 ,197,216,198 ,108,126,109 }, {154,170,171 ,198,216,217 ,109,126,127 },
+	{154,171,155 ,198,217,199 ,109,127,110 }, {155,171,172 ,199,217,218 ,110,127,128 },
+	{155,172,156 ,199,218,200 ,110,128,111 }, {156,172,173 ,200,218,219 ,111,128,129 },
+	{156,173,157 ,200,219,201 ,111,129,112 }, {157,173,174 ,201,219,220 ,112,129,130 },
+	{157,174,158 ,201,220,202 ,112,130,113 }, {158,174,175 ,202,220,221 ,113,130,131 },
+	{158,175,159 ,202,221,203 ,113,131,114 }, {159,175,176 ,203,221,222 ,114,131,132 },
+	{159,176,160 ,203,222,204 ,114,132,115 }, {160,176,177 ,204,222,223 ,115,132,133 },
+	{160,177,161 ,204,223,205 ,115,133,116 }, {161,177,162 ,205,223,224 ,116,133,134 },
+	{161,162,146 ,205,225,225 ,116,134,117 }, {178,163,162 ,226,209,208 ,135,119,118 },
+	{178,164,163 ,227,210,209 ,136,120,119 }, {178,165,164 ,228,211,210 ,137,121,120 },
+	{178,166,165 ,229,212,211 ,138,122,121 }, {178,167,166 ,230,213,212 ,139,123,122 },
+	{178,168,167 ,231,214,213 ,140,124,123 }, {178,169,168 ,232,215,214 ,141,125,124 },
+	{178,170,169 ,233,216,215 ,142,126,125 }, {178,171,170 ,234,217,216 ,143,127,126 },
+	{178,172,171 ,235,218,217 ,144,128,127 }, {178,173,172 ,236,219,218 ,145,129,128 },
+	{178,174,173 ,237,220,219 ,146,130,129 }, {178,175,174 ,238,221,220 ,147,131,130 },
+	{178,176,175 ,239,222,221 ,148,132,131 }, {178,177,176 ,240,223,222 ,149,133,132 },
+	{178,162,177 ,241,241,223 ,150,151,133 }
+// Object #-1
+	, {179,180,181 ,242,243,244 ,0,1,2 }, {179,181,182 ,245,244,246 ,3,2,4 },
+	{179,182,183 ,247,246,248 ,5,4,6 }, {179,183,184 ,249,248,250 ,7,6,8 },
+	{179,184,185 ,251,250,252 ,9,8,10 }, {179,185,186 ,253,252,254 ,11,10,12 },
+	{179,186,187 ,255,254,256 ,13,12,14 }, {179,187,188 ,257,256,258 ,15,14,16 },
+	{179,188,189 ,259,258,260 ,17,16,18 }, {179,189,190 ,261,260,262 ,19,18,20 },
+	{179,190,191 ,263,262,264 ,21,20,22 }, {179,191,192 ,265,264,266 ,23,22,24 },
+	{179,192,193 ,267,266,268 ,25,24,26 }, {179,193,194 ,269,268,270 ,27,26,28 },
+	{179,194,195 ,271,270,272 ,29,28,30 }, {179,195,180 ,273,272,273 ,31,30,32 },
+	{180,196,197 ,243,274,275 ,1,33,34 }, {180,197,181 ,243,275,244 ,1,34,2 },
+	{181,197,198 ,244,275,276 ,2,34,35 }, {181,198,182 ,244,276,246 ,2,35,4 },
+	{182,198,199 ,246,276,277 ,4,35,36 }, {182,199,183 ,246,277,248 ,4,36,6 },
+	{183,199,200 ,248,277,278 ,6,36,37 }, {183,200,184 ,248,278,250 ,6,37,8 },
+	{184,200,201 ,250,278,279 ,8,37,38 }, {184,201,185 ,250,279,252 ,8,38,10 },
+	{185,201,202 ,252,279,280 ,10,38,39 }, {185,202,186 ,252,280,254 ,10,39,12 },
+	{186,202,203 ,254,280,281 ,12,39,40 }, {186,203,187 ,254,281,256 ,12,40,14 },
+	{187,203,204 ,256,281,282 ,14,40,41 }, {187,204,188 ,256,282,258 ,14,41,16 },
+	{188,204,205 ,258,282,283 ,16,41,42 }, {188,205,189 ,258,283,260 ,16,42,18 },
+	{189,205,206 ,260,283,284 ,18,42,43 }, {189,206,190 ,260,284,262 ,18,43,20 },
+	{190,206,207 ,262,284,285 ,20,43,44 }, {190,207,191 ,262,285,264 ,20,44,22 },
+	{191,207,208 ,264,285,286 ,22,44,45 }, {191,208,192 ,264,286,266 ,22,45,24 },
+	{192,208,209 ,266,286,287 ,24,45,46 }, {192,209,193 ,266,287,268 ,24,46,26 },
+	{193,209,210 ,268,287,288 ,26,46,47 }, {193,210,194 ,268,288,270 ,26,47,28 },
+	{194,210,211 ,270,288,289 ,28,47,48 }, {194,211,195 ,270,289,272 ,28,48,30 },
+	{195,211,196 ,272,289,290 ,30,48,49 }, {195,196,180 ,272,291,291 ,30,49,32 },
+	{196,212,213 ,274,292,293 ,33,50,51 }, {196,213,197 ,274,293,275 ,33,51,34 },
+	{197,213,214 ,275,293,294 ,34,51,52 }, {197,214,198 ,275,294,276 ,34,52,35 },
+	{198,214,215 ,276,294,295 ,35,52,53 }, {198,215,199 ,276,295,277 ,35,53,36 },
+	{199,215,216 ,277,295,296 ,36,53,54 }, {199,216,200 ,277,296,278 ,36,54,37 },
+	{200,216,217 ,278,296,297 ,37,54,55 }, {200,217,201 ,278,297,279 ,37,55,38 },
+	{201,217,218 ,279,297,298 ,38,55,56 }, {201,218,202 ,279,298,280 ,38,56,39 },
+	{202,218,219 ,280,298,299 ,39,56,57 }, {202,219,203 ,280,299,281 ,39,57,40 },
+	{203,219,220 ,281,299,300 ,40,57,58 }, {203,220,204 ,281,300,282 ,40,58,41 },
+	{204,220,221 ,282,300,301 ,41,58,59 }, {204,221,205 ,282,301,283 ,41,59,42 },
+	{205,221,222 ,283,301,302 ,42,59,60 }, {205,222,206 ,283,302,284 ,42,60,43 },
+	{206,222,223 ,284,302,303 ,43,60,61 }, {206,223,207 ,284,303,285 ,43,61,44 },
+	{207,223,224 ,285,303,304 ,44,61,62 }, {207,224,208 ,285,304,286 ,44,62,45 },
+	{208,224,225 ,286,304,305 ,45,62,63 }, {208,225,209 ,286,305,287 ,45,63,46 },
+	{209,225,226 ,287,305,306 ,46,63,64 }, {209,226,210 ,287,306,288 ,46,64,47 },
+	{210,226,227 ,288,306,307 ,47,64,65 }, {210,227,211 ,288,307,289 ,47,65,48 },
+	{211,227,212 ,289,307,308 ,48,65,66 }, {211,212,196 ,289,309,309 ,48,66,49 },
+	{212,228,229 ,292,310,311 ,50,67,68 }, {212,229,213 ,292,311,293 ,50,68,51 },
+	{213,229,230 ,293,311,312 ,51,68,69 }, {213,230,214 ,293,312,294 ,51,69,52 },
+	{214,230,231 ,294,312,313 ,52,69,70 }, {214,231,215 ,294,313,295 ,52,70,53 },
+	{215,231,232 ,295,313,314 ,53,70,71 }, {215,232,216 ,295,314,296 ,53,71,54 },
+	{216,232,233 ,296,314,315 ,54,71,72 }, {216,233,217 ,296,315,297 ,54,72,55 },
+	{217,233,234 ,297,315,316 ,55,72,73 }, {217,234,218 ,297,316,298 ,55,73,56 },
+	{218,234,235 ,298,316,317 ,56,73,74 }, {218,235,219 ,298,317,299 ,56,74,57 },
+	{219,235,236 ,299,317,318 ,57,74,75 }, {219,236,220 ,299,318,300 ,57,75,58 },
+	{220,236,237 ,300,318,319 ,58,75,76 }, {220,237,221 ,300,319,301 ,58,76,59 },
+	{221,237,238 ,301,319,320 ,59,76,77 }, {221,238,222 ,301,320,302 ,59,77,60 },
+	{222,238,239 ,302,320,321 ,60,77,78 }, {222,239,223 ,302,321,303 ,60,78,61 },
+	{223,239,240 ,303,321,322 ,61,78,79 }, {223,240,224 ,303,322,304 ,61,79,62 },
+	{224,240,241 ,304,322,323 ,62,79,80 }, {224,241,225 ,304,323,305 ,62,80,63 },
+	{225,241,242 ,305,323,324 ,63,80,81 }, {225,242,226 ,305,324,306 ,63,81,64 },
+	{226,242,243 ,306,324,325 ,64,81,82 }, {226,243,227 ,306,325,307 ,64,82,65 },
+	{227,243,228 ,307,325,326 ,65,82,83 }, {227,228,212 ,307,327,327 ,65,83,66 }
+};
+static GLfloat vertices [244][3] = {
+{-0.0594632f,0.340244f,-0.227837f},{-0.0839977f,0.221099f,-0.344899f},{-0.162438f,0.228128f,-0.353657f},
+{-0.225394f,0.248142f,-0.339163f},{-0.260027f,0.278097f,-0.302629f},{-0.260012f,0.31343f,-0.250458f},
+{-0.227263f,0.348764f,-0.192603f},{-0.169721f,0.378718f,-0.139431f},{-0.0976165f,0.398733f,-0.0989695f},
+{-0.0212892f,0.405761f,-0.0760573f},{0.0490029f,0.398733f,-0.07301f},{0.103337f,0.378718f,-0.0900053f},
+{0.133847f,0.348764f,-0.124503f},{0.136676f,0.31343f,-0.171127f},{0.11215f,0.278097f,-0.223036f},
+{0.0633403f,0.248142f,-0.273514f},{-0.00471581f,0.228128f,-0.316247f},{-0.088416f,0.0664659f,-0.404402f},
+{-0.236654f,0.0794526f,-0.421905f},{-0.358018f,0.116435f,-0.394699f},{-0.421142f,0.171783f,-0.323727f},
+{-0.413035f,0.237071f,-0.223224f},{-0.344259f,0.302359f,-0.116005f},{-0.237289f,0.357707f,-0.0234628f},
+{-0.111046f,0.39469f,0.0427706f},{0.0221782f,0.407676f,0.079975f},{0.148264f,0.39469f,0.0859734f},
+{0.246652f,0.357707f,0.0561923f},{0.29851f,0.302359f,-0.00828875f},{0.29812f,0.237071f,-0.0951606f},
+{0.252434f,0.171783f,-0.188204f},{0.169761f,0.116435f,-0.27625f},{0.0538453f,0.0794525f,-0.351645f},
+{-0.0747728f,-0.100115f,-0.397927f},{-0.265094f,-0.083147f,-0.413132f},{-0.421072f,-0.0348269f,-0.371959f},
+{-0.498119f,0.0374891f,-0.276676f},{-0.479955f,0.122792f,-0.147509f},{-0.38696f,0.208094f,-0.0154702f},
+{-0.253427f,0.28041f,0.0930117f},{-0.0998485f,0.328731f,0.16876f},{0.0671615f,0.345698f,0.215499f},
+{0.23274f,0.32873f,0.230046f},{0.363571f,0.28041f,0.196764f},{0.42705f,0.208094f,0.1102f},
+{0.416969f,0.122792f,-0.00920004f},{0.351655f,0.0374891f,-0.13296f},{0.247216f,-0.034827f,-0.245038f},
+{0.104266f,-0.083147f,-0.337127f},{-0.0513718f,-0.253282f,-0.328305f},{-0.247586f,-0.234916f,-0.330761f},
+{-0.405745f,-0.182615f,-0.278113f},{-0.481724f,-0.104341f,-0.176241f},{-0.460848f,-0.01201f,-0.0465844f},
+{-0.365803f,0.0803208f,0.0816631f},{-0.230648f,0.158595f,0.186497f},{-0.0716892f,0.210896f,0.263634f},
+{0.107899f,0.229262f,0.318551f},{0.29045f,0.210896f,0.342957f},{0.434324f,0.158595f,0.311819f},
+{0.5f,0.0803207f,0.215496f},{0.481891f,-0.0120101f,0.079437f},{0.404727f,-0.104341f,-0.060354f},
+{0.289283f,-0.182615f,-0.182709f},{0.136409f,-0.234917f,-0.275803f},{0.117563f,-0.01201f,0.375843f},
+{0.114291f,0.139643f,0.336151f},{0.0508502f,0.128099f,0.322581f},{-0.00136173f,0.0952246f,0.31399f},
+{-0.0363813f,0.0460249f,0.311237f},{-0.0508667f,-0.01201f,0.314621f},{-0.0436149f,-0.0700451f,0.323833f},
+{-0.0152835f,-0.119245f,0.337453f},{0.0315462f,-0.152119f,0.352954f},{0.0919289f,-0.163663f,0.367573f},
+{0.158049f,-0.152119f,0.379363f},{0.219457f,-0.119245f,0.387409f},{0.264776f,-0.070045f,0.391145f},
+{0.284658f,-0.01201f,0.389721f},{0.274768f,0.046025f,0.382324f},{0.237279f,0.0952247f,0.369285f},
+{0.180111f,0.128099f,0.352767f},{0.0852956f,0.268208f,0.257515f},{-0.0287871f,0.246877f,0.236747f},
+{-0.11952f,0.186134f,0.224289f},{-0.178349f,0.0952246f,0.219546f},{-0.201037f,-0.0120101f,0.223154f},
+{-0.186517f,-0.119245f,0.236486f},{-0.136378f,-0.210154f,0.258079f},{-0.0543631f,-0.270898f,0.282448f},
+{0.0529195f,-0.292228f,0.30343f},{0.173518f,-0.270898f,0.318397f},{0.288544f,-0.210154f,0.328679f},
+{0.374946f,-0.119245f,0.335885f},{0.412602f,-0.01201f,0.338198f},{0.391946f,0.0952246f,0.331038f},
+{0.317893f,0.186134f,0.31199f},{0.207926f,0.246877f,0.284788f},{0.0448437f,0.354112f,0.145691f},
+{-0.105491f,0.326243f,0.122505f},{-0.226023f,0.246877f,0.108312f},{-0.303201f,0.128099f,0.1019f},
+{-0.329682f,-0.0120101f,0.10436f},{-0.30443f,-0.152119f,0.118065f},{-0.232051f,-0.270898f,0.141232f},
+{-0.120388f,-0.350263f,0.166539f},{0.0202984f,-0.378132f,0.186412f},{0.174378f,-0.350263f,0.198924f},
+{0.318361f,-0.270898f,0.207861f},{0.424351f,-0.152119f,0.216955f},{0.468735f,-0.01201f,0.224104f},
+{0.440595f,0.128099f,0.221864f},{0.345624f,0.246877f,0.204744f},{0.204291f,0.326243f,0.175963f},
+{0.00299471f,0.384278f,0.00834511f},{-0.168323f,0.354112f,-0.0183378f},{-0.310292f,0.268208f,-0.037007f},
+{-0.400615f,0.139643f,-0.0453738f},{-0.426773f,-0.0120101f,-0.0417815f},{-0.388287f,-0.163663f,-0.0263951f},
+{-0.294627f,-0.292228f,-0.00363743f},{-0.159976f,-0.378132f,0.0188579f},{-0.000457861f,-0.408298f,0.0352872f},
+{0.16409f,-0.378132f,0.0457485f},{0.309093f,-0.292228f,0.0547918f},{0.409769f,-0.163663f,0.0655529f},
+{0.448241f,-0.01201f,0.0751867f},{0.417527f,0.139643f,0.0763255f},{0.321835f,0.268208f,0.063497f},
+{0.17583f,0.354112f,0.038304f},{-0.0360629f,0.354112f,-0.137422f},{-0.205101f,0.326243f,-0.16811f},
+{-0.349242f,0.246877f,-0.191968f},{-0.440435f,0.128099f,-0.202512f},{-0.462794f,-0.0120101f,-0.19744f},
+{-0.416476f,-0.152119f,-0.179929f},{-0.314265f,-0.270898f,-0.157067f},{-0.17459f,-0.350263f,-0.136191f},
+{-0.0174526f,-0.378132f,-0.120891f},{0.135495f,-0.350263f,-0.109443f},{0.261894f,-0.270898f,-0.097771f},
+{0.343535f,-0.152119f,-0.084796f},{0.37068f,-0.01201f,-0.0746691f},{0.341234f,0.128099f,-0.0735399f},
+{0.257546f,0.246877f,-0.0848152f},{0.126641f,0.326243f,-0.107522f},{-0.0665829f,0.268208f,-0.265518f},
+{-0.201637f,0.246877f,-0.29431f},{-0.317741f,0.186134f,-0.317323f},{-0.391187f,0.0952246f,-0.328168f},
+{-0.408078f,-0.0120101f,-0.324621f},{-0.36797f,-0.119245f,-0.309713f},{-0.281561f,-0.210154f,-0.289619f},
+{-0.165397f,-0.270898f,-0.270117f},{-0.0379277f,-0.292228f,-0.253812f},{0.0821894f,-0.270898f,-0.239781f},
+{0.178018f,-0.210154f,-0.226133f},{0.237495f,-0.119245f,-0.213409f},{0.255139f,-0.01201f,-0.205296f},
+{0.2303f,0.0952247f,-0.205955f},{0.164496f,0.186134f,-0.217195f},{0.0619701f,0.246877f,-0.238064f},
+{-0.0811905f,0.139643f,-0.350506f},{-0.154437f,0.128099f,-0.367526f},{-0.216526f,0.0952246f,-0.381076f},
+{-0.25596f,0.0460249f,-0.38821f},{-0.2656f,-0.0120101f,-0.387748f},{-0.244385f,-0.0700451f,-0.380633f},
+{-0.196993f,-0.119245f,-0.369252f},{-0.132114f,-0.152119f,-0.356197f},{-0.0603973f,-0.163663f,-0.343273f},
+{0.00732452f,-0.152119f,-0.331343f},{0.0615615f,-0.119245f,-0.320972f},{0.0953903f,-0.070045f,-0.313197f},
+{0.104981f,-0.01201f,-0.309621f},{0.0893241f,0.046025f,-0.311711f},{0.0498191f,0.0952246f,-0.319978f},
+{-0.00948911f,0.128099f,-0.333609f},{-0.0775452f,-0.01201f,-0.377355f},{0.0662412f,0.347573f,0.213013f},
+{0.0212595f,0.408298f,0.0769026f},{-0.0451443f,0.401592f,0.0751623f},{-0.0935056f,0.382495f,0.0933802f},
+{-0.116134f,0.353914f,0.12753f},{-0.110884f,0.320201f,0.170755f},{-0.080312f,0.286488f,0.216042f},
+{-0.0293751f,0.257908f,0.258144f},{0.03577f,0.238811f,0.293126f},{0.107193f,0.232105f,0.316787f},
+{0.174518f,0.238811f,0.324478f},{0.226144f,0.257908f,0.312906f},{0.252486f,0.286488f,0.282327f},
+{0.249094f,0.320201f,0.237371f},{0.217421f,0.353914f,0.185944f},{0.163196f,0.382495f,0.13702f},
+{0.094519f,0.401592f,0.0986572f},{-0.0221509f,0.405034f,-0.0793323f},{-0.152293f,0.392643f,-0.0835134f},
+{-0.245868f,0.357357f,-0.0457555f},{-0.283508f,0.304547f,0.0260588f},{-0.265498f,0.242254f,0.112987f},
+{-0.205055f,0.17996f,0.197406f},{-0.114628f,0.12715f,0.272443f},{-0.00092518f,0.0918637f,0.336653f},
+{0.128716f,0.0794728f,0.383462f},{0.257523f,0.0918637f,0.400483f},{0.359249f,0.12715f,0.377982f},
+{0.40988f,0.17996f,0.316212f},{0.400654f,0.242254f,0.226581f},{0.339502f,0.304547f,0.127003f},
+{0.240755f,0.357357f,0.0348431f},{0.116104f,0.392644f,-0.0370932f},{-0.0601391f,0.33828f,-0.2307f},
+{-0.242846f,0.32209f,-0.243002f},{-0.375234f,0.275986f,-0.193027f},{-0.422369f,0.206987f,-0.0888319f},
+{-0.388625f,0.125596f,0.037377f},{-0.302564f,0.0442061f,0.155468f},{-0.18679f,-0.0247935f,0.257432f},
+{-0.0468511f,-0.0708974f,0.344428f},{0.116548f,-0.087087f,0.405712f},{0.28691f,-0.0708974f,0.421904f},
+{0.426097f,-0.0247934f,0.382089f},{0.495355f,0.0442061f,0.291519f},{0.482076f,0.125596f,0.169311f},
+{0.402609f,0.206987f,0.0401854f},{0.279861f,0.275986f,-0.0764741f},{0.123549f,0.32209f,-0.169952f},
+{-0.0843006f,0.218197f,-0.34676f},{-0.291441f,0.200673f,-0.367557f},{-0.445002f,0.150771f,-0.314761f},
+{-0.5f,0.0760863f,-0.194992f},{-0.460848f,-0.01201f,-0.0465844f},{-0.363663f,-0.100106f,0.0934045f},
+{-0.238408f,-0.174791f,0.213396f},{-0.0925815f,-0.224693f,0.31132f},{0.0771405f,-0.242217f,0.372066f},
+{0.258422f,-0.224693f,0.375976f},{0.411136f,-0.174791f,0.318319f},{0.49075f,-0.100106f,0.211715f},
+{0.481891f,-0.0120101f,0.0794369f},{0.402881f,0.0760863f,-0.0539284f},{0.278634f,0.150771f,-0.173653f},
+{0.115875f,0.200673f,-0.27448f}
+};
+static GLfloat normals [328][3] = {
+{0.14128f,0.678859f,-0.720549f},{0.141183f,0.470342f,-0.871117f},{0.0436259f,0.538027f,-0.841798f},
+{0.0679973f,0.716579f,-0.694184f},{-0.119311f,0.639257f,-0.759681f},{-0.00235058f,0.772214f,-0.635358f},
+{-0.255136f,0.759046f,-0.598962f},{-0.0474012f,0.827055f,-0.560118f},{-0.314039f,0.853304f,-0.416235f},
+{-0.0600024f,0.866637f,-0.495318f},{-0.292773f,0.915841f,-0.274809f},{-0.049072f,0.891986f,-0.449392f},
+{-0.212481f,0.95807f,-0.192231f},{-0.0178326f,0.908456f,-0.417599f},{-0.0920599f,0.982527f,-0.161757f},
+{0.0370726f,0.914058f,-0.403886f},{0.0521203f,0.982077f,-0.18113f},{0.108309f,0.902514f,-0.416819f},
+{0.201428f,0.946854f,-0.250789f},{0.179027f,0.872331f,-0.45496f},{0.331459f,0.872109f,-0.359945f},
+{0.23599f,0.827361f,-0.509688f},{0.418216f,0.768374f,-0.484455f},{0.271011f,0.775009f,-0.570888f},
+{0.450676f,0.660369f,-0.60067f},{0.28066f,0.726565f,-0.627163f},{0.433824f,0.571637f,-0.69644f},
+{0.269128f,0.691375f,-0.670501f},{0.379646f,0.512038f,-0.77051f},{0.242614f,0.670979f,-0.70066f},
+{0.296688f,0.482442f,-0.824152f},{0.20092f,0.665188f,-0.719135f},{0.111321f,0.0838976f,-0.990237f},
+{-0.029379f,0.177399f,-0.983701f},{-0.36291f,0.315654f,-0.876732f},{-0.636533f,0.537885f,-0.552726f},
+{-0.692297f,0.698565f,-0.180919f},{-0.609692f,0.790176f,0.0624294f},{-0.463645f,0.864983f,0.191929f},
+{-0.266794f,0.932768f,0.242413f},{-0.0294763f,0.976851f,0.211879f},{0.23276f,0.968844f,0.0846355f},
+{0.473096f,0.871906f,-0.126332f},{0.622688f,0.697126f,-0.355352f},{0.663374f,0.512375f,-0.54535f},
+{0.624155f,0.368076f,-0.689167f},{0.531327f,0.266649f,-0.804108f},{0.396108f,0.19478f,-0.897307f},
+{0.301284f,0.331535f,-0.894043f},{0.293635f,0.335978f,-0.894929f},{0.0262531f,-0.314782f,-0.948801f},
+{-0.145065f,-0.279238f,-0.949201f},{-0.600169f,-0.204803f,-0.773209f},{-0.94784f,0.0687263f,-0.311249f},
+{-0.931339f,0.326478f,0.161309f},{-0.775903f,0.471621f,0.418986f},{-0.595717f,0.581008f,0.554573f},
+{-0.378996f,0.685218f,0.621963f},{-0.1154f,0.782225f,0.612215f},{0.228237f,0.846899f,0.480282f},
+{0.608238f,0.775101f,0.17107f},{0.820052f,0.537806f,-0.19565f},{0.837034f,0.294875f,-0.460893f},
+{0.762505f,0.126921f,-0.634411f},{0.630338f,0.00231725f,-0.776317f},{0.436413f,-0.113109f,-0.892609f},
+{0.320267f,0.0147375f,-0.947213f},{0.348327f,-0.00790562f,-0.93734f},{-0.0276759f,-0.417145f,-0.908418f},
+{-0.141207f,-0.463983f,-0.874517f},{-0.573196f,-0.464631f,-0.674955f},{-0.943646f,-0.249543f,-0.217397f},
+{-0.961507f,0.0693531f,0.265886f},{-0.808033f,0.269491f,0.523886f},{-0.636184f,0.393708f,0.663524f},
+{-0.43775f,0.497816f,0.748702f},{-0.202579f,0.60248f,0.771997f},{0.122768f,0.708696f,0.694751f},
+{0.564416f,0.712283f,0.417239f},{0.875302f,0.482711f,-0.0289185f},{0.906907f,0.205191f,-0.367988f},
+{0.825239f,0.0254238f,-0.564212f},{0.68962f,-0.103674f,-0.716712f},{0.478163f,-0.232147f,-0.847035f},
+{0.283993f,-0.306895f,-0.908385f},{0.330854f,-0.348141f,-0.877117f},{-0.24469f,0.240557f,0.939286f},
+{-0.251704f,0.385303f,0.887799f},{-0.308507f,0.32877f,0.892599f},{-0.289709f,0.216471f,0.932314f},
+{-0.380036f,0.257873f,0.888298f},{-0.323023f,0.177913f,0.929518f},{-0.428302f,0.18168f,0.885183f},
+{-0.338313f,0.138727f,0.930752f},{-0.452208f,0.105373f,0.885666f},{-0.339696f,0.105884f,0.934556f},
+{-0.448119f,0.0223869f,0.893694f},{-0.329378f,0.0709806f,0.941526f},{-0.403498f,-0.0769257f,0.911741f},
+{-0.29726f,0.026574f,0.954427f},{-0.305208f,-0.184313f,0.934279f},{-0.23761f,-0.0127996f,0.971276f},
+{-0.164885f,-0.266084f,0.949743f},{-0.171302f,-0.0247511f,0.984908f},{-0.0181081f,-0.289546f,0.956993f},
+{-0.124133f,-0.0109379f,0.992205f},{0.104381f,-0.239271f,0.965326f},{-0.0977336f,0.0144596f,0.995108f},
+{0.181061f,-0.110489f,0.977246f},{-0.0826528f,0.0527337f,0.995182f},{0.187283f,0.0757574f,0.97938f},
+{-0.0822454f,0.112191f,0.990277f},{0.118036f,0.252508f,0.960368f},{-0.106176f,0.17836f,0.97822f},
+{0.00684446f,0.362199f,0.932075f},{-0.148821f,0.225033f,0.962919f},{-0.110459f,0.398641f,0.910431f},
+{-0.196851f,0.244267f,0.949517f},{-0.245786f,0.641112f,0.727025f},{-0.343754f,0.521981f,0.780621f},
+{-0.477819f,0.373685f,0.795015f},{-0.560849f,0.220352f,0.798056f},{-0.604243f,0.0766681f,0.793103f},
+{-0.610293f,-0.0768122f,0.788443f},{-0.549029f,-0.268252f,0.791586f},{-0.376462f,-0.476467f,0.794516f},
+{-0.114499f,-0.619894f,0.776287f},{0.154797f,-0.653379f,0.741036f},{0.39318f,-0.579683f,0.713707f},
+{0.593512f,-0.372979f,0.713183f},{0.677704f,-0.00981577f,0.735269f},{0.551652f,0.373004f,0.746021f},
+{0.301968f,0.598489f,0.742041f},{0.0536017f,0.664757f,0.745134f},{-0.100712f,0.511852f,0.85315f},
+{-0.129771f,0.495908f,0.858624f},{-0.224077f,0.885635f,0.406743f},{-0.377848f,0.760571f,0.52798f},
+{-0.594967f,0.529479f,0.604703f},{-0.714454f,0.270365f,0.645336f},{-0.764684f,0.0271108f,0.643835f},
+{-0.762621f,-0.221975f,0.607566f},{-0.664936f,-0.506592f,0.548839f},{-0.41186f,-0.772743f,0.482949f},
+{-0.051096f,-0.907492f,0.41695f},{0.296775f,-0.888489f,0.350018f},{0.596061f,-0.754371f,0.275021f},
+{0.85112f,-0.486344f,0.197646f},{0.98554f,-0.0575001f,0.159391f},{0.884713f,0.423397f,0.194983f},
+{0.588143f,0.759515f,0.277894f},{0.243699f,0.899532f,0.362565f},{0.0295394f,0.808074f,0.588339f},
+{0.00266324f,0.793476f,0.608596f},{-0.166151f,0.985993f,-0.0145344f},{-0.359567f,0.924003f,0.130114f},
+{-0.671899f,0.688429f,0.273162f},{-0.862314f,0.339548f,0.375661f},{-0.920945f,-0.0299612f,0.38854f},
+{-0.869365f,-0.38079f,0.314966f},{-0.692245f,-0.695493f,0.192579f},{-0.384078f,-0.919936f,0.0787546f},
+{-0.0074353f,-0.999946f,0.00727214f},{0.355557f,-0.933553f,-0.0453544f},{0.663383f,-0.738106f,-0.122974f},
+{0.877978f,-0.422365f,-0.225307f},{0.955101f,-0.0281345f,-0.294941f},{0.883327f,0.374643f,-0.281737f},
+{0.66969f,0.716173f,-0.196498f},{0.354359f,0.930543f,-0.0922975f},{0.141093f,0.97558f,0.168336f},
+{0.137781f,0.975371f,0.172241f},{-0.0634033f,0.902267f,-0.426491f},{-0.254884f,0.910829f,-0.324692f},
+{-0.616918f,0.75457f,-0.223688f},{-0.913479f,0.387278f,-0.12479f},{-0.991529f,-0.0944241f,-0.0891887f},
+{-0.854436f,-0.500204f,-0.140481f},{-0.601812f,-0.762834f,-0.236446f},{-0.297768f,-0.898656f,-0.322104f},
+{0.0285855f,-0.925596f,-0.377432f},{0.355549f,-0.835223f,-0.419508f},{0.633205f,-0.614776f,-0.470215f},
+{0.79464f,-0.30479f,-0.525023f},{0.829099f,0.0136054f,-0.558937f},{0.771688f,0.307959f,-0.55647f},
+{0.624717f,0.582898f,-0.519575f},{0.382273f,0.799786f,-0.462828f},{0.208037f,0.945407f,-0.250852f},
+{0.208547f,0.945131f,-0.251467f},{0.0633847f,0.652646f,-0.755007f},{-0.0776665f,0.694041f,-0.715734f},
+{-0.348809f,0.594039f,-0.724879f},{-0.609141f,0.313102f,-0.728639f},{-0.706685f,-0.109053f,-0.699073f},
+{-0.589105f,-0.460862f,-0.663748f},{-0.380198f,-0.649568f,-0.658416f},{-0.154288f,-0.721326f,-0.675192f},
+{0.0801603f,-0.709847f,-0.69978f},{0.317168f,-0.612361f,-0.724167f},{0.519448f,-0.425555f,-0.740997f},
+{0.638214f,-0.189666f,-0.74613f},{0.666605f,0.0358181f,-0.74455f},{0.628162f,0.235219f,-0.741677f},
+{0.529309f,0.420798f,-0.736723f},{0.367696f,0.579372f,-0.727412f},{0.253299f,0.765813f,-0.591076f},
+{0.239904f,0.778869f,-0.57949f},{0.155817f,0.364748f,-0.917976f},{0.0934699f,0.390725f,-0.91575f},
+{-0.0428585f,0.321547f,-0.945923f},{-0.16274f,0.162966f,-0.973118f},{-0.222045f,-0.0578604f,-0.973318f},
+{-0.196312f,-0.258955f,-0.945729f},{-0.111267f,-0.384068f,-0.916576f},{0.00190306f,-0.435736f,-0.900072f},
+{0.130312f,-0.42732f,-0.89466f},{0.263266f,-0.362605f,-0.893985f},{0.379493f,-0.249171f,-0.89101f},
+{0.455659f,-0.111402f,-0.883156f},{0.483731f,0.022104f,-0.874938f},{0.469613f,0.140137f,-0.871679f},
+{0.418676f,0.244517f,-0.874598f},{0.333936f,0.331632f,-0.88233f},{0.274051f,0.497279f,-0.823171f},
+{0.259802f,0.511801f,-0.818879f},{0.196491f,0.175512f,-0.964669f},{0.137502f,0.144211f,-0.979947f},
+{0.0851134f,0.0758425f,-0.993481f},{0.0551697f,-0.0171193f,-0.99833f},{0.0548916f,-0.101711f,-0.993298f},
+{0.0738492f,-0.156685f,-0.984884f},{0.101758f,-0.187181f,-0.977041f},{0.142158f,-0.201712f,-0.969073f},
+{0.202039f,-0.192944f,-0.960184f},{0.271485f,-0.147866f,-0.951016f},{0.324833f,-0.0743643f,-0.942843f},
+{0.347908f,0.000269599f,-0.937529f},{0.347281f,0.0599932f,-0.93584f},{0.33107f,0.108334f,-0.937367f},
+{0.299181f,0.148955f,-0.942498f},{0.252396f,0.174568f,-0.951747f},{-0.101791f,0.89554f,0.433181f},
+{-0.10134f,0.982935f,0.153519f},{-0.198237f,0.947331f,0.251529f},{-0.164187f,0.866134f,0.472075f},
+{-0.328502f,0.861858f,0.386377f},{-0.22236f,0.81515f,0.534871f},{-0.407264f,0.738985f,0.53669f},
+{-0.261475f,0.745438f,0.61315f},{-0.423584f,0.613071f,0.666874f},{-0.268118f,0.677242f,0.685169f},
+{-0.392497f,0.519335f,0.759103f},{-0.24919f,0.634149f,0.731956f},{-0.338078f,0.471162f,0.814684f},
+{-0.22364f,0.617892f,0.753787f},{-0.270615f,0.460525f,0.84539f},{-0.194833f,0.616506f,0.762863f},
+{-0.183681f,0.479089f,0.858333f},{-0.149814f,0.630977f,0.761199f},{-0.0646262f,0.532383f,0.844033f},
+{-0.0833697f,0.671555f,0.736249f},{0.0858598f,0.628864f,0.77276f},{-0.0110594f,0.735267f,0.677687f},
+{0.225661f,0.746376f,0.626099f},{0.0402802f,0.800838f,0.597525f},{0.297614f,0.844032f,0.446135f},
+{0.0578062f,0.850871f,0.522185f},{0.287181f,0.911623f,0.294058f},{0.0462129f,0.884f,0.465197f},
+{0.212292f,0.957645f,0.194545f},{0.0112676f,0.903058f,0.429371f},{0.0946535f,0.984007f,0.1509f},
+{-0.0411956f,0.907323f,0.418412f},{-0.0768357f,0.963819f,-0.255243f},{-0.231191f,0.968651f,-0.0909206f},
+{-0.478011f,0.865024f,0.152442f},{-0.613761f,0.668302f,0.420321f},{-0.621661f,0.468695f,0.627584f},
+{-0.555999f,0.333983f,0.761131f},{-0.465216f,0.269773f,0.843087f},{-0.358395f,0.248428f,0.899909f},
+{-0.215945f,0.246155f,0.944868f},{-0.00160027f,0.275933f,0.961176f},{0.307449f,0.391756f,0.867181f},
+{0.57879f,0.576987f,0.57627f},{0.658558f,0.716536f,0.229952f},{0.597679f,0.801598f,-0.0148259f},
+{0.460401f,0.872625f,-0.162965f},{0.266984f,0.934523f,-0.235344f},{0.103983f,0.993374f,-0.048947f},
+{0.105796f,0.993123f,-0.0501399f},{-0.0197862f,0.790362f,-0.61232f},{-0.242279f,0.852503f,-0.463184f},
+{-0.632416f,0.763443f,-0.131166f},{-0.817379f,0.505342f,0.276625f},{-0.788174f,0.265216f,0.555375f},
+{-0.687043f,0.131972f,0.714531f},{-0.56985f,0.0751975f,0.818301f},{-0.421735f,0.0372272f,0.905954f},
+{-0.203784f,-0.0289837f,0.978587f},{0.124815f,-0.104369f,0.986675f},{0.577569f,-0.0689256f,0.813427f},
+{0.917184f,0.152931f,0.367949f},{0.924202f,0.373489f,-0.0797226f},{0.792991f,0.508953f,-0.334863f},
+{0.620113f,0.617825f,-0.483478f},{0.394039f,0.719565f,-0.571804f},{0.224221f,0.865854f,-0.447239f},
+{0.212217f,0.873358f,-0.438418f},{0.0136589f,0.693472f,-0.720354f},{-0.145306f,0.729801f,-0.668039f},
+{-0.601517f,0.69868f,-0.387329f},{-0.891335f,0.442876f,0.0968627f},{-0.872552f,0.175056f,0.45608f},
+{-0.763231f,0.0371769f,0.645055f},{-0.642575f,-0.0180662f,0.76601f},{-0.48495f,-0.0563598f,0.872724f},
+{-0.238167f,-0.142315f,0.960741f},{0.123424f,-0.279803f,0.952091f},{0.574493f,-0.347868f,0.740908f},
+{0.939284f,-0.188771f,0.28655f},{0.979786f,0.0995065f,-0.173547f},{0.850407f,0.302179f,-0.430692f},
+{0.68788f,0.4362f,-0.580131f},{0.478047f,0.550419f,-0.684478f},{0.3163f,0.607377f,-0.72873f},
+{0.292721f,0.633415f,-0.71631f}
+};
+static GLfloat textures [152][2] = {
+{0.0f,1.0f},{0.0f,0.875f},{0.0625f,0.875f},
+{0.0625f,1.0f},{0.125f,0.875f},{0.125f,1.0f},
+{0.1875f,0.875f},{0.1875f,1.0f},{0.25f,0.875f},
+{0.25f,1.0f},{0.3125f,0.875f},{0.3125f,1.0f},
+{0.375f,0.875f},{0.375f,1.0f},{0.4375f,0.875f},
+{0.4375f,1.0f},{0.5f,0.875f},{0.5f,1.0f},
+{0.5625f,0.875f},{0.5625f,1.0f},{0.625f,0.875f},
+{0.625f,1.0f},{0.6875f,0.875f},{0.6875f,1.0f},
+{0.75f,0.875f},{0.75f,1.0f},{0.8125f,0.875f},
+{0.8125f,1.0f},{0.875f,0.875f},{0.875f,1.0f},
+{0.9375f,0.875f},{0.9375f,1.0f},{1.0f,0.875f},
+{0.0f,0.75f},{0.0625f,0.75f},{0.125f,0.75f},
+{0.1875f,0.75f},{0.25f,0.75f},{0.3125f,0.75f},
+{0.375f,0.75f},{0.4375f,0.75f},{0.5f,0.75f},
+{0.5625f,0.75f},{0.625f,0.75f},{0.6875f,0.75f},
+{0.75f,0.75f},{0.8125f,0.75f},{0.875f,0.75f},
+{0.9375f,0.75f},{1.0f,0.75f},{0.0f,0.625f},
+{0.0625f,0.625f},{0.125f,0.625f},{0.1875f,0.625f},
+{0.25f,0.625f},{0.3125f,0.625f},{0.375f,0.625f},
+{0.4375f,0.625f},{0.5f,0.625f},{0.5625f,0.625f},
+{0.625f,0.625f},{0.6875f,0.625f},{0.75f,0.625f},
+{0.8125f,0.625f},{0.875f,0.625f},{0.9375f,0.625f},
+{1.0f,0.625f},{0.0f,0.5f},{0.0625f,0.5f},
+{0.125f,0.5f},{0.1875f,0.5f},{0.25f,0.5f},
+{0.3125f,0.5f},{0.375f,0.5f},{0.4375f,0.5f},
+{0.5f,0.5f},{0.5625f,0.5f},{0.625f,0.5f},
+{0.6875f,0.5f},{0.75f,0.5f},{0.8125f,0.5f},
+{0.875f,0.5f},{0.9375f,0.5f},{1.0f,0.5f},
+{0.0f,0.375f},{0.0625f,0.375f},{0.125f,0.375f},
+{0.1875f,0.375f},{0.25f,0.375f},{0.3125f,0.375f},
+{0.375f,0.375f},{0.4375f,0.375f},{0.5f,0.375f},
+{0.5625f,0.375f},{0.625f,0.375f},{0.6875f,0.375f},
+{0.75f,0.375f},{0.8125f,0.375f},{0.875f,0.375f},
+{0.9375f,0.375f},{1.0f,0.375f},{0.0f,0.25f},
+{0.0625f,0.25f},{0.125f,0.25f},{0.1875f,0.25f},
+{0.25f,0.25f},{0.3125f,0.25f},{0.375f,0.25f},
+{0.4375f,0.25f},{0.5f,0.25f},{0.5625f,0.25f},
+{0.625f,0.25f},{0.6875f,0.25f},{0.75f,0.25f},
+{0.8125f,0.25f},{0.875f,0.25f},{0.9375f,0.25f},
+{1.0f,0.25f},{0.0f,0.125f},{0.0625f,0.125f},
+{0.125f,0.125f},{0.1875f,0.125f},{0.25f,0.125f},
+{0.3125f,0.125f},{0.375f,0.125f},{0.4375f,0.125f},
+{0.5f,0.125f},{0.5625f,0.125f},{0.625f,0.125f},
+{0.6875f,0.125f},{0.75f,0.125f},{0.8125f,0.125f},
+{0.875f,0.125f},{0.9375f,0.125f},{1.0f,0.125f},
+{0.0f,1.25145e-008f},{0.0625f,1.25145e-008f},{0.125f,1.25145e-008f},
+{0.1875f,1.25145e-008f},{0.25f,1.25145e-008f},{0.3125f,1.25145e-008f},
+{0.375f,1.25145e-008f},{0.4375f,1.25145e-008f},{0.5f,1.25145e-008f},
+{0.5625f,1.25145e-008f},{0.625f,1.25145e-008f},{0.6875f,1.25145e-008f},
+{0.75f,1.25145e-008f},{0.8125f,1.25145e-008f},{0.875f,1.25145e-008f},
+{0.9375f,1.25145e-008f},{1.0f,0.125f}
+};
+/*Material indicies*/
+/*{material index,face count}*/
+static int material_ref [3][2] = {
+{0,112},
+{1,224},
+{0,112}
+};
+//comment out
+/*
+struct DIB2D{
+ BITMAPINFOHEADER *Info;
+ RGBQUAD *palette;
+ BYTE    *bits;
+};
+struct GLTXTLOAD{
+ GLint format;
+ GLint perpixel;
+ GLint Width;
+ GLint Height;
+ BYTE* bits;
+};
+*/
+
+/*
+BOOL LoadDIB(char*file,DIB2D*dib)
+Only trueColor and 256 color ucompressed bitmaps supported
+*/
+
+//comment out
+/*
+
+BOOL LoadDIB(char*file,DIB2D*dib)
+ {
+  BOOL result=FALSE;
+  HANDLE hfile=CreateFile(file,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING ,FILE_ATTRIBUTE_NORMAL,0);
+  if(hfile!=INVALID_HANDLE_VALUE)
+    {
+     DWORD readed;
+     int size=GetFileSize(hfile,0);
+     if(size>sizeof(BITMAPFILEHEADER))
+      {
+       BITMAPFILEHEADER bmfh;
+       ReadFile(hfile,&bmfh,sizeof(BITMAPFILEHEADER),&readed,0);
+       if((readed==sizeof(BITMAPFILEHEADER)) && (bmfh.bfType==0x4d42))
+        {
+         dib->Info=(BITMAPINFOHEADER*)(new BYTE[size-sizeof(BITMAPFILEHEADER)]);
+         ReadFile(hfile,dib->Info,size-sizeof(BITMAPFILEHEADER),&readed,0);
+         dib->bits=(BYTE*)(dib->Info+1);
+
+         if(dib->Info->biBitCount==8)
+          {
+           dib->palette=(RGBQUAD*)dib->bits;
+           if(dib->Info->biClrUsed)dib->bits+=dib->Info->biClrUsed*4;else dib->bits+=1024;
+          }else{
+           dib->palette=NULL;
+          }
+         result=TRUE;
+        }
+      }
+     CloseHandle(hfile);
+    }
+   return result;
+ };
+
+long ScanBytes(int pixWidth, int bitsPixel) {
+  return (((long)pixWidth*bitsPixel+31) / 32) * 4;
+}
+
+BOOL  ScaleImage(DIB2D&dib,GLTXTLOAD&p)
+ {
+   GLint glMaxTexDim;     // OpenGL maximum texture dimension
+   GLint XDMaxTexDim=512; // user maximum texture dimension
+   GLint minsize =2;
+   double xPow2, yPow2;
+   int ixPow2, iyPow2;
+   int xSize2, ySize2;
+   GLint m_iWidth=dib.Info->biWidth;
+   GLint m_iHeight=dib.Info->biHeight;
+   glGetIntegerv(GL_MAX_TEXTURE_SIZE, &glMaxTexDim);
+
+   glMaxTexDim = min(XDMaxTexDim, glMaxTexDim);
+
+   if (m_iWidth <= glMaxTexDim)
+      xPow2 = log((double)m_iWidth) / log(2.0);
+   else
+      xPow2 = log((double)glMaxTexDim) / log(2.0);
+
+   if (m_iHeight <= glMaxTexDim)
+      yPow2 = log((double)m_iHeight) / log(2.0);
+   else
+      yPow2 = log((double)glMaxTexDim) / log(2.0);
+
+   ixPow2 = (int)xPow2;
+   iyPow2 = (int)yPow2;
+
+   if (xPow2 != (double)ixPow2)
+      ixPow2++;
+   if (yPow2 != (double)iyPow2)
+      iyPow2++;
+
+   xSize2 = 1 << ixPow2;
+   ySize2 = 1 << iyPow2;
+
+   if(xSize2<minsize)xSize2=minsize;
+   if(ySize2<minsize)ySize2=minsize;
+
+   if(((xSize2==m_iWidth) && (ySize2==m_iHeight)))
+   {
+     if(dib.Info->biBitCount==24){
+       p.format=GL_BGR_EXT;
+       p.perpixel=3;
+       return FALSE;
+      }
+     if(dib.Info->biBitCount==32)
+      {
+       p.format=GL_BGRA_EXT;
+       p.perpixel=4;
+       return FALSE;
+      }
+   }
+
+   BYTE *bits=(BYTE *)dib.bits;
+   if(dib.Info->biBitCount==8){
+
+    // convert to TRUECOLOR
+    int _perline=ScanBytes(8,m_iWidth);
+    int perline=ScanBytes(24,m_iWidth);
+    bits= new BYTE[perline*m_iHeight * sizeof(BYTE)];
+    for(int y=0;y<m_iHeight;y++){
+     BYTE *_b=((BYTE *)dib.bits)+y*_perline;
+     BYTE *b=bits+y*perline;
+     for(int x=0;x<m_iWidth;x++){
+      RGBQUAD _p=dib.palette[*_b];
+      _b++;
+      *b=_p.rgbBlue;b++;
+      *b=_p.rgbGreen;b++;
+      *b=_p.rgbRed;b++;
+     }
+    }
+   }
+   BOOL isAlpha=(dib.Info->biBitCount==32);
+   int _mem_size=xSize2 * ySize2 *  sizeof(BYTE);
+   if(isAlpha){
+         _mem_size*=4;
+          p.perpixel=4;
+          p.format=GL_BGRA_EXT;
+          }else {
+          _mem_size*=3;
+          p.perpixel=3;
+          p.format=GL_BGR_EXT;
+          }
+   BYTE *pData = (BYTE*)new BYTE[_mem_size];
+   if (!pData) return FALSE;
+
+   if(isAlpha){
+   gluScaleImage(GL_BGRA_EXT, m_iWidth, m_iHeight,
+                 GL_UNSIGNED_BYTE, bits,
+                 xSize2, ySize2, GL_UNSIGNED_BYTE, pData);
+   }
+   else
+   gluScaleImage(GL_RGB, m_iWidth, m_iHeight,
+                 GL_UNSIGNED_BYTE, bits,
+                 xSize2, ySize2, GL_UNSIGNED_BYTE, pData);
+
+
+   if(bits!=dib.bits)delete bits;
+//   m_pBits = pData;
+   m_iWidth = xSize2 ;
+   m_iHeight = ySize2 ;
+   p.Width=m_iWidth;
+   p.Height=m_iHeight;
+   p.bits=pData;
+
+   return TRUE ;
+ }
+void LoadTexture(char*filename)
+ {
+  DIB2D dib;
+  GLTXTLOAD load;
+  if(LoadDIB(filename,&dib))
+   {
+
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+
+    if(ScaleImage(dib,load))
+     {
+   glTexImage2D(GL_TEXTURE_2D,0,load.perpixel,
+                load.Width,load.Height,0,
+                load.format,GL_UNSIGNED_BYTE,
+                load.bits);
+                delete load.bits;
+     }else{
+
+   glTexImage2D(GL_TEXTURE_2D,0,load.perpixel,
+                dib.Info->biWidth,dib.Info->biHeight,
+                0,load.format,GL_UNSIGNED_BYTE,dib.bits);
+     }
+   delete dib.Info;
+   }
+
+  //DeleteObject(hbitmap);
+ };
+*/
+
+void MyMaterial(GLenum mode,GLfloat *f,GLfloat alpha)
+{
+ GLfloat d[4];
+ d[0]=f[0];
+ d[1]=f[1];
+ d[2]=f[2];
+ d[3]=alpha;
+ glMaterialfv (GL_FRONT_AND_BACK,mode,d);
+}
+/*
+ *  SelectMaterial uses OpenGL commands to define facet colors.
+ *
+ *  Returns:
+ *    Nothing
+ */
+
+void SelectMaterial(int i)
+{
+  //
+  // Define the reflective properties of the 3D Object faces.
+  //
+  glEnd();
+  GLfloat alpha=materials[i].alpha;
+  MyMaterial (GL_AMBIENT, materials[i].ambient,alpha);
+  MyMaterial (GL_DIFFUSE, materials[i].diffuse,alpha);
+  MyMaterial (GL_SPECULAR, materials[i].specular,alpha);
+  MyMaterial (GL_EMISSION, materials[i].emission,alpha);
+  glMaterialf (GL_FRONT_AND_BACK,GL_SHININESS,materials[i].phExp);
+	glEnd();
+	if(materials[i].texture>-1)
+	{
+	glEnable(GL_TEXTURE_2D);
+	glBindTexture(GL_TEXTURE_2D,texture_maps[materials[i].texture].id);
+	}
+	else
+	glDisable(GL_TEXTURE_2D);
+	glBegin(GL_TRIANGLES);
+
+  glBegin(GL_TRIANGLES);
+
+};
+
+GLint Gen3DObjectList()
+{
+ int i;
+ int j;
+
+  GLuint texture_name;
+
+for(i=0;i<244;i++){
+	vertices[i][2]-=5;
+}
+
+  glGenTextures(1,&texture_name);
+  texture_maps[0].id=texture_name;
+  glBindTexture(GL_TEXTURE_2D,texture_name);
+  //LoadTexture(texture_maps[0].name);
+ GLint lid=glGenLists(1);
+	int mcount=0;
+	int mindex=0;
+   glNewList(lid, GL_COMPILE);
+
+    glBegin (GL_TRIANGLES);
+      for(i=0;i<sizeof(face_indicies)/sizeof(face_indicies[0]);i++)
+       {
+      if(!mcount)
+       {
+        SelectMaterial(material_ref[mindex][0]);
+        mcount=material_ref[mindex][1];
+        mindex++;
+       }
+       mcount--;
+       for(j=0;j<3;j++)
+        {
+          int vi=face_indicies[i][j];
+          int ni=face_indicies[i][j+3];//Normal index
+          int ti=face_indicies[i][j+6];//Texture index
+           glNormal3f (normals[ni][0],normals[ni][1],normals[ni][2]);
+           glTexCoord2f(textures[ti][0],textures[ti][1]);
+           glVertex3f (vertices[vi][0],vertices[vi][1],vertices[vi][2]);
+        }
+       }
+    glEnd ();
+
+   glEndList();
+   return lid;
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/eye.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,1 @@
+GLint Gen3DObjectList();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/eyes.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,589 @@
+/*
+This file was produced by Deep Exploration Plugin: CPP Export filter. 
+
+Deep Exploration 
+
+Copyright (c) 1999-2003 Right Hemisphere, Inc 
+
+WWW http://www.righthemisphere.com/dexp.htm 
+eMail support@righthemisphere.com
+*/
+//#include <windows.h>
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include "mat_struct.h"
+#include "eyes.h"
+#include "lids.h"
+
+GLint eyes;
+
+
+static sample_MATERIAL materials [2] = {
+ {{0.160784f,0.2f,0.32549f},	{0.952941f,0.964706f,1.0f},	{0.044902f,0.044902f,0.044902f},	{0.0f,0.0f,0.0f},	1.0f,6.96441f,-1}, //Material #532
+ {{0.2f,0.34902f,0.2f},	{0.0f,0.0f,0.0f},	{0.179608f,0.179608f,0.179608f},	{0.0f,0.0f,0.0f},	1.0f,14.9285f,-1} //Material #2
+};
+
+// 228 Verticies
+// 152 Texture Coordinates
+// 312 Normals
+// 448 Triangles
+
+static short face_indicies[448][9] = {
+// Object #-1
+	{0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 },
+	{0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 },
+	{0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 },
+	{0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 },
+	{0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 },
+	{0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 },
+	{0,16,1 ,31,30,31 ,31,30,32 }, {18,2,1 ,32,2,1 ,33,2,1 }, {1,17,18 ,1,33,32 ,1,34,33 },
+	{19,3,2 ,34,4,2 ,35,4,2 }, {2,18,19 ,2,32,34 ,2,33,35 }, {20,4,3 ,35,6,4 ,36,6,4 },
+	{3,19,20 ,4,34,35 ,4,35,36 }, {21,5,4 ,36,8,6 ,37,8,6 }, {4,20,21 ,6,35,36 ,6,36,37 },
+	{22,6,5 ,37,10,8 ,38,10,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {23,7,6 ,38,12,10 ,39,12,10 },
+	{6,22,23 ,10,37,38 ,10,38,39 }, {24,8,7 ,39,14,12 ,40,14,12 },
+	{7,23,24 ,12,38,39 ,12,39,40 }, {25,9,8 ,40,16,14 ,41,16,14 },
+	{8,24,25 ,14,39,40 ,14,40,41 }, {26,10,9 ,41,18,16 ,42,18,16 },
+	{9,25,26 ,16,40,41 ,16,41,42 }, {27,11,10 ,42,20,18 ,43,20,18 },
+	{10,26,27 ,18,41,42 ,18,42,43 }, {28,12,11 ,43,22,20 ,44,22,20 },
+	{11,27,28 ,20,42,43 ,20,43,44 }, {29,13,12 ,44,24,22 ,45,24,22 },
+	{12,28,29 ,22,43,44 ,22,44,45 }, {30,14,13 ,45,26,24 ,46,26,24 },
+	{13,29,30 ,24,44,45 ,24,45,46 }, {31,15,14 ,46,28,26 ,47,28,26 },
+	{14,30,31 ,26,45,46 ,26,46,47 }, {32,16,15 ,47,30,28 ,48,30,28 },
+	{15,31,32 ,28,46,47 ,28,47,48 }, {17,1,16 ,48,48,30 ,49,32,30 },
+	{16,32,17 ,30,47,49 ,30,48,49 }, {34,18,17 ,50,32,33 ,50,33,34 },
+	{17,33,34 ,33,51,50 ,34,51,50 }, {35,19,18 ,52,34,32 ,52,35,33 },
+	{18,34,35 ,32,50,52 ,33,50,52 }, {36,20,19 ,53,35,34 ,53,36,35 },
+	{19,35,36 ,34,52,53 ,35,52,53 }, {37,21,20 ,54,36,35 ,54,37,36 },
+	{20,36,37 ,35,53,54 ,36,53,54 }, {38,22,21 ,55,37,36 ,55,38,37 },
+	{21,37,38 ,36,54,55 ,37,54,55 }, {39,23,22 ,56,38,37 ,56,39,38 },
+	{22,38,39 ,37,55,56 ,38,55,56 }, {40,24,23 ,57,39,38 ,57,40,39 },
+	{23,39,40 ,38,56,57 ,39,56,57 }, {41,25,24 ,58,40,39 ,58,41,40 },
+	{24,40,41 ,39,57,58 ,40,57,58 }, {42,26,25 ,59,41,40 ,59,42,41 },
+	{25,41,42 ,40,58,59 ,41,58,59 }, {43,27,26 ,60,42,41 ,60,43,42 },
+	{26,42,43 ,41,59,60 ,42,59,60 }, {44,28,27 ,61,43,42 ,61,44,43 },
+	{27,43,44 ,42,60,61 ,43,60,61 }, {45,29,28 ,62,44,43 ,62,45,44 },
+	{28,44,45 ,43,61,62 ,44,61,62 }, {46,30,29 ,63,45,44 ,63,46,45 },
+	{29,45,46 ,44,62,63 ,45,62,63 }, {47,31,30 ,64,46,45 ,64,47,46 },
+	{30,46,47 ,45,63,64 ,46,63,64 }, {48,32,31 ,65,47,46 ,65,48,47 },
+	{31,47,48 ,46,64,65 ,47,64,65 }, {33,17,32 ,66,66,47 ,66,49,48 },
+	{32,48,33 ,47,65,67 ,48,65,66 }, {50,34,33 ,68,50,51 ,67,50,51 },
+	{33,49,50 ,51,69,68 ,51,68,67 }, {51,35,34 ,70,52,50 ,69,52,50 },
+	{34,50,51 ,50,68,70 ,50,67,69 }, {52,36,35 ,71,53,52 ,70,53,52 },
+	{35,51,52 ,52,70,71 ,52,69,70 }, {53,37,36 ,72,54,53 ,71,54,53 },
+	{36,52,53 ,53,71,72 ,53,70,71 }, {54,38,37 ,73,55,54 ,72,55,54 },
+	{37,53,54 ,54,72,73 ,54,71,72 }, {55,39,38 ,74,56,55 ,73,56,55 },
+	{38,54,55 ,55,73,74 ,55,72,73 }, {56,40,39 ,75,57,56 ,74,57,56 },
+	{39,55,56 ,56,74,75 ,56,73,74 }, {57,41,40 ,76,58,57 ,75,58,57 },
+	{40,56,57 ,57,75,76 ,57,74,75 }, {58,42,41 ,77,59,58 ,76,59,58 },
+	{41,57,58 ,58,76,77 ,58,75,76 }, {59,43,42 ,78,60,59 ,77,60,59 },
+	{42,58,59 ,59,77,78 ,59,76,77 }, {60,44,43 ,79,61,60 ,78,61,60 },
+	{43,59,60 ,60,78,79 ,60,77,78 }, {61,45,44 ,80,62,61 ,79,62,61 },
+	{44,60,61 ,61,79,80 ,61,78,79 }, {62,46,45 ,81,63,62 ,80,63,62 },
+	{45,61,62 ,62,80,81 ,62,79,80 }, {63,47,46 ,82,64,63 ,81,64,63 },
+	{46,62,63 ,63,81,82 ,63,80,81 }, {64,48,47 ,83,65,64 ,82,65,64 },
+	{47,63,64 ,64,82,83 ,64,81,82 }, {49,33,48 ,84,84,65 ,83,66,65 },
+	{48,64,49 ,65,83,85 ,65,82,83 }, {66,50,49 ,86,68,69 ,84,67,68 },
+	{49,65,66 ,69,87,86 ,68,85,84 }, {67,51,50 ,88,70,68 ,86,69,67 },
+	{50,66,67 ,68,86,88 ,67,84,86 }, {68,52,51 ,89,71,70 ,87,70,69 },
+	{51,67,68 ,70,88,89 ,69,86,87 }, {69,53,52 ,90,72,71 ,88,71,70 },
+	{52,68,69 ,71,89,90 ,70,87,88 }, {70,54,53 ,91,73,72 ,89,72,71 },
+	{53,69,70 ,72,90,91 ,71,88,89 }, {71,55,54 ,92,74,73 ,90,73,72 },
+	{54,70,71 ,73,91,92 ,72,89,90 }, {72,56,55 ,93,75,74 ,91,74,73 },
+	{55,71,72 ,74,92,93 ,73,90,91 }, {73,57,56 ,94,76,75 ,92,75,74 },
+	{56,72,73 ,75,93,94 ,74,91,92 }, {74,58,57 ,95,77,76 ,93,76,75 },
+	{57,73,74 ,76,94,95 ,75,92,93 }, {75,59,58 ,96,78,77 ,94,77,76 },
+	{58,74,75 ,77,95,96 ,76,93,94 }, {76,60,59 ,97,79,78 ,95,78,77 },
+	{59,75,76 ,78,96,97 ,77,94,95 }, {77,61,60 ,98,80,79 ,96,79,78 },
+	{60,76,77 ,79,97,98 ,78,95,96 }, {78,62,61 ,99,81,80 ,97,80,79 },
+	{61,77,78 ,80,98,99 ,79,96,97 }, {79,63,62 ,100,82,81 ,98,81,80 },
+	{62,78,79 ,81,99,100 ,80,97,98 }, {80,64,63 ,101,83,82 ,99,82,81 },
+	{63,79,80 ,82,100,101 ,81,98,99 }, {65,49,64 ,102,102,83 ,100,83,82 },
+	{64,80,65 ,83,101,103 ,82,99,100 }, {82,66,65 ,104,86,87 ,101,84,85 },
+	{65,81,82 ,87,105,104 ,85,102,101 }, {83,67,66 ,106,88,86 ,103,86,84 },
+	{66,82,83 ,86,104,106 ,84,101,103 }, {84,68,67 ,107,89,88 ,104,87,86 },
+	{67,83,84 ,88,106,107 ,86,103,104 }, {85,69,68 ,108,90,89 ,105,88,87 },
+	{68,84,85 ,89,107,108 ,87,104,105 }, {86,70,69 ,109,91,90 ,106,89,88 },
+	{69,85,86 ,90,108,109 ,88,105,106 }, {87,71,70 ,110,92,91 ,107,90,89 },
+	{70,86,87 ,91,109,110 ,89,106,107 }, {88,72,71 ,111,93,92 ,108,91,90 },
+	{71,87,88 ,92,110,111 ,90,107,108 }, {89,73,72 ,112,94,93 ,109,92,91 },
+	{72,88,89 ,93,111,112 ,91,108,109 }, {90,74,73 ,113,95,94 ,110,93,92 },
+	{73,89,90 ,94,112,113 ,92,109,110 }, {91,75,74 ,114,96,95 ,111,94,93 },
+	{74,90,91 ,95,113,114 ,93,110,111 }, {92,76,75 ,115,97,96 ,112,95,94 },
+	{75,91,92 ,96,114,115 ,94,111,112 }, {93,77,76 ,116,98,97 ,113,96,95 },
+	{76,92,93 ,97,115,116 ,95,112,113 }, {94,78,77 ,117,99,98 ,114,97,96 },
+	{77,93,94 ,98,116,117 ,96,113,114 }, {95,79,78 ,118,100,99 ,115,98,97 },
+	{78,94,95 ,99,117,118 ,97,114,115 }, {96,80,79 ,119,101,100 ,116,99,98 },
+	{79,95,96 ,100,118,119 ,98,115,116 }, {81,65,80 ,120,120,101 ,117,100,99 },
+	{80,96,81 ,101,119,121 ,99,116,117 }, {98,82,81 ,122,104,105 ,118,101,102 },
+	{81,97,98 ,105,123,122 ,102,119,118 }, {99,83,82 ,124,106,104 ,120,103,101 },
+	{82,98,99 ,104,122,124 ,101,118,120 }, {100,84,83 ,125,107,106 ,121,104,103 },
+	{83,99,100 ,106,124,125 ,103,120,121 }, {101,85,84 ,126,108,107 ,122,105,104 },
+	{84,100,101 ,107,125,126 ,104,121,122 }, {102,86,85 ,127,109,108 ,123,106,105 },
+	{85,101,102 ,108,126,127 ,105,122,123 }, {103,87,86 ,128,110,109 ,124,107,106 },
+	{86,102,103 ,109,127,128 ,106,123,124 }, {104,88,87 ,129,111,110 ,125,108,107 },
+	{87,103,104 ,110,128,129 ,107,124,125 }, {105,89,88 ,130,112,111 ,126,109,108 },
+	{88,104,105 ,111,129,130 ,108,125,126 }, {106,90,89 ,131,113,112 ,127,110,109 },
+	{89,105,106 ,112,130,131 ,109,126,127 }, {107,91,90 ,132,114,113 ,128,111,110 },
+	{90,106,107 ,113,131,132 ,110,127,128 }, {108,92,91 ,133,115,114 ,129,112,111 },
+	{91,107,108 ,114,132,133 ,111,128,129 }, {109,93,92 ,134,116,115 ,130,113,112 },
+	{92,108,109 ,115,133,134 ,112,129,130 }, {110,94,93 ,135,117,116 ,131,114,113 },
+	{93,109,110 ,116,134,135 ,113,130,131 }, {111,95,94 ,136,118,117 ,132,115,114 },
+	{94,110,111 ,117,135,136 ,114,131,132 }, {112,96,95 ,137,119,118 ,133,116,115 },
+	{95,111,112 ,118,136,137 ,115,132,133 }, {97,81,96 ,138,138,119 ,134,117,116 },
+	{96,112,97 ,119,137,139 ,116,133,134 }, {113,98,97 ,140,122,123 ,135,118,119 },
+	{113,99,98 ,141,124,122 ,136,120,118 }, {113,100,99 ,142,125,124 ,137,121,120 },
+	{113,101,100 ,143,126,125 ,138,122,121 }, {113,102,101 ,144,127,126 ,139,123,122 },
+	{113,103,102 ,145,128,127 ,140,124,123 }, {113,104,103 ,146,129,128 ,141,125,124 },
+	{113,105,104 ,147,130,129 ,142,126,125 }, {113,106,105 ,148,131,130 ,143,127,126 },
+	{113,107,106 ,149,132,131 ,144,128,127 }, {113,108,107 ,150,133,132 ,145,129,128 },
+	{113,109,108 ,151,134,133 ,146,130,129 }, {113,110,109 ,152,135,134 ,147,131,130 },
+	{113,111,110 ,153,136,135 ,148,132,131 }, {113,112,111 ,154,137,136 ,149,133,132 },
+	{113,97,112 ,155,155,137 ,150,134,133 }, {115,114,116 ,156,157,158 ,1,0,2 },
+	{116,114,117 ,158,159,160 ,2,3,4 }, {117,114,118 ,160,161,162 ,4,5,6 },
+	{118,114,119 ,162,163,164 ,6,7,8 }, {119,114,120 ,164,165,166 ,8,9,10 },
+	{120,114,121 ,166,167,168 ,10,11,12 }, {121,114,122 ,168,169,170 ,12,13,14 },
+	{122,114,123 ,170,171,172 ,14,15,16 }, {123,114,124 ,172,173,174 ,16,17,18 },
+	{124,114,125 ,174,175,176 ,18,19,20 }, {125,114,126 ,176,177,178 ,20,21,22 },
+	{126,114,127 ,178,179,180 ,22,23,24 }, {127,114,128 ,180,181,182 ,24,25,26 },
+	{128,114,129 ,182,183,184 ,26,27,28 }, {129,114,130 ,184,185,186 ,28,29,30 },
+	{130,114,115 ,186,187,187 ,30,31,32 }, {115,116,132 ,156,158,188 ,1,2,33 },
+	{132,131,115 ,188,189,156 ,33,34,1 }, {116,117,133 ,158,160,190 ,2,4,35 },
+	{133,132,116 ,190,188,158 ,35,33,2 }, {117,118,134 ,160,162,191 ,4,6,36 },
+	{134,133,117 ,191,190,160 ,36,35,4 }, {118,119,135 ,162,164,192 ,6,8,37 },
+	{135,134,118 ,192,191,162 ,37,36,6 }, {119,120,136 ,164,166,193 ,8,10,38 },
+	{136,135,119 ,193,192,164 ,38,37,8 }, {120,121,137 ,166,168,194 ,10,12,39 },
+	{137,136,120 ,194,193,166 ,39,38,10 }, {121,122,138 ,168,170,195 ,12,14,40 },
+	{138,137,121 ,195,194,168 ,40,39,12 }, {122,123,139 ,170,172,196 ,14,16,41 },
+	{139,138,122 ,196,195,170 ,41,40,14 }, {123,124,140 ,172,174,197 ,16,18,42 },
+	{140,139,123 ,197,196,172 ,42,41,16 }, {124,125,141 ,174,176,198 ,18,20,43 },
+	{141,140,124 ,198,197,174 ,43,42,18 }, {125,126,142 ,176,178,199 ,20,22,44 },
+	{142,141,125 ,199,198,176 ,44,43,20 }, {126,127,143 ,178,180,200 ,22,24,45 },
+	{143,142,126 ,200,199,178 ,45,44,22 }, {127,128,144 ,180,182,201 ,24,26,46 },
+	{144,143,127 ,201,200,180 ,46,45,24 }, {128,129,145 ,182,184,202 ,26,28,47 },
+	{145,144,128 ,202,201,182 ,47,46,26 }, {129,130,146 ,184,186,203 ,28,30,48 },
+	{146,145,129 ,203,202,184 ,48,47,28 }, {130,115,131 ,186,204,204 ,30,32,49 },
+	{131,146,130 ,205,203,186 ,49,48,30 }, {131,132,148 ,189,188,206 ,34,33,50 },
+	{148,147,131 ,206,207,189 ,50,51,34 }, {132,133,149 ,188,190,208 ,33,35,52 },
+	{149,148,132 ,208,206,188 ,52,50,33 }, {133,134,150 ,190,191,209 ,35,36,53 },
+	{150,149,133 ,209,208,190 ,53,52,35 }, {134,135,151 ,191,192,210 ,36,37,54 },
+	{151,150,134 ,210,209,191 ,54,53,36 }, {135,136,152 ,192,193,211 ,37,38,55 },
+	{152,151,135 ,211,210,192 ,55,54,37 }, {136,137,153 ,193,194,212 ,38,39,56 },
+	{153,152,136 ,212,211,193 ,56,55,38 }, {137,138,154 ,194,195,213 ,39,40,57 },
+	{154,153,137 ,213,212,194 ,57,56,39 }, {138,139,155 ,195,196,214 ,40,41,58 },
+	{155,154,138 ,214,213,195 ,58,57,40 }, {139,140,156 ,196,197,215 ,41,42,59 },
+	{156,155,139 ,215,214,196 ,59,58,41 }, {140,141,157 ,197,198,216 ,42,43,60 },
+	{157,156,140 ,216,215,197 ,60,59,42 }, {141,142,158 ,198,199,217 ,43,44,61 },
+	{158,157,141 ,217,216,198 ,61,60,43 }, {142,143,159 ,199,200,218 ,44,45,62 },
+	{159,158,142 ,218,217,199 ,62,61,44 }, {143,144,160 ,200,201,219 ,45,46,63 },
+	{160,159,143 ,219,218,200 ,63,62,45 }, {144,145,161 ,201,202,220 ,46,47,64 },
+	{161,160,144 ,220,219,201 ,64,63,46 }, {145,146,162 ,202,203,221 ,47,48,65 },
+	{162,161,145 ,221,220,202 ,65,64,47 }, {146,131,147 ,203,222,222 ,48,49,66 },
+	{147,162,146 ,223,221,203 ,66,65,48 }, {147,148,164 ,207,206,224 ,51,50,67 },
+	{164,163,147 ,224,225,207 ,67,68,51 }, {148,149,165 ,206,208,226 ,50,52,69 },
+	{165,164,148 ,226,224,206 ,69,67,50 }, {149,150,166 ,208,209,227 ,52,53,70 },
+	{166,165,149 ,227,226,208 ,70,69,52 }, {150,151,167 ,209,210,228 ,53,54,71 },
+	{167,166,150 ,228,227,209 ,71,70,53 }, {151,152,168 ,210,211,229 ,54,55,72 },
+	{168,167,151 ,229,228,210 ,72,71,54 }, {152,153,169 ,211,212,230 ,55,56,73 },
+	{169,168,152 ,230,229,211 ,73,72,55 }, {153,154,170 ,212,213,231 ,56,57,74 },
+	{170,169,153 ,231,230,212 ,74,73,56 }, {154,155,171 ,213,214,232 ,57,58,75 },
+	{171,170,154 ,232,231,213 ,75,74,57 }, {155,156,172 ,214,215,233 ,58,59,76 },
+	{172,171,155 ,233,232,214 ,76,75,58 }, {156,157,173 ,215,216,234 ,59,60,77 },
+	{173,172,156 ,234,233,215 ,77,76,59 }, {157,158,174 ,216,217,235 ,60,61,78 },
+	{174,173,157 ,235,234,216 ,78,77,60 }, {158,159,175 ,217,218,236 ,61,62,79 },
+	{175,174,158 ,236,235,217 ,79,78,61 }, {159,160,176 ,218,219,237 ,62,63,80 },
+	{176,175,159 ,237,236,218 ,80,79,62 }, {160,161,177 ,219,220,238 ,63,64,81 },
+	{177,176,160 ,238,237,219 ,81,80,63 }, {161,162,178 ,220,221,239 ,64,65,82 },
+	{178,177,161 ,239,238,220 ,82,81,64 }, {162,147,163 ,221,240,240 ,65,66,83 },
+	{163,178,162 ,241,239,221 ,83,82,65 }, {163,164,180 ,225,224,242 ,68,67,84 },
+	{180,179,163 ,242,243,225 ,84,85,68 }, {164,165,181 ,224,226,244 ,67,69,86 },
+	{181,180,164 ,244,242,224 ,86,84,67 }, {165,166,182 ,226,227,245 ,69,70,87 },
+	{182,181,165 ,245,244,226 ,87,86,69 }, {166,167,183 ,227,228,246 ,70,71,88 },
+	{183,182,166 ,246,245,227 ,88,87,70 }, {167,168,184 ,228,229,247 ,71,72,89 },
+	{184,183,167 ,247,246,228 ,89,88,71 }, {168,169,185 ,229,230,248 ,72,73,90 },
+	{185,184,168 ,248,247,229 ,90,89,72 }, {169,170,186 ,230,231,249 ,73,74,91 },
+	{186,185,169 ,249,248,230 ,91,90,73 }, {170,171,187 ,231,232,250 ,74,75,92 },
+	{187,186,170 ,250,249,231 ,92,91,74 }, {171,172,188 ,232,233,251 ,75,76,93 },
+	{188,187,171 ,251,250,232 ,93,92,75 }, {172,173,189 ,233,234,252 ,76,77,94 },
+	{189,188,172 ,252,251,233 ,94,93,76 }, {173,174,190 ,234,235,253 ,77,78,95 },
+	{190,189,173 ,253,252,234 ,95,94,77 }, {174,175,191 ,235,236,254 ,78,79,96 },
+	{191,190,174 ,254,253,235 ,96,95,78 }, {175,176,192 ,236,237,255 ,79,80,97 },
+	{192,191,175 ,255,254,236 ,97,96,79 }, {176,177,193 ,237,238,256 ,80,81,98 },
+	{193,192,176 ,256,255,237 ,98,97,80 }, {177,178,194 ,238,239,257 ,81,82,99 },
+	{194,193,177 ,257,256,238 ,99,98,81 }, {178,163,179 ,239,258,258 ,82,83,100 },
+	{179,194,178 ,259,257,239 ,100,99,82 }, {179,180,196 ,243,242,260 ,85,84,101 },
+	{196,195,179 ,260,261,243 ,101,102,85 }, {180,181,197 ,242,244,262 ,84,86,103 },
+	{197,196,180 ,262,260,242 ,103,101,84 }, {181,182,198 ,244,245,263 ,86,87,104 },
+	{198,197,181 ,263,262,244 ,104,103,86 }, {182,183,199 ,245,246,264 ,87,88,105 },
+	{199,198,182 ,264,263,245 ,105,104,87 }, {183,184,200 ,246,247,265 ,88,89,106 },
+	{200,199,183 ,265,264,246 ,106,105,88 }, {184,185,201 ,247,248,266 ,89,90,107 },
+	{201,200,184 ,266,265,247 ,107,106,89 }, {185,186,202 ,248,249,267 ,90,91,108 },
+	{202,201,185 ,267,266,248 ,108,107,90 }, {186,187,203 ,249,250,268 ,91,92,109 },
+	{203,202,186 ,268,267,249 ,109,108,91 }, {187,188,204 ,250,251,269 ,92,93,110 },
+	{204,203,187 ,269,268,250 ,110,109,92 }, {188,189,205 ,251,252,270 ,93,94,111 },
+	{205,204,188 ,270,269,251 ,111,110,93 }, {189,190,206 ,252,253,271 ,94,95,112 },
+	{206,205,189 ,271,270,252 ,112,111,94 }, {190,191,207 ,253,254,272 ,95,96,113 },
+	{207,206,190 ,272,271,253 ,113,112,95 }, {191,192,208 ,254,255,273 ,96,97,114 },
+	{208,207,191 ,273,272,254 ,114,113,96 }, {192,193,209 ,255,256,274 ,97,98,115 },
+	{209,208,192 ,274,273,255 ,115,114,97 }, {193,194,210 ,256,257,275 ,98,99,116 },
+	{210,209,193 ,275,274,256 ,116,115,98 }, {194,179,195 ,257,276,276 ,99,100,117 },
+	{195,210,194 ,277,275,257 ,117,116,99 }, {195,196,212 ,261,260,278 ,102,101,118 },
+	{212,211,195 ,278,279,261 ,118,119,102 }, {196,197,213 ,260,262,280 ,101,103,120 },
+	{213,212,196 ,280,278,260 ,120,118,101 }, {197,198,214 ,262,263,281 ,103,104,121 },
+	{214,213,197 ,281,280,262 ,121,120,103 }, {198,199,215 ,263,264,282 ,104,105,122 },
+	{215,214,198 ,282,281,263 ,122,121,104 }, {199,200,216 ,264,265,283 ,105,106,123 },
+	{216,215,199 ,283,282,264 ,123,122,105 }, {200,201,217 ,265,266,284 ,106,107,124 },
+	{217,216,200 ,284,283,265 ,124,123,106 }, {201,202,218 ,266,267,285 ,107,108,125 },
+	{218,217,201 ,285,284,266 ,125,124,107 }, {202,203,219 ,267,268,286 ,108,109,126 },
+	{219,218,202 ,286,285,267 ,126,125,108 }, {203,204,220 ,268,269,287 ,109,110,127 },
+	{220,219,203 ,287,286,268 ,127,126,109 }, {204,205,221 ,269,270,288 ,110,111,128 },
+	{221,220,204 ,288,287,269 ,128,127,110 }, {205,206,222 ,270,271,289 ,111,112,129 },
+	{222,221,205 ,289,288,270 ,129,128,111 }, {206,207,223 ,271,272,290 ,112,113,130 },
+	{223,222,206 ,290,289,271 ,130,129,112 }, {207,208,224 ,272,273,291 ,113,114,131 },
+	{224,223,207 ,291,290,272 ,131,130,113 }, {208,209,225 ,273,274,292 ,114,115,132 },
+	{225,224,208 ,292,291,273 ,132,131,114 }, {209,210,226 ,274,275,293 ,115,116,133 },
+	{226,225,209 ,293,292,274 ,133,132,115 }, {210,195,211 ,275,294,294 ,116,117,134 },
+	{211,226,210 ,295,293,275 ,134,133,116 }, {212,227,211 ,278,296,279 ,118,135,119 },
+	{213,227,212 ,280,297,278 ,120,136,118 }, {214,227,213 ,281,298,280 ,121,137,120 },
+	{215,227,214 ,282,299,281 ,122,138,121 }, {216,227,215 ,283,300,282 ,123,139,122 },
+	{217,227,216 ,284,301,283 ,124,140,123 }, {218,227,217 ,285,302,284 ,125,141,124 },
+	{219,227,218 ,286,303,285 ,126,142,125 }, {220,227,219 ,287,304,286 ,127,143,126 },
+	{221,227,220 ,288,305,287 ,128,144,127 }, {222,227,221 ,289,306,288 ,129,145,128 },
+	{223,227,222 ,290,307,289 ,130,146,129 }, {224,227,223 ,291,308,290 ,131,147,130 },
+	{225,227,224 ,292,309,291 ,132,148,131 }, {226,227,225 ,293,310,292 ,133,149,132 },
+	{211,227,226 ,311,311,293 ,134,151,133 }
+};
+static GLfloat vertices [228][3] = {
+{-0.287907f,-1.86815e-008f,0.135757f},{-0.289347f,0.0556207f,0.121101f},{-0.312648f,0.0513869f,0.1159f},
+{-0.331758f,0.0393298f,0.112605f},{-0.344539f,0.0212851f,0.111531f},{-0.34981f,7.94957e-010f,0.11279f},
+{-0.347143f,-0.0212852f,0.116277f},{-0.336764f,-0.0393298f,0.121467f},{-0.319578f,-0.0513869f,0.127407f},
+{-0.297367f,-0.0556208f,0.133044f},{-0.272989f,-0.0513869f,0.137622f},{-0.250313f,-0.0393298f,0.140771f},
+{-0.233576f,-0.0212851f,0.142252f},{-0.226267f,7.94957e-010f,0.141723f},{-0.229995f,0.0212851f,0.138873f},
+{-0.243926f,0.0393298f,0.133842f},{-0.265082f,0.0513869f,0.127482f},{-0.300289f,0.102774f,0.0924289f},
+{-0.342041f,0.0949506f,0.0845643f},{-0.375065f,0.072672f,0.0798777f},{-0.396413f,0.0393298f,0.0780705f},
+{-0.404666f,7.94957e-010f,0.0793717f},{-0.399455f,-0.0393298f,0.0843554f},{-0.381285f,-0.072672f,0.0925327f},
+{-0.351389f,-0.0949506f,0.101848f},{-0.312053f,-0.102774f,0.109943f},{-0.267595f,-0.0949506f,0.115783f},
+{-0.225019f,-0.072672f,0.119839f},{-0.19297f,-0.0393298f,0.122681f},{-0.179034f,2.02714e-008f,0.123571f},
+{-0.186805f,0.0393298f,0.120751f},{-0.214382f,0.072672f,0.113343f},{-0.255124f,0.0949506f,0.102855f},
+{-0.315272f,0.13428f,0.0518029f},{-0.370101f,0.124059f,0.0432229f},{-0.413796f,0.0949505f,0.0380668f},
+{-0.441728f,0.0513869f,0.0356961f},{-0.451415f,1.03344e-008f,0.0364943f},{-0.44247f,-0.0513869f,0.0414899f},
+{-0.416425f,-0.0949506f,0.0501588f},{-0.375928f,-0.124059f,0.0597781f},{-0.324519f,-0.13428f,0.0674267f},
+{-0.267803f,-0.124059f,0.0722981f},{-0.214464f,-0.0949506f,0.0757843f},{-0.175013f,-0.0513869f,0.0792818f},
+{-0.158449f,1.03344e-008f,0.0819671f},{-0.168957f,0.0513869f,0.0809906f},{-0.204319f,0.0949506f,0.0743026f},
+{-0.25666f,0.124059f,0.0632456f},{-0.330578f,0.145344f,0.00190503f},{-0.392924f,0.13428f,-0.0077162f},
+{-0.444336f,0.102774f,-0.0143289f},{-0.47705f,0.0556207f,-0.0173406f},{-0.486706f,7.94957e-010f,-0.0161772f},
+{-0.47308f,-0.0556208f,-0.01071f},{-0.439422f,-0.102774f,-0.00237543f},{-0.390673f,-0.13428f,0.00604182f},
+{-0.332519f,-0.145344f,0.0122922f},{-0.272094f,-0.13428f,0.0162857f},{-0.218439f,-0.102774f,0.0196546f},
+{-0.180892f,-0.0556207f,0.0235965f},{-0.166384f,2.02714e-008f,0.0271024f},{-0.177718f,0.0556208f,0.0274186f},
+{-0.213249f,0.102774f,0.0224836f},{-0.267201f,0.13428f,0.0129805f},{-0.34483f,0.13428f,-0.0511393f},
+{-0.40631f,0.124059f,-0.0620485f},{-0.45857f,0.0949506f,-0.0704639f},{-0.491678f,0.0513869f,-0.0742125f},
+{-0.5f,7.94957e-010f,-0.0724902f},{-0.483529f,-0.0513869f,-0.0663162f},{-0.446732f,-0.0949506f,-0.0581115f},
+{-0.396141f,-0.124059f,-0.0504919f},{-0.338919f,-0.13428f,-0.0448254f},{-0.282899f,-0.124059f,-0.0405999f},
+{-0.236267f,-0.0949505f,-0.0364056f},{-0.205857f,-0.0513869f,-0.0318189f},{-0.195525f,1.03344e-008f,-0.0282588f},
+{-0.206257f,0.0513869f,-0.0279247f},{-0.237146f,0.0949506f,-0.0320837f},{-0.285319f,0.124059f,-0.040366f},
+{-0.356086f,0.102774f,-0.097854f},{-0.405227f,0.0949505f,-0.10804f},{-0.447411f,0.072672f,-0.116169f},
+{-0.474149f,0.0393298f,-0.120015f},{-0.480452f,-1.86815e-008f,-0.11879f},{-0.466119f,-0.0393298f,-0.113531f},
+{-0.434932f,-0.072672f,-0.106385f},{-0.392811f,-0.0949506f,-0.0993913f},{-0.346413f,-0.102774f,-0.093506f},
+{-0.302508f,-0.0949506f,-0.0884557f},{-0.26729f,-0.072672f,-0.0836092f},{-0.245251f,-0.0393298f,-0.079151f},
+{-0.238544f,1.03344e-008f,-0.0763464f},{-0.247524f,0.0393298f,-0.0766391f},{-0.271628f,0.072672f,-0.0806712f},
+{-0.309166f,0.0949505f,-0.0881082f},{-0.361659f,0.0556207f,-0.128917f},{-0.388335f,0.0513868f,-0.134934f},
+{-0.410948f,0.0393298f,-0.139725f},{-0.425343f,0.0212852f,-0.142252f},{-0.428934f,7.94957e-010f,-0.142093f},
+{-0.421321f,-0.0212851f,-0.139576f},{-0.404175f,-0.0393298f,-0.135536f},{-0.380624f,-0.0513869f,-0.130889f},
+{-0.354521f,-0.0556208f,-0.126284f},{-0.329804f,-0.0513869f,-0.122039f},{-0.309941f,-0.0393298f,-0.118368f},
+{-0.297488f,-0.0212851f,-0.115637f},{-0.293883f,1.03344e-008f,-0.114402f},{-0.299525f,0.0212852f,-0.115169f},
+{-0.313908f,0.0393298f,-0.118111f},{-0.33553f,0.0513869f,-0.12294f},{-0.36059f,-9.142e-009f,-0.138758f},
+{0.287907f,-1.86815e-008f,0.135757f},{0.289347f,0.0556207f,0.121101f},{0.312648f,0.0513869f,0.1159f},
+{0.331758f,0.0393298f,0.112605f},{0.344539f,0.0212851f,0.111531f},{0.34981f,7.94957e-010f,0.11279f},
+{0.347143f,-0.0212852f,0.116277f},{0.336763f,-0.0393298f,0.121467f},{0.319578f,-0.0513869f,0.127407f},
+{0.297367f,-0.0556208f,0.133044f},{0.272989f,-0.0513869f,0.137622f},{0.250313f,-0.0393298f,0.140771f},
+{0.233576f,-0.0212851f,0.142252f},{0.226267f,7.94957e-010f,0.141723f},{0.229996f,0.0212851f,0.138873f},
+{0.243926f,0.0393298f,0.133842f},{0.265082f,0.0513869f,0.127482f},{0.300289f,0.102774f,0.0924289f},
+{0.342041f,0.0949506f,0.0845643f},{0.375065f,0.072672f,0.0798777f},{0.396413f,0.0393298f,0.0780705f},
+{0.404666f,7.94957e-010f,0.0793717f},{0.399455f,-0.0393298f,0.0843554f},{0.381285f,-0.072672f,0.0925327f},
+{0.351389f,-0.0949506f,0.101848f},{0.312053f,-0.102774f,0.109943f},{0.267595f,-0.0949506f,0.115783f},
+{0.225019f,-0.072672f,0.119839f},{0.19297f,-0.0393298f,0.122681f},{0.179034f,2.02714e-008f,0.123571f},
+{0.186805f,0.0393298f,0.120751f},{0.214382f,0.072672f,0.113343f},{0.255124f,0.0949506f,0.102855f},
+{0.315272f,0.13428f,0.0518029f},{0.370101f,0.124059f,0.0432229f},{0.413796f,0.0949505f,0.0380668f},
+{0.441728f,0.0513869f,0.0356961f},{0.451415f,1.03344e-008f,0.0364943f},{0.44247f,-0.0513869f,0.0414899f},
+{0.416425f,-0.0949506f,0.0501588f},{0.375928f,-0.124059f,0.0597781f},{0.324519f,-0.13428f,0.0674267f},
+{0.267803f,-0.124059f,0.0722981f},{0.214464f,-0.0949506f,0.0757843f},{0.175013f,-0.0513869f,0.0792818f},
+{0.158449f,1.03344e-008f,0.0819671f},{0.168957f,0.0513869f,0.0809906f},{0.204319f,0.0949506f,0.0743026f},
+{0.25666f,0.124059f,0.0632456f},{0.330578f,0.145344f,0.00190503f},{0.392924f,0.13428f,-0.0077162f},
+{0.444336f,0.102774f,-0.0143289f},{0.47705f,0.0556207f,-0.0173406f},{0.486706f,7.94957e-010f,-0.0161772f},
+{0.47308f,-0.0556208f,-0.01071f},{0.439422f,-0.102774f,-0.00237543f},{0.390673f,-0.13428f,0.00604182f},
+{0.332519f,-0.145344f,0.0122922f},{0.272094f,-0.13428f,0.0162857f},{0.218439f,-0.102774f,0.0196546f},
+{0.180892f,-0.0556207f,0.0235965f},{0.166384f,2.02714e-008f,0.0271024f},{0.177718f,0.0556208f,0.0274186f},
+{0.213249f,0.102774f,0.0224836f},{0.267201f,0.13428f,0.0129805f},{0.34483f,0.13428f,-0.0511393f},
+{0.40631f,0.124059f,-0.0620485f},{0.45857f,0.0949506f,-0.0704639f},{0.491678f,0.0513869f,-0.0742125f},
+{0.5f,7.94957e-010f,-0.0724902f},{0.483529f,-0.0513869f,-0.0663162f},{0.446732f,-0.0949506f,-0.0581115f},
+{0.396141f,-0.124059f,-0.0504919f},{0.338919f,-0.13428f,-0.0448254f},{0.282899f,-0.124059f,-0.0405999f},
+{0.236267f,-0.0949505f,-0.0364056f},{0.205857f,-0.0513869f,-0.0318189f},{0.195525f,1.03344e-008f,-0.0282588f},
+{0.206257f,0.0513869f,-0.0279247f},{0.237146f,0.0949506f,-0.0320837f},{0.285319f,0.124059f,-0.040366f},
+{0.356086f,0.102774f,-0.097854f},{0.405227f,0.0949505f,-0.10804f},{0.447411f,0.072672f,-0.116169f},
+{0.474149f,0.0393298f,-0.120015f},{0.480452f,-1.86815e-008f,-0.11879f},{0.466119f,-0.0393298f,-0.113531f},
+{0.434932f,-0.072672f,-0.106385f},{0.392811f,-0.0949506f,-0.0993913f},{0.346413f,-0.102774f,-0.093506f},
+{0.302508f,-0.0949506f,-0.0884557f},{0.26729f,-0.072672f,-0.0836092f},{0.245251f,-0.0393298f,-0.079151f},
+{0.238544f,1.03344e-008f,-0.0763464f},{0.247524f,0.0393298f,-0.0766391f},{0.271628f,0.072672f,-0.0806712f},
+{0.309166f,0.0949505f,-0.0881082f},{0.361659f,0.0556207f,-0.128917f},{0.388335f,0.0513868f,-0.134934f},
+{0.410948f,0.0393298f,-0.139725f},{0.425343f,0.0212852f,-0.142252f},{0.428934f,7.94957e-010f,-0.142093f},
+{0.421321f,-0.0212851f,-0.139576f},{0.404175f,-0.0393298f,-0.135536f},{0.380624f,-0.0513869f,-0.130889f},
+{0.354521f,-0.0556208f,-0.126284f},{0.329804f,-0.0513869f,-0.122039f},{0.309941f,-0.0393298f,-0.118368f},
+{0.297488f,-0.0212851f,-0.115637f},{0.293883f,1.03344e-008f,-0.114402f},{0.299525f,0.0212852f,-0.115169f},
+{0.313908f,0.0393298f,-0.118111f},{0.33553f,0.0513869f,-0.12294f},{0.36059f,-9.142e-009f,-0.138758f}
+};
+static GLfloat normals [312][3] = {
+{-0.252871f,0.2404f,0.937157f},{-0.258307f,0.38096f,0.887777f},{-0.313991f,0.324677f,0.892185f},
+{-0.296928f,0.216441f,0.930047f},{-0.383648f,0.254797f,0.887633f},{-0.329607f,0.178289f,0.927131f},
+{-0.430851f,0.18085f,0.884116f},{-0.34441f,0.140222f,0.928289f},{-0.454555f,0.107789f,0.884173f},
+{-0.345761f,0.109338f,0.931931f},{-0.451254f,0.0285079f,0.89194f},{-0.336206f,0.076578f,0.93867f},
+{-0.408498f,-0.0677304f,0.910243f},{-0.305382f,0.0335758f,0.951638f},{-0.312714f,-0.173985f,0.933777f},
+{-0.246924f,-0.00527786f,0.969021f},{-0.174674f,-0.256876f,0.950528f},{-0.18167f,-0.0170678f,0.983211f},
+{-0.0295312f,-0.282552f,0.958797f},{-0.135737f,-0.00345962f,0.990739f},{0.091734f,-0.234033f,0.967891f},
+{-0.110558f,0.0209796f,0.993648f},{0.167189f,-0.105758f,0.980236f},{-0.0961792f,0.0576956f,0.99369f},
+{0.172186f,0.0803976f,0.981778f},{-0.0956933f,0.115643f,0.988671f},{0.102757f,0.255574f,0.961313f},
+{-0.118853f,0.180455f,0.976376f},{-0.00684392f,0.362472f,0.93197f},{-0.16015f,0.225882f,0.9609f},
+{-0.121457f,0.396353f,0.910029f},{-0.20652f,0.244312f,0.94745f},{-0.347082f,0.515074f,0.78373f},
+{-0.249506f,0.635312f,0.730839f},{-0.478643f,0.367304f,0.797489f},{-0.559961f,0.216863f,0.799634f},
+{-0.602861f,0.0780879f,0.794015f},{-0.610046f,-0.0696832f,0.789296f},{-0.551611f,-0.257101f,0.793489f},
+{-0.38207f,-0.465686f,0.798223f},{-0.121673f,-0.612952f,0.780695f},{0.146927f,-0.650919f,0.744793f},
+{0.385172f,-0.58077f,0.717181f},{0.58668f,-0.374453f,0.718047f},{0.670596f,-0.00636283f,0.741796f},
+{0.540433f,0.379137f,0.751124f},{0.289465f,0.600903f,0.745067f},{0.0436793f,0.662498f,0.747789f},
+{-0.140618f,0.490361f,0.8601f},{-0.109243f,0.507979f,0.854414f},{-0.380531f,0.755905f,0.532733f},
+{-0.225858f,0.883504f,0.410377f},{-0.59605f,0.523204f,0.609083f},{-0.713032f,0.266278f,0.6486f},
+{-0.762247f,0.0288195f,0.646645f},{-0.762093f,-0.214058f,0.61106f},{-0.668216f,-0.496763f,0.553817f},
+{-0.416626f,-0.766605f,0.48861f},{-0.0545419f,-0.90563f,0.420547f},{0.29318f,-0.889718f,0.349925f},
+{0.591552f,-0.758995f,0.272017f},{0.848551f,-0.492341f,0.193807f},{0.985865f,-0.05828f,0.157078f},
+{0.881972f,0.429135f,0.194856f},{0.581894f,0.76394f,0.278916f},{0.238697f,0.899997f,0.364733f},
+{-0.00501219f,0.789307f,0.613979f},{0.0251126f,0.806017f,0.59136f},{-0.362683f,0.922533f,0.131889f},
+{-0.167637f,0.985742f,-0.0145074f},{-0.675042f,0.684053f,0.276386f},{-0.861957f,0.33668f,0.379047f},
+{-0.919481f,-0.0263853f,0.392249f},{-0.871276f,-0.372611f,0.319436f},{-0.697519f,-0.689005f,0.196823f},
+{-0.38794f,-0.918076f,0.0814794f},{-0.00830919f,-0.999934f,0.00788595f},{0.353657f,-0.934174f,-0.0473814f},
+{0.658559f,-0.741582f,-0.127893f},{0.873379f,-0.428149f,-0.232159f},{0.952936f,-0.0310618f,-0.301577f},
+{0.881119f,0.37659f,-0.286025f},{0.666622f,0.718532f,-0.198309f},{0.352833f,0.93106f,-0.0929322f},
+{0.135999f,0.975217f,0.174515f},{0.140791f,0.975534f,0.16885f},{-0.258662f,0.909417f,-0.32566f},
+{-0.0662442f,0.901289f,-0.428124f},{-0.621608f,0.751307f,-0.221679f},{-0.914602f,0.386148f,-0.119974f},
+{-0.992511f,-0.0884879f,-0.084218f},{-0.859627f,-0.492181f,-0.137109f},{-0.607892f,-0.758345f,-0.235332f},
+{-0.300655f,-0.897575f,-0.322437f},{0.0284315f,-0.925422f,-0.37787f},{0.354203f,-0.835474f,-0.420148f},
+{0.628523f,-0.617805f,-0.47252f},{0.789277f,-0.310692f,-0.529634f},{0.825511f,0.00904431f,-0.564314f},
+{0.769059f,0.307146f,-0.560545f},{0.622245f,0.583594f,-0.521757f},{0.380717f,0.799662f,-0.464323f},
+{0.209136f,0.944539f,-0.253197f},{0.207914f,0.945204f,-0.251717f},{-0.0829051f,0.69251f,-0.716628f},
+{0.0583377f,0.651534f,-0.756373f},{-0.355182f,0.592306f,-0.723201f},{-0.614659f,0.31377f,-0.723701f},
+{-0.712098f,-0.103352f,-0.694432f},{-0.595913f,-0.454188f,-0.66227f},{-0.38585f,-0.645546f,-0.659083f},
+{-0.157323f,-0.719684f,-0.676243f},{0.0788719f,-0.709682f,-0.700093f},{0.315478f,-0.613671f,-0.723796f},
+{0.515947f,-0.42928f,-0.741294f},{0.633864f,-0.195427f,-0.748348f},{0.66279f,0.0306839f,-0.748176f},
+{0.624867f,0.232632f,-0.745267f},{0.526051f,0.42017f,-0.73941f},{0.364351f,0.57901f,-0.72938f},
+{0.238862f,0.777411f,-0.581874f},{0.250693f,0.765838f,-0.592153f},{0.0872439f,0.389795f,-0.916759f},
+{0.149617f,0.363837f,-0.919368f},{-0.0497727f,0.321156f,-0.945718f},{-0.170031f,0.164068f,-0.971685f},
+{-0.229274f,-0.0548793f,-0.971814f},{-0.203035f,-0.255423f,-0.94527f},{-0.116827f,-0.381483f,-0.916963f},
+{-0.00225283f,-0.43449f,-0.900674f},{0.127092f,-0.427409f,-0.89508f},{0.260125f,-0.364224f,-0.894246f},
+{0.375837f,-0.25252f,-0.891617f},{0.451585f,-0.11593f,-0.884664f},{0.479573f,0.0177851f,-0.877322f},
+{0.465354f,0.137133f,-0.874437f},{0.414091f,0.242881f,-0.877233f},{0.328899f,0.330658f,-0.884585f},
+{0.255655f,0.510592f,-0.820937f},{0.269217f,0.496777f,-0.825067f},{0.190196f,0.174579f,-0.966099f},
+{0.131151f,0.1438f,-0.980878f},{0.0787381f,0.0763682f,-0.993966f},{0.0487437f,-0.0156549f,-0.998689f},
+{0.0485044f,-0.100192f,-0.993785f},{0.0679649f,-0.15604f,-0.98541f},{0.0968914f,-0.187447f,-0.977484f},
+{0.138234f,-0.202344f,-0.969509f},{0.198197f,-0.193848f,-0.960802f},{0.266924f,-0.14981f,-0.952002f},
+{0.319768f,-0.0777643f,-0.944299f},{0.342966f,-0.00360353f,-0.939341f},{0.342411f,0.0569724f,-0.937821f},
+{0.325776f,0.106482f,-0.939432f},{0.293316f,0.147691f,-0.944539f},{0.246219f,0.173439f,-0.95357f},
+{0.258307f,0.38096f,0.887776f},{0.252871f,0.2404f,0.937157f},{0.313992f,0.324677f,0.892185f},
+{0.296928f,0.216441f,0.930047f},{0.383648f,0.254797f,0.887633f},{0.329608f,0.178289f,0.927131f},
+{0.430851f,0.18085f,0.884116f},{0.34441f,0.140222f,0.928288f},{0.454555f,0.107789f,0.884173f},
+{0.345761f,0.109338f,0.93193f},{0.451254f,0.028508f,0.89194f},{0.336206f,0.076578f,0.93867f},
+{0.408498f,-0.0677303f,0.910243f},{0.305382f,0.0335756f,0.951638f},{0.312714f,-0.173985f,0.933777f},
+{0.246924f,-0.00527788f,0.96902f},{0.174674f,-0.256876f,0.950528f},{0.18167f,-0.0170678f,0.983211f},
+{0.0295312f,-0.282552f,0.958797f},{0.135737f,-0.00345967f,0.990739f},{-0.0917341f,-0.234033f,0.967891f},
+{0.110558f,0.0209796f,0.993648f},{-0.167189f,-0.105758f,0.980236f},{0.0961791f,0.0576956f,0.99369f},
+{-0.172185f,0.0803977f,0.981778f},{0.0956933f,0.115643f,0.988671f},{-0.102757f,0.255574f,0.961313f},
+{0.118853f,0.180455f,0.976376f},{0.00684396f,0.362472f,0.93197f},{0.16015f,0.225882f,0.9609f},
+{0.121457f,0.396353f,0.910029f},{0.20652f,0.244312f,0.94745f},{0.347082f,0.515074f,0.78373f},
+{0.249506f,0.635311f,0.730839f},{0.478643f,0.367304f,0.797489f},{0.559961f,0.216863f,0.799634f},
+{0.602861f,0.078088f,0.794015f},{0.610046f,-0.069683f,0.789296f},{0.551611f,-0.257101f,0.793489f},
+{0.38207f,-0.465685f,0.798223f},{0.121673f,-0.612952f,0.780695f},{-0.146927f,-0.650919f,0.744793f},
+{-0.385172f,-0.58077f,0.717181f},{-0.58668f,-0.374453f,0.718047f},{-0.670595f,-0.00636265f,0.741796f},
+{-0.540432f,0.379137f,0.751124f},{-0.289466f,0.600903f,0.745067f},{-0.0436793f,0.662498f,0.747789f},
+{0.140618f,0.490361f,0.8601f},{0.109243f,0.507979f,0.854414f},{0.380531f,0.755905f,0.532733f},
+{0.225859f,0.883504f,0.410377f},{0.59605f,0.523204f,0.609083f},{0.713032f,0.266278f,0.6486f},
+{0.762247f,0.0288195f,0.646645f},{0.762093f,-0.214057f,0.61106f},{0.668216f,-0.496763f,0.553817f},
+{0.416626f,-0.766605f,0.48861f},{0.0545419f,-0.90563f,0.420547f},{-0.29318f,-0.889718f,0.349925f},
+{-0.591552f,-0.758995f,0.272017f},{-0.848551f,-0.492341f,0.193807f},{-0.985865f,-0.0582799f,0.157078f},
+{-0.881971f,0.429136f,0.194856f},{-0.581895f,0.76394f,0.278916f},{-0.238697f,0.899997f,0.364733f},
+{0.00501218f,0.789307f,0.613979f},{-0.0251125f,0.806017f,0.59136f},{0.362682f,0.922533f,0.131889f},
+{0.167637f,0.985742f,-0.0145074f},{0.675042f,0.684053f,0.276386f},{0.861957f,0.33668f,0.379047f},
+{0.919481f,-0.0263853f,0.392249f},{0.871276f,-0.372611f,0.319436f},{0.697519f,-0.689005f,0.196823f},
+{0.38794f,-0.918076f,0.0814794f},{0.00830921f,-0.999934f,0.00788592f},{-0.353657f,-0.934174f,-0.0473814f},
+{-0.658559f,-0.741582f,-0.127893f},{-0.873379f,-0.428149f,-0.232159f},{-0.952936f,-0.0310616f,-0.301577f},
+{-0.881119f,0.37659f,-0.286025f},{-0.666622f,0.718532f,-0.198309f},{-0.352833f,0.93106f,-0.0929322f},
+{-0.135999f,0.975217f,0.174515f},{-0.140791f,0.975534f,0.16885f},{0.258662f,0.909417f,-0.32566f},
+{0.0662442f,0.901289f,-0.428124f},{0.621608f,0.751307f,-0.221679f},{0.914602f,0.386148f,-0.119974f},
+{0.992511f,-0.088488f,-0.084218f},{0.859627f,-0.492181f,-0.137109f},{0.607892f,-0.758345f,-0.235333f},
+{0.300655f,-0.897575f,-0.322437f},{-0.0284315f,-0.925422f,-0.37787f},{-0.354203f,-0.835474f,-0.420148f},
+{-0.628523f,-0.617805f,-0.47252f},{-0.789277f,-0.310692f,-0.529634f},{-0.825511f,0.0090443f,-0.564314f},
+{-0.769059f,0.307146f,-0.560545f},{-0.622245f,0.583594f,-0.521756f},{-0.380717f,0.799662f,-0.464322f},
+{-0.209136f,0.944539f,-0.253197f},{-0.207913f,0.945204f,-0.251717f},{0.0829051f,0.69251f,-0.716628f},
+{-0.0583377f,0.651534f,-0.756373f},{0.355182f,0.592306f,-0.723201f},{0.614659f,0.31377f,-0.7237f},
+{0.712098f,-0.103352f,-0.694431f},{0.595913f,-0.454188f,-0.66227f},{0.38585f,-0.645546f,-0.659083f},
+{0.157323f,-0.719684f,-0.676243f},{-0.0788719f,-0.709682f,-0.700093f},{-0.315478f,-0.613671f,-0.723796f},
+{-0.515947f,-0.42928f,-0.741294f},{-0.633864f,-0.195427f,-0.748348f},{-0.66279f,0.0306839f,-0.748176f},
+{-0.624867f,0.232632f,-0.745268f},{-0.526051f,0.42017f,-0.73941f},{-0.364352f,0.57901f,-0.72938f},
+{-0.238862f,0.777411f,-0.581874f},{-0.250693f,0.765838f,-0.592153f},{-0.0872439f,0.389796f,-0.916759f},
+{-0.149617f,0.363837f,-0.919368f},{0.0497727f,0.321156f,-0.945718f},{0.170031f,0.164068f,-0.971685f},
+{0.229274f,-0.0548795f,-0.971813f},{0.203035f,-0.255423f,-0.94527f},{0.116827f,-0.381483f,-0.916964f},
+{0.00225283f,-0.43449f,-0.900674f},{-0.127092f,-0.427409f,-0.89508f},{-0.260125f,-0.364224f,-0.894246f},
+{-0.375837f,-0.25252f,-0.891617f},{-0.451585f,-0.11593f,-0.884664f},{-0.479573f,0.0177852f,-0.877322f},
+{-0.465354f,0.137133f,-0.874437f},{-0.414091f,0.242881f,-0.877233f},{-0.328899f,0.330658f,-0.884585f},
+{-0.255655f,0.510592f,-0.820937f},{-0.269217f,0.496777f,-0.825067f},{-0.190196f,0.174579f,-0.966099f},
+{-0.13115f,0.1438f,-0.980878f},{-0.0787381f,0.0763682f,-0.993966f},{-0.0487437f,-0.0156549f,-0.998689f},
+{-0.0485044f,-0.100192f,-0.993785f},{-0.0679649f,-0.15604f,-0.98541f},{-0.0968914f,-0.187447f,-0.977484f},
+{-0.138234f,-0.202344f,-0.969509f},{-0.198197f,-0.193848f,-0.960802f},{-0.266924f,-0.14981f,-0.952002f},
+{-0.319768f,-0.0777645f,-0.944299f},{-0.342966f,-0.00360326f,-0.939341f},{-0.342412f,0.0569721f,-0.937821f},
+{-0.325776f,0.106482f,-0.939432f},{-0.293316f,0.147691f,-0.944539f},{-0.246219f,0.173439f,-0.95357f}
+};
+static GLfloat textures [152][2] = {
+{0.0f,1.0f},{0.0f,0.875f},{0.0625f,0.875f},
+{0.0625f,1.0f},{0.125f,0.875f},{0.125f,1.0f},
+{0.1875f,0.875f},{0.1875f,1.0f},{0.25f,0.875f},
+{0.25f,1.0f},{0.3125f,0.875f},{0.3125f,1.0f},
+{0.375f,0.875f},{0.375f,1.0f},{0.4375f,0.875f},
+{0.4375f,1.0f},{0.5f,0.875f},{0.5f,1.0f},
+{0.5625f,0.875f},{0.5625f,1.0f},{0.625f,0.875f},
+{0.625f,1.0f},{0.6875f,0.875f},{0.6875f,1.0f},
+{0.75f,0.875f},{0.75f,1.0f},{0.8125f,0.875f},
+{0.8125f,1.0f},{0.875f,0.875f},{0.875f,1.0f},
+{0.9375f,0.875f},{0.9375f,1.0f},{1.0f,0.875f},
+{0.0625f,0.75f},{0.0f,0.75f},{0.125f,0.75f},
+{0.1875f,0.75f},{0.25f,0.75f},{0.3125f,0.75f},
+{0.375f,0.75f},{0.4375f,0.75f},{0.5f,0.75f},
+{0.5625f,0.75f},{0.625f,0.75f},{0.6875f,0.75f},
+{0.75f,0.75f},{0.8125f,0.75f},{0.875f,0.75f},
+{0.9375f,0.75f},{1.0f,0.75f},{0.0625f,0.625f},
+{0.0f,0.625f},{0.125f,0.625f},{0.1875f,0.625f},
+{0.25f,0.625f},{0.3125f,0.625f},{0.375f,0.625f},
+{0.4375f,0.625f},{0.5f,0.625f},{0.5625f,0.625f},
+{0.625f,0.625f},{0.6875f,0.625f},{0.75f,0.625f},
+{0.8125f,0.625f},{0.875f,0.625f},{0.9375f,0.625f},
+{1.0f,0.625f},{0.0625f,0.5f},{0.0f,0.5f},
+{0.125f,0.5f},{0.1875f,0.5f},{0.25f,0.5f},
+{0.3125f,0.5f},{0.375f,0.5f},{0.4375f,0.5f},
+{0.5f,0.5f},{0.5625f,0.5f},{0.625f,0.5f},
+{0.6875f,0.5f},{0.75f,0.5f},{0.8125f,0.5f},
+{0.875f,0.5f},{0.9375f,0.5f},{1.0f,0.5f},
+{0.0625f,0.375f},{0.0f,0.375f},{0.125f,0.375f},
+{0.1875f,0.375f},{0.25f,0.375f},{0.3125f,0.375f},
+{0.375f,0.375f},{0.4375f,0.375f},{0.5f,0.375f},
+{0.5625f,0.375f},{0.625f,0.375f},{0.6875f,0.375f},
+{0.75f,0.375f},{0.8125f,0.375f},{0.875f,0.375f},
+{0.9375f,0.375f},{1.0f,0.375f},{0.0625f,0.25f},
+{0.0f,0.25f},{0.125f,0.25f},{0.1875f,0.25f},
+{0.25f,0.25f},{0.3125f,0.25f},{0.375f,0.25f},
+{0.4375f,0.25f},{0.5f,0.25f},{0.5625f,0.25f},
+{0.625f,0.25f},{0.6875f,0.25f},{0.75f,0.25f},
+{0.8125f,0.25f},{0.875f,0.25f},{0.9375f,0.25f},
+{1.0f,0.25f},{0.0625f,0.125f},{0.0f,0.125f},
+{0.125f,0.125f},{0.1875f,0.125f},{0.25f,0.125f},
+{0.3125f,0.125f},{0.375f,0.125f},{0.4375f,0.125f},
+{0.5f,0.125f},{0.5625f,0.125f},{0.625f,0.125f},
+{0.6875f,0.125f},{0.75f,0.125f},{0.8125f,0.125f},
+{0.875f,0.125f},{0.9375f,0.125f},{1.0f,0.125f},
+{0.0f,1.25145e-008f},{0.0625f,1.25145e-008f},{0.125f,1.25145e-008f},
+{0.1875f,1.25145e-008f},{0.25f,1.25145e-008f},{0.3125f,1.25145e-008f},
+{0.375f,1.25145e-008f},{0.4375f,1.25145e-008f},{0.5f,1.25145e-008f},
+{0.5625f,1.25145e-008f},{0.625f,1.25145e-008f},{0.6875f,1.25145e-008f},
+{0.75f,1.25145e-008f},{0.8125f,1.25145e-008f},{0.875f,1.25145e-008f},
+{0.9375f,1.25145e-008f},{0.9375f,1.25145e-008f}
+};
+/*Material indicies*/
+/*{material index,face count}*/
+static int material_ref [9][2] = {
+{0,94},
+{1,4},
+{0,28},
+{1,4},
+{0,188},
+{1,4},
+{0,28},
+{1,4},
+{0,94}
+};
+static void MyMaterial(GLenum mode,GLfloat *f,GLfloat alpha)
+{
+ GLfloat d[4];
+ d[0]=f[0];
+ d[1]=f[1];
+ d[2]=f[2];
+ d[3]=alpha;
+ glMaterialfv (GL_FRONT_AND_BACK,mode,d);
+}
+/*
+ *  SelectMaterial uses OpenGL commands to define facet colors.
+ *
+ *  Returns:
+ *    Nothing
+ */
+
+static void SelectMaterial(int i)
+{
+  //
+  // Define the reflective properties of the 3D Object faces.
+  //
+  glEnd();
+  GLfloat alpha=materials[i].alpha;
+  MyMaterial (GL_AMBIENT, materials[i].ambient,alpha);
+  MyMaterial (GL_DIFFUSE, materials[i].diffuse,alpha);
+  MyMaterial (GL_SPECULAR, materials[i].specular,alpha);
+  MyMaterial (GL_EMISSION, materials[i].emission,alpha);
+  glMaterialf (GL_FRONT_AND_BACK,GL_SHININESS,materials[i].phExp);
+  glBegin(GL_TRIANGLES);
+
+};
+
+static GLint Gen3DObjectList()
+{
+ int i;
+ int j;
+
+ GLint lid=glGenLists(1);
+	int mcount=0;
+	int mindex=0;
+   glNewList(lid, GL_COMPILE);
+
+    glBegin (GL_TRIANGLES);
+      for(i=0;i<sizeof(face_indicies)/sizeof(face_indicies[0]);i++)
+       {
+      if(!mcount)
+       {
+        SelectMaterial(material_ref[mindex][0]);
+        mcount=material_ref[mindex][1];
+        mindex++;
+       }
+       mcount--;
+       for(j=0;j<3;j++)
+        {
+          int vi=face_indicies[i][j];
+          int ni=face_indicies[i][j+3];//Normal index
+          int ti=face_indicies[i][j+6];//Texture index
+           glNormal3f (normals[ni][0],normals[ni][1],normals[ni][2]);
+           glTexCoord2f(textures[ti][0],textures[ti][1]);
+           glVertex3f (vertices[vi][0],vertices[vi][1],vertices[vi][2]);
+        }
+       }
+    glEnd ();
+
+   glEndList();
+   return lid;
+};
+
+void initEyes(){
+	initLids();
+	eyes = Gen3DObjectList();
+}
+
+void drawEyes(GLfloat angle, GLfloat yangle){
+	glPushMatrix();
+	glTranslatef(0, 0, .8);
+	glTranslatef(0,.35,0);
+	glRotatef(-90, 1.0, 0.0, 0.0);
+	glRotatef(yangle, 0.0, 0.0, -1.0);
+	glRotatef(angle, 0, 1.0, 0.0);
+	drawLids(5);
+	glCallList(eyes);
+
+	glPopMatrix();
+};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/eyes.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,3 @@
+void initEyes();
+
+void drawEyes(GLfloat angle, GLfloat yangle);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/face.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,38 @@
+#include "face.h"
+#include "sharky.h"
+#include "doggy.h"
+#include <assert.h>
+
+FACE init_face(KIND kind)
+{
+	FACE face;
+	face = (FACE)malloc(sizeof(*face));
+
+	switch(kind){
+		case DOG:
+			init_dog(face);			
+			break;
+		case SHARK:
+			init_shark(face);
+			break;
+		default:
+			printf("default face\n");
+			init_dog(face);
+			break;
+	}			
+	return face;	
+}
+
+void draw_face(FACE face, GLfloat zrot, GLfloat yrot, BOOL left_eye, BOOL right_eye, GLfloat mouth_open, DIRECTION dir, OUTPUT_MODE mode){
+	face->draw_func(face, zrot, yrot, left_eye, right_eye, mouth_open, dir, mode);
+}
+
+void change_materials(FACE f, int* mats, int num_change){
+	int i;
+	assert(!(num_change<0 || num_change>NUM_PARTS));
+	for(i=0;i<num_change;i++){
+		f->mat_indeces[i]=mats[i];
+	}
+}
+
+void free_face(FACE f){}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/face.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,44 @@
+#ifndef __FACE_H__
+#define __FACE_H__
+
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include "glm.h"
+
+#define NUM_PARTS 10
+#define DOG_SHARK_CHANGE 5
+#define CRAZY_COUNT 12
+#define MAX_EYE_POP 1.3
+#define EYE_TIME 120
+#define MAX_FILE_LEN 64
+#define ANGLE_INC 60
+
+typedef enum {DOG, SHARK} KIND;
+typedef int BOOL;
+typedef enum {UP, DOWN, CONST} DIRECTION;
+typedef enum {NORMAL, CRAZY1, CRAZY2, CRAZY3} OUTPUT_MODE;
+
+struct face_struct {
+	char* name;
+	KIND my_kind;
+	void* char_struct;
+	GLint* mat_indeces;
+	GLMmat_str* materials;
+	OUTPUT_MODE my_mode;
+	int eye_count, crazy_count;	
+	void (*draw_func)(struct face_struct*, GLfloat, GLfloat, BOOL, BOOL, GLfloat, DIRECTION, OUTPUT_MODE);
+	float curr_z_angle, curr_eye_pop;
+};
+
+typedef struct face_struct* FACE;
+typedef enum {APPENDAGE, HEAD, LIDS, LEFT_IRIS, RIGHT_IRIS, EYES, PUPIL, EXTRA1, EXTRA2, EXTRA3} PART;
+
+FACE init_face(KIND kind);
+
+FACE copy_face(FACE f);
+
+void draw_face(FACE face, GLfloat zrot, GLfloat yrot, BOOL left_eye, BOOL right_eye, GLfloat mouth_open, DIRECTION dir, OUTPUT_MODE mode);
+
+void change_materials(FACE face, int* mats, int num_change); 
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/filter.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,124 @@
+#include "cc_interface.h"
+#include "filter.h"
+#include "stdio.h"
+
+#define coef_0 .0022
+#define coef_1 .0174
+#define coef_2 .0737
+#define coef_3 .1662
+#define coef_4 .2405
+
+filter_bank* Filter_Initialize (void)
+{
+	filter_bank* new_filter;
+	new_filter=(filter_bank*)malloc(sizeof(filter_bank));
+	memset(new_filter,0,sizeof(filter_bank));
+//	fprintf(stderr,"RESETTING FILTER BANK *******************\n");
+	return new_filter;
+}
+
+void Filter_Destroy (filter_bank *f)
+{
+	free(f);
+}
+
+void filter(struct cc_features *features, filter_bank *f)
+{
+
+f->head_size[9]=f->head_size[8];
+f->head_size[8]=f->head_size[7];
+f->head_size[7]=f->head_size[6];
+f->head_size[6]=f->head_size[5];
+f->head_size[5]=f->head_size[4];
+f->head_size[4]=f->head_size[3];
+f->head_size[3]=f->head_size[2];
+f->head_size[2]=f->head_size[1];
+f->head_size[1]=f->head_size[0];
+f->head_size[0]=features->head_size;
+
+features->head_size=(guint8) ( (coef_0*(f->head_size[0]+f->head_size[9]))+(coef_1*(f->head_size[1]+f->head_size[8])) +
+			(coef_2*(f->head_size[2]+f->head_size[7])) + (coef_3*(f->head_size[3]+f->head_size[6]))
+				+ (coef_4*(f->head_size[4]+f->head_size[5])));
+				
+
+				
+f->head_z_rot[9]=f->head_z_rot[8];
+f->head_z_rot[8]=f->head_z_rot[7];
+f->head_z_rot[7]=f->head_z_rot[6];
+f->head_z_rot[6]=f->head_z_rot[5];
+f->head_z_rot[5]=f->head_z_rot[4];
+f->head_z_rot[4]=f->head_z_rot[3];
+f->head_z_rot[3]=f->head_z_rot[2];
+f->head_z_rot[2]=f->head_z_rot[1];
+f->head_z_rot[1]=f->head_z_rot[0];
+f->head_z_rot[0]=features->head_z_rot;
+
+features->head_z_rot=(guint8) ( (coef_0*(f->head_z_rot[0]+f->head_z_rot[9]))+(coef_1*(f->head_z_rot[1]+f->head_z_rot[8])) +
+			(coef_2*(f->head_z_rot[2]+f->head_z_rot[7])) + (coef_3*(f->head_z_rot[3]+f->head_z_rot[6]))
+				+ (coef_4*(f->head_z_rot[4]+f->head_z_rot[5])));
+
+				
+f->head_y_rot[9]=f->head_y_rot[8];
+f->head_y_rot[8]=f->head_y_rot[7];
+f->head_y_rot[7]=f->head_y_rot[6];
+f->head_y_rot[6]=f->head_y_rot[5];
+f->head_y_rot[5]=f->head_y_rot[4];
+f->head_y_rot[4]=f->head_y_rot[3];
+f->head_y_rot[3]=f->head_y_rot[2];
+f->head_y_rot[2]=f->head_y_rot[1];
+f->head_y_rot[1]=f->head_y_rot[0];
+f->head_y_rot[0]=features->head_y_rot;
+
+features->head_y_rot=(guint8) ( (coef_0*(f->head_y_rot[0]+f->head_y_rot[9]))+(coef_1*(f->head_y_rot[1]+f->head_y_rot[8])) +
+			(coef_2*(f->head_y_rot[2]+f->head_y_rot[7])) + (coef_3*(f->head_y_rot[3]+f->head_y_rot[6]))
+				+ (coef_4*(f->head_y_rot[4]+f->head_y_rot[5])));				
+ 
+
+f->xfilt[9]=f->xfilt[8];
+f->xfilt[8]=f->xfilt[7];
+f->xfilt[7]=f->xfilt[6];
+f->xfilt[6]=f->xfilt[5];
+f->xfilt[5]=f->xfilt[4];
+f->xfilt[4]=f->xfilt[3];
+f->xfilt[3]=f->xfilt[2];
+f->xfilt[2]=f->xfilt[1];
+f->xfilt[1]=f->xfilt[0];
+f->xfilt[0]=features->x;
+
+features->x=(guint8) ( (coef_0*(f->xfilt[0]+f->xfilt[9]))+(coef_1*(f->xfilt[1]+f->xfilt[8])) +
+			(coef_2*(f->xfilt[2]+f->xfilt[7])) + (coef_3*(f->xfilt[3]+f->xfilt[6]))
+				+ (coef_4*(f->xfilt[4]+f->xfilt[5])));
+				
+				
+f->yfilt[9]=f->yfilt[8];
+f->yfilt[8]=f->yfilt[7];
+f->yfilt[7]=f->yfilt[6];
+f->yfilt[6]=f->yfilt[5];
+f->yfilt[5]=f->yfilt[4];
+f->yfilt[4]=f->yfilt[3];
+f->yfilt[3]=f->yfilt[2];
+f->yfilt[2]=f->yfilt[1];
+f->yfilt[1]=f->yfilt[0];
+f->yfilt[0]=features->y;
+
+features->y=(guint8) ( (coef_0*(f->yfilt[0]+f->yfilt[9]))+(coef_1*(f->yfilt[1]+f->yfilt[8])) +
+			(coef_2*(f->yfilt[2]+f->yfilt[7])) + (coef_3*(f->yfilt[3]+f->yfilt[6]))
+				+ (coef_4*(f->yfilt[4]+f->yfilt[5])));
+				
+				
+f->mouth_open[9]=f->mouth_open[8];
+f->mouth_open[8]=f->mouth_open[7];
+f->mouth_open[7]=f->mouth_open[6];
+f->mouth_open[6]=f->mouth_open[5];
+f->mouth_open[5]=f->mouth_open[4];
+f->mouth_open[4]=f->mouth_open[3];
+f->mouth_open[3]=f->mouth_open[2];
+f->mouth_open[2]=f->mouth_open[1];
+f->mouth_open[1]=f->mouth_open[0];
+f->mouth_open[0]=features->mouth_open;
+
+features->mouth_open=(guint8) ( (coef_0*(f->mouth_open[0]+f->mouth_open[9]))+(coef_1*(f->mouth_open[1]+f->mouth_open[8])) +
+			(coef_2*(f->mouth_open[2]+f->mouth_open[7])) + (coef_3*(f->mouth_open[3]+f->mouth_open[6]))
+				+ (coef_4*(f->mouth_open[4]+f->mouth_open[5])));				
+				
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/filter.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,19 @@
+#ifndef __FILTER_H__
+#define __FILTER_H__
+
+struct cc_features;
+
+typedef struct filter_bank {
+	float head_size[10];
+	float head_z_rot[10];
+	float head_y_rot[10];
+	float mouth_open[10];
+	float xfilt[10];
+	float yfilt[10];
+} filter_bank;	
+
+filter_bank* Filter_Initialize (void);
+void Filter_Destroy (filter_bank *f);
+void filter(struct cc_features *instance, filter_bank *f);
+
+#endif /* __FILTER_H__ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/glm.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,1971 @@
+/*    
+      glm.c
+      Nate Robins, 1997
+      ndr@pobox.com, http://www.pobox.com/~ndr/
+ 
+      Wavefront OBJ model file format reader/writer/manipulator.
+
+      Includes routines for generating smooth normals with
+      preservation of edges, welding redundant vertices & texture
+      coordinate generation (spheremap and planar projections) + more.
+
+ */
+
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include "glm.h"
+
+
+#define T(x) (model->triangles[(x)])
+
+
+/* _GLMnode: general purpose node
+ */
+typedef struct _GLMnode {
+  GLuint           index;
+  GLboolean        averaged;
+  struct _GLMnode* next;
+} GLMnode;
+
+
+/* glmMax: returns the maximum of two floats */
+static GLfloat
+glmMax(GLfloat a, GLfloat b) 
+{
+  if (b > a)
+    return b;
+  return a;
+}
+
+/* glmAbs: returns the absolute value of a float */
+static GLfloat
+glmAbs(GLfloat f)
+{
+  if (f < 0)
+    return -f;
+  return f;
+}
+
+/* glmDot: compute the dot product of two vectors
+ *
+ * u - array of 3 GLfloats (GLfloat u[3])
+ * v - array of 3 GLfloats (GLfloat v[3])
+ */
+static GLfloat
+glmDot(GLfloat* u, GLfloat* v)
+{
+  assert(u); assert(v);
+
+  return u[0]*v[0] + u[1]*v[1] + u[2]*v[2];
+}
+
+/* glmCross: compute the cross product of two vectors
+ *
+ * u - array of 3 GLfloats (GLfloat u[3])
+ * v - array of 3 GLfloats (GLfloat v[3])
+ * n - array of 3 GLfloats (GLfloat n[3]) to return the cross product in
+ */
+static GLvoid
+glmCross(GLfloat* u, GLfloat* v, GLfloat* n)
+{
+  assert(u); assert(v); assert(n);
+
+  n[0] = u[1]*v[2] - u[2]*v[1];
+  n[1] = u[2]*v[0] - u[0]*v[2];
+  n[2] = u[0]*v[1] - u[1]*v[0];
+}
+
+/* glmNormalize: normalize a vector
+ *
+ * v - array of 3 GLfloats (GLfloat v[3]) to be normalized
+ */
+static GLvoid
+glmNormalize(GLfloat* v)
+{
+  GLfloat l;
+
+  assert(v);
+
+  l = (GLfloat)sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]);
+  v[0] /= l;
+  v[1] /= l;
+  v[2] /= l;
+}
+
+/* glmEqual: compares two vectors and returns GL_TRUE if they are
+ * equal (within a certain threshold) or GL_FALSE if not. An epsilon
+ * that works fairly well is 0.000001.
+ *
+ * u - array of 3 GLfloats (GLfloat u[3])
+ * v - array of 3 GLfloats (GLfloat v[3]) 
+ */
+static GLboolean
+glmEqual(GLfloat* u, GLfloat* v, GLfloat epsilon)
+{
+  if (glmAbs(u[0] - v[0]) < epsilon &&
+      glmAbs(u[1] - v[1]) < epsilon &&
+      glmAbs(u[2] - v[2]) < epsilon) 
+  {
+    return GL_TRUE;
+  }
+  return GL_FALSE;
+}
+
+/* glmWeldVectors: eliminate (weld) vectors that are within an
+ * epsilon of each other.
+ *
+ * vectors    - array of GLfloat[3]'s to be welded
+ * numvectors - number of GLfloat[3]'s in vectors
+ * epsilon    - maximum difference between vectors 
+ *
+ */
+GLfloat*
+glmWeldVectors(GLfloat* vectors, GLuint* numvectors, GLfloat epsilon)
+{
+  GLfloat* copies;
+  GLuint   copied;
+  GLuint   i, j;
+
+  copies = (GLfloat*)malloc(sizeof(GLfloat) * 3 * (*numvectors + 1));
+  memcpy(copies, vectors, (sizeof(GLfloat) * 3 * (*numvectors + 1)));
+
+  copied = 1;
+  for (i = 1; i <= *numvectors; i++) {
+    for (j = 1; j <= copied; j++) {
+      if (glmEqual(&vectors[3 * i], &copies[3 * j], epsilon)) {
+	goto duplicate;
+      }
+    }
+
+    /* must not be any duplicates -- add to the copies array */
+    copies[3 * copied + 0] = vectors[3 * i + 0];
+    copies[3 * copied + 1] = vectors[3 * i + 1];
+    copies[3 * copied + 2] = vectors[3 * i + 2];
+    j = copied;				/* pass this along for below */
+    copied++;
+
+  duplicate:
+    /* set the first component of this vector to point at the correct
+       index into the new copies array */
+    vectors[3 * i + 0] = (GLfloat)j;
+  }
+
+  *numvectors = copied-1;
+  return copies;
+}
+
+/* glmFindGroup: Find a group in the model
+ */
+GLMgroup*
+glmFindGroup(GLMmodel* model, char* name)
+{
+  GLMgroup* group;
+
+  assert(model);
+
+  group = model->groups;
+  while(group) {
+    if (!strcmp(name, group->name))
+      break;
+    group = group->next;
+  }
+
+  return group;
+}
+
+/* glmAddGroup: Add a group to the model
+ */
+GLMgroup*
+glmAddGroup(GLMmodel* model, char* name)
+{
+  GLMgroup* group;
+
+  group = glmFindGroup(model, name);
+  if (!group) {
+    group = (GLMgroup*)malloc(sizeof(GLMgroup));
+    group->name = strdup(name);
+    group->material = 0;
+    group->numtriangles = 0;
+    group->triangles = NULL;
+    group->next = model->groups;
+    model->groups = group;
+    model->numgroups++;
+  }
+
+  return group;
+}
+
+/* glmFindGroup: Find a material in the model
+ */
+GLuint
+glmFindMaterial(GLMmodel* model, char* name)
+{
+  GLuint i;
+
+  /* XXX doing a linear search on a string key'd list is pretty lame,
+     but it works and is fast enough for now. */
+  for (i = 0; i < model->nummaterials; i++) {
+    if (!strcmp(model->materials[i].name, name))
+      goto found;
+  }
+
+  /* didn't find the name, so print a warning and return the default
+     material (0). */
+  //fprintf(stderr, "glmFindMaterial():  can't find material \"%s\".\n", name);
+  i = 0;
+
+found:
+  return i;
+}
+
+
+/* glmDirName: return the directory given a path
+ *
+ * path - filesystem path
+ *
+ * NOTE: the return value should be free'd.
+ */
+static char*
+glmDirName(char* path)
+{
+  char* dir;
+  char* s;
+
+  dir = strdup(path);
+
+  s = strrchr(dir, '/');
+  if (s)
+    s[1] = '\0';
+  else
+    dir[0] = '\0';
+
+  return dir;
+}
+
+
+void glmSetMat(GLMmat_str* mats, GLint index){
+	GLMmaterial* material;
+	assert(!(index<0 || index >=mats->num_materials));
+      	material = &mats->materials[index];
+      	glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, material->ambient);
+      	glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, material->diffuse);
+      	glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, material->specular);
+      	glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, material->shininess);
+}
+
+
+GLMmat_str* glmMTL(char* name){
+  FILE* file;
+  char* dir;
+  char* filename;
+  char  buf[128];
+  GLuint nummaterials, i;
+  GLMmat_str* ret;
+
+  file = fopen(name, "r");
+  if (!file) {
+    fprintf(stderr, "glmReadMTL() failed: can't open material file \"%s\".\n",
+	    name);
+    exit(1);
+  }
+
+  /* count the number of materials in the file */
+  nummaterials = 1;
+  while(fscanf(file, "%s", buf) != EOF) {
+    switch(buf[0]) {
+    case '#':				/* comment */
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    case 'n':				/* newmtl */
+      fgets(buf, sizeof(buf), file);
+      nummaterials++;
+      sscanf(buf, "%s %s", buf, buf);
+      break;
+    default:
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    }
+  }
+
+  rewind(file);
+
+  ret = (GLMmat_str*)malloc(sizeof(GLMmat_str));
+  ret->materials = (GLMmaterial*)malloc(sizeof(GLMmaterial) * nummaterials);
+  ret->num_materials = nummaterials;
+
+  /* set the default material */
+  for (i = 0; i < nummaterials; i++) {
+    ret->materials[i].name = NULL;
+    ret->materials[i].shininess = 65.0;
+    ret->materials[i].diffuse[0] = 0.8;
+    ret->materials[i].diffuse[1] = 0.1;
+    ret->materials[i].diffuse[2] = 0.1;
+    ret->materials[i].diffuse[3] = 1.0;
+    ret->materials[i].ambient[0] = 0.2;
+    ret->materials[i].ambient[1] = 0.2;
+    ret->materials[i].ambient[2] = 0.2;
+    ret->materials[i].ambient[3] = 1.0;
+    ret->materials[i].specular[0] = 0.0;
+    ret->materials[i].specular[1] = 0.0;
+    ret->materials[i].specular[2] = 0.0;
+    ret->materials[i].specular[3] = 1.0;
+  }
+  ret->materials[0].name = strdup("default");
+
+  /* now, read in the data */
+  nummaterials = 0;
+  while(fscanf(file, "%s", buf) != EOF) {
+    switch(buf[0]) {
+    case '#':				/* comment */
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    case 'n':				/* newmtl */
+      fgets(buf, sizeof(buf), file);
+      sscanf(buf, "%s %s", buf, buf);
+      nummaterials++;
+      ret->materials[nummaterials].name = strdup(buf);
+      break;
+    case 'N':
+      fscanf(file, "%f", &ret->materials[nummaterials].shininess);
+      /* wavefront shininess is from [0, 1000], so scale for OpenGL */
+      ret->materials[nummaterials].shininess /= 1000.0;
+      ret->materials[nummaterials].shininess *= 128.0;
+      break;
+    case 'K':
+      switch(buf[1]) {
+      case 'd':
+	fscanf(file, "%f %f %f",
+	       &ret->materials[nummaterials].diffuse[0],
+	       &ret->materials[nummaterials].diffuse[1],
+	       &ret->materials[nummaterials].diffuse[2]);
+	break;
+      case 's':
+	fscanf(file, "%f %f %f",
+	       &ret->materials[nummaterials].specular[0],
+	       &ret->materials[nummaterials].specular[1],
+	       &ret->materials[nummaterials].specular[2]);
+	break;
+      case 'a':
+	fscanf(file, "%f %f %f",
+	       &ret->materials[nummaterials].ambient[0],
+	       &ret->materials[nummaterials].ambient[1],
+	       &ret->materials[nummaterials].ambient[2]);
+	break;
+      default:
+	/* eat up rest of line */
+	fgets(buf, sizeof(buf), file);
+	break;
+      }
+      break;
+    default:
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    }
+  }
+	return ret;
+}
+
+//^^^^charlie^^^^^
+
+/* glmReadMTL: read a wavefront material library file
+ *
+ * model - properly initialized GLMmodel structure
+ * name  - name of the material library
+ */
+static GLvoid
+glmReadMTL(GLMmodel* model, char* name)
+{
+  FILE* file;
+  char* dir;
+  char* filename;
+  char  buf[128];
+  GLuint nummaterials, i;
+
+  dir = glmDirName(model->pathname);
+  filename = (char*)malloc(sizeof(char) * (strlen(dir) + strlen(name) + 1));
+  strcpy(filename, dir);
+  strcat(filename, name);
+  free(dir);
+
+  file = fopen(filename, "r");
+  if (!file) {
+    fprintf(stderr, "glmReadMTL() failed: can't open material file \"%s\".\n",
+	    filename);
+    exit(1);
+  }
+  free(filename);
+
+  /* count the number of materials in the file */
+  nummaterials = 1;
+  while(fscanf(file, "%s", buf) != EOF) {
+    switch(buf[0]) {
+    case '#':				/* comment */
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    case 'n':				/* newmtl */
+      fgets(buf, sizeof(buf), file);
+      nummaterials++;
+      sscanf(buf, "%s %s", buf, buf);
+      break;
+    default:
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    }
+  }
+
+  rewind(file);
+  model->materials = (GLMmaterial*)malloc(sizeof(GLMmaterial) * nummaterials);
+  model->nummaterials = nummaterials;
+
+  /* set the default material */
+  for (i = 0; i < nummaterials; i++) {
+    model->materials[i].name = NULL;
+    model->materials[i].shininess = 65.0;
+    model->materials[i].diffuse[0] = 0.8;
+    model->materials[i].diffuse[1] = 0.1;
+    model->materials[i].diffuse[2] = 0.1;
+    model->materials[i].diffuse[3] = 1.0;
+    model->materials[i].ambient[0] = 0.2;
+    model->materials[i].ambient[1] = 0.2;
+    model->materials[i].ambient[2] = 0.2;
+    model->materials[i].ambient[3] = 1.0;
+    model->materials[i].specular[0] = 0.0;
+    model->materials[i].specular[1] = 0.0;
+    model->materials[i].specular[2] = 0.0;
+    model->materials[i].specular[3] = 1.0;
+  }
+  model->materials[0].name = strdup("default");
+
+  /* now, read in the data */
+  nummaterials = 0;
+  while(fscanf(file, "%s", buf) != EOF) {
+    switch(buf[0]) {
+    case '#':				/* comment */
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    case 'n':				/* newmtl */
+      fgets(buf, sizeof(buf), file);
+      sscanf(buf, "%s %s", buf, buf);
+      nummaterials++;
+      model->materials[nummaterials].name = strdup(buf);
+      break;
+    case 'N':
+      fscanf(file, "%f", &model->materials[nummaterials].shininess);
+      /* wavefront shininess is from [0, 1000], so scale for OpenGL */
+      model->materials[nummaterials].shininess /= 1000.0;
+      model->materials[nummaterials].shininess *= 128.0;
+      break;
+    case 'K':
+      switch(buf[1]) {
+      case 'd':
+	fscanf(file, "%f %f %f",
+	       &model->materials[nummaterials].diffuse[0],
+	       &model->materials[nummaterials].diffuse[1],
+	       &model->materials[nummaterials].diffuse[2]);
+	break;
+      case 's':
+	fscanf(file, "%f %f %f",
+	       &model->materials[nummaterials].specular[0],
+	       &model->materials[nummaterials].specular[1],
+	       &model->materials[nummaterials].specular[2]);
+	break;
+      case 'a':
+	fscanf(file, "%f %f %f",
+	       &model->materials[nummaterials].ambient[0],
+	       &model->materials[nummaterials].ambient[1],
+	       &model->materials[nummaterials].ambient[2]);
+	break;
+      default:
+	/* eat up rest of line */
+	fgets(buf, sizeof(buf), file);
+	break;
+      }
+      break;
+    default:
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    }
+  }
+}
+
+/* glmWriteMTL: write a wavefront material library file
+ *
+ * model      - properly initialized GLMmodel structure
+ * modelpath  - pathname of the model being written
+ * mtllibname - name of the material library to be written
+ */
+static GLvoid
+glmWriteMTL(GLMmodel* model, char* modelpath, char* mtllibname)
+{
+  FILE* file;
+  char* dir;
+  char* filename;
+  GLMmaterial* material;
+  GLuint i;
+
+  dir = glmDirName(modelpath);
+  filename = (char*)malloc(sizeof(char) * (strlen(dir)+strlen(mtllibname)));
+  strcpy(filename, dir);
+  strcat(filename, mtllibname);
+  free(dir);
+
+  /* open the file */
+  file = fopen(filename, "w");
+  if (!file) {
+    fprintf(stderr, "glmWriteMTL() failed: can't open file \"%s\".\n",
+	    filename);
+    exit(1);
+  }
+  free(filename);
+
+  /* spit out a header */
+  fprintf(file, "#  \n");
+  fprintf(file, "#  Wavefront MTL generated by GLM library\n");
+  fprintf(file, "#  \n");
+  fprintf(file, "#  GLM library\n");
+  fprintf(file, "#  Nate Robins\n");
+  fprintf(file, "#  ndr@pobox.com\n");
+  fprintf(file, "#  http://www.pobox.com/~ndr\n");
+  fprintf(file, "#  \n\n");
+
+  for (i = 0; i < model->nummaterials; i++) {
+    material = &model->materials[i];
+    fprintf(file, "newmtl %s\n", material->name);
+    fprintf(file, "Ka %f %f %f\n", 
+	    material->ambient[0], material->ambient[1], material->ambient[2]);
+    fprintf(file, "Kd %f %f %f\n", 
+	    material->diffuse[0], material->diffuse[1], material->diffuse[2]);
+    fprintf(file, "Ks %f %f %f\n", 
+	    material->specular[0],material->specular[1],material->specular[2]);
+    fprintf(file, "Ns %f\n", material->shininess / 128.0 * 1000.0);
+    fprintf(file, "\n");
+  }
+}
+
+
+/* glmFirstPass: first pass at a Wavefront OBJ file that gets all the
+ * statistics of the model (such as #vertices, #normals, etc)
+ *
+ * model - properly initialized GLMmodel structure
+ * file  - (fopen'd) file descriptor 
+ */
+static GLvoid
+glmFirstPass(GLMmodel* model, FILE* file) 
+{
+  GLuint    numvertices;		/* number of vertices in model */
+  GLuint    numnormals;			/* number of normals in model */
+  GLuint    numtexcoords;		/* number of texcoords in model */
+  GLuint    numtriangles;		/* number of triangles in model */
+  GLMgroup* group;			/* current group */
+  unsigned  v, n, t;
+  char      buf[128];
+
+  /* make a default group */
+  group = glmAddGroup(model, "default");
+
+  numvertices = numnormals = numtexcoords = numtriangles = 0;
+  while(fscanf(file, "%s", buf) != EOF) {
+    switch(buf[0]) {
+    case '#':				/* comment */
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    case 'v':				/* v, vn, vt */
+      switch(buf[1]) {
+      case '\0':			/* vertex */
+	/* eat up rest of line */
+	fgets(buf, sizeof(buf), file);
+	numvertices++;
+	break;
+      case 'n':				/* normal */
+	/* eat up rest of line */
+	fgets(buf, sizeof(buf), file);
+	numnormals++;
+	break;
+      case 't':				/* texcoord */
+	/* eat up rest of line */
+	fgets(buf, sizeof(buf), file);
+	numtexcoords++;
+	break;
+      default:
+	printf("glmFirstPass(): Unknown token \"%s\".\n", buf);
+	exit(1);
+	break;
+      }
+      break;
+    case 'm':
+      fgets(buf, sizeof(buf), file);
+      sscanf(buf, "%s %s", buf, buf);
+      model->mtllibname = strdup(buf);
+      //glmReadMTL(model, buf);
+      break;
+    case 'u':
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    case 'g':				/* group */
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+#if SINGLE_STRING_GROUP_NAMES
+      sscanf(buf, "%s", buf);
+#else
+      buf[strlen(buf)-1] = '\0';	/* nuke '\n' */
+#endif
+      group = glmAddGroup(model, buf);
+      break;
+    case 'f':				/* face */
+      v = n = t = 0;
+      fscanf(file, "%s", buf);
+      /* can be one of %d, %d//%d, %d/%d, %d/%d/%d %d//%d */
+      if (strstr(buf, "//")) {
+	/* v//n */
+	sscanf(buf, "%d//%d", &v, &n);
+	fscanf(file, "%d//%d", &v, &n);
+	fscanf(file, "%d//%d", &v, &n);
+	numtriangles++;
+	group->numtriangles++;
+	while(fscanf(file, "%d//%d", &v, &n) > 0) {
+	  numtriangles++;
+	  group->numtriangles++;
+	}
+      } else if (sscanf(buf, "%d/%d/%d", &v, &t, &n) == 3) {
+	/* v/t/n */
+	fscanf(file, "%d/%d/%d", &v, &t, &n);
+	fscanf(file, "%d/%d/%d", &v, &t, &n);
+	numtriangles++;
+	group->numtriangles++;
+	while(fscanf(file, "%d/%d/%d", &v, &t, &n) > 0) {
+	  numtriangles++;
+	  group->numtriangles++;
+	}
+      } else if (sscanf(buf, "%d/%d", &v, &t) == 2) {
+	/* v/t */
+	fscanf(file, "%d/%d", &v, &t);
+	fscanf(file, "%d/%d", &v, &t);
+	numtriangles++;
+	group->numtriangles++;
+	while(fscanf(file, "%d/%d", &v, &t) > 0) {
+	  numtriangles++;
+	  group->numtriangles++;
+	}
+      } else {
+	/* v */
+	fscanf(file, "%d", &v);
+	fscanf(file, "%d", &v);
+	numtriangles++;
+	group->numtriangles++;
+	while(fscanf(file, "%d", &v) > 0) {
+	  numtriangles++;
+	  group->numtriangles++;
+	}
+      }
+      break;
+
+    default:
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    }
+  }
+
+  /* set the stats in the model structure */
+  model->numvertices  = numvertices;
+  model->numnormals   = numnormals;
+  model->numtexcoords = numtexcoords;
+  model->numtriangles = numtriangles;
+
+  /* allocate memory for the triangles in each group */
+  group = model->groups;
+  while(group) {
+    group->triangles = (GLuint*)malloc(sizeof(GLuint) * group->numtriangles);
+    group->numtriangles = 0;
+    group = group->next;
+  }
+}
+
+/* glmSecondPass: second pass at a Wavefront OBJ file that gets all
+ * the data.
+ *
+ * model - properly initialized GLMmodel structure
+ * file  - (fopen'd) file descriptor 
+ */
+static GLvoid
+glmSecondPass(GLMmodel* model, FILE* file) 
+{
+  GLuint    numvertices;		/* number of vertices in model */
+  GLuint    numnormals;			/* number of normals in model */
+  GLuint    numtexcoords;		/* number of texcoords in model */
+  GLuint    numtriangles;		/* number of triangles in model */
+  GLfloat*  vertices;			/* array of vertices  */
+  GLfloat*  normals;			/* array of normals */
+  GLfloat*  texcoords;			/* array of texture coordinates */
+  GLMgroup* group;			/* current group pointer */
+  GLuint    material;			/* current material */
+  GLuint    v, n, t;
+  char      buf[128];
+
+  /* set the pointer shortcuts */
+  vertices     = model->vertices;
+  normals      = model->normals;
+  texcoords    = model->texcoords;
+  group        = model->groups;
+
+  /* on the second pass through the file, read all the data into the
+     allocated arrays */
+  numvertices = numnormals = numtexcoords = 1;
+  numtriangles = 0;
+  material = 0;
+  while(fscanf(file, "%s", buf) != EOF) {
+    switch(buf[0]) {
+    case '#':				/* comment */
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    case 'v':				/* v, vn, vt */
+      switch(buf[1]) {
+      case '\0':			/* vertex */
+	fscanf(file, "%f %f %f", 
+	       &vertices[3 * numvertices + 0], 
+	       &vertices[3 * numvertices + 1], 
+	       &vertices[3 * numvertices + 2]);
+	numvertices++;
+	break;
+      case 'n':				/* normal */
+	fscanf(file, "%f %f %f", 
+	       &normals[3 * numnormals + 0],
+	       &normals[3 * numnormals + 1], 
+	       &normals[3 * numnormals + 2]);
+	numnormals++;
+	break;
+      case 't':				/* texcoord */
+	fscanf(file, "%f %f", 
+	       &texcoords[2 * numtexcoords + 0],
+	       &texcoords[2 * numtexcoords + 1]);
+	numtexcoords++;
+	break;
+      }
+      break;
+    case 'u':
+      fgets(buf, sizeof(buf), file);
+      sscanf(buf, "%s %s", buf, buf);
+      group->material = material = glmFindMaterial(model, buf);
+      break;
+    case 'g':				/* group */
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+#if SINGLE_STRING_GROUP_NAMES
+      sscanf(buf, "%s", buf);
+#else
+      buf[strlen(buf)-1] = '\0';	/* nuke '\n' */
+#endif
+      group = glmFindGroup(model, buf);
+      group->material = material;
+      break;
+    case 'f':				/* face */
+      v = n = t = 0;
+      fscanf(file, "%s", buf);
+      /* can be one of %d, %d//%d, %d/%d, %d/%d/%d %d//%d */
+      if (strstr(buf, "//")) {
+	/* v//n */
+	sscanf(buf, "%d//%d", &v, &n);
+	T(numtriangles).vindices[0] = v;
+	T(numtriangles).nindices[0] = n;
+	fscanf(file, "%d//%d", &v, &n);
+	T(numtriangles).vindices[1] = v;
+	T(numtriangles).nindices[1] = n;
+	fscanf(file, "%d//%d", &v, &n);
+	T(numtriangles).vindices[2] = v;
+	T(numtriangles).nindices[2] = n;
+	group->triangles[group->numtriangles++] = numtriangles;
+	numtriangles++;
+	while(fscanf(file, "%d//%d", &v, &n) > 0) {
+	  T(numtriangles).vindices[0] = T(numtriangles-1).vindices[0];
+	  T(numtriangles).nindices[0] = T(numtriangles-1).nindices[0];
+	  T(numtriangles).vindices[1] = T(numtriangles-1).vindices[2];
+	  T(numtriangles).nindices[1] = T(numtriangles-1).nindices[2];
+	  T(numtriangles).vindices[2] = v;
+	  T(numtriangles).nindices[2] = n;
+	  group->triangles[group->numtriangles++] = numtriangles;
+	  numtriangles++;
+	}
+      } else if (sscanf(buf, "%d/%d/%d", &v, &t, &n) == 3) {
+	/* v/t/n */
+	T(numtriangles).vindices[0] = v;
+	T(numtriangles).tindices[0] = t;
+	T(numtriangles).nindices[0] = n;
+	fscanf(file, "%d/%d/%d", &v, &t, &n);
+	T(numtriangles).vindices[1] = v;
+	T(numtriangles).tindices[1] = t;
+	T(numtriangles).nindices[1] = n;
+	fscanf(file, "%d/%d/%d", &v, &t, &n);
+	T(numtriangles).vindices[2] = v;
+	T(numtriangles).tindices[2] = t;
+	T(numtriangles).nindices[2] = n;
+	group->triangles[group->numtriangles++] = numtriangles;
+	numtriangles++;
+	while(fscanf(file, "%d/%d/%d", &v, &t, &n) > 0) {
+	  T(numtriangles).vindices[0] = T(numtriangles-1).vindices[0];
+	  T(numtriangles).tindices[0] = T(numtriangles-1).tindices[0];
+	  T(numtriangles).nindices[0] = T(numtriangles-1).nindices[0];
+	  T(numtriangles).vindices[1] = T(numtriangles-1).vindices[2];
+	  T(numtriangles).tindices[1] = T(numtriangles-1).tindices[2];
+	  T(numtriangles).nindices[1] = T(numtriangles-1).nindices[2];
+	  T(numtriangles).vindices[2] = v;
+	  T(numtriangles).tindices[2] = t;
+	  T(numtriangles).nindices[2] = n;
+	  group->triangles[group->numtriangles++] = numtriangles;
+	  numtriangles++;
+	}
+      } else if (sscanf(buf, "%d/%d", &v, &t) == 2) {
+	/* v/t */
+	T(numtriangles).vindices[0] = v;
+	T(numtriangles).tindices[0] = t;
+	fscanf(file, "%d/%d", &v, &t);
+	T(numtriangles).vindices[1] = v;
+	T(numtriangles).tindices[1] = t;
+	fscanf(file, "%d/%d", &v, &t);
+	T(numtriangles).vindices[2] = v;
+	T(numtriangles).tindices[2] = t;
+	group->triangles[group->numtriangles++] = numtriangles;
+	numtriangles++;
+	while(fscanf(file, "%d/%d", &v, &t) > 0) {
+	  T(numtriangles).vindices[0] = T(numtriangles-1).vindices[0];
+	  T(numtriangles).tindices[0] = T(numtriangles-1).tindices[0];
+	  T(numtriangles).vindices[1] = T(numtriangles-1).vindices[2];
+	  T(numtriangles).tindices[1] = T(numtriangles-1).tindices[2];
+	  T(numtriangles).vindices[2] = v;
+	  T(numtriangles).tindices[2] = t;
+	  group->triangles[group->numtriangles++] = numtriangles;
+	  numtriangles++;
+	}
+      } else {
+	/* v */
+	sscanf(buf, "%d", &v);
+	T(numtriangles).vindices[0] = v;
+	fscanf(file, "%d", &v);
+	T(numtriangles).vindices[1] = v;
+	fscanf(file, "%d", &v);
+	T(numtriangles).vindices[2] = v;
+	group->triangles[group->numtriangles++] = numtriangles;
+	numtriangles++;
+	while(fscanf(file, "%d", &v) > 0) {
+	  T(numtriangles).vindices[0] = T(numtriangles-1).vindices[0];
+	  T(numtriangles).vindices[1] = T(numtriangles-1).vindices[2];
+	  T(numtriangles).vindices[2] = v;
+	  group->triangles[group->numtriangles++] = numtriangles;
+	  numtriangles++;
+	}
+      }
+      break;
+
+    default:
+      /* eat up rest of line */
+      fgets(buf, sizeof(buf), file);
+      break;
+    }
+  }
+
+#if 0
+  /* announce the memory requirements */
+  printf(" Memory: %d bytes\n",
+	 numvertices  * 3*sizeof(GLfloat) +
+	 numnormals   * 3*sizeof(GLfloat) * (numnormals ? 1 : 0) +
+	 numtexcoords * 3*sizeof(GLfloat) * (numtexcoords ? 1 : 0) +
+	 numtriangles * sizeof(GLMtriangle));
+#endif
+}
+
+
+/* public functions */
+
+
+/* glmUnitize: "unitize" a model by translating it to the origin and
+ * scaling it to fit in a unit cube around the origin.  Modelurns the
+ * scalefactor used.
+ *
+ * model - properly initialized GLMmodel structure 
+ */
+GLfloat
+glmUnitize(GLMmodel* model)
+{
+  GLuint  i;
+  GLfloat maxx, minx, maxy, miny, maxz, minz;
+  GLfloat cx, cy, cz, w, h, d;
+  GLfloat scale;
+
+  assert(model);
+  assert(model->vertices);
+
+  /* get the max/mins */
+  maxx = minx = model->vertices[3 + 0];
+  maxy = miny = model->vertices[3 + 1];
+  maxz = minz = model->vertices[3 + 2];
+  for (i = 1; i <= model->numvertices; i++) {
+    if (maxx < model->vertices[3 * i + 0])
+      maxx = model->vertices[3 * i + 0];
+    if (minx > model->vertices[3 * i + 0])
+      minx = model->vertices[3 * i + 0];
+
+    if (maxy < model->vertices[3 * i + 1])
+      maxy = model->vertices[3 * i + 1];
+    if (miny > model->vertices[3 * i + 1])
+      miny = model->vertices[3 * i + 1];
+
+    if (maxz < model->vertices[3 * i + 2])
+      maxz = model->vertices[3 * i + 2];
+    if (minz > model->vertices[3 * i + 2])
+      minz = model->vertices[3 * i + 2];
+  }
+
+  /* calculate model width, height, and depth */
+  w = glmAbs(maxx) + glmAbs(minx);
+  h = glmAbs(maxy) + glmAbs(miny);
+  d = glmAbs(maxz) + glmAbs(minz);
+
+  /* calculate center of the model */
+  cx = (maxx + minx) / 2.0;
+  cy = (maxy + miny) / 2.0;
+  cz = (maxz + minz) / 2.0;
+
+  /* calculate unitizing scale factor */
+  scale = 2.0 / glmMax(glmMax(w, h), d);
+
+  /* translate around center then scale */
+  for (i = 1; i <= model->numvertices; i++) {
+    model->vertices[3 * i + 0] -= cx;
+    model->vertices[3 * i + 1] -= cy;
+    model->vertices[3 * i + 2] -= cz;
+	//charlie, i took this out, i just want to center
+/*
+    model->vertices[3 * i + 0] *= scale;
+    model->vertices[3 * i + 1] *= scale;
+    model->vertices[3 * i + 2] *= scale;
+*/  
+  }
+
+  return scale;
+}
+
+/* glmDimensions: Calculates the dimensions (width, height, depth) of
+ * a model.
+ *
+ * model      - initialized GLMmodel structure
+ * dimensions - array of 3 GLfloats (GLfloat dimensions[3])
+ */
+GLvoid
+glmDimensions(GLMmodel* model, GLfloat* dimensions)
+{
+  GLuint i;
+  GLfloat maxx, minx, maxy, miny, maxz, minz;
+
+  assert(model);
+  assert(model->vertices);
+  assert(dimensions);
+
+  /* get the max/mins */
+  maxx = minx = model->vertices[3 + 0];
+  maxy = miny = model->vertices[3 + 1];
+  maxz = minz = model->vertices[3 + 2];
+  for (i = 1; i <= model->numvertices; i++) {
+    if (maxx < model->vertices[3 * i + 0])
+      maxx = model->vertices[3 * i + 0];
+    if (minx > model->vertices[3 * i + 0])
+      minx = model->vertices[3 * i + 0];
+
+    if (maxy < model->vertices[3 * i + 1])
+      maxy = model->vertices[3 * i + 1];
+    if (miny > model->vertices[3 * i + 1])
+      miny = model->vertices[3 * i + 1];
+
+    if (maxz < model->vertices[3 * i + 2])
+      maxz = model->vertices[3 * i + 2];
+    if (minz > model->vertices[3 * i + 2])
+      minz = model->vertices[3 * i + 2];
+  }
+
+  /* calculate model width, height, and depth */
+  dimensions[0] = glmAbs(maxx) + glmAbs(minx);
+  dimensions[1] = glmAbs(maxy) + glmAbs(miny);
+  dimensions[2] = glmAbs(maxz) + glmAbs(minz);
+}
+
+/* glmScale: Scales a model by a given amount.
+ * 
+ * model - properly initialized GLMmodel structure
+ * scale - scalefactor (0.5 = half as large, 2.0 = twice as large)
+ */
+GLvoid
+glmScale(GLMmodel* model, GLfloat scale)
+{
+  GLuint i;
+
+  for (i = 1; i <= model->numvertices; i++) {
+    model->vertices[3 * i + 0] *= scale;
+    model->vertices[3 * i + 1] *= scale;
+    model->vertices[3 * i + 2] *= scale;
+  }
+}
+
+/* glmReverseWinding: Reverse the polygon winding for all polygons in
+ * this model.  Default winding is counter-clockwise.  Also changes
+ * the direction of the normals.
+ * 
+ * model - properly initialized GLMmodel structure 
+ */
+GLvoid
+glmReverseWinding(GLMmodel* model)
+{
+  GLuint i, swap;
+
+  assert(model);
+
+  for (i = 0; i < model->numtriangles; i++) {
+    swap = T(i).vindices[0];
+    T(i).vindices[0] = T(i).vindices[2];
+    T(i).vindices[2] = swap;
+
+    if (model->numnormals) {
+      swap = T(i).nindices[0];
+      T(i).nindices[0] = T(i).nindices[2];
+      T(i).nindices[2] = swap;
+    }
+
+    if (model->numtexcoords) {
+      swap = T(i).tindices[0];
+      T(i).tindices[0] = T(i).tindices[2];
+      T(i).tindices[2] = swap;
+    }
+  }
+
+  /* reverse facet normals */
+  for (i = 1; i <= model->numfacetnorms; i++) {
+    model->facetnorms[3 * i + 0] = -model->facetnorms[3 * i + 0];
+    model->facetnorms[3 * i + 1] = -model->facetnorms[3 * i + 1];
+    model->facetnorms[3 * i + 2] = -model->facetnorms[3 * i + 2];
+  }
+
+  /* reverse vertex normals */
+  for (i = 1; i <= model->numnormals; i++) {
+    model->normals[3 * i + 0] = -model->normals[3 * i + 0];
+    model->normals[3 * i + 1] = -model->normals[3 * i + 1];
+    model->normals[3 * i + 2] = -model->normals[3 * i + 2];
+  }
+}
+
+/* glmFacetNormals: Generates facet normals for a model (by taking the
+ * cross product of the two vectors derived from the sides of each
+ * triangle).  Assumes a counter-clockwise winding.
+ *
+ * model - initialized GLMmodel structure
+ */
+GLvoid
+glmFacetNormals(GLMmodel* model)
+{
+  GLuint  i;
+  GLfloat u[3];
+  GLfloat v[3];
+  
+  assert(model);
+  assert(model->vertices);
+
+  /* clobber any old facetnormals */
+  if (model->facetnorms)
+    free(model->facetnorms);
+
+  /* allocate memory for the new facet normals */
+  model->numfacetnorms = model->numtriangles;
+  model->facetnorms = (GLfloat*)malloc(sizeof(GLfloat) *
+				       3 * (model->numfacetnorms + 1));
+
+  for (i = 0; i < model->numtriangles; i++) {
+    model->triangles[i].findex = i+1;
+
+    u[0] = model->vertices[3 * T(i).vindices[1] + 0] -
+           model->vertices[3 * T(i).vindices[0] + 0];
+    u[1] = model->vertices[3 * T(i).vindices[1] + 1] -
+           model->vertices[3 * T(i).vindices[0] + 1];
+    u[2] = model->vertices[3 * T(i).vindices[1] + 2] -
+           model->vertices[3 * T(i).vindices[0] + 2];
+
+    v[0] = model->vertices[3 * T(i).vindices[2] + 0] -
+           model->vertices[3 * T(i).vindices[0] + 0];
+    v[1] = model->vertices[3 * T(i).vindices[2] + 1] -
+           model->vertices[3 * T(i).vindices[0] + 1];
+    v[2] = model->vertices[3 * T(i).vindices[2] + 2] -
+           model->vertices[3 * T(i).vindices[0] + 2];
+
+    glmCross(u, v, &model->facetnorms[3 * (i+1)]);
+    glmNormalize(&model->facetnorms[3 * (i+1)]);
+  }
+}
+
+/* glmVertexNormals: Generates smooth vertex normals for a model.
+ * First builds a list of all the triangles each vertex is in.  Then
+ * loops through each vertex in the the list averaging all the facet
+ * normals of the triangles each vertex is in.  Finally, sets the
+ * normal index in the triangle for the vertex to the generated smooth
+ * normal.  If the dot product of a facet normal and the facet normal
+ * associated with the first triangle in the list of triangles the
+ * current vertex is in is greater than the cosine of the angle
+ * parameter to the function, that facet normal is not added into the
+ * average normal calculation and the corresponding vertex is given
+ * the facet normal.  This tends to preserve hard edges.  The angle to
+ * use depends on the model, but 90 degrees is usually a good start.
+ *
+ * model - initialized GLMmodel structure
+ * angle - maximum angle (in degrees) to smooth across
+ */
+GLvoid
+glmVertexNormals(GLMmodel* model, GLfloat angle)
+{
+  GLMnode*  node;
+  GLMnode*  tail;
+  GLMnode** members;
+  GLfloat*  normals;
+  GLuint    numnormals;
+  GLfloat   average[3];
+  GLfloat   dot, cos_angle;
+  GLuint    i, avg;
+
+  assert(model);
+  assert(model->facetnorms);
+
+  /* calculate the cosine of the angle (in degrees) */
+  cos_angle = cos(angle * M_PI / 180.0);
+
+  /* nuke any previous normals */
+  if (model->normals)
+    free(model->normals);
+
+  /* allocate space for new normals */
+  model->numnormals = model->numtriangles * 3; /* 3 normals per triangle */
+  model->normals = (GLfloat*)malloc(sizeof(GLfloat)* 3* (model->numnormals+1));
+
+  /* allocate a structure that will hold a linked list of triangle
+     indices for each vertex */
+  members = (GLMnode**)malloc(sizeof(GLMnode*) * (model->numvertices + 1));
+  for (i = 1; i <= model->numvertices; i++)
+    members[i] = NULL;
+  
+  /* for every triangle, create a node for each vertex in it */
+  for (i = 0; i < model->numtriangles; i++) {
+    node = (GLMnode*)malloc(sizeof(GLMnode));
+    node->index = i;
+    node->next  = members[T(i).vindices[0]];
+    members[T(i).vindices[0]] = node;
+
+    node = (GLMnode*)malloc(sizeof(GLMnode));
+    node->index = i;
+    node->next  = members[T(i).vindices[1]];
+    members[T(i).vindices[1]] = node;
+
+    node = (GLMnode*)malloc(sizeof(GLMnode));
+    node->index = i;
+    node->next  = members[T(i).vindices[2]];
+    members[T(i).vindices[2]] = node;
+  }
+
+  /* calculate the average normal for each vertex */
+  numnormals = 1;
+  for (i = 1; i <= model->numvertices; i++) {
+    /* calculate an average normal for this vertex by averaging the
+       facet normal of every triangle this vertex is in */
+    node = members[i];
+    if (!node)
+      fprintf(stderr, "glmVertexNormals(): vertex w/o a triangle\n");
+    average[0] = 0.0; average[1] = 0.0; average[2] = 0.0;
+    avg = 0;
+    while (node) {
+      /* only average if the dot product of the angle between the two
+         facet normals is greater than the cosine of the threshold
+         angle -- or, said another way, the angle between the two
+         facet normals is less than (or equal to) the threshold angle */
+      dot = glmDot(&model->facetnorms[3 * T(node->index).findex],
+ 		    &model->facetnorms[3 * T(members[i]->index).findex]);
+      if (dot > cos_angle) {
+	node->averaged = GL_TRUE;
+	average[0] += model->facetnorms[3 * T(node->index).findex + 0];
+	average[1] += model->facetnorms[3 * T(node->index).findex + 1];
+	average[2] += model->facetnorms[3 * T(node->index).findex + 2];
+	avg = 1;			/* we averaged at least one normal! */
+      } else {
+	node->averaged = GL_FALSE;
+      }
+      node = node->next;
+    }
+
+    if (avg) {
+      /* normalize the averaged normal */
+      glmNormalize(average);
+
+      /* add the normal to the vertex normals list */
+      model->normals[3 * numnormals + 0] = average[0];
+      model->normals[3 * numnormals + 1] = average[1];
+      model->normals[3 * numnormals + 2] = average[2];
+      avg = numnormals;
+      numnormals++;
+    }
+
+    /* set the normal of this vertex in each triangle it is in */
+    node = members[i];
+    while (node) {
+      if (node->averaged) {
+	/* if this node was averaged, use the average normal */
+	if (T(node->index).vindices[0] == i)
+	  T(node->index).nindices[0] = avg;
+	else if (T(node->index).vindices[1] == i)
+	  T(node->index).nindices[1] = avg;
+	else if (T(node->index).vindices[2] == i)
+	  T(node->index).nindices[2] = avg;
+      } else {
+	/* if this node wasn't averaged, use the facet normal */
+	model->normals[3 * numnormals + 0] = 
+	  model->facetnorms[3 * T(node->index).findex + 0];
+	model->normals[3 * numnormals + 1] = 
+	  model->facetnorms[3 * T(node->index).findex + 1];
+	model->normals[3 * numnormals + 2] = 
+	  model->facetnorms[3 * T(node->index).findex + 2];
+	if (T(node->index).vindices[0] == i)
+	  T(node->index).nindices[0] = numnormals;
+	else if (T(node->index).vindices[1] == i)
+	  T(node->index).nindices[1] = numnormals;
+	else if (T(node->index).vindices[2] == i)
+	  T(node->index).nindices[2] = numnormals;
+	numnormals++;
+      }
+      node = node->next;
+    }
+  }
+  
+  model->numnormals = numnormals - 1;
+
+  /* free the member information */
+  for (i = 1; i <= model->numvertices; i++) {
+    node = members[i];
+    while (node) {
+      tail = node;
+      node = node->next;
+      free(tail);
+    }
+  }
+  free(members);
+
+  /* pack the normals array (we previously allocated the maximum
+     number of normals that could possibly be created (numtriangles *
+     3), so get rid of some of them (usually alot unless none of the
+     facet normals were averaged)) */
+  normals = model->normals;
+  model->normals = (GLfloat*)malloc(sizeof(GLfloat)* 3* (model->numnormals+1));
+  for (i = 1; i <= model->numnormals; i++) {
+    model->normals[3 * i + 0] = normals[3 * i + 0];
+    model->normals[3 * i + 1] = normals[3 * i + 1];
+    model->normals[3 * i + 2] = normals[3 * i + 2];
+  }
+  free(normals);
+}
+
+
+/* glmLinearTexture: Generates texture coordinates according to a
+ * linear projection of the texture map.  It generates these by
+ * linearly mapping the vertices onto a square.
+ *
+ * model - pointer to initialized GLMmodel structure
+ */
+GLvoid
+glmLinearTexture(GLMmodel* model)
+{
+  GLMgroup *group;
+  GLfloat dimensions[3];
+  GLfloat x, y, scalefactor;
+  GLuint i;
+  
+  assert(model);
+
+  if (model->texcoords)
+    free(model->texcoords);
+  model->numtexcoords = model->numvertices;
+  model->texcoords=(GLfloat*)malloc(sizeof(GLfloat)*2*(model->numtexcoords+1));
+  
+  glmDimensions(model, dimensions);
+  scalefactor = 2.0 / 
+    glmAbs(glmMax(glmMax(dimensions[0], dimensions[1]), dimensions[2]));
+
+  /* do the calculations */
+  for(i = 1; i <= model->numvertices; i++) {
+    x = model->vertices[3 * i + 0] * scalefactor;
+    y = model->vertices[3 * i + 2] * scalefactor;
+    model->texcoords[2 * i + 0] = (x + 1.0) / 2.0;
+    model->texcoords[2 * i + 1] = (y + 1.0) / 2.0;
+  }
+  
+  /* go through and put texture coordinate indices in all the triangles */
+  group = model->groups;
+  while(group) {
+    for(i = 0; i < group->numtriangles; i++) {
+      T(group->triangles[i]).tindices[0] = T(group->triangles[i]).vindices[0];
+      T(group->triangles[i]).tindices[1] = T(group->triangles[i]).vindices[1];
+      T(group->triangles[i]).tindices[2] = T(group->triangles[i]).vindices[2];
+    }    
+    group = group->next;
+  }
+
+#if 0
+  printf("glmLinearTexture(): generated %d linear texture coordinates\n",
+	  model->numtexcoords);
+#endif
+}
+
+/* glmSpheremapTexture: Generates texture coordinates according to a
+ * spherical projection of the texture map.  Sometimes referred to as
+ * spheremap, or reflection map texture coordinates.  It generates
+ * these by using the normal to calculate where that vertex would map
+ * onto a sphere.  Since it is impossible to map something flat
+ * perfectly onto something spherical, there is distortion at the
+ * poles.  This particular implementation causes the poles along the X
+ * axis to be distorted.
+ *
+ * model - pointer to initialized GLMmodel structure
+ */
+GLvoid
+glmSpheremapTexture(GLMmodel* model)
+{
+  GLMgroup* group;
+  GLfloat theta, phi, rho, x, y, z, r;
+  GLuint i;
+  
+  assert(model);
+  assert(model->normals);
+
+  if (model->texcoords)
+    free(model->texcoords);
+  model->numtexcoords = model->numnormals;
+  model->texcoords=(GLfloat*)malloc(sizeof(GLfloat)*2*(model->numtexcoords+1));
+     
+  for (i = 1; i <= model->numnormals; i++) {
+    z = model->normals[3 * i + 0];	/* re-arrange for pole distortion */
+    y = model->normals[3 * i + 1];
+    x = model->normals[3 * i + 2];
+    r = sqrt((x * x) + (y * y));
+    rho = sqrt((r * r) + (z * z));
+      
+    if(r == 0.0) {
+	theta = 0.0;
+	phi = 0.0;
+    } else {
+      if(z == 0.0)
+	phi = 3.14159265 / 2.0;
+      else
+	phi = acos(z / rho);
+
+      if(y == 0.0)
+	theta = 3.141592365 / 2.0;
+      else
+	theta = asin(y / r) + (3.14159265 / 2.0);
+    }
+    
+    model->texcoords[2 * i + 0] = theta / 3.14159265;
+    model->texcoords[2 * i + 1] = phi / 3.14159265;
+  }
+  
+  /* go through and put texcoord indices in all the triangles */
+  group = model->groups;
+  while(group) {
+    for (i = 0; i < group->numtriangles; i++) {
+      T(group->triangles[i]).tindices[0] = T(group->triangles[i]).nindices[0];
+      T(group->triangles[i]).tindices[1] = T(group->triangles[i]).nindices[1];
+      T(group->triangles[i]).tindices[2] = T(group->triangles[i]).nindices[2];
+    }
+    group = group->next;
+  }
+}
+
+/* glmDelete: Deletes a GLMmodel structure.
+ *
+ * model - initialized GLMmodel structure
+ */
+GLvoid
+glmDelete(GLMmodel* model)
+{
+  GLMgroup* group;
+  GLuint i;
+
+  assert(model);
+
+  if (model->pathname)   free(model->pathname);
+  if (model->mtllibname) free(model->mtllibname);
+  if (model->vertices)   free(model->vertices);
+  if (model->normals)    free(model->normals);
+  if (model->texcoords)  free(model->texcoords);
+  if (model->facetnorms) free(model->facetnorms);
+  if (model->triangles)  free(model->triangles);
+  if (model->materials) {
+    for (i = 0; i < model->nummaterials; i++)
+      free(model->materials[i].name);
+  }
+  free(model->materials);
+  while(model->groups) {
+    group = model->groups;
+    model->groups = model->groups->next;
+    free(group->name);
+    free(group->triangles);
+    free(group);
+  }
+
+  free(model);
+}
+
+/* glmReadOBJ: Reads a model description from a Wavefront .OBJ file.
+ * Modelurns a pointer to the created object which should be free'd with
+ * glmDelete().
+ *
+ * filename - name of the file containing the Wavefront .OBJ format data.  
+ */
+GLMmodel* 
+glmReadOBJ(char* filename)
+{
+  GLMmodel* model;
+  FILE*     file;
+printf("*");
+fflush(NULL);
+
+  /* open the file */
+  file = fopen(filename, "r");
+  if (!file) {
+    fprintf(stderr, "glmReadOBJ() failed: can't open data file \"%s\".\n",
+	    filename);
+    exit(1);
+  }
+
+  /* allocate a new model */
+  model = (GLMmodel*)malloc(sizeof(GLMmodel));
+  model->pathname      = strdup(filename);
+  model->mtllibname    = NULL;
+  model->numvertices   = 0;
+  model->vertices      = NULL;
+  model->numnormals    = 0;
+  model->normals       = NULL;
+  model->numtexcoords  = 0;
+  model->texcoords     = NULL;
+  model->numfacetnorms = 0;
+  model->facetnorms    = NULL;
+  model->numtriangles  = 0;
+  model->triangles     = NULL;
+  model->nummaterials  = 0;
+  model->materials     = NULL;
+  model->numgroups     = 0;
+  model->groups        = NULL;
+  model->position[0]   = 0.0;
+  model->position[1]   = 0.0;
+  model->position[2]   = 0.0;
+
+  /* make a first pass through the file to get a count of the number
+     of vertices, normals, texcoords & triangles */
+  glmFirstPass(model, file);
+
+  /* allocate memory */
+  model->vertices = (GLfloat*)malloc(sizeof(GLfloat) *
+				     3 * (model->numvertices + 1));
+  model->triangles = (GLMtriangle*)malloc(sizeof(GLMtriangle) *
+					  model->numtriangles);
+  if (model->numnormals) {
+    model->normals = (GLfloat*)malloc(sizeof(GLfloat) *
+				      3 * (model->numnormals + 1));
+  }
+  if (model->numtexcoords) {
+    model->texcoords = (GLfloat*)malloc(sizeof(GLfloat) *
+					2 * (model->numtexcoords + 1));
+  }
+
+  /* rewind to beginning of file and read in the data this pass */
+  rewind(file);
+
+  glmSecondPass(model, file);
+
+  /* close the file */
+  fclose(file);
+
+  return model;
+}
+
+/* glmWriteOBJ: Writes a model description in Wavefront .OBJ format to
+ * a file.
+ *
+ * model    - initialized GLMmodel structure
+ * filename - name of the file to write the Wavefront .OBJ format data to
+ * mode     - a bitwise or of values describing what is written to the file
+ *            GLM_NONE     -  render with only vertices
+ *            GLM_FLAT     -  render with facet normals
+ *            GLM_SMOOTH   -  render with vertex normals
+ *            GLM_TEXTURE  -  render with texture coords
+ *            GLM_COLOR    -  render with colors (color material)
+ *            GLM_MATERIAL -  render with materials
+ *            GLM_COLOR and GLM_MATERIAL should not both be specified.  
+ *            GLM_FLAT and GLM_SMOOTH should not both be specified.  
+ */
+GLvoid
+glmWriteOBJ(GLMmodel* model, char* filename, GLuint mode)
+{
+  GLuint    i;
+  FILE*     file;
+  GLMgroup* group;
+
+  assert(model);
+
+  /* do a bit of warning */
+  if (mode & GLM_FLAT && !model->facetnorms) {
+    printf("glmWriteOBJ() warning: flat normal output requested "
+	   "with no facet normals defined.\n");
+    mode &= ~GLM_FLAT;
+  }
+  if (mode & GLM_SMOOTH && !model->normals) {
+    printf("glmWriteOBJ() warning: smooth normal output requested "
+	   "with no normals defined.\n");
+    mode &= ~GLM_SMOOTH;
+  }
+  if (mode & GLM_TEXTURE && !model->texcoords) {
+    printf("glmWriteOBJ() warning: texture coordinate output requested "
+	   "with no texture coordinates defined.\n");
+    mode &= ~GLM_TEXTURE;
+  }
+  if (mode & GLM_FLAT && mode & GLM_SMOOTH) {
+    printf("glmWriteOBJ() warning: flat normal output requested "
+	   "and smooth normal output requested (using smooth).\n");
+    mode &= ~GLM_FLAT;
+  }
+  if (mode & GLM_COLOR && !model->materials) {
+    printf("glmWriteOBJ() warning: color output requested "
+	   "with no colors (materials) defined.\n");
+    mode &= ~GLM_COLOR;
+  }
+  if (mode & GLM_MATERIAL && !model->materials) {
+    printf("glmWriteOBJ() warning: material output requested "
+	   "with no materials defined.\n");
+    mode &= ~GLM_MATERIAL;
+  }
+  if (mode & GLM_COLOR && mode & GLM_MATERIAL) {
+    printf("glmWriteOBJ() warning: color and material output requested "
+	   "outputting only materials.\n");
+    mode &= ~GLM_COLOR;
+  }
+
+
+  /* open the file */
+  file = fopen(filename, "w");
+  if (!file) {
+    fprintf(stderr, "glmWriteOBJ() failed: can't open file \"%s\" to write.\n",
+	    filename);
+    exit(1);
+  }
+
+  /* spit out a header */
+  fprintf(file, "#  \n");
+  fprintf(file, "#  Wavefront OBJ generated by GLM library\n");
+  fprintf(file, "#  \n");
+  fprintf(file, "#  GLM library\n");
+  fprintf(file, "#  Nate Robins\n");
+  fprintf(file, "#  ndr@pobox.com\n");
+  fprintf(file, "#  http://www.pobox.com/~ndr\n");
+  fprintf(file, "#  \n");
+
+  if (mode & GLM_MATERIAL && model->mtllibname) {
+    fprintf(file, "\nmtllib %s\n\n", model->mtllibname);
+    glmWriteMTL(model, filename, model->mtllibname);
+  }
+
+  /* spit out the vertices */
+  fprintf(file, "\n");
+  fprintf(file, "# %d vertices\n", model->numvertices);
+  for (i = 1; i <= model->numvertices; i++) {
+    fprintf(file, "v %f %f %f\n", 
+	    model->vertices[3 * i + 0],
+	    model->vertices[3 * i + 1],
+	    model->vertices[3 * i + 2]);
+  }
+
+  /* spit out the smooth/flat normals */
+  if (mode & GLM_SMOOTH) {
+    fprintf(file, "\n");
+    fprintf(file, "# %d normals\n", model->numnormals);
+    for (i = 1; i <= model->numnormals; i++) {
+      fprintf(file, "vn %f %f %f\n", 
+	      model->normals[3 * i + 0],
+	      model->normals[3 * i + 1],
+	      model->normals[3 * i + 2]);
+    }
+  } else if (mode & GLM_FLAT) {
+    fprintf(file, "\n");
+    fprintf(file, "# %d normals\n", model->numfacetnorms);
+    for (i = 1; i <= model->numnormals; i++) {
+      fprintf(file, "vn %f %f %f\n", 
+	      model->facetnorms[3 * i + 0],
+	      model->facetnorms[3 * i + 1],
+	      model->facetnorms[3 * i + 2]);
+    }
+  }
+
+  /* spit out the texture coordinates */
+  if (mode & GLM_TEXTURE) {
+    fprintf(file, "\n");
+    fprintf(file, "# %d texcoords\n", model->texcoords);
+    for (i = 1; i <= model->numtexcoords; i++) {
+      fprintf(file, "vt %f %f\n", 
+	      model->texcoords[2 * i + 0],
+	      model->texcoords[2 * i + 1]);
+    }
+  }
+
+  fprintf(file, "\n");
+  fprintf(file, "# %d groups\n", model->numgroups);
+  fprintf(file, "# %d faces (triangles)\n", model->numtriangles);
+  fprintf(file, "\n");
+
+  group = model->groups;
+  while(group) {
+    fprintf(file, "g %s\n", group->name);
+    if (mode & GLM_MATERIAL)
+      fprintf(file, "usemtl %s\n", model->materials[group->material].name);
+    for (i = 0; i < group->numtriangles; i++) {
+      if (mode & GLM_SMOOTH && mode & GLM_TEXTURE) {
+	fprintf(file, "f %d/%d/%d %d/%d/%d %d/%d/%d\n",
+		T(group->triangles[i]).vindices[0], 
+		T(group->triangles[i]).nindices[0], 
+		T(group->triangles[i]).tindices[0],
+		T(group->triangles[i]).vindices[1],
+		T(group->triangles[i]).nindices[1],
+		T(group->triangles[i]).tindices[1],
+		T(group->triangles[i]).vindices[2],
+		T(group->triangles[i]).nindices[2],
+		T(group->triangles[i]).tindices[2]);
+      } else if (mode & GLM_FLAT && mode & GLM_TEXTURE) {
+	fprintf(file, "f %d/%d %d/%d %d/%d\n",
+		T(group->triangles[i]).vindices[0],
+		T(group->triangles[i]).findex,
+		T(group->triangles[i]).vindices[1],
+		T(group->triangles[i]).findex,
+		T(group->triangles[i]).vindices[2],
+		T(group->triangles[i]).findex);
+      } else if (mode & GLM_TEXTURE) {
+	fprintf(file, "f %d/%d %d/%d %d/%d\n",
+		T(group->triangles[i]).vindices[0],
+		T(group->triangles[i]).tindices[0],
+		T(group->triangles[i]).vindices[1],
+		T(group->triangles[i]).tindices[1],
+		T(group->triangles[i]).vindices[2],
+		T(group->triangles[i]).tindices[2]);
+      } else if (mode & GLM_SMOOTH) {
+	fprintf(file, "f %d//%d %d//%d %d//%d\n",
+		T(group->triangles[i]).vindices[0],
+		T(group->triangles[i]).nindices[0],
+		T(group->triangles[i]).vindices[1],
+		T(group->triangles[i]).nindices[1],
+		T(group->triangles[i]).vindices[2], 
+		T(group->triangles[i]).nindices[2]);
+      } else if (mode & GLM_FLAT) {
+	fprintf(file, "f %d//%d %d//%d %d//%d\n",
+		T(group->triangles[i]).vindices[0], 
+		T(group->triangles[i]).findex,
+		T(group->triangles[i]).vindices[1],
+		T(group->triangles[i]).findex,
+		T(group->triangles[i]).vindices[2],
+		T(group->triangles[i]).findex);
+      } else {
+	fprintf(file, "f %d %d %d\n",
+		T(group->triangles[i]).vindices[0],
+		T(group->triangles[i]).vindices[1],
+		T(group->triangles[i]).vindices[2]);
+      }
+    }
+    fprintf(file, "\n");
+    group = group->next;
+  }
+
+  fclose(file);
+}
+
+/* glmDraw: Renders the model to the current OpenGL context using the
+ * mode specified.
+ *
+ * model    - initialized GLMmodel structure
+ * mode     - a bitwise OR of values describing what is to be rendered.
+ *            GLM_NONE     -  render with only vertices
+ *            GLM_FLAT     -  render with facet normals
+ *            GLM_SMOOTH   -  render with vertex normals
+ *            GLM_TEXTURE  -  render with texture coords
+ *            GLM_COLOR    -  render with colors (color material)
+ *            GLM_MATERIAL -  render with materials
+ *            GLM_COLOR and GLM_MATERIAL should not both be specified.  
+ *            GLM_FLAT and GLM_SMOOTH should not both be specified.  
+ */
+GLvoid
+glmDraw(GLMmodel* model, GLuint mode)
+{
+  static GLuint i;
+  static GLMgroup* group;
+  static GLMtriangle* triangle;
+  static GLMmaterial* material;
+
+  assert(model);
+  assert(model->vertices);
+
+  /* do a bit of warning */
+  if (mode & GLM_FLAT && !model->facetnorms) {
+    printf("glmDraw() warning: flat render mode requested "
+	   "with no facet normals defined.\n");
+    mode &= ~GLM_FLAT;
+  }
+  if (mode & GLM_SMOOTH && !model->normals) {
+    printf("glmDraw() warning: smooth render mode requested "
+	   "with no normals defined.\n");
+    mode &= ~GLM_SMOOTH;
+  }
+  if (mode & GLM_TEXTURE && !model->texcoords) {
+    printf("glmDraw() warning: texture render mode requested "
+	   "with no texture coordinates defined.\n");
+    mode &= ~GLM_TEXTURE;
+  }
+  if (mode & GLM_FLAT && mode & GLM_SMOOTH) {
+    printf("glmDraw() warning: flat render mode requested "
+	   "and smooth render mode requested (using smooth).\n");
+    mode &= ~GLM_FLAT;
+  }
+  if (mode & GLM_COLOR && !model->materials) {
+    printf("glmDraw() warning: color render mode requested "
+	   "with no materials defined.\n");
+    mode &= ~GLM_COLOR;
+  }
+  if (mode & GLM_MATERIAL && !model->materials) {
+    printf("glmDraw() warning: material render mode requested "
+	   "with no materials defined.\n");
+    mode &= ~GLM_MATERIAL;
+  }
+  if (mode & GLM_COLOR && mode & GLM_MATERIAL) {
+    printf("glmDraw() warning: color and material render mode requested "
+	   "using only material mode.\n");
+    mode &= ~GLM_COLOR;
+  }
+  if (mode & GLM_COLOR)
+    glEnable(GL_COLOR_MATERIAL);
+  else if (mode & GLM_MATERIAL)
+    glDisable(GL_COLOR_MATERIAL);
+
+  /* perhaps this loop should be unrolled into material, color, flat,
+     smooth, etc. loops?  since most cpu's have good branch prediction
+     schemes (and these branches will always go one way), probably
+     wouldn't gain too much?  */
+
+  group = model->groups;
+  while (group) {
+    if (mode & GLM_MATERIAL) {
+      material = &model->materials[group->material];
+      glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, material->ambient);
+      glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, material->diffuse);
+      glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, material->specular);
+      glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, material->shininess);
+    }
+
+    if (mode & GLM_COLOR) {
+      glColor3fv(material->diffuse);
+    }
+
+    glBegin(GL_TRIANGLES);
+    for (i = 0; i < group->numtriangles; i++) {
+      triangle = &T(group->triangles[i]);
+
+      if (mode & GLM_FLAT)
+	glNormal3fv(&model->facetnorms[3 * triangle->findex]);
+      
+      if (mode & GLM_SMOOTH)
+	glNormal3fv(&model->normals[3 * triangle->nindices[0]]);
+      if (mode & GLM_TEXTURE)
+	glTexCoord2fv(&model->texcoords[2 * triangle->tindices[0]]);
+      glVertex3fv(&model->vertices[3 * triangle->vindices[0]]);
+      
+      if (mode & GLM_SMOOTH)
+	glNormal3fv(&model->normals[3 * triangle->nindices[1]]);
+      if (mode & GLM_TEXTURE)
+	glTexCoord2fv(&model->texcoords[2 * triangle->tindices[1]]);
+      glVertex3fv(&model->vertices[3 * triangle->vindices[1]]);
+      
+      if (mode & GLM_SMOOTH)
+	glNormal3fv(&model->normals[3 * triangle->nindices[2]]);
+      if (mode & GLM_TEXTURE)
+	glTexCoord2fv(&model->texcoords[2 * triangle->tindices[2]]);
+      glVertex3fv(&model->vertices[3 * triangle->vindices[2]]);
+      
+    }
+    glEnd();
+
+    group = group->next;
+  }
+}
+
+/* glmList: Generates and modelurns a display list for the model using
+ * the mode specified.
+ *
+ * model    - initialized GLMmodel structure
+ * mode     - a bitwise OR of values describing what is to be rendered.
+ *            GLM_NONE     -  render with only vertices
+ *            GLM_FLAT     -  render with facet normals
+ *            GLM_SMOOTH   -  render with vertex normals
+ *            GLM_TEXTURE  -  render with texture coords
+ *            GLM_COLOR    -  render with colors (color material)
+ *            GLM_MATERIAL -  render with materials
+ *            GLM_COLOR and GLM_MATERIAL should not both be specified.  
+ * GLM_FLAT and GLM_SMOOTH should not both be specified.  */
+GLuint
+glmList(GLMmodel* model, GLuint mode)
+{
+  GLuint list;
+
+  list = glGenLists(1);
+  glNewList(list, GL_COMPILE);
+  glmDraw(model, mode);
+  glEndList();
+
+  return list;
+}
+
+/* glmWeld: eliminate (weld) vectors that are within an epsilon of
+ * each other.
+ *
+ * model      - initialized GLMmodel structure
+ * epsilon    - maximum difference between vertices
+ *              ( 0.00001 is a good start for a unitized model)
+ *
+ */
+GLvoid
+glmWeld(GLMmodel* model, GLfloat epsilon)
+{
+  GLfloat* vectors;
+  GLfloat* copies;
+  GLuint   numvectors;
+  GLuint   i;
+
+  /* vertices */
+  numvectors = model->numvertices;
+  vectors    = model->vertices;
+  copies = glmWeldVectors(vectors, &numvectors, epsilon);
+
+#if 0
+  printf("glmWeld(): %d redundant vertices.\n", 
+	 model->numvertices - numvectors - 1);
+#endif
+
+  for (i = 0; i < model->numtriangles; i++) {
+    T(i).vindices[0] = (GLuint)vectors[3 * T(i).vindices[0] + 0];
+    T(i).vindices[1] = (GLuint)vectors[3 * T(i).vindices[1] + 0];
+    T(i).vindices[2] = (GLuint)vectors[3 * T(i).vindices[2] + 0];
+  }
+
+  /* free space for old vertices */
+  free(vectors);
+
+  /* allocate space for the new vertices */
+  model->numvertices = numvectors;
+  model->vertices = (GLfloat*)malloc(sizeof(GLfloat) * 
+				     3 * (model->numvertices + 1));
+
+  /* copy the optimized vertices into the actual vertex list */
+  for (i = 1; i <= model->numvertices; i++) {
+    model->vertices[3 * i + 0] = copies[3 * i + 0];
+    model->vertices[3 * i + 1] = copies[3 * i + 1];
+    model->vertices[3 * i + 2] = copies[3 * i + 2];
+  }
+
+  free(copies);
+}
+
+
+#if 0
+  /* normals */
+  if (model->numnormals) {
+  numvectors = model->numnormals;
+  vectors    = model->normals;
+  copies = glmOptimizeVectors(vectors, &numvectors);
+
+  printf("glmOptimize(): %d redundant normals.\n", 
+	 model->numnormals - numvectors);
+
+  for (i = 0; i < model->numtriangles; i++) {
+    T(i).nindices[0] = (GLuint)vectors[3 * T(i).nindices[0] + 0];
+    T(i).nindices[1] = (GLuint)vectors[3 * T(i).nindices[1] + 0];
+    T(i).nindices[2] = (GLuint)vectors[3 * T(i).nindices[2] + 0];
+  }
+
+  /* free space for old normals */
+  free(vectors);
+
+  /* allocate space for the new normals */
+  model->numnormals = numvectors;
+  model->normals = (GLfloat*)malloc(sizeof(GLfloat) * 
+				    3 * (model->numnormals + 1));
+
+  /* copy the optimized vertices into the actual vertex list */
+  for (i = 1; i <= model->numnormals; i++) {
+    model->normals[3 * i + 0] = copies[3 * i + 0];
+    model->normals[3 * i + 1] = copies[3 * i + 1];
+    model->normals[3 * i + 2] = copies[3 * i + 2];
+  }
+
+  free(copies);
+  }
+
+  /* texcoords */
+  if (model->numtexcoords) {
+  numvectors = model->numtexcoords;
+  vectors    = model->texcoords;
+  copies = glmOptimizeVectors(vectors, &numvectors);
+
+  printf("glmOptimize(): %d redundant texcoords.\n", 
+	 model->numtexcoords - numvectors);
+
+  for (i = 0; i < model->numtriangles; i++) {
+    for (j = 0; j < 3; j++) {
+      T(i).tindices[j] = (GLuint)vectors[3 * T(i).tindices[j] + 0];
+    }
+  }
+
+  /* free space for old texcoords */
+  free(vectors);
+
+  /* allocate space for the new texcoords */
+  model->numtexcoords = numvectors;
+  model->texcoords = (GLfloat*)malloc(sizeof(GLfloat) * 
+				      2 * (model->numtexcoords + 1));
+
+  /* copy the optimized vertices into the actual vertex list */
+  for (i = 1; i <= model->numtexcoords; i++) {
+    model->texcoords[2 * i + 0] = copies[2 * i + 0];
+    model->texcoords[2 * i + 1] = copies[2 * i + 1];
+  }
+
+  free(copies);
+  }
+
+#endif
+
+#if 0
+  /* look for unused vertices */
+  /* look for unused normals */
+  /* look for unused texcoords */
+  for (i = 1; i <= model->numvertices; i++) {
+    for (j = 0; j < model->numtriangles; i++) {
+      if (T(j).vindices[0] == i || 
+	  T(j).vindices[1] == i || 
+	  T(j).vindices[1] == i)
+	break;
+    }
+  }
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/glm.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,277 @@
+#ifndef __GLM__H__
+#define __GLM__H__
+
+/*    
+      glm.h
+      Nate Robins, 1997
+      ndr@pobox.com, http://www.pobox.com/~ndr/
+ 
+      Wavefront OBJ model file format reader/writer/manipulator.
+
+      Includes routines for generating smooth normals with
+      preservation of edges, welding redundant vertices & texture
+      coordinate generation (spheremap and planar projections) + more.
+
+ */
+
+
+#if defined(WIN32)
+#include "glut.h"
+#else
+//#include <GL/glut.h>
+#endif
+
+#include<GL/glu.h>
+
+#ifndef M_PI
+#define M_PI 3.14159265
+#endif
+
+#define GLM_NONE     (0)		/* render with only vertices */
+#define GLM_FLAT     (1 << 0)		/* render with facet normals */
+#define GLM_SMOOTH   (1 << 1)		/* render with vertex normals */
+#define GLM_TEXTURE  (1 << 2)		/* render with texture coords */
+#define GLM_COLOR    (1 << 3)		/* render with colors */
+#define GLM_MATERIAL (1 << 4)		/* render with materials */
+
+
+/* GLMmaterial: Structure that defines a material in a model. 
+ */
+typedef struct _GLMmaterial
+{
+  char* name;				/* name of material */
+  GLfloat diffuse[4];			/* diffuse component */
+  GLfloat ambient[4];			/* ambient component */
+  GLfloat specular[4];			/* specular component */
+  GLfloat emmissive[4];			/* emmissive component */
+  GLfloat shininess;			/* specular exponent */
+} GLMmaterial;
+
+typedef struct _GLMmat_str{
+  GLint num_materials;
+  GLMmaterial* materials;
+} GLMmat_str;
+
+
+/* GLMtriangle: Structure that defines a triangle in a model.
+ */
+typedef struct _GLMtriangle {
+  GLuint vindices[3];			/* array of triangle vertex indices */
+  GLuint nindices[3];			/* array of triangle normal indices */
+  GLuint tindices[3];			/* array of triangle texcoord indices*/
+  GLuint findex;			/* index of triangle facet normal */
+} GLMtriangle;
+
+/* GLMgroup: Structure that defines a group in a model.
+ */
+typedef struct _GLMgroup {
+  char*             name;		/* name of this group */
+  GLuint            numtriangles;	/* number of triangles in this group */
+  GLuint*           triangles;		/* array of triangle indices */
+  GLuint            material;           /* index to material for group */
+  struct _GLMgroup* next;		/* pointer to next group in model */
+} GLMgroup;
+
+/* GLMmodel: Structure that defines a model.
+ */
+typedef struct _GLMmodel {
+  char*    pathname;			/* path to this model */
+  char*    mtllibname;			/* name of the material library */
+
+  GLuint   numvertices;			/* number of vertices in model */
+  GLfloat* vertices;			/* array of vertices  */
+
+  GLuint   numnormals;			/* number of normals in model */
+  GLfloat* normals;			/* array of normals */
+
+  GLuint   numtexcoords;		/* number of texcoords in model */
+  GLfloat* texcoords;			/* array of texture coordinates */
+
+  GLuint   numfacetnorms;		/* number of facetnorms in model */
+  GLfloat* facetnorms;			/* array of facetnorms */
+
+  GLuint       numtriangles;		/* number of triangles in model */
+  GLMtriangle* triangles;		/* array of triangles */
+
+  GLuint       nummaterials;		/* number of materials in model */
+  GLMmaterial* materials;		/* array of materials */
+
+  GLuint       numgroups;		/* number of groups in model */
+  GLMgroup*    groups;			/* linked list of groups */
+
+  GLfloat position[3];			/* position of the model */
+
+} GLMmodel;
+
+#  ifdef __cplusplus
+extern "C" {
+#  endif /* __cplusplus */
+
+/* glmUnitize: "unitize" a model by translating it to the origin and
+ * scaling it to fit in a unit cube around the origin.  Returns the
+ * scalefactor used.
+ *
+ * model - properly initialized GLMmodel structure 
+ */
+GLfloat
+glmUnitize(GLMmodel* model);
+
+/* glmDimensions: Calculates the dimensions (width, height, depth) of
+ * a model.
+ *
+ * model      - initialized GLMmodel structure
+ * dimensions - array of 3 GLfloats (GLfloat dimensions[3])
+ */
+GLvoid
+glmDimensions(GLMmodel* model, GLfloat* dimensions);
+
+/* glmScale: Scales a model by a given amount.
+ * 
+ * model - properly initialized GLMmodel structure
+ * scale - scalefactor (0.5 = half as large, 2.0 = twice as large)
+ */
+GLvoid
+glmScale(GLMmodel* model, GLfloat scale);
+
+/* glmReverseWinding: Reverse the polygon winding for all polygons in
+ * this model.  Default winding is counter-clockwise.  Also changes
+ * the direction of the normals.
+ * 
+ * model - properly initialized GLMmodel structure 
+ */
+GLvoid
+glmReverseWinding(GLMmodel* model);
+
+/* glmFacetNormals: Generates facet normals for a model (by taking the
+ * cross product of the two vectors derived from the sides of each
+ * triangle).  Assumes a counter-clockwise winding.
+ *
+ * model - initialized GLMmodel structure
+ */
+GLvoid
+glmFacetNormals(GLMmodel* model);
+
+/* glmVertexNormals: Generates smooth vertex normals for a model.
+ * First builds a list of all the triangles each vertex is in.  Then
+ * loops through each vertex in the the list averaging all the facet
+ * normals of the triangles each vertex is in.  Finally, sets the
+ * normal index in the triangle for the vertex to the generated smooth
+ * normal.  If the dot product of a facet normal and the facet normal
+ * associated with the first triangle in the list of triangles the
+ * current vertex is in is greater than the cosine of the angle
+ * parameter to the function, that facet normal is not added into the
+ * average normal calculation and the corresponding vertex is given
+ * the facet normal.  This tends to preserve hard edges.  The angle to
+ * use depends on the model, but 90 degrees is usually a good start.
+ *
+ * model - initialized GLMmodel structure
+ * angle - maximum angle (in degrees) to smooth across
+ */
+GLvoid
+glmVertexNormals(GLMmodel* model, GLfloat angle);
+
+/* glmLinearTexture: Generates texture coordinates according to a
+ * linear projection of the texture map.  It generates these by
+ * linearly mapping the vertices onto a square.
+ *
+ * model - pointer to initialized GLMmodel structure
+ */
+GLvoid
+glmLinearTexture(GLMmodel* model);
+
+/* glmSpheremapTexture: Generates texture coordinates according to a
+ * spherical projection of the texture map.  Sometimes referred to as
+ * spheremap, or reflection map texture coordinates.  It generates
+ * these by using the normal to calculate where that vertex would map
+ * onto a sphere.  Since it is impossible to map something flat
+ * perfectly onto something spherical, there is distortion at the
+ * poles.  This particular implementation causes the poles along the X
+ * axis to be distorted.
+ *
+ * model - pointer to initialized GLMmodel structure
+ */
+GLvoid
+glmSpheremapTexture(GLMmodel* model);
+
+/* glmDelete: Deletes a GLMmodel structure.
+ *
+ * model - initialized GLMmodel structure
+ */
+GLvoid
+glmDelete(GLMmodel* model);
+
+/* glmReadOBJ: Reads a model description from a Wavefront .OBJ file.
+ * Returns a pointer to the created object which should be free'd with
+ * glmDelete().
+ *
+ * filename - name of the file containing the Wavefront .OBJ format data.  
+ */
+GLMmodel* 
+glmReadOBJ(char* filename);
+
+/* glmWriteOBJ: Writes a model description in Wavefront .OBJ format to
+ * a file.
+ *
+ * model    - initialized GLMmodel structure
+ * filename - name of the file to write the Wavefront .OBJ format data to
+ * mode     - a bitwise or of values describing what is written to the file
+ *            GLM_NONE    -  write only vertices
+ *            GLM_FLAT    -  write facet normals
+ *            GLM_SMOOTH  -  write vertex normals
+ *            GLM_TEXTURE -  write texture coords
+ *            GLM_FLAT and GLM_SMOOTH should not both be specified.
+ */
+GLvoid
+glmWriteOBJ(GLMmodel* model, char* filename, GLuint mode);
+
+/* glmDraw: Renders the model to the current OpenGL context using the
+ * mode specified.
+ *
+ * model    - initialized GLMmodel structure
+ * mode     - a bitwise OR of values describing what is to be rendered.
+ *            GLM_NONE    -  render with only vertices
+ *            GLM_FLAT    -  render with facet normals
+ *            GLM_SMOOTH  -  render with vertex normals
+ *            GLM_TEXTURE -  render with texture coords
+ *            GLM_FLAT and GLM_SMOOTH should not both be specified.
+ */
+GLvoid
+glmDraw(GLMmodel* model, GLuint mode);
+
+/* glmList: Generates and returns a display list for the model using
+ * the mode specified.
+ *
+ * model    - initialized GLMmodel structure
+ * mode     - a bitwise OR of values describing what is to be rendered.
+ *            GLM_NONE    -  render with only vertices
+ *            GLM_FLAT    -  render with facet normals
+ *            GLM_SMOOTH  -  render with vertex normals
+ *            GLM_TEXTURE -  render with texture coords
+ *            GLM_FLAT and GLM_SMOOTH should not both be specified.  
+ */
+GLuint
+glmList(GLMmodel* model, GLuint mode);
+
+/* glmWeld: eliminate (weld) vectors that are within an epsilon of
+ * each other.
+ *
+ * model      - initialized GLMmodel structure
+ * epsilon    - maximum difference between vertices
+ *              ( 0.00001 is a good start for a unitized model)
+ *
+ */
+GLvoid
+glmWeld(GLMmodel* model, GLfloat epsilon);
+
+GLMmat_str* 
+glmMTL(char* name);
+
+void 
+glmSetMat(GLMmat_str* mats, GLint index);
+
+#  ifdef __cplusplus
+}
+#  endif /* __cplusplus */
+
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/lids.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,4080 @@
+
+#include "lids.h"
+#include "mat_struct.h"
+#include <GL/gl.h>
+#include <GL/glu.h>
+
+
+#define NUM_LIDS 9
+
+GLint lidLists[NUM_LIDS];
+
+/*
+typedef struct sample_MATERIAL{
+ GLfloat ambient[3];
+ GLfloat diffuse[3];
+ GLfloat specular[3];
+ GLfloat emission[3];
+ GLfloat alpha;
+ GLfloat phExp;
+ int   texture;
+}sample_MATERIAL;*/
+
+static sample_MATERIAL materials [1] = {
+ {{0.215686f,0.117647f,0.0627451f},	{0.847059f,0.713726f,0.639216f},	{0.044902f,0.044902f,0.044902f},	{0.0f,0.0f,0.0f},	1.0f,11.3137f,-1} //Material #519
+};
+
+static short face_indicies[NUM_LIDS][448][9] = {
+
+//lid 10
+{
+// Object #-1
+	{0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 },
+	{0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 },
+	{0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 },
+	{0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 },
+	{0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 },
+	{0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 },
+	{0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 },
+	{1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 },
+	{3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 },
+	{4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 },
+	{6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 },
+	{7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 },
+	{8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 },
+	{9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 },
+	{10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 },
+	{11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 },
+	{12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 },
+	{13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 },
+	{14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 },
+	{15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 },
+	{16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 },
+	{17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 },
+	{18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 },
+	{19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 },
+	{20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 },
+	{21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 },
+	{22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 },
+	{23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 },
+	{24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 },
+	{25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 },
+	{26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 },
+	{27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 },
+	{28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 },
+	{29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 },
+	{30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 },
+	{31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 },
+	{32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 },
+	{33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 },
+	{34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 },
+	{35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 },
+	{36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 },
+	{37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 },
+	{38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 },
+	{39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 },
+	{40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 },
+	{41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 },
+	{42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 },
+	{43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 },
+	{44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 },
+	{45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 },
+	{46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 },
+	{47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 },
+	{48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 },
+	{66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 },
+	{69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 },
+	{71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 },
+	{73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 },
+	{75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 },
+	{77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 },
+	{79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 },
+	{81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 },
+	{83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 },
+	{84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 },
+	{85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 },
+	{86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 },
+	{87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 },
+	{88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 },
+	{89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 },
+	{90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 },
+	{91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 },
+	{92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 },
+	{93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 },
+	{94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 },
+	{95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 },
+	{96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 },
+	{97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 },
+	{82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 },
+	{99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 },
+	{100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 },
+	{101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 },
+	{102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 },
+	{103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 },
+	{104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 },
+	{105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 },
+	{106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 },
+	{107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 },
+	{108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 },
+	{109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 },
+	{110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 },
+	{111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 },
+	{112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 },
+	{113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 },
+	{98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 },
+	{115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 },
+	{116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 },
+	{117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 },
+	{118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 },
+	{119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 },
+	{120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 },
+	{121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 },
+	{122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 },
+	{123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 },
+	{124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 },
+	{125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 },
+	{126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 },
+	{127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 },
+	{128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 },
+	{129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 },
+	{114,113,98 ,171,151,171 ,83,65,66 }
+// Object #-1
+	, {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 },
+	{130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 },
+	{130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 },
+	{130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 },
+	{130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 },
+	{130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 },
+	{130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 },
+	{130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 },
+	{131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 },
+	{132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 },
+	{133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 },
+	{134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 },
+	{135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 },
+	{136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 },
+	{137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 },
+	{138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 },
+	{139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 },
+	{140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 },
+	{141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 },
+	{142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 },
+	{143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 },
+	{144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 },
+	{145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 },
+	{146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 },
+	{147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 },
+	{148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 },
+	{149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 },
+	{150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 },
+	{151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 },
+	{152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 },
+	{153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 },
+	{154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 },
+	{155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 },
+	{156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 },
+	{157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 },
+	{158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 },
+	{159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 },
+	{160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 },
+	{161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 },
+	{162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 },
+	{163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 },
+	{164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 },
+	{165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 },
+	{166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 },
+	{167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 },
+	{168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 },
+	{169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 },
+	{170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 },
+	{171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 },
+	{172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 },
+	{173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 },
+	{174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 },
+	{175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 },
+	{176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 },
+	{177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 },
+	{178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 },
+	{196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 },
+	{198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 },
+	{200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 },
+	{202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 },
+	{204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 },
+	{206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 },
+	{208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 },
+	{210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 },
+	{212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 },
+	{213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 },
+	{214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 },
+	{215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 },
+	{216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 },
+	{217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 },
+	{218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 },
+	{219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 },
+	{220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 },
+	{221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 },
+	{222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 },
+	{223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 },
+	{224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 },
+	{225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 },
+	{226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 },
+	{227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 },
+	{228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 },
+	{229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 },
+	{230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 },
+	{231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 },
+	{232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 },
+	{233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 },
+	{234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 },
+	{235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 },
+	{236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 },
+	{237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 },
+	{238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 },
+	{239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 },
+	{240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 },
+	{241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 },
+	{242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 },
+	{243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 },
+	{244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 },
+	{245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 },
+	{246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 },
+	{247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 },
+	{248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 },
+	{249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 },
+	{250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 },
+	{251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 },
+	{252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 },
+	{253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 },
+	{254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 },
+	{255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 },
+	{256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 },
+	{257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 },
+	{258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 },
+	{259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 }
+},
+
+//lid 9
+{
+// Object #-1
+	{0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 },
+	{0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 },
+	{0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 },
+	{0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 },
+	{0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 },
+	{0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 },
+	{0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 },
+	{1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 },
+	{3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 },
+	{4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 },
+	{6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 },
+	{7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 },
+	{8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 },
+	{9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 },
+	{10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 },
+	{11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 },
+	{12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 },
+	{13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 },
+	{14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 },
+	{15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 },
+	{16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 },
+	{17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 },
+	{18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 },
+	{19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 },
+	{20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 },
+	{21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 },
+	{22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 },
+	{23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 },
+	{24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 },
+	{25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 },
+	{26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 },
+	{27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 },
+	{28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 },
+	{29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 },
+	{30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 },
+	{31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 },
+	{32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 },
+	{33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 },
+	{34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 },
+	{35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 },
+	{36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 },
+	{37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 },
+	{38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 },
+	{39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 },
+	{40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 },
+	{41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 },
+	{42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 },
+	{43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 },
+	{44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 },
+	{45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 },
+	{46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 },
+	{47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 },
+	{48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 },
+	{66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 },
+	{69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 },
+	{71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 },
+	{73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 },
+	{75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 },
+	{77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 },
+	{79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 },
+	{81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 },
+	{83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 },
+	{84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 },
+	{85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 },
+	{86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 },
+	{87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 },
+	{88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 },
+	{89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 },
+	{90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 },
+	{91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 },
+	{92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 },
+	{93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 },
+	{94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 },
+	{95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 },
+	{96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 },
+	{97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 },
+	{82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 },
+	{99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 },
+	{100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 },
+	{101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 },
+	{102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 },
+	{103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 },
+	{104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 },
+	{105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 },
+	{106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 },
+	{107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 },
+	{108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 },
+	{109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 },
+	{110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 },
+	{111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 },
+	{112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 },
+	{113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 },
+	{98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 },
+	{115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 },
+	{116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 },
+	{117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 },
+	{118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 },
+	{119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 },
+	{120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 },
+	{121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 },
+	{122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 },
+	{123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 },
+	{124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 },
+	{125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 },
+	{126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 },
+	{127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 },
+	{128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 },
+	{129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 },
+	{114,113,98 ,171,151,171 ,83,65,66 }
+// Object #-1
+	, {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 },
+	{130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 },
+	{130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 },
+	{130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 },
+	{130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 },
+	{130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 },
+	{130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 },
+	{130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 },
+	{131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 },
+	{132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 },
+	{133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 },
+	{134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 },
+	{135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 },
+	{136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 },
+	{137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 },
+	{138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 },
+	{139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 },
+	{140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 },
+	{141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 },
+	{142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 },
+	{143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 },
+	{144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 },
+	{145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 },
+	{146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 },
+	{147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 },
+	{148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 },
+	{149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 },
+	{150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 },
+	{151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 },
+	{152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 },
+	{153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 },
+	{154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 },
+	{155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 },
+	{156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 },
+	{157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 },
+	{158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 },
+	{159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 },
+	{160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 },
+	{161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 },
+	{162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 },
+	{163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 },
+	{164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 },
+	{165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 },
+	{166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 },
+	{167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 },
+	{168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 },
+	{169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 },
+	{170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 },
+	{171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 },
+	{172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 },
+	{173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 },
+	{174,190,61 ,233,251,252 ,61,78,79 }, {174,61,175 ,233,252,234 ,61,79,62 },
+	{175,61,191 ,234,252,253 ,62,79,80 }, {175,191,176 ,234,253,235 ,62,80,63 },
+	{176,191,192 ,235,253,254 ,63,80,81 }, {176,192,177 ,235,254,236 ,63,81,64 },
+	{177,192,193 ,236,254,255 ,64,81,82 }, {177,193,178 ,236,255,237 ,64,82,65 },
+	{178,193,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 },
+	{195,194,196 ,258,259,260 ,1,0,2 }, {196,194,197 ,260,261,262 ,2,3,4 },
+	{197,194,198 ,262,263,264 ,4,5,6 }, {198,194,199 ,264,265,266 ,6,7,8 },
+	{199,194,200 ,266,267,268 ,8,9,10 }, {200,194,201 ,268,269,270 ,10,11,12 },
+	{201,194,202 ,270,271,272 ,12,13,14 }, {202,194,203 ,272,273,274 ,14,15,16 },
+	{203,194,204 ,274,275,276 ,16,17,18 }, {204,194,205 ,276,277,278 ,18,19,20 },
+	{205,194,206 ,278,279,280 ,20,21,22 }, {206,194,207 ,280,281,282 ,22,23,24 },
+	{207,194,208 ,282,283,284 ,24,25,26 }, {208,194,209 ,284,285,286 ,26,27,28 },
+	{209,194,210 ,286,287,288 ,28,29,30 }, {210,194,195 ,288,289,289 ,30,31,32 },
+	{211,195,212 ,290,258,291 ,33,1,34 }, {212,195,196 ,291,258,260 ,34,1,2 },
+	{212,196,213 ,291,260,292 ,34,2,35 }, {213,196,197 ,292,260,262 ,35,2,4 },
+	{213,197,214 ,292,262,293 ,35,4,36 }, {214,197,198 ,293,262,264 ,36,4,6 },
+	{214,198,215 ,293,264,294 ,36,6,37 }, {215,198,199 ,294,264,266 ,37,6,8 },
+	{215,199,216 ,294,266,295 ,37,8,38 }, {216,199,200 ,295,266,268 ,38,8,10 },
+	{216,200,217 ,295,268,296 ,38,10,39 }, {217,200,201 ,296,268,270 ,39,10,12 },
+	{217,201,218 ,296,270,297 ,39,12,40 }, {218,201,202 ,297,270,272 ,40,12,14 },
+	{218,202,219 ,297,272,298 ,40,14,41 }, {219,202,203 ,298,272,274 ,41,14,16 },
+	{219,203,220 ,298,274,299 ,41,16,42 }, {220,203,204 ,299,274,276 ,42,16,18 },
+	{220,204,221 ,299,276,300 ,42,18,43 }, {221,204,205 ,300,276,278 ,43,18,20 },
+	{221,205,222 ,300,278,301 ,43,20,44 }, {222,205,206 ,301,278,280 ,44,20,22 },
+	{222,206,223 ,301,280,302 ,44,22,45 }, {223,206,207 ,302,280,282 ,45,22,24 },
+	{223,207,224 ,302,282,303 ,45,24,46 }, {224,207,208 ,303,282,284 ,46,24,26 },
+	{224,208,225 ,303,284,304 ,46,26,47 }, {225,208,209 ,304,284,286 ,47,26,28 },
+	{225,209,226 ,304,286,305 ,47,28,48 }, {226,209,210 ,305,286,288 ,48,28,30 },
+	{226,210,211 ,305,288,306 ,48,30,49 }, {211,210,195 ,307,288,307 ,49,30,32 },
+	{227,211,228 ,308,290,309 ,50,33,51 }, {228,211,212 ,309,290,291 ,51,33,34 },
+	{228,212,229 ,309,291,310 ,51,34,52 }, {229,212,213 ,310,291,292 ,52,34,35 },
+	{229,213,230 ,310,292,311 ,52,35,53 }, {230,213,214 ,311,292,293 ,53,35,36 },
+	{230,214,231 ,311,293,312 ,53,36,54 }, {231,214,215 ,312,293,294 ,54,36,37 },
+	{231,215,232 ,312,294,313 ,54,37,55 }, {232,215,216 ,313,294,295 ,55,37,38 },
+	{232,216,233 ,313,295,314 ,55,38,56 }, {233,216,217 ,314,295,296 ,56,38,39 },
+	{233,217,234 ,314,296,315 ,56,39,57 }, {234,217,218 ,315,296,297 ,57,39,40 },
+	{234,218,235 ,315,297,316 ,57,40,58 }, {235,218,219 ,316,297,298 ,58,40,41 },
+	{235,219,236 ,316,298,317 ,58,41,59 }, {236,219,220 ,317,298,299 ,59,41,42 },
+	{236,220,237 ,317,299,318 ,59,42,60 }, {237,220,221 ,318,299,300 ,60,42,43 },
+	{237,221,238 ,318,300,319 ,60,43,61 }, {238,221,222 ,319,300,301 ,61,43,44 },
+	{238,222,239 ,319,301,320 ,61,44,62 }, {239,222,223 ,320,301,302 ,62,44,45 },
+	{239,223,240 ,320,302,321 ,62,45,63 }, {240,223,224 ,321,302,303 ,63,45,46 },
+	{240,224,241 ,321,303,322 ,63,46,64 }, {241,224,225 ,322,303,304 ,64,46,47 },
+	{241,225,242 ,322,304,323 ,64,47,65 }, {242,225,226 ,323,304,305 ,65,47,48 },
+	{242,226,227 ,323,305,324 ,65,48,66 }, {227,226,211 ,325,305,325 ,66,48,49 },
+	{243,227,244 ,326,308,327 ,67,50,68 }, {244,227,228 ,327,308,309 ,68,50,51 },
+	{244,228,245 ,327,309,328 ,68,51,69 }, {245,228,229 ,328,309,310 ,69,51,52 },
+	{245,229,246 ,328,310,329 ,69,52,70 }, {246,229,230 ,329,310,311 ,70,52,53 },
+	{246,230,247 ,329,311,330 ,70,53,71 }, {247,230,231 ,330,311,312 ,71,53,54 },
+	{247,231,248 ,330,312,331 ,71,54,72 }, {248,231,232 ,331,312,313 ,72,54,55 },
+	{248,232,249 ,331,313,332 ,72,55,73 }, {249,232,233 ,332,313,314 ,73,55,56 },
+	{249,233,250 ,332,314,333 ,73,56,74 }, {250,233,234 ,333,314,315 ,74,56,57 },
+	{250,234,251 ,333,315,334 ,74,57,75 }, {251,234,235 ,334,315,316 ,75,57,58 },
+	{251,235,252 ,334,316,335 ,75,58,76 }, {252,235,236 ,335,316,317 ,76,58,59 },
+	{252,236,253 ,335,317,336 ,76,59,77 }, {253,236,237 ,336,317,318 ,77,59,60 },
+	{253,237,254 ,336,318,337 ,77,60,78 }, {254,237,238 ,337,318,319 ,78,60,61 },
+	{254,238,126 ,337,319,338 ,78,61,79 }, {126,238,239 ,338,319,320 ,79,61,62 },
+	{126,239,255 ,338,320,339 ,79,62,80 }, {255,239,240 ,339,320,321 ,80,62,63 },
+	{255,240,256 ,339,321,340 ,80,63,81 }, {256,240,241 ,340,321,322 ,81,63,64 },
+	{256,241,257 ,340,322,341 ,81,64,82 }, {257,241,242 ,341,322,323 ,82,64,65 },
+	{257,242,243 ,341,323,342 ,82,65,83 }, {243,242,227 ,343,323,343 ,83,65,66 }
+},
+
+//lid 8
+{
+// Object #-1
+	{0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 },
+	{0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 },
+	{0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 },
+	{0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 },
+	{0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 },
+	{0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 },
+	{0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 },
+	{1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 },
+	{3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 },
+	{4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 },
+	{6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 },
+	{7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 },
+	{8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 },
+	{9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 },
+	{10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 },
+	{11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 },
+	{12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 },
+	{13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 },
+	{14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 },
+	{15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 },
+	{16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 },
+	{17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 },
+	{18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 },
+	{19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 },
+	{20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 },
+	{21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 },
+	{22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 },
+	{23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 },
+	{24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 },
+	{25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 },
+	{26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 },
+	{27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 },
+	{28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 },
+	{29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 },
+	{30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 },
+	{31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 },
+	{32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 },
+	{33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 },
+	{34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 },
+	{35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 },
+	{36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 },
+	{37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 },
+	{38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 },
+	{39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 },
+	{40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 },
+	{41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 },
+	{42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 },
+	{43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 },
+	{44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 },
+	{45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 },
+	{46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 },
+	{47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 },
+	{48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 },
+	{66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 },
+	{69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 },
+	{71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 },
+	{73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 },
+	{75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 },
+	{77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 },
+	{79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 },
+	{81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 },
+	{83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 },
+	{84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 },
+	{85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 },
+	{86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 },
+	{87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 },
+	{88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 },
+	{89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 },
+	{90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 },
+	{91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 },
+	{92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 },
+	{93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 },
+	{94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 },
+	{95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 },
+	{96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 },
+	{97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 },
+	{82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 },
+	{99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 },
+	{100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 },
+	{101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 },
+	{102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 },
+	{103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 },
+	{104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 },
+	{105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 },
+	{106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 },
+	{107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 },
+	{108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 },
+	{109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 },
+	{110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 },
+	{111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 },
+	{112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 },
+	{113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 },
+	{98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 },
+	{115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 },
+	{116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 },
+	{117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 },
+	{118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 },
+	{119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 },
+	{120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 },
+	{121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 },
+	{122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 },
+	{123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 },
+	{124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 },
+	{125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 },
+	{126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 },
+	{127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 },
+	{128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 },
+	{129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 },
+	{114,113,98 ,171,151,171 ,83,65,66 }
+// Object #-1
+	, {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 },
+	{130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 },
+	{130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 },
+	{130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 },
+	{130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 },
+	{130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 },
+	{130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 },
+	{130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 },
+	{131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 },
+	{132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 },
+	{133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 },
+	{134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 },
+	{135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 },
+	{136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 },
+	{137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 },
+	{138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 },
+	{139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 },
+	{140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 },
+	{141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 },
+	{142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 },
+	{143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 },
+	{144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 },
+	{145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 },
+	{146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 },
+	{147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 },
+	{148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 },
+	{149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 },
+	{150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 },
+	{151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 },
+	{152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 },
+	{153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 },
+	{154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 },
+	{155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 },
+	{156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 },
+	{157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 },
+	{158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 },
+	{159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 },
+	{160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 },
+	{161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 },
+	{162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 },
+	{163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 },
+	{164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 },
+	{165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 },
+	{166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 },
+	{167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 },
+	{168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 },
+	{169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 },
+	{170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 },
+	{171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 },
+	{172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 },
+	{173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 },
+	{174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 },
+	{175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 },
+	{176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 },
+	{177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 },
+	{178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 },
+	{196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 },
+	{198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 },
+	{200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 },
+	{202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 },
+	{204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 },
+	{206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 },
+	{208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 },
+	{210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 },
+	{212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 },
+	{213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 },
+	{214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 },
+	{215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 },
+	{216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 },
+	{217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 },
+	{218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 },
+	{219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 },
+	{220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 },
+	{221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 },
+	{222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 },
+	{223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 },
+	{224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 },
+	{225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 },
+	{226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 },
+	{227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 },
+	{228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 },
+	{229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 },
+	{230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 },
+	{231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 },
+	{232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 },
+	{233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 },
+	{234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 },
+	{235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 },
+	{236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 },
+	{237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 },
+	{238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 },
+	{239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 },
+	{240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 },
+	{241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 },
+	{242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 },
+	{243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 },
+	{244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 },
+	{245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 },
+	{246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 },
+	{247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 },
+	{248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 },
+	{249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 },
+	{250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 },
+	{251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 },
+	{252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 },
+	{253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 },
+	{254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 },
+	{255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 },
+	{256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 },
+	{257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 },
+	{258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 },
+	{259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 }
+},
+
+//lid 6
+{
+// Object #-1
+	{0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 },
+	{0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 },
+	{0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 },
+	{0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 },
+	{0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 },
+	{0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 },
+	{0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 },
+	{1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 },
+	{3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 },
+	{4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 },
+	{6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 },
+	{7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 },
+	{8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 },
+	{9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 },
+	{10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 },
+	{11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 },
+	{12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 },
+	{13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 },
+	{14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 },
+	{15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 },
+	{16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 },
+	{17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 },
+	{18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 },
+	{19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 },
+	{20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 },
+	{21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 },
+	{22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 },
+	{23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 },
+	{24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 },
+	{25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 },
+	{26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 },
+	{27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 },
+	{28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 },
+	{29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 },
+	{30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 },
+	{31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 },
+	{32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 },
+	{33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 },
+	{34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 },
+	{35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 },
+	{36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 },
+	{37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 },
+	{38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 },
+	{39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 },
+	{40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 },
+	{41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 },
+	{42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 },
+	{43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 },
+	{44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 },
+	{45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 },
+	{46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 },
+	{47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 },
+	{48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 },
+	{66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 },
+	{69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 },
+	{71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 },
+	{73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 },
+	{75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 },
+	{77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 },
+	{79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 },
+	{81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 },
+	{83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 },
+	{84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 },
+	{85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 },
+	{86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 },
+	{87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 },
+	{88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 },
+	{89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 },
+	{90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 },
+	{91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 },
+	{92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 },
+	{93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 },
+	{94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 },
+	{95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 },
+	{96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 },
+	{97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 },
+	{82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 },
+	{99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 },
+	{100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 },
+	{101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 },
+	{102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 },
+	{103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 },
+	{104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 },
+	{105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 },
+	{106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 },
+	{107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 },
+	{108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 },
+	{109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 },
+	{110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 },
+	{111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 },
+	{112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 },
+	{113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 },
+	{98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 },
+	{115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 },
+	{116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 },
+	{117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 },
+	{118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 },
+	{119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 },
+	{120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 },
+	{121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 },
+	{122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 },
+	{123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 },
+	{124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 },
+	{125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 },
+	{126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 },
+	{127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 },
+	{128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 },
+	{129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 },
+	{114,113,98 ,171,151,171 ,83,65,66 }
+// Object #-1
+	, {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 },
+	{130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 },
+	{130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 },
+	{130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 },
+	{130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 },
+	{130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 },
+	{130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 },
+	{130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 },
+	{131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 },
+	{132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 },
+	{133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 },
+	{134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 },
+	{135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 },
+	{136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 },
+	{137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 },
+	{138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 },
+	{139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 },
+	{140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 },
+	{141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 },
+	{142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 },
+	{143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 },
+	{144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 },
+	{145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 },
+	{146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 },
+	{147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 },
+	{148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 },
+	{149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 },
+	{150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 },
+	{151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 },
+	{152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 },
+	{153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 },
+	{154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 },
+	{155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 },
+	{156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 },
+	{157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 },
+	{158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 },
+	{159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 },
+	{160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 },
+	{161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 },
+	{162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 },
+	{163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 },
+	{164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 },
+	{165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 },
+	{166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 },
+	{167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 },
+	{168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 },
+	{169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 },
+	{170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 },
+	{171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 },
+	{172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 },
+	{173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 },
+	{174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 },
+	{175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 },
+	{176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 },
+	{177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 },
+	{178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 },
+	{196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 },
+	{198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 },
+	{200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 },
+	{202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 },
+	{204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 },
+	{206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 },
+	{208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 },
+	{210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 },
+	{212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 },
+	{213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 },
+	{214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 },
+	{215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 },
+	{216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 },
+	{217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 },
+	{218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 },
+	{219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 },
+	{220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 },
+	{221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 },
+	{222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 },
+	{223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 },
+	{224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 },
+	{225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 },
+	{226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 },
+	{227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 },
+	{228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 },
+	{229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 },
+	{230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 },
+	{231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 },
+	{232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 },
+	{233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 },
+	{234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 },
+	{235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 },
+	{236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 },
+	{237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 },
+	{238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 },
+	{239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 },
+	{240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 },
+	{241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 },
+	{242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 },
+	{243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 },
+	{244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 },
+	{245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 },
+	{246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 },
+	{247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 },
+	{248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 },
+	{249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 },
+	{250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 },
+	{251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 },
+	{252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 },
+	{253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 },
+	{254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 },
+	{255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 },
+	{256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 },
+	{257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 },
+	{258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 },
+	{259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 }
+},
+
+//lid 5
+{
+// Object #-1
+	{0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 },
+	{0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 },
+	{0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 },
+	{0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 },
+	{0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 },
+	{0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 },
+	{0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 },
+	{1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 },
+	{3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 },
+	{4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 },
+	{6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 },
+	{7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 },
+	{8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 },
+	{9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 },
+	{10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 },
+	{11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 },
+	{12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 },
+	{13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 },
+	{14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 },
+	{15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 },
+	{16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 },
+	{17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 },
+	{18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 },
+	{19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 },
+	{20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 },
+	{21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 },
+	{22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 },
+	{23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 },
+	{24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 },
+	{25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 },
+	{26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 },
+	{27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 },
+	{28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 },
+	{29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 },
+	{30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 },
+	{31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 },
+	{32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 },
+	{33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 },
+	{34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 },
+	{35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 },
+	{36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 },
+	{37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 },
+	{38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 },
+	{39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 },
+	{40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 },
+	{41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 },
+	{42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 },
+	{43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 },
+	{44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 },
+	{45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 },
+	{46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 },
+	{47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 },
+	{48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 },
+	{66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 },
+	{69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 },
+	{71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 },
+	{73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 },
+	{75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 },
+	{77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 },
+	{79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 },
+	{81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 },
+	{83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 },
+	{84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 },
+	{85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 },
+	{86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 },
+	{87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 },
+	{88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 },
+	{89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 },
+	{90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 },
+	{91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 },
+	{92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 },
+	{93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 },
+	{94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 },
+	{95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 },
+	{96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 },
+	{97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 },
+	{82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 },
+	{99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 },
+	{100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 },
+	{101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 },
+	{102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 },
+	{103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 },
+	{104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 },
+	{105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 },
+	{106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 },
+	{107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 },
+	{108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 },
+	{109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 },
+	{110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 },
+	{111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 },
+	{112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 },
+	{113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 },
+	{98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 },
+	{115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 },
+	{116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 },
+	{117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 },
+	{118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 },
+	{119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 },
+	{120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 },
+	{121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 },
+	{122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 },
+	{123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 },
+	{124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 },
+	{125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 },
+	{126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 },
+	{127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 },
+	{128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 },
+	{129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 },
+	{114,113,98 ,171,151,171 ,83,65,66 }
+// Object #-1
+	, {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 },
+	{130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 },
+	{130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 },
+	{130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 },
+	{130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 },
+	{130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 },
+	{130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 },
+	{130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 },
+	{131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 },
+	{132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 },
+	{133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 },
+	{134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 },
+	{135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 },
+	{136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 },
+	{137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 },
+	{138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 },
+	{139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 },
+	{140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 },
+	{141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 },
+	{142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 },
+	{143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 },
+	{144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 },
+	{145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 },
+	{146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 },
+	{147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 },
+	{148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 },
+	{149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 },
+	{150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 },
+	{151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 },
+	{152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 },
+	{153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 },
+	{154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 },
+	{155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 },
+	{156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 },
+	{157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 },
+	{158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 },
+	{159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 },
+	{160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 },
+	{161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 },
+	{162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 },
+	{163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 },
+	{164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 },
+	{165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 },
+	{166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 },
+	{167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 },
+	{168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 },
+	{169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 },
+	{170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 },
+	{171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 },
+	{172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 },
+	{173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 },
+	{174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 },
+	{175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 },
+	{176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 },
+	{177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 },
+	{178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 },
+	{196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 },
+	{198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 },
+	{200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 },
+	{202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 },
+	{204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 },
+	{206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 },
+	{208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 },
+	{210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 },
+	{212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 },
+	{213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 },
+	{214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 },
+	{215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 },
+	{216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 },
+	{217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 },
+	{218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 },
+	{219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 },
+	{220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 },
+	{221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 },
+	{222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 },
+	{223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 },
+	{224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 },
+	{225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 },
+	{226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 },
+	{227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 },
+	{228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 },
+	{229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 },
+	{230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 },
+	{231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 },
+	{232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 },
+	{233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 },
+	{234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 },
+	{235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 },
+	{236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 },
+	{237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 },
+	{238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 },
+	{239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 },
+	{240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 },
+	{241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 },
+	{242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 },
+	{243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 },
+	{244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 },
+	{245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 },
+	{246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 },
+	{247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 },
+	{248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 },
+	{249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 },
+	{250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 },
+	{251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 },
+	{252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 },
+	{253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 },
+	{254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 },
+	{255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 },
+	{256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 },
+	{257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 },
+	{258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 },
+	{259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 }
+},
+
+//lid 4
+{
+// Object #-1
+	{0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 },
+	{0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 },
+	{0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 },
+	{0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 },
+	{0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 },
+	{0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 },
+	{0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 },
+	{1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 },
+	{3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 },
+	{4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 },
+	{6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 },
+	{7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 },
+	{8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 },
+	{9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 },
+	{10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 },
+	{11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 },
+	{12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 },
+	{13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 },
+	{14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 },
+	{15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 },
+	{16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 },
+	{17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 },
+	{18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 },
+	{19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 },
+	{20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 },
+	{21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 },
+	{22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 },
+	{23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 },
+	{24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 },
+	{25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 },
+	{26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 },
+	{27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 },
+	{28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 },
+	{29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 },
+	{30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 },
+	{31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 },
+	{32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 },
+	{33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 },
+	{34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 },
+	{35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 },
+	{36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 },
+	{37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 },
+	{38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 },
+	{39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 },
+	{40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 },
+	{41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 },
+	{42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 },
+	{43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 },
+	{44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 },
+	{45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 },
+	{46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 },
+	{47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 },
+	{48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 },
+	{66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 },
+	{69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 },
+	{71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 },
+	{73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 },
+	{75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 },
+	{77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 },
+	{79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 },
+	{81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 },
+	{83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 },
+	{84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 },
+	{85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 },
+	{86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 },
+	{87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 },
+	{88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 },
+	{89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 },
+	{90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 },
+	{91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 },
+	{92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 },
+	{93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 },
+	{94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 },
+	{95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 },
+	{96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 },
+	{97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 },
+	{82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 },
+	{99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 },
+	{100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 },
+	{101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 },
+	{102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 },
+	{103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 },
+	{104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 },
+	{105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 },
+	{106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 },
+	{107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 },
+	{108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 },
+	{109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 },
+	{110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 },
+	{111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 },
+	{112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 },
+	{113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 },
+	{98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 },
+	{115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 },
+	{116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 },
+	{117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 },
+	{118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 },
+	{119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 },
+	{120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 },
+	{121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 },
+	{122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 },
+	{123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 },
+	{124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 },
+	{125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 },
+	{126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 },
+	{127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 },
+	{128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 },
+	{129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 },
+	{114,113,98 ,171,151,171 ,83,65,66 }
+// Object #-1
+	, {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 },
+	{130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 },
+	{130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 },
+	{130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 },
+	{130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 },
+	{130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 },
+	{130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 },
+	{130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 },
+	{131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 },
+	{132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 },
+	{133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 },
+	{134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 },
+	{135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 },
+	{136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 },
+	{137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 },
+	{138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 },
+	{139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 },
+	{140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 },
+	{141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 },
+	{142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 },
+	{143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 },
+	{144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 },
+	{145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 },
+	{146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 },
+	{147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 },
+	{148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 },
+	{149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 },
+	{150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 },
+	{151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 },
+	{152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 },
+	{153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 },
+	{154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 },
+	{155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 },
+	{156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 },
+	{157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 },
+	{158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 },
+	{159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 },
+	{160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 },
+	{161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 },
+	{162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 },
+	{163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 },
+	{164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 },
+	{165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 },
+	{166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 },
+	{167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 },
+	{168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 },
+	{169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 },
+	{170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 },
+	{171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 },
+	{172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 },
+	{173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 },
+	{174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 },
+	{175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 },
+	{176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 },
+	{177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 },
+	{178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 },
+	{196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 },
+	{198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 },
+	{200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 },
+	{202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 },
+	{204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 },
+	{206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 },
+	{208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 },
+	{210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 },
+	{212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 },
+	{213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 },
+	{214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 },
+	{215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 },
+	{216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 },
+	{217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 },
+	{218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 },
+	{219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 },
+	{220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 },
+	{221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 },
+	{222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 },
+	{223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 },
+	{224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 },
+	{225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 },
+	{226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 },
+	{227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 },
+	{228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 },
+	{229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 },
+	{230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 },
+	{231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 },
+	{232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 },
+	{233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 },
+	{234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 },
+	{235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 },
+	{236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 },
+	{237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 },
+	{238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 },
+	{239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 },
+	{240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 },
+	{241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 },
+	{242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 },
+	{243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 },
+	{244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 },
+	{245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 },
+	{246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 },
+	{247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 },
+	{248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 },
+	{249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 },
+	{250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 },
+	{251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 },
+	{252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 },
+	{253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 },
+	{254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 },
+	{255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 },
+	{256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 },
+	{257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 },
+	{258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 },
+	{259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 }
+},
+//lid 3
+{
+// Object #-1
+	{0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 },
+	{0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 },
+	{0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 },
+	{0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 },
+	{0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 },
+	{0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 },
+	{0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 },
+	{1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 },
+	{3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 },
+	{4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 },
+	{6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 },
+	{7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 },
+	{8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 },
+	{9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 },
+	{10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 },
+	{11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 },
+	{12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 },
+	{13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 },
+	{14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 },
+	{15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 },
+	{16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 },
+	{17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 },
+	{18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 },
+	{19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 },
+	{20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 },
+	{21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 },
+	{22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 },
+	{23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 },
+	{24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 },
+	{25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 },
+	{26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 },
+	{27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 },
+	{28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 },
+	{29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 },
+	{30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 },
+	{31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 },
+	{32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 },
+	{33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 },
+	{34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 },
+	{35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 },
+	{36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 },
+	{37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 },
+	{38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 },
+	{39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 },
+	{40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 },
+	{41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 },
+	{42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 },
+	{43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 },
+	{44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 },
+	{45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 },
+	{46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 },
+	{47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 },
+	{48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 },
+	{66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 },
+	{69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 },
+	{71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 },
+	{73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 },
+	{75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 },
+	{77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 },
+	{79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 },
+	{81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 },
+	{83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 },
+	{84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 },
+	{85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 },
+	{86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 },
+	{87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 },
+	{88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 },
+	{89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 },
+	{90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 },
+	{91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 },
+	{92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 },
+	{93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 },
+	{94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 },
+	{95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 },
+	{96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 },
+	{97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 },
+	{82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 },
+	{99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 },
+	{100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 },
+	{101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 },
+	{102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 },
+	{103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 },
+	{104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 },
+	{105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 },
+	{106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 },
+	{107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 },
+	{108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 },
+	{109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 },
+	{110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 },
+	{111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 },
+	{112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 },
+	{113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 },
+	{98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 },
+	{115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 },
+	{116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 },
+	{117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 },
+	{118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 },
+	{119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 },
+	{120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 },
+	{121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 },
+	{122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 },
+	{123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 },
+	{124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 },
+	{125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 },
+	{126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 },
+	{127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 },
+	{128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 },
+	{129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 },
+	{114,113,98 ,171,151,171 ,83,65,66 }
+// Object #-1
+	, {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 },
+	{130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 },
+	{130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 },
+	{130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 },
+	{130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 },
+	{130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 },
+	{130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 },
+	{130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 },
+	{131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 },
+	{132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 },
+	{133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 },
+	{134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 },
+	{135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 },
+	{136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 },
+	{137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 },
+	{138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 },
+	{139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 },
+	{140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 },
+	{141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 },
+	{142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 },
+	{143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 },
+	{144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 },
+	{145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 },
+	{146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 },
+	{147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 },
+	{148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 },
+	{149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 },
+	{150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 },
+	{151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 },
+	{152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 },
+	{153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 },
+	{154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 },
+	{155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 },
+	{156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 },
+	{157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 },
+	{158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 },
+	{159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 },
+	{160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 },
+	{161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 },
+	{162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 },
+	{163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 },
+	{164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 },
+	{165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 },
+	{166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 },
+	{167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 },
+	{168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 },
+	{169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 },
+	{170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 },
+	{171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 },
+	{172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 },
+	{173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 },
+	{174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 },
+	{175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 },
+	{176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 },
+	{177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 },
+	{178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 },
+	{196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 },
+	{198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 },
+	{200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 },
+	{202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 },
+	{204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 },
+	{206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 },
+	{208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 },
+	{210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 },
+	{212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 },
+	{213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 },
+	{214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 },
+	{215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 },
+	{216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 },
+	{217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 },
+	{218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 },
+	{219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 },
+	{220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 },
+	{221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 },
+	{222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 },
+	{223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 },
+	{224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 },
+	{225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 },
+	{226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 },
+	{227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 },
+	{228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 },
+	{229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 },
+	{230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 },
+	{231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 },
+	{232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 },
+	{233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 },
+	{234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 },
+	{235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 },
+	{236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 },
+	{237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 },
+	{238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 },
+	{239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 },
+	{240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 },
+	{241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 },
+	{242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 },
+	{243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 },
+	{244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 },
+	{245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 },
+	{246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 },
+	{247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 },
+	{248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 },
+	{249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 },
+	{250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 },
+	{251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 },
+	{252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 },
+	{253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 },
+	{254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 },
+	{255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 },
+	{256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 },
+	{257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 },
+	{258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 },
+	{259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 }
+},
+
+//lid 2
+{
+// Object #-1
+	{0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 },
+	{0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 },
+	{0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 },
+	{0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 },
+	{0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 },
+	{0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 },
+	{0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 },
+	{1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 },
+	{3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 },
+	{4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 },
+	{6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 },
+	{7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 },
+	{8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 },
+	{9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 },
+	{10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 },
+	{11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 },
+	{12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 },
+	{13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 },
+	{14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 },
+	{15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 },
+	{16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 },
+	{17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 },
+	{18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 },
+	{19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 },
+	{20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 },
+	{21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 },
+	{22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 },
+	{23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 },
+	{24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 },
+	{25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 },
+	{26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 },
+	{27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 },
+	{28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 },
+	{29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 },
+	{30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 },
+	{31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 },
+	{32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 },
+	{33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 },
+	{34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 },
+	{35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 },
+	{36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 },
+	{37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 },
+	{38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 },
+	{39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 },
+	{40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 },
+	{41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 },
+	{42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 },
+	{43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 },
+	{44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 },
+	{45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 },
+	{46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 },
+	{47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 },
+	{48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 },
+	{66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 },
+	{69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 },
+	{71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 },
+	{73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 },
+	{75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 },
+	{77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 },
+	{79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 },
+	{81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 },
+	{83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 },
+	{84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 },
+	{85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 },
+	{86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 },
+	{87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 },
+	{88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 },
+	{89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 },
+	{90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 },
+	{91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 },
+	{92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 },
+	{93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 },
+	{94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 },
+	{95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 },
+	{96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 },
+	{97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 },
+	{82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 },
+	{99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 },
+	{100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 },
+	{101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 },
+	{102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 },
+	{103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 },
+	{104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 },
+	{105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 },
+	{106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 },
+	{107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 },
+	{108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 },
+	{109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 },
+	{110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 },
+	{111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 },
+	{112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 },
+	{113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 },
+	{98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 },
+	{115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 },
+	{116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 },
+	{117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 },
+	{118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 },
+	{119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 },
+	{120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 },
+	{121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 },
+	{122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 },
+	{123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 },
+	{124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 },
+	{125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 },
+	{126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 },
+	{127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 },
+	{128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 },
+	{129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 },
+	{114,113,98 ,171,151,171 ,83,65,66 }
+// Object #-1
+	, {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 },
+	{130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 },
+	{130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 },
+	{130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 },
+	{130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 },
+	{130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 },
+	{130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 },
+	{130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 },
+	{131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 },
+	{132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 },
+	{133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 },
+	{134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 },
+	{135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 },
+	{136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 },
+	{137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 },
+	{138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 },
+	{139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 },
+	{140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 },
+	{141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 },
+	{142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 },
+	{143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 },
+	{144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 },
+	{145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 },
+	{146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 },
+	{147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 },
+	{148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 },
+	{149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 },
+	{150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 },
+	{151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 },
+	{152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 },
+	{153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 },
+	{154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 },
+	{155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 },
+	{156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 },
+	{157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 },
+	{158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 },
+	{159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 },
+	{160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 },
+	{161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 },
+	{162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 },
+	{163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 },
+	{164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 },
+	{165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 },
+	{166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 },
+	{167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 },
+	{168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 },
+	{169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 },
+	{170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 },
+	{171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 },
+	{172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 },
+	{173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 },
+	{174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 },
+	{175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 },
+	{176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 },
+	{177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 },
+	{178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 },
+	{196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 },
+	{198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 },
+	{200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 },
+	{202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 },
+	{204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 },
+	{206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 },
+	{208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 },
+	{210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 },
+	{212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 },
+	{213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 },
+	{214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 },
+	{215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 },
+	{216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 },
+	{217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 },
+	{218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 },
+	{219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 },
+	{220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 },
+	{221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 },
+	{222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 },
+	{223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 },
+	{224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 },
+	{225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 },
+	{226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 },
+	{227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 },
+	{228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 },
+	{229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 },
+	{230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 },
+	{231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 },
+	{232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 },
+	{233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 },
+	{234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 },
+	{235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 },
+	{236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 },
+	{237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 },
+	{238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 },
+	{239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 },
+	{240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 },
+	{241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 },
+	{242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 },
+	{243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 },
+	{244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 },
+	{245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 },
+	{246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 },
+	{247,231,118 ,329,311,330 ,70,53,71 }, {118,231,232 ,330,311,312 ,71,53,54 },
+	{118,232,248 ,330,312,331 ,71,54,72 }, {248,232,233 ,331,312,313 ,72,54,55 },
+	{248,233,249 ,331,313,332 ,72,55,73 }, {249,233,234 ,332,313,314 ,73,55,56 },
+	{249,234,250 ,332,314,333 ,73,56,74 }, {250,234,235 ,333,314,315 ,74,56,57 },
+	{250,235,251 ,333,315,334 ,74,57,75 }, {251,235,236 ,334,315,316 ,75,57,58 },
+	{251,236,252 ,334,316,335 ,75,58,76 }, {252,236,237 ,335,316,317 ,76,58,59 },
+	{252,237,253 ,335,317,336 ,76,59,77 }, {253,237,238 ,336,317,318 ,77,59,60 },
+	{253,238,254 ,336,318,337 ,77,60,78 }, {254,238,239 ,337,318,319 ,78,60,61 },
+	{254,239,126 ,337,319,338 ,78,61,79 }, {126,239,240 ,338,319,320 ,79,61,62 },
+	{126,240,255 ,338,320,339 ,79,62,80 }, {255,240,241 ,339,320,321 ,80,62,63 },
+	{255,241,256 ,339,321,340 ,80,63,81 }, {256,241,242 ,340,321,322 ,81,63,64 },
+	{256,242,257 ,340,322,341 ,81,64,82 }, {257,242,243 ,341,322,323 ,82,64,65 },
+	{257,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 }
+},
+
+//lid 1
+
+{
+// Object #-1
+	{0,1,2 ,0,1,2 ,0,1,2 }, {0,2,3 ,3,2,4 ,3,2,4 }, {0,3,4 ,5,4,6 ,5,4,6 },
+	{0,4,5 ,7,6,8 ,7,6,8 }, {0,5,6 ,9,8,10 ,9,8,10 }, {0,6,7 ,11,10,12 ,11,10,12 },
+	{0,7,8 ,13,12,14 ,13,12,14 }, {0,8,9 ,15,14,16 ,15,14,16 }, {0,9,10 ,17,16,18 ,17,16,18 },
+	{0,10,11 ,19,18,20 ,19,18,20 }, {0,11,12 ,21,20,22 ,21,20,22 },
+	{0,12,13 ,23,22,24 ,23,22,24 }, {0,13,14 ,25,24,26 ,25,24,26 },
+	{0,14,15 ,27,26,28 ,27,26,28 }, {0,15,16 ,29,28,30 ,29,28,30 },
+	{0,16,1 ,31,30,31 ,31,30,32 }, {1,17,18 ,1,32,33 ,1,33,34 },
+	{1,18,2 ,1,33,2 ,1,34,2 }, {2,18,19 ,2,33,34 ,2,34,35 }, {2,19,3 ,2,34,4 ,2,35,4 },
+	{3,19,20 ,4,34,35 ,4,35,36 }, {3,20,4 ,4,35,6 ,4,36,6 }, {4,20,21 ,6,35,36 ,6,36,37 },
+	{4,21,5 ,6,36,8 ,6,37,8 }, {5,21,22 ,8,36,37 ,8,37,38 }, {5,22,6 ,8,37,10 ,8,38,10 },
+	{6,22,23 ,10,37,38 ,10,38,39 }, {6,23,7 ,10,38,12 ,10,39,12 },
+	{7,23,24 ,12,38,39 ,12,39,40 }, {7,24,8 ,12,39,14 ,12,40,14 },
+	{8,24,25 ,14,39,40 ,14,40,41 }, {8,25,9 ,14,40,16 ,14,41,16 },
+	{9,25,26 ,16,40,41 ,16,41,42 }, {9,26,10 ,16,41,18 ,16,42,18 },
+	{10,26,27 ,18,41,42 ,18,42,43 }, {10,27,11 ,18,42,20 ,18,43,20 },
+	{11,27,28 ,20,42,43 ,20,43,44 }, {11,28,12 ,20,43,22 ,20,44,22 },
+	{12,28,29 ,22,43,44 ,22,44,45 }, {12,29,13 ,22,44,24 ,22,45,24 },
+	{13,29,30 ,24,44,45 ,24,45,46 }, {13,30,14 ,24,45,26 ,24,46,26 },
+	{14,30,31 ,26,45,46 ,26,46,47 }, {14,31,15 ,26,46,28 ,26,47,28 },
+	{15,31,32 ,28,46,47 ,28,47,48 }, {15,32,16 ,28,47,30 ,28,48,30 },
+	{16,32,17 ,30,47,48 ,30,48,49 }, {16,17,1 ,30,49,49 ,30,49,32 },
+	{17,33,34 ,32,50,51 ,33,50,51 }, {17,34,18 ,32,51,33 ,33,51,34 },
+	{18,34,35 ,33,51,52 ,34,51,52 }, {18,35,19 ,33,52,34 ,34,52,35 },
+	{19,35,36 ,34,52,53 ,35,52,53 }, {19,36,20 ,34,53,35 ,35,53,36 },
+	{20,36,37 ,35,53,54 ,36,53,54 }, {20,37,21 ,35,54,36 ,36,54,37 },
+	{21,37,38 ,36,54,55 ,37,54,55 }, {21,38,22 ,36,55,37 ,37,55,38 },
+	{22,38,39 ,37,55,56 ,38,55,56 }, {22,39,23 ,37,56,38 ,38,56,39 },
+	{23,39,40 ,38,56,57 ,39,56,57 }, {23,40,24 ,38,57,39 ,39,57,40 },
+	{24,40,41 ,39,57,58 ,40,57,58 }, {24,41,25 ,39,58,40 ,40,58,41 },
+	{25,41,42 ,40,58,59 ,41,58,59 }, {25,42,26 ,40,59,41 ,41,59,42 },
+	{26,42,43 ,41,59,60 ,42,59,60 }, {26,43,27 ,41,60,42 ,42,60,43 },
+	{27,43,44 ,42,60,61 ,43,60,61 }, {27,44,28 ,42,61,43 ,43,61,44 },
+	{28,44,45 ,43,61,62 ,44,61,62 }, {28,45,29 ,43,62,44 ,44,62,45 },
+	{29,45,46 ,44,62,63 ,45,62,63 }, {29,46,30 ,44,63,45 ,45,63,46 },
+	{30,46,47 ,45,63,64 ,46,63,64 }, {30,47,31 ,45,64,46 ,46,64,47 },
+	{31,47,48 ,46,64,65 ,47,64,65 }, {31,48,32 ,46,65,47 ,47,65,48 },
+	{32,48,33 ,47,65,66 ,48,65,66 }, {32,33,17 ,47,67,67 ,48,66,49 },
+	{33,49,50 ,50,68,69 ,50,67,68 }, {33,50,34 ,50,69,51 ,50,68,51 },
+	{34,50,51 ,51,69,70 ,51,68,69 }, {34,51,35 ,51,70,52 ,51,69,52 },
+	{35,51,52 ,52,70,71 ,52,69,70 }, {35,52,36 ,52,71,53 ,52,70,53 },
+	{36,52,53 ,53,71,72 ,53,70,71 }, {36,53,37 ,53,72,54 ,53,71,54 },
+	{37,53,54 ,54,72,73 ,54,71,72 }, {37,54,38 ,54,73,55 ,54,72,55 },
+	{38,54,55 ,55,73,74 ,55,72,73 }, {38,55,39 ,55,74,56 ,55,73,56 },
+	{39,55,56 ,56,74,75 ,56,73,74 }, {39,56,40 ,56,75,57 ,56,74,57 },
+	{40,56,57 ,57,75,76 ,57,74,75 }, {40,57,41 ,57,76,58 ,57,75,58 },
+	{41,57,58 ,58,76,77 ,58,75,76 }, {41,58,42 ,58,77,59 ,58,76,59 },
+	{42,58,59 ,59,77,78 ,59,76,77 }, {42,59,43 ,59,78,60 ,59,77,60 },
+	{43,59,60 ,60,78,79 ,60,77,78 }, {43,60,44 ,60,79,61 ,60,78,61 },
+	{44,60,61 ,61,79,80 ,61,78,79 }, {44,61,45 ,61,80,62 ,61,79,62 },
+	{45,61,62 ,62,80,81 ,62,79,80 }, {45,62,46 ,62,81,63 ,62,80,63 },
+	{46,62,63 ,63,81,82 ,63,80,81 }, {46,63,47 ,63,82,64 ,63,81,64 },
+	{47,63,64 ,64,82,83 ,64,81,82 }, {47,64,48 ,64,83,65 ,64,82,65 },
+	{48,64,49 ,65,83,84 ,65,82,83 }, {48,49,33 ,65,85,85 ,65,83,66 },
+	{66,65,67 ,86,87,88 ,1,0,2 }, {67,65,68 ,88,89,90 ,2,3,4 }, {68,65,69 ,90,91,92 ,4,5,6 },
+	{69,65,70 ,92,93,94 ,6,7,8 }, {70,65,71 ,94,95,96 ,8,9,10 },
+	{71,65,72 ,96,97,98 ,10,11,12 }, {72,65,73 ,98,99,100 ,12,13,14 },
+	{73,65,74 ,100,101,102 ,14,15,16 }, {74,65,75 ,102,103,104 ,16,17,18 },
+	{75,65,76 ,104,105,106 ,18,19,20 }, {76,65,77 ,106,107,108 ,20,21,22 },
+	{77,65,78 ,108,109,110 ,22,23,24 }, {78,65,79 ,110,111,112 ,24,25,26 },
+	{79,65,80 ,112,113,114 ,26,27,28 }, {80,65,81 ,114,115,116 ,28,29,30 },
+	{81,65,66 ,116,117,117 ,30,31,32 }, {82,66,83 ,118,86,119 ,33,1,34 },
+	{83,66,67 ,119,86,88 ,34,1,2 }, {83,67,84 ,119,88,120 ,34,2,35 },
+	{84,67,68 ,120,88,90 ,35,2,4 }, {84,68,85 ,120,90,121 ,35,4,36 },
+	{85,68,69 ,121,90,92 ,36,4,6 }, {85,69,86 ,121,92,122 ,36,6,37 },
+	{86,69,70 ,122,92,94 ,37,6,8 }, {86,70,87 ,122,94,123 ,37,8,38 },
+	{87,70,71 ,123,94,96 ,38,8,10 }, {87,71,88 ,123,96,124 ,38,10,39 },
+	{88,71,72 ,124,96,98 ,39,10,12 }, {88,72,89 ,124,98,125 ,39,12,40 },
+	{89,72,73 ,125,98,100 ,40,12,14 }, {89,73,90 ,125,100,126 ,40,14,41 },
+	{90,73,74 ,126,100,102 ,41,14,16 }, {90,74,91 ,126,102,127 ,41,16,42 },
+	{91,74,75 ,127,102,104 ,42,16,18 }, {91,75,92 ,127,104,128 ,42,18,43 },
+	{92,75,76 ,128,104,106 ,43,18,20 }, {92,76,93 ,128,106,129 ,43,20,44 },
+	{93,76,77 ,129,106,108 ,44,20,22 }, {93,77,94 ,129,108,130 ,44,22,45 },
+	{94,77,78 ,130,108,110 ,45,22,24 }, {94,78,95 ,130,110,131 ,45,24,46 },
+	{95,78,79 ,131,110,112 ,46,24,26 }, {95,79,96 ,131,112,132 ,46,26,47 },
+	{96,79,80 ,132,112,114 ,47,26,28 }, {96,80,97 ,132,114,133 ,47,28,48 },
+	{97,80,81 ,133,114,116 ,48,28,30 }, {97,81,82 ,133,116,134 ,48,30,49 },
+	{82,81,66 ,135,116,135 ,49,30,32 }, {98,82,99 ,136,118,137 ,50,33,51 },
+	{99,82,83 ,137,118,119 ,51,33,34 }, {99,83,100 ,137,119,138 ,51,34,52 },
+	{100,83,84 ,138,119,120 ,52,34,35 }, {100,84,101 ,138,120,139 ,52,35,53 },
+	{101,84,85 ,139,120,121 ,53,35,36 }, {101,85,102 ,139,121,140 ,53,36,54 },
+	{102,85,86 ,140,121,122 ,54,36,37 }, {102,86,103 ,140,122,141 ,54,37,55 },
+	{103,86,87 ,141,122,123 ,55,37,38 }, {103,87,104 ,141,123,142 ,55,38,56 },
+	{104,87,88 ,142,123,124 ,56,38,39 }, {104,88,105 ,142,124,143 ,56,39,57 },
+	{105,88,89 ,143,124,125 ,57,39,40 }, {105,89,106 ,143,125,144 ,57,40,58 },
+	{106,89,90 ,144,125,126 ,58,40,41 }, {106,90,107 ,144,126,145 ,58,41,59 },
+	{107,90,91 ,145,126,127 ,59,41,42 }, {107,91,108 ,145,127,146 ,59,42,60 },
+	{108,91,92 ,146,127,128 ,60,42,43 }, {108,92,109 ,146,128,147 ,60,43,61 },
+	{109,92,93 ,147,128,129 ,61,43,44 }, {109,93,110 ,147,129,148 ,61,44,62 },
+	{110,93,94 ,148,129,130 ,62,44,45 }, {110,94,111 ,148,130,149 ,62,45,63 },
+	{111,94,95 ,149,130,131 ,63,45,46 }, {111,95,112 ,149,131,150 ,63,46,64 },
+	{112,95,96 ,150,131,132 ,64,46,47 }, {112,96,113 ,150,132,151 ,64,47,65 },
+	{113,96,97 ,151,132,133 ,65,47,48 }, {113,97,98 ,151,133,152 ,65,48,66 },
+	{98,97,82 ,153,133,153 ,66,48,49 }, {114,98,115 ,154,136,155 ,67,50,68 },
+	{115,98,99 ,155,136,137 ,68,50,51 }, {115,99,116 ,155,137,156 ,68,51,69 },
+	{116,99,100 ,156,137,138 ,69,51,52 }, {116,100,117 ,156,138,157 ,69,52,70 },
+	{117,100,101 ,157,138,139 ,70,52,53 }, {117,101,118 ,157,139,158 ,70,53,71 },
+	{118,101,102 ,158,139,140 ,71,53,54 }, {118,102,119 ,158,140,159 ,71,54,72 },
+	{119,102,103 ,159,140,141 ,72,54,55 }, {119,103,120 ,159,141,160 ,72,55,73 },
+	{120,103,104 ,160,141,142 ,73,55,56 }, {120,104,121 ,160,142,161 ,73,56,74 },
+	{121,104,105 ,161,142,143 ,74,56,57 }, {121,105,122 ,161,143,162 ,74,57,75 },
+	{122,105,106 ,162,143,144 ,75,57,58 }, {122,106,123 ,162,144,163 ,75,58,76 },
+	{123,106,107 ,163,144,145 ,76,58,59 }, {123,107,124 ,163,145,164 ,76,59,77 },
+	{124,107,108 ,164,145,146 ,77,59,60 }, {124,108,125 ,164,146,165 ,77,60,78 },
+	{125,108,109 ,165,146,147 ,78,60,61 }, {125,109,126 ,165,147,166 ,78,61,79 },
+	{126,109,110 ,166,147,148 ,79,61,62 }, {126,110,127 ,166,148,167 ,79,62,80 },
+	{127,110,111 ,167,148,149 ,80,62,63 }, {127,111,128 ,167,149,168 ,80,63,81 },
+	{128,111,112 ,168,149,150 ,81,63,64 }, {128,112,129 ,168,150,169 ,81,64,82 },
+	{129,112,113 ,169,150,151 ,82,64,65 }, {129,113,114 ,169,151,170 ,82,65,83 },
+	{114,113,98 ,171,151,171 ,83,65,66 }
+// Object #-1
+	, {130,131,132 ,172,173,174 ,0,1,2 }, {130,132,133 ,175,174,176 ,3,2,4 },
+	{130,133,134 ,177,176,178 ,5,4,6 }, {130,134,135 ,179,178,180 ,7,6,8 },
+	{130,135,136 ,181,180,182 ,9,8,10 }, {130,136,137 ,183,182,184 ,11,10,12 },
+	{130,137,138 ,185,184,186 ,13,12,14 }, {130,138,139 ,187,186,188 ,15,14,16 },
+	{130,139,140 ,189,188,190 ,17,16,18 }, {130,140,141 ,191,190,192 ,19,18,20 },
+	{130,141,142 ,193,192,194 ,21,20,22 }, {130,142,143 ,195,194,196 ,23,22,24 },
+	{130,143,144 ,197,196,198 ,25,24,26 }, {130,144,145 ,199,198,200 ,27,26,28 },
+	{130,145,146 ,201,200,202 ,29,28,30 }, {130,146,131 ,203,202,203 ,31,30,32 },
+	{131,147,148 ,173,204,205 ,1,33,34 }, {131,148,132 ,173,205,174 ,1,34,2 },
+	{132,148,149 ,174,205,206 ,2,34,35 }, {132,149,133 ,174,206,176 ,2,35,4 },
+	{133,149,150 ,176,206,207 ,4,35,36 }, {133,150,134 ,176,207,178 ,4,36,6 },
+	{134,150,151 ,178,207,208 ,6,36,37 }, {134,151,135 ,178,208,180 ,6,37,8 },
+	{135,151,152 ,180,208,209 ,8,37,38 }, {135,152,136 ,180,209,182 ,8,38,10 },
+	{136,152,153 ,182,209,210 ,10,38,39 }, {136,153,137 ,182,210,184 ,10,39,12 },
+	{137,153,154 ,184,210,211 ,12,39,40 }, {137,154,138 ,184,211,186 ,12,40,14 },
+	{138,154,155 ,186,211,212 ,14,40,41 }, {138,155,139 ,186,212,188 ,14,41,16 },
+	{139,155,156 ,188,212,213 ,16,41,42 }, {139,156,140 ,188,213,190 ,16,42,18 },
+	{140,156,157 ,190,213,214 ,18,42,43 }, {140,157,141 ,190,214,192 ,18,43,20 },
+	{141,157,158 ,192,214,215 ,20,43,44 }, {141,158,142 ,192,215,194 ,20,44,22 },
+	{142,158,159 ,194,215,216 ,22,44,45 }, {142,159,143 ,194,216,196 ,22,45,24 },
+	{143,159,160 ,196,216,217 ,24,45,46 }, {143,160,144 ,196,217,198 ,24,46,26 },
+	{144,160,161 ,198,217,218 ,26,46,47 }, {144,161,145 ,198,218,200 ,26,47,28 },
+	{145,161,162 ,200,218,219 ,28,47,48 }, {145,162,146 ,200,219,202 ,28,48,30 },
+	{146,162,147 ,202,219,220 ,30,48,49 }, {146,147,131 ,202,221,221 ,30,49,32 },
+	{147,163,164 ,204,222,223 ,33,50,51 }, {147,164,148 ,204,223,205 ,33,51,34 },
+	{148,164,165 ,205,223,224 ,34,51,52 }, {148,165,149 ,205,224,206 ,34,52,35 },
+	{149,165,166 ,206,224,225 ,35,52,53 }, {149,166,150 ,206,225,207 ,35,53,36 },
+	{150,166,167 ,207,225,226 ,36,53,54 }, {150,167,151 ,207,226,208 ,36,54,37 },
+	{151,167,168 ,208,226,227 ,37,54,55 }, {151,168,152 ,208,227,209 ,37,55,38 },
+	{152,168,169 ,209,227,228 ,38,55,56 }, {152,169,153 ,209,228,210 ,38,56,39 },
+	{153,169,170 ,210,228,229 ,39,56,57 }, {153,170,154 ,210,229,211 ,39,57,40 },
+	{154,170,171 ,211,229,230 ,40,57,58 }, {154,171,155 ,211,230,212 ,40,58,41 },
+	{155,171,172 ,212,230,231 ,41,58,59 }, {155,172,156 ,212,231,213 ,41,59,42 },
+	{156,172,173 ,213,231,232 ,42,59,60 }, {156,173,157 ,213,232,214 ,42,60,43 },
+	{157,173,174 ,214,232,233 ,43,60,61 }, {157,174,158 ,214,233,215 ,43,61,44 },
+	{158,174,175 ,215,233,234 ,44,61,62 }, {158,175,159 ,215,234,216 ,44,62,45 },
+	{159,175,176 ,216,234,235 ,45,62,63 }, {159,176,160 ,216,235,217 ,45,63,46 },
+	{160,176,177 ,217,235,236 ,46,63,64 }, {160,177,161 ,217,236,218 ,46,64,47 },
+	{161,177,178 ,218,236,237 ,47,64,65 }, {161,178,162 ,218,237,219 ,47,65,48 },
+	{162,178,163 ,219,237,238 ,48,65,66 }, {162,163,147 ,219,239,239 ,48,66,49 },
+	{163,179,180 ,222,240,241 ,50,67,68 }, {163,180,164 ,222,241,223 ,50,68,51 },
+	{164,180,181 ,223,241,242 ,51,68,69 }, {164,181,165 ,223,242,224 ,51,69,52 },
+	{165,181,182 ,224,242,243 ,52,69,70 }, {165,182,166 ,224,243,225 ,52,70,53 },
+	{166,182,183 ,225,243,244 ,53,70,71 }, {166,183,167 ,225,244,226 ,53,71,54 },
+	{167,183,184 ,226,244,245 ,54,71,72 }, {167,184,168 ,226,245,227 ,54,72,55 },
+	{168,184,185 ,227,245,246 ,55,72,73 }, {168,185,169 ,227,246,228 ,55,73,56 },
+	{169,185,186 ,228,246,247 ,56,73,74 }, {169,186,170 ,228,247,229 ,56,74,57 },
+	{170,186,187 ,229,247,248 ,57,74,75 }, {170,187,171 ,229,248,230 ,57,75,58 },
+	{171,187,188 ,230,248,249 ,58,75,76 }, {171,188,172 ,230,249,231 ,58,76,59 },
+	{172,188,189 ,231,249,250 ,59,76,77 }, {172,189,173 ,231,250,232 ,59,77,60 },
+	{173,189,190 ,232,250,251 ,60,77,78 }, {173,190,174 ,232,251,233 ,60,78,61 },
+	{174,190,191 ,233,251,252 ,61,78,79 }, {174,191,175 ,233,252,234 ,61,79,62 },
+	{175,191,192 ,234,252,253 ,62,79,80 }, {175,192,176 ,234,253,235 ,62,80,63 },
+	{176,192,193 ,235,253,254 ,63,80,81 }, {176,193,177 ,235,254,236 ,63,81,64 },
+	{177,193,194 ,236,254,255 ,64,81,82 }, {177,194,178 ,236,255,237 ,64,82,65 },
+	{178,194,179 ,237,255,256 ,65,82,83 }, {178,179,163 ,237,257,257 ,65,83,66 },
+	{196,195,197 ,258,259,260 ,1,0,2 }, {197,195,198 ,260,261,262 ,2,3,4 },
+	{198,195,199 ,262,263,264 ,4,5,6 }, {199,195,200 ,264,265,266 ,6,7,8 },
+	{200,195,201 ,266,267,268 ,8,9,10 }, {201,195,202 ,268,269,270 ,10,11,12 },
+	{202,195,203 ,270,271,272 ,12,13,14 }, {203,195,204 ,272,273,274 ,14,15,16 },
+	{204,195,205 ,274,275,276 ,16,17,18 }, {205,195,206 ,276,277,278 ,18,19,20 },
+	{206,195,207 ,278,279,280 ,20,21,22 }, {207,195,208 ,280,281,282 ,22,23,24 },
+	{208,195,209 ,282,283,284 ,24,25,26 }, {209,195,210 ,284,285,286 ,26,27,28 },
+	{210,195,211 ,286,287,288 ,28,29,30 }, {211,195,196 ,288,289,289 ,30,31,32 },
+	{212,196,213 ,290,258,291 ,33,1,34 }, {213,196,197 ,291,258,260 ,34,1,2 },
+	{213,197,214 ,291,260,292 ,34,2,35 }, {214,197,198 ,292,260,262 ,35,2,4 },
+	{214,198,215 ,292,262,293 ,35,4,36 }, {215,198,199 ,293,262,264 ,36,4,6 },
+	{215,199,216 ,293,264,294 ,36,6,37 }, {216,199,200 ,294,264,266 ,37,6,8 },
+	{216,200,217 ,294,266,295 ,37,8,38 }, {217,200,201 ,295,266,268 ,38,8,10 },
+	{217,201,218 ,295,268,296 ,38,10,39 }, {218,201,202 ,296,268,270 ,39,10,12 },
+	{218,202,219 ,296,270,297 ,39,12,40 }, {219,202,203 ,297,270,272 ,40,12,14 },
+	{219,203,220 ,297,272,298 ,40,14,41 }, {220,203,204 ,298,272,274 ,41,14,16 },
+	{220,204,221 ,298,274,299 ,41,16,42 }, {221,204,205 ,299,274,276 ,42,16,18 },
+	{221,205,222 ,299,276,300 ,42,18,43 }, {222,205,206 ,300,276,278 ,43,18,20 },
+	{222,206,223 ,300,278,301 ,43,20,44 }, {223,206,207 ,301,278,280 ,44,20,22 },
+	{223,207,224 ,301,280,302 ,44,22,45 }, {224,207,208 ,302,280,282 ,45,22,24 },
+	{224,208,225 ,302,282,303 ,45,24,46 }, {225,208,209 ,303,282,284 ,46,24,26 },
+	{225,209,226 ,303,284,304 ,46,26,47 }, {226,209,210 ,304,284,286 ,47,26,28 },
+	{226,210,227 ,304,286,305 ,47,28,48 }, {227,210,211 ,305,286,288 ,48,28,30 },
+	{227,211,212 ,305,288,306 ,48,30,49 }, {212,211,196 ,307,288,307 ,49,30,32 },
+	{228,212,229 ,308,290,309 ,50,33,51 }, {229,212,213 ,309,290,291 ,51,33,34 },
+	{229,213,230 ,309,291,310 ,51,34,52 }, {230,213,214 ,310,291,292 ,52,34,35 },
+	{230,214,231 ,310,292,311 ,52,35,53 }, {231,214,215 ,311,292,293 ,53,35,36 },
+	{231,215,232 ,311,293,312 ,53,36,54 }, {232,215,216 ,312,293,294 ,54,36,37 },
+	{232,216,233 ,312,294,313 ,54,37,55 }, {233,216,217 ,313,294,295 ,55,37,38 },
+	{233,217,234 ,313,295,314 ,55,38,56 }, {234,217,218 ,314,295,296 ,56,38,39 },
+	{234,218,235 ,314,296,315 ,56,39,57 }, {235,218,219 ,315,296,297 ,57,39,40 },
+	{235,219,236 ,315,297,316 ,57,40,58 }, {236,219,220 ,316,297,298 ,58,40,41 },
+	{236,220,237 ,316,298,317 ,58,41,59 }, {237,220,221 ,317,298,299 ,59,41,42 },
+	{237,221,238 ,317,299,318 ,59,42,60 }, {238,221,222 ,318,299,300 ,60,42,43 },
+	{238,222,239 ,318,300,319 ,60,43,61 }, {239,222,223 ,319,300,301 ,61,43,44 },
+	{239,223,240 ,319,301,320 ,61,44,62 }, {240,223,224 ,320,301,302 ,62,44,45 },
+	{240,224,241 ,320,302,321 ,62,45,63 }, {241,224,225 ,321,302,303 ,63,45,46 },
+	{241,225,242 ,321,303,322 ,63,46,64 }, {242,225,226 ,322,303,304 ,64,46,47 },
+	{242,226,243 ,322,304,323 ,64,47,65 }, {243,226,227 ,323,304,305 ,65,47,48 },
+	{243,227,228 ,323,305,324 ,65,48,66 }, {228,227,212 ,325,305,325 ,66,48,49 },
+	{244,228,245 ,326,308,327 ,67,50,68 }, {245,228,229 ,327,308,309 ,68,50,51 },
+	{245,229,246 ,327,309,328 ,68,51,69 }, {246,229,230 ,328,309,310 ,69,51,52 },
+	{246,230,247 ,328,310,329 ,69,52,70 }, {247,230,231 ,329,310,311 ,70,52,53 },
+	{247,231,248 ,329,311,330 ,70,53,71 }, {248,231,232 ,330,311,312 ,71,53,54 },
+	{248,232,249 ,330,312,331 ,71,54,72 }, {249,232,233 ,331,312,313 ,72,54,55 },
+	{249,233,250 ,331,313,332 ,72,55,73 }, {250,233,234 ,332,313,314 ,73,55,56 },
+	{250,234,251 ,332,314,333 ,73,56,74 }, {251,234,235 ,333,314,315 ,74,56,57 },
+	{251,235,252 ,333,315,334 ,74,57,75 }, {252,235,236 ,334,315,316 ,75,57,58 },
+	{252,236,253 ,334,316,335 ,75,58,76 }, {253,236,237 ,335,316,317 ,76,58,59 },
+	{253,237,254 ,335,317,336 ,76,59,77 }, {254,237,238 ,336,317,318 ,77,59,60 },
+	{254,238,255 ,336,318,337 ,77,60,78 }, {255,238,239 ,337,318,319 ,78,60,61 },
+	{255,239,256 ,337,319,338 ,78,61,79 }, {256,239,240 ,338,319,320 ,79,61,62 },
+	{256,240,257 ,338,320,339 ,79,62,80 }, {257,240,241 ,339,320,321 ,80,62,63 },
+	{257,241,258 ,339,321,340 ,80,63,81 }, {258,241,242 ,340,321,322 ,81,63,64 },
+	{258,242,259 ,340,322,341 ,81,64,82 }, {259,242,243 ,341,322,323 ,82,64,65 },
+	{259,243,244 ,341,323,342 ,82,65,83 }, {244,243,228 ,343,323,343 ,83,65,66 }
+}
+
+};
+
+
+static GLfloat vertices [NUM_LIDS][260][3] = {
+
+//lid 10
+{
+{-0.343683f,0.0932276f,-0.0808442f},{-0.352388f,0.0509511f,-0.122382f},{-0.380222f,0.053445f,-0.125489f},
+{-0.402561f,0.0605469f,-0.120347f},{-0.41485f,0.0711757f,-0.107383f},{-0.414844f,0.0837132f,-0.0888708f},
+{-0.403224f,0.0962507f,-0.0683421f},{-0.382806f,0.10688f,-0.0494748f},{-0.357221f,0.113981f,-0.0351177f},
+{-0.330137f,0.116475f,-0.0269877f},{-0.305195f,0.113981f,-0.0259064f},{-0.285916f,0.10688f,-0.0319369f},
+{-0.27509f,0.0962508f,-0.0441779f},{-0.274086f,0.0837133f,-0.0607215f},{-0.282788f,0.0711757f,-0.0791407f},
+{-0.300108f,0.0605469f,-0.0970521f},{-0.324256f,0.053445f,-0.112215f},{-0.353956f,-0.00391801f,-0.143495f},
+{-0.406556f,0.000690078f,-0.149706f},{-0.44962f,0.0138127f,-0.140053f},{-0.472019f,0.0334522f,-0.114869f},
+{-0.469142f,0.0566185f,-0.0792073f},{-0.444738f,0.0797848f,-0.0411625f},{-0.406781f,0.0994242f,-0.0083254f},
+{-0.361986f,0.112547f,0.0151765f},{-0.314714f,0.117155f,0.0283778f},{-0.269974f,0.112547f,0.0305063f},
+{-0.235063f,0.0994242f,0.0199389f},{-0.216662f,0.0797847f,-0.00294113f},{-0.2168f,0.0566185f,-0.0337662f},
+{-0.233011f,0.0334521f,-0.0667812f},{-0.262346f,0.0138127f,-0.0980229f},{-0.303477f,0.000690076f,-0.124775f},
+{-0.349115f,-0.0630264f,-0.141198f},{-0.416647f,-0.0570057f,-0.146593f},{-0.471994f,-0.0398601f,-0.131983f},
+{-0.499332f,-0.0142f,-0.098174f},{-0.492887f,0.0160683f,-0.0523413f},{-0.459889f,0.0463366f,-0.00548934f},
+{-0.412508f,0.0719967f,0.0330037f},{-0.358013f,0.0891423f,0.0598819f},{-0.298752f,0.095163f,0.0764664f},
+{-0.239999f,0.0891423f,0.0816282f},{-0.193576f,0.0719967f,0.0698183f},{-0.171052f,0.0463365f,0.0391026f},
+{-0.174628f,0.0160682f,-0.00326448f},{-0.197804f,-0.0142f,-0.0471786f},{-0.234863f,-0.0398601f,-0.0869477f},
+{-0.285586f,-0.0570057f,-0.119624f},{-0.340812f,-0.117375f,-0.116494f},{-0.410435f,-0.110859f,-0.117365f},
+{-0.466555f,-0.0923004f,-0.0986838f},{-0.493515f,-0.064526f,-0.0625363f},{-0.486108f,-0.0317639f,-0.0165297f},
+{-0.452382f,0.000998166f,0.0289768f},{-0.404425f,0.0287725f,0.0661753f},{-0.348021f,0.0473308f,0.0935464f},
+{-0.284297f,0.0538476f,0.113032f},{-0.219522f,0.0473308f,0.121693f},{-0.16847f,0.0287725f,0.110644f},
+{-0.145166f,0.000998132f,0.0764654f},{-0.151592f,-0.031764f,0.0281869f},{-0.178972f,-0.0645261f,-0.0214156f},
+{-0.219936f,-0.0923004f,-0.0648312f},{-0.274181f,-0.110859f,-0.0978641f},{0.343683f,0.0932276f,-0.0808442f},
+{0.352388f,0.0509511f,-0.122382f},{0.380222f,0.053445f,-0.125489f},{0.402561f,0.0605469f,-0.120347f},
+{0.41485f,0.0711757f,-0.107383f},{0.414844f,0.0837132f,-0.0888707f},{0.403224f,0.0962508f,-0.0683421f},
+{0.382806f,0.10688f,-0.0494748f},{0.357221f,0.113981f,-0.0351177f},{0.330137f,0.116475f,-0.0269877f},
+{0.305195f,0.113981f,-0.0259064f},{0.285916f,0.10688f,-0.0319369f},{0.27509f,0.0962508f,-0.0441779f},
+{0.274086f,0.0837133f,-0.0607215f},{0.282788f,0.0711757f,-0.0791407f},{0.300108f,0.0605469f,-0.0970521f},
+{0.324257f,0.053445f,-0.112215f},{0.353956f,-0.003918f,-0.143495f},{0.406556f,0.000690089f,-0.149706f},
+{0.44962f,0.0138127f,-0.140053f},{0.472019f,0.0334522f,-0.114869f},{0.469142f,0.0566185f,-0.0792073f},
+{0.444738f,0.0797848f,-0.0411625f},{0.406781f,0.0994242f,-0.0083254f},{0.361986f,0.112547f,0.0151765f},
+{0.314714f,0.117155f,0.0283778f},{0.269974f,0.112547f,0.0305063f},{0.235063f,0.0994242f,0.0199389f},
+{0.216662f,0.0797848f,-0.00294113f},{0.2168f,0.0566185f,-0.0337662f},{0.233011f,0.0334521f,-0.0667812f},
+{0.262346f,0.0138127f,-0.0980229f},{0.303477f,0.000690081f,-0.124775f},{0.349115f,-0.0630264f,-0.141198f},
+{0.416647f,-0.0570057f,-0.146593f},{0.471994f,-0.0398601f,-0.131983f},{0.499332f,-0.0142f,-0.098174f},
+{0.492887f,0.0160683f,-0.0523413f},{0.45989f,0.0463366f,-0.00548934f},{0.412508f,0.0719967f,0.0330037f},
+{0.358013f,0.0891423f,0.0598819f},{0.298752f,0.095163f,0.0764664f},{0.239999f,0.0891423f,0.0816282f},
+{0.193576f,0.0719967f,0.0698183f},{0.171052f,0.0463365f,0.0391026f},{0.174629f,0.0160683f,-0.00326448f},
+{0.197804f,-0.0141999f,-0.0471786f},{0.234863f,-0.0398601f,-0.0869477f},{0.285586f,-0.0570057f,-0.119624f},
+{0.340812f,-0.117375f,-0.116494f},{0.410435f,-0.110859f,-0.117365f},{0.466555f,-0.0923004f,-0.0986838f},
+{0.493515f,-0.064526f,-0.0625363f},{0.486108f,-0.0317639f,-0.0165297f},{0.452382f,0.000998165f,0.0289768f},
+{0.404425f,0.0287725f,0.0661753f},{0.348021f,0.0473308f,0.0935464f},{0.284297f,0.0538476f,0.113032f},
+{0.219522f,0.0473308f,0.121693f},{0.16847f,0.0287725f,0.110644f},{0.145166f,0.000998129f,0.0764654f},
+{0.151592f,-0.031764f,0.0281869f},{0.178973f,-0.0645261f,-0.0214156f},{0.219936f,-0.0923004f,-0.0648312f},
+{0.274181f,-0.110859f,-0.0978641f},{-0.299079f,0.0958282f,0.075584f},{-0.31504f,0.117375f,0.0272876f},
+{-0.338602f,0.114996f,0.0266701f},{-0.355762f,0.10822f,0.0331344f},{-0.363792f,0.0980784f,0.0452518f},
+{-0.361929f,0.0861159f,0.0605897f},{-0.351081f,0.0741534f,0.0766588f},{-0.333006f,0.0640121f,0.0915983f},
+{-0.309891f,0.0572358f,0.104011f},{-0.284547f,0.0548563f,0.112407f},{-0.260658f,0.0572358f,0.115136f},
+{-0.24234f,0.064012f,0.111029f},{-0.232993f,0.0741534f,0.100179f},{-0.234196f,0.0861159f,0.0842273f},
+{-0.245435f,0.0980784f,0.0659791f},{-0.264676f,0.10822f,0.0486193f},{-0.289045f,0.114996f,0.0350069f},
+{-0.330443f,0.116217f,-0.0281498f},{-0.376622f,0.111821f,-0.0296334f},{-0.409825f,0.0992999f,-0.0162356f},
+{-0.423182f,0.0805612f,0.00924655f},{-0.416791f,0.0584573f,0.0400915f},{-0.395343f,0.0363535f,0.0700464f},
+{-0.363257f,0.0176148f,0.0966719f},{-0.322911f,0.00509398f,0.119456f},{-0.27691f,0.000697269f,0.136065f},
+{-0.231205f,0.00509398f,0.142105f},{-0.19511f,0.0176148f,0.134121f},{-0.177144f,0.0363535f,0.112203f},
+{-0.180418f,0.0584574f,0.0803985f},{-0.202116f,0.0805612f,0.0450649f},{-0.237155f,0.0992999f,0.0123635f},
+{-0.281386f,0.111821f,-0.0131619f},{-0.343923f,0.0925307f,-0.0818601f},{-0.408753f,0.0867861f,-0.0862252f},
+{-0.455729f,0.0704268f,-0.0684926f},{-0.472454f,0.0459435f,-0.0315206f},{-0.46048f,0.0170635f,0.0132626f},
+{-0.429943f,-0.0118166f,0.0551654f},{-0.388862f,-0.0362999f,0.0913457f},{-0.339208f,-0.0526592f,0.122215f},
+{-0.281228f,-0.0584037f,0.14396f},{-0.220778f,-0.0526591f,0.149706f},{-0.17139f,-0.0362999f,0.135578f},
+{-0.146815f,-0.0118166f,0.103441f},{-0.151526f,0.0170635f,0.0600771f},{-0.179724f,0.0459436f,0.0142591f},
+{-0.223279f,0.0704269f,-0.0271356f},{-0.278744f,0.0867861f,-0.0603045f},{-0.352496f,0.0499212f,-0.123042f},
+{-0.425996f,0.0437033f,-0.130422f},{-0.480485f,0.0259961f,-0.111688f},{-0.5f,-0.000504367f,-0.0691896f},
+{-0.486108f,-0.0317639f,-0.0165297f},{-0.451623f,-0.0630235f,0.0331431f},{-0.407178f,-0.0895241f,0.0757201f},
+{-0.355434f,-0.107231f,0.110467f},{-0.295211f,-0.113449f,0.132021f},{-0.230886f,-0.107231f,0.133409f},
+{-0.176698f,-0.089524f,0.11295f},{-0.148448f,-0.0630235f,0.0751234f},{-0.151592f,-0.0317639f,0.0281869f},
+{-0.179627f,-0.000504385f,-0.0191356f},{-0.223715f,0.0259962f,-0.061618f},{-0.281467f,0.0437033f,-0.0973949f},
+{0.299079f,0.0958282f,0.075584f},{0.31504f,0.117375f,0.0272877f},{0.338602f,0.114996f,0.0266701f},
+{0.355762f,0.10822f,0.0331344f},{0.363792f,0.0980784f,0.0452518f},{0.361929f,0.0861159f,0.0605897f},
+{0.351081f,0.0741534f,0.0766588f},{0.333006f,0.0640121f,0.0915983f},{0.309891f,0.0572358f,0.104011f},
+{0.284547f,0.0548563f,0.112407f},{0.260658f,0.0572358f,0.115136f},{0.24234f,0.064012f,0.111029f},
+{0.232993f,0.0741534f,0.100179f},{0.234196f,0.0861159f,0.0842273f},{0.245435f,0.0980784f,0.0659791f},
+{0.264676f,0.10822f,0.0486193f},{0.289045f,0.114996f,0.0350069f},{0.330443f,0.116217f,-0.0281497f},
+{0.376622f,0.111821f,-0.0296334f},{0.409825f,0.0992999f,-0.0162356f},{0.423182f,0.0805612f,0.00924655f},
+{0.416791f,0.0584573f,0.0400915f},{0.395343f,0.0363535f,0.0700464f},{0.363257f,0.0176148f,0.0966719f},
+{0.322912f,0.00509398f,0.119456f},{0.27691f,0.000697269f,0.136065f},{0.231205f,0.00509397f,0.142105f},
+{0.19511f,0.0176148f,0.134121f},{0.177144f,0.0363535f,0.112203f},{0.180418f,0.0584574f,0.0803985f},
+{0.202116f,0.0805612f,0.0450649f},{0.237155f,0.0992999f,0.0123635f},{0.281386f,0.111821f,-0.0131619f},
+{0.343923f,0.0925307f,-0.0818601f},{0.408753f,0.0867861f,-0.0862252f},{0.455729f,0.0704268f,-0.0684926f},
+{0.472454f,0.0459435f,-0.0315206f},{0.46048f,0.0170635f,0.0132626f},{0.429943f,-0.0118166f,0.0551654f},
+{0.388862f,-0.0362999f,0.0913457f},{0.339208f,-0.0526592f,0.122215f},{0.281228f,-0.0584037f,0.14396f},
+{0.220778f,-0.0526591f,0.149706f},{0.17139f,-0.0362999f,0.135578f},{0.146815f,-0.0118166f,0.103441f},
+{0.151526f,0.0170635f,0.0600771f},{0.179724f,0.0459436f,0.0142591f},{0.223279f,0.0704269f,-0.0271356f},
+{0.278744f,0.0867861f,-0.0603045f},{0.352496f,0.0499212f,-0.123042f},{0.425996f,0.0437033f,-0.130422f},
+{0.480485f,0.0259961f,-0.111688f},{0.5f,-0.000504367f,-0.0691896f},{0.486108f,-0.0317639f,-0.0165297f},
+{0.451623f,-0.0630235f,0.0331431f},{0.407178f,-0.0895241f,0.0757201f},{0.355434f,-0.107231f,0.110467f},
+{0.295211f,-0.113449f,0.132021f},{0.230887f,-0.107231f,0.133409f},{0.176698f,-0.089524f,0.11295f},
+{0.148448f,-0.0630235f,0.0751234f},{0.151592f,-0.0317639f,0.0281869f},{0.179627f,-0.000504385f,-0.0191356f},
+{0.223715f,0.0259962f,-0.061618f},{0.281467f,0.0437033f,-0.0973949f}
+},
+
+//lid 9
+{
+{-0.3488f,0.0865926f,-0.0971807f},{-0.355149f,0.0384448f,-0.131394f},{-0.383397f,0.0414699f,-0.135249f},
+{-0.406599f,0.050085f,-0.131759f},{-0.420077f,0.0629783f,-0.121066f},{-0.421253f,0.078187f,-0.104942f},
+{-0.410423f,0.0933956f,-0.0864117f},{-0.390209f,0.106289f,-0.0688549f},{-0.364329f,0.114904f,-0.0550734f},
+{-0.336691f,0.117929f,-0.0468607f},{-0.311134f,0.114904f,-0.045088f},{-0.29125f,0.106289f,-0.0498234f},
+{-0.279811f,0.0933956f,-0.0602377f},{-0.278177f,0.078187f,-0.0746586f},{-0.286279f,0.0629783f,-0.0910166f},
+{-0.303118f,0.050085f,-0.107269f},{-0.326994f,0.04147f,-0.12142f},{-0.354272f,-0.0191842f,-0.143262f},
+{-0.406923f,-0.0135943f,-0.150064f},{-0.45107f,0.00232414f,-0.143143f},{-0.475731f,0.0261478f,-0.122366f},
+{-0.475481f,0.0542498f,-0.0914424f},{-0.452868f,0.0823518f,-0.0571111f},{-0.415338f,0.106175f,-0.0264407f},
+{-0.370037f,0.122094f,-0.00389177f},{-0.322023f,0.127684f,0.00912666f},{-0.276588f,0.122094f,0.0118882f},
+{-0.240895f,0.106175f,0.00314799f},{-0.22145f,0.0823517f,-0.0166116f},{-0.220325f,0.0542497f,-0.0435621f},
+{-0.235311f,0.0261478f,-0.0728357f},{-0.26371f,0.00232414f,-0.101058f},{-0.304208f,-0.0135943f,-0.125642f},
+{-0.347807f,-0.0775208f,-0.131687f},{-0.414577f,-0.0702173f,-0.13703f},{-0.470347f,-0.0494188f,-0.125525f},
+{-0.5f,-0.0182916f,-0.0974381f},{-0.496833f,0.0184253f,-0.0578607f},{-0.466347f,0.0551422f,-0.0157821f},
+{-0.420001f,0.0862694f,0.0198636f},{-0.365715f,0.107068f,0.0450127f},{-0.306476f,0.114371f,0.0605497f},
+{-0.247349f,0.107068f,0.0659861f},{-0.19973f,0.0862694f,0.056531f},{-0.175301f,0.0551422f,0.0300508f},
+{-0.176868f,0.0184253f,-0.00730101f},{-0.198555f,-0.0182916f,-0.0466047f},{-0.234831f,-0.0494188f,-0.0826403f},
+{-0.28505f,-0.0702173f,-0.112264f},{-0.338949f,-0.127684f,-0.0988612f},{-0.407241f,-0.119779f,-0.0997776f},
+{-0.462866f,-0.0972665f,-0.0844077f},{-0.491146f,-0.0635747f,-0.0543019f},{-0.486365f,-0.0238325f,-0.0148972f},
+{-0.455136f,0.0159096f,0.0254358f},{-0.408856f,0.0496013f,0.059075f},{-0.353684f,0.0721135f,0.0836812f},
+{-0.290783f,0.0800187f,0.101396f},{-0.22564f,0.0721136f,0.110631f},{-0.172661f,0.0496013f,0.10308f},
+{-0.146696f,0.0159096f,0.0741784f},{-0.151058f,-0.0238325f,0.0313679f},{-0.177696f,-0.0635748f,-0.0133948f},
+{-0.218854f,-0.0972665f,-0.0527407f},{-0.273153f,-0.119779f,-0.0824408f},{0.3488f,0.0865926f,-0.0971807f},
+{0.355149f,0.0384448f,-0.131394f},{0.383397f,0.04147f,-0.135249f},{0.406599f,0.050085f,-0.131759f},
+{0.420077f,0.0629783f,-0.121066f},{0.421253f,0.078187f,-0.104942f},{0.410423f,0.0933956f,-0.0864117f},
+{0.390209f,0.106289f,-0.0688549f},{0.364329f,0.114904f,-0.0550734f},{0.336691f,0.117929f,-0.0468607f},
+{0.311134f,0.114904f,-0.045088f},{0.29125f,0.106289f,-0.0498234f},{0.279811f,0.0933956f,-0.0602376f},
+{0.278177f,0.078187f,-0.0746586f},{0.286279f,0.0629783f,-0.0910166f},{0.303118f,0.050085f,-0.107269f},
+{0.326994f,0.04147f,-0.12142f},{0.354272f,-0.0191842f,-0.143262f},{0.406923f,-0.0135943f,-0.150064f},
+{0.451071f,0.00232424f,-0.143143f},{0.475731f,0.0261478f,-0.122366f},{0.475482f,0.0542498f,-0.0914424f},
+{0.452868f,0.0823518f,-0.0571111f},{0.415338f,0.106175f,-0.0264407f},{0.370037f,0.122094f,-0.00389177f},
+{0.322023f,0.127684f,0.00912666f},{0.276589f,0.122094f,0.0118882f},{0.240895f,0.106175f,0.00314799f},
+{0.22145f,0.0823517f,-0.0166116f},{0.220325f,0.0542497f,-0.0435621f},{0.235311f,0.0261478f,-0.0728357f},
+{0.26371f,0.00232414f,-0.101058f},{0.304208f,-0.0135943f,-0.125642f},{0.347807f,-0.0775207f,-0.131687f},
+{0.414577f,-0.0702173f,-0.13703f},{0.470347f,-0.0494188f,-0.125525f},{0.5f,-0.0182916f,-0.0974381f},
+{0.496833f,0.0184253f,-0.0578607f},{0.466347f,0.0551422f,-0.0157821f},{0.420001f,0.0862695f,0.0198636f},
+{0.365715f,0.107068f,0.0450127f},{0.306476f,0.114371f,0.0605497f},{0.247349f,0.107068f,0.0659861f},
+{0.19973f,0.0862694f,0.056531f},{0.175301f,0.0551422f,0.0300508f},{0.176868f,0.0184253f,-0.00730098f},
+{0.198555f,-0.0182916f,-0.0466047f},{0.234831f,-0.0494188f,-0.0826403f},{0.28505f,-0.0702173f,-0.112264f},
+{0.338949f,-0.127684f,-0.0988612f},{0.407241f,-0.119779f,-0.0997776f},{0.462866f,-0.0972665f,-0.0844077f},
+{0.491147f,-0.0635747f,-0.0543019f},{0.486365f,-0.0238325f,-0.0148972f},{0.455136f,0.0159096f,0.0254358f},
+{0.408856f,0.0496013f,0.059075f},{0.353684f,0.0721135f,0.0836812f},{0.290783f,0.0800187f,0.101396f},
+{0.22564f,0.0721136f,0.110631f},{0.172661f,0.0496013f,0.10308f},{0.146696f,0.0159096f,0.0741784f},
+{0.151058f,-0.0238325f,0.0313679f},{0.177696f,-0.0635748f,-0.0133948f},{0.218854f,-0.0972665f,-0.0527407f},
+{0.273153f,-0.119779f,-0.0824408f},{-0.297829f,0.0980529f,0.0842386f},{-0.313667f,0.123265f,0.038132f},
+{-0.33705f,0.120639f,0.0372689f},{-0.354056f,0.113163f,0.0431301f},{-0.362066f,0.101974f,0.0543168f},
+{-0.36034f,0.0887749f,0.0685476f},{-0.349711f,0.0755762f,0.0835722f},{-0.331827f,0.064387f,0.0977591f},
+{-0.308798f,0.0569104f,0.109844f},{-0.283419f,0.0542851f,0.118356f},{-0.2594f,0.0569105f,0.121591f},
+{-0.240924f,0.0643869f,0.11828f},{-0.231469f,0.0755762f,0.108374f},{-0.232666f,0.0887749f,0.0933521f},
+{-0.243995f,0.101974f,0.0758818f},{-0.26335f,0.113163f,0.0590793f},{-0.28776f,0.120639f,0.0457874f},
+{-0.328873f,0.126082f,-0.0164282f},{-0.374561f,0.121231f,-0.0180109f},{-0.407332f,0.107417f,-0.00547944f},
+{-0.420692f,0.0867414f,0.0183273f},{-0.414793f,0.0623534f,0.0470197f},{-0.394038f,0.0379655f,0.0749315f},
+{-0.362508f,0.0172904f,0.100144f},{-0.322425f,0.00347572f,0.122329f},{-0.276379f,-0.00137538f,0.139072f},
+{-0.230358f,0.00347572f,0.145889f},{-0.193783f,0.0172904f,0.139267f},{-0.175374f,0.0379654f,0.119083f},
+{-0.17845f,0.0623534f,0.0889719f},{-0.200266f,0.0867414f,0.05494f},{-0.235598f,0.107417f,0.0231068f},
+{-0.280002f,0.121231f,-0.00181462f},{-0.342729f,0.106077f,-0.0712325f},{-0.40707f,0.0997385f,-0.0755093f},
+{-0.453559f,0.0816888f,-0.0588285f},{-0.470324f,0.0546754f,-0.0239743f},{-0.459008f,0.022811f,0.0181521f},
+{-0.42934f,-0.00905347f,0.0575822f},{-0.3889f,-0.0360667f,0.0920333f},{-0.339532f,-0.0541165f,0.122036f},
+{-0.28154f,-0.0604547f,0.143658f},{-0.220773f,-0.0541165f,0.150064f},{-0.170787f,-0.0360668f,0.137505f},
+{-0.14554f,-0.00905347f,0.107605f},{-0.149815f,0.022811f,0.0664637f},{-0.177993f,0.0546754f,0.0222531f},
+{-0.221855f,0.0816888f,-0.0181252f},{-0.277621f,0.0997385f,-0.05043f},{-0.352579f,0.0662937f,-0.115311f},
+{-0.426014f,0.0594332f,-0.122827f},{-0.480338f,0.0398963f,-0.10543f},{-0.499898f,0.0106573f,-0.065114f},
+{-0.486365f,-0.0238325f,-0.0148973f},{-0.452313f,-0.0583224f,0.0325481f},{-0.408062f,-0.0875614f,0.0734018f},
+{-0.356245f,-0.107098f,0.107029f},{-0.295864f,-0.113959f,0.128165f},{-0.231347f,-0.107098f,0.130078f},
+{-0.176848f,-0.0875614f,0.111236f},{-0.148202f,-0.0583224f,0.0758284f},{-0.179053f,0.0106573f,-0.0141398f},
+{-0.223329f,0.0398963f,-0.0555068f},{-0.281369f,0.0594333f,-0.0903756f},{0.297829f,0.0980529f,0.0842386f},
+{0.313667f,0.123265f,0.038132f},{0.33705f,0.120639f,0.0372689f},{0.354056f,0.113163f,0.0431301f},
+{0.362066f,0.101974f,0.0543168f},{0.36034f,0.0887749f,0.0685476f},{0.349711f,0.0755762f,0.0835722f},
+{0.331827f,0.064387f,0.0977591f},{0.308798f,0.0569104f,0.109844f},{0.283419f,0.0542851f,0.118356f},
+{0.2594f,0.0569105f,0.121591f},{0.240924f,0.0643869f,0.11828f},{0.231469f,0.0755762f,0.108374f},
+{0.232666f,0.0887749f,0.0933521f},{0.243995f,0.101974f,0.0758818f},{0.26335f,0.113163f,0.0590793f},
+{0.28776f,0.120639f,0.0457874f},{0.328873f,0.126082f,-0.0164282f},{0.374561f,0.121231f,-0.0180109f},
+{0.407332f,0.107417f,-0.00547944f},{0.420692f,0.0867414f,0.0183273f},{0.414793f,0.0623534f,0.0470197f},
+{0.394038f,0.0379655f,0.0749315f},{0.362508f,0.0172904f,0.100144f},{0.322425f,0.00347572f,0.122329f},
+{0.276379f,-0.00137538f,0.139072f},{0.230358f,0.00347572f,0.145889f},{0.193783f,0.0172904f,0.139267f},
+{0.175374f,0.0379654f,0.119083f},{0.17845f,0.0623534f,0.0889719f},{0.200266f,0.0867414f,0.05494f},
+{0.235598f,0.107417f,0.0231068f},{0.280002f,0.121231f,-0.00181462f},{0.342729f,0.106077f,-0.0712325f},
+{0.40707f,0.0997385f,-0.0755093f},{0.453559f,0.0816888f,-0.0588285f},{0.470324f,0.0546754f,-0.0239743f},
+{0.459008f,0.022811f,0.0181521f},{0.42934f,-0.00905347f,0.0575822f},{0.3889f,-0.0360667f,0.0920333f},
+{0.339532f,-0.0541165f,0.122036f},{0.28154f,-0.0604547f,0.143658f},{0.220773f,-0.0541165f,0.150064f},
+{0.170787f,-0.0360668f,0.137505f},{0.14554f,-0.00905347f,0.107605f},{0.149815f,0.022811f,0.0664637f},
+{0.177993f,0.0546754f,0.0222531f},{0.221855f,0.0816888f,-0.0181252f},{0.277621f,0.0997385f,-0.05043f},
+{0.352579f,0.0662937f,-0.115311f},{0.426014f,0.0594332f,-0.122827f},{0.480338f,0.0398963f,-0.10543f},
+{0.499898f,0.0106573f,-0.065114f},{0.486365f,-0.0238325f,-0.0148973f},{0.452313f,-0.0583224f,0.0325481f},
+{0.408062f,-0.0875614f,0.0734018f},{0.356245f,-0.107098f,0.107029f},{0.295864f,-0.113959f,0.128165f},
+{0.231347f,-0.107098f,0.130078f},{0.176848f,-0.0875614f,0.111236f},{0.148202f,-0.0583224f,0.0758284f},
+{0.179053f,0.0106573f,-0.0141398f},{0.223329f,0.0398963f,-0.0555068f},{0.281369f,0.0594333f,-0.0903756f}
+},
+
+//lid 8
+{
+{-0.348964f,0.0841141f,-0.102844f},{-0.354155f,0.034321f,-0.134653f},{-0.382714f,0.0375006f,-0.138946f},
+{-0.406454f,0.0465551f,-0.136169f},{-0.420594f,0.0601062f,-0.126341f},{-0.422361f,0.0760907f,-0.111045f},
+{-0.411852f,0.0920752f,-0.0931276f},{-0.39161f,0.105626f,-0.0758779f},{-0.365443f,0.114681f,-0.0621226f},
+{-0.337443f,0.11786f,-0.0537301f},{-0.311591f,0.114681f,-0.0516105f},{-0.291492f,0.105626f,-0.0558164f},
+{-0.279841f,0.0920752f,-0.0655216f},{-0.277923f,0.0760906f,-0.0791518f},{-0.285685f,0.0601061f,-0.0948063f},
+{-0.302221f,0.0465551f,-0.110585f},{-0.325939f,0.0375006f,-0.124552f},{-0.352121f,-0.0239383f,-0.143656f},
+{-0.405164f,-0.0180633f,-0.150868f},{-0.450226f,-0.00133275f,-0.145058f},{-0.476253f,0.0237063f,-0.125898f},
+{-0.477338f,0.0532419f,-0.0965964f},{-0.455389f,0.0827775f,-0.0633853f},{-0.417606f,0.107817f,-0.0331416f},
+{-0.371497f,0.124547f,-0.0105503f},{-0.32275f,0.130422f,0.00261082f},{-0.277032f,0.124547f,0.0055299f},
+{-0.241377f,0.107817f,-0.0027318f},{-0.221859f,0.0827775f,-0.0214042f},{-0.220238f,0.0532419f,-0.0468527f},
+{-0.234397f,0.0237063f,-0.0747574f},{-0.262018f,-0.00133274f,-0.102078f},{-0.302085f,-0.0180633f,-0.12617f},
+{-0.344948f,-0.0817945f,-0.129319f},{-0.412012f,-0.0741185f,-0.134705f},{-0.4687f,-0.0522589f,-0.124335f},
+{-0.5f,-0.0195438f,-0.0982293f},{-0.498575f,0.0190463f,-0.0607126f},{-0.468954f,0.0576364f,-0.0200192f},
+{-0.422252f,0.0903515f,0.0151393f},{-0.366996f,0.112211f,0.0402528f},{-0.307083f,0.119887f,0.0555925f},
+{-0.247974f,0.112211f,0.0606335f},{-0.200709f,0.0903515f,0.0512665f},{-0.176262f,0.0576364f,0.0259707f},
+{-0.177034f,0.0190463f,-0.00941388f},{-0.197421f,-0.0195438f,-0.0469124f},{-0.232576f,-0.052259f,-0.081761f},
+{-0.282258f,-0.0741185f,-0.110534f},{-0.335953f,-0.130439f,-0.0940914f},{-0.404416f,-0.122131f,-0.0948819f},
+{-0.460736f,-0.0984704f,-0.0805227f},{-0.49041f,-0.0630598f,-0.052294f},{-0.487177f,-0.0212901f,-0.0148493f},
+{-0.456766f,0.0204795f,0.0241508f},{-0.410302f,0.05589f,0.0571937f},{-0.354541f,0.0795506f,0.0814215f},
+{-0.291402f,0.0878591f,0.0984543f},{-0.226542f,0.0795506f,0.106885f},{-0.173908f,0.05589f,0.0992358f},
+{-0.147736f,0.0204794f,0.0715326f},{-0.15111f,-0.0212902f,0.0308063f},{-0.176369f,-0.0630598f,-0.0119795f},
+{-0.216431f,-0.0984704f,-0.0499184f},{-0.270239f,-0.122131f,-0.0785263f},{0.348964f,0.0841141f,-0.102844f},
+{0.354155f,0.034321f,-0.134653f},{0.382714f,0.0375006f,-0.138946f},{0.406454f,0.0465551f,-0.136169f},
+{0.420594f,0.0601062f,-0.126341f},{0.422361f,0.0760907f,-0.111045f},{0.411852f,0.0920752f,-0.0931276f},
+{0.39161f,0.105626f,-0.075878f},{0.365443f,0.114681f,-0.0621226f},{0.337443f,0.11786f,-0.0537301f},
+{0.311591f,0.114681f,-0.0516105f},{0.291492f,0.105626f,-0.0558164f},{0.279841f,0.0920752f,-0.0655216f},
+{0.277923f,0.0760906f,-0.0791518f},{0.285685f,0.0601061f,-0.0948063f},{0.302221f,0.0465551f,-0.110585f},
+{0.32594f,0.0375006f,-0.124552f},{0.352121f,-0.0239383f,-0.143656f},{0.405164f,-0.0180633f,-0.150868f},
+{0.450226f,-0.00133275f,-0.145058f},{0.476253f,0.0237063f,-0.125898f},{0.477338f,0.0532419f,-0.0965964f},
+{0.455389f,0.0827775f,-0.0633853f},{0.417606f,0.107817f,-0.0331416f},{0.371497f,0.124547f,-0.0105503f},
+{0.32275f,0.130422f,0.00261082f},{0.277032f,0.124547f,0.0055299f},{0.241377f,0.107817f,-0.0027318f},
+{0.221859f,0.0827775f,-0.0214042f},{0.220238f,0.0532419f,-0.0468527f},{0.234397f,0.0237063f,-0.0747574f},
+{0.262018f,-0.00133274f,-0.102078f},{0.302085f,-0.0180633f,-0.12617f},{0.344948f,-0.0817945f,-0.129319f},
+{0.412012f,-0.0741185f,-0.134705f},{0.4687f,-0.0522589f,-0.124335f},{0.5f,-0.0195438f,-0.0982293f},
+{0.498575f,0.0190463f,-0.0607126f},{0.468954f,0.0576364f,-0.0200192f},{0.422252f,0.0903515f,0.0151393f},
+{0.366996f,0.112211f,0.0402528f},{0.307083f,0.119887f,0.0555925f},{0.247974f,0.112211f,0.0606335f},
+{0.200709f,0.0903515f,0.0512665f},{0.176262f,0.0576364f,0.0259707f},{0.177034f,0.0190463f,-0.00941388f},
+{0.197421f,-0.0195438f,-0.0469124f},{0.232576f,-0.052259f,-0.081761f},{0.282258f,-0.0741185f,-0.110534f},
+{0.335953f,-0.130439f,-0.0940914f},{0.404416f,-0.122131f,-0.0948819f},{0.460736f,-0.0984704f,-0.0805227f},
+{0.49041f,-0.0630598f,-0.052294f},{0.487177f,-0.0212901f,-0.0148493f},{0.456766f,0.0204795f,0.0241508f},
+{0.410302f,0.05589f,0.0571937f},{0.354541f,0.0795506f,0.0814215f},{0.291402f,0.0878591f,0.0984543f},
+{0.226542f,0.0795506f,0.106885f},{0.173908f,0.05589f,0.0992358f},{0.147736f,0.0204794f,0.0715326f},
+{0.15111f,-0.0212902f,0.0308063f},{0.176369f,-0.0630598f,-0.0119795f},{0.216431f,-0.0984704f,-0.0499184f},
+{0.270239f,-0.122131f,-0.0785263f},{-0.291072f,0.0869352f,0.0992675f},{-0.306729f,0.119396f,0.0566704f},
+{-0.330009f,0.116298f,0.0553776f},{-0.347061f,0.107476f,0.060103f},{-0.355392f,0.094272f,0.0696509f},
+{-0.35423f,0.078697f,0.082139f},{-0.344255f,0.063122f,0.0957421f},{-0.326952f,0.0499182f,0.109044f},
+{-0.304306f,0.0410956f,0.120722f},{-0.279013f,0.0379976f,0.129152f},{-0.254731f,0.0410956f,0.13261f},
+{-0.235694f,0.0499182f,0.129947f},{-0.225567f,0.063122f,0.121192f},{-0.226215f,0.078697f,0.1077f},
+{-0.237249f,0.094272f,0.0918433f},{-0.256524f,0.107476f,0.0764213f},{-0.280909f,0.116298f,0.0640395f},
+{-0.322409f,0.130439f,0.00385885f},{-0.367471f,0.124715f,0.00184701f},{-0.400107f,0.108413f,0.0123315f},
+{-0.414317f,0.0840155f,0.0327456f},{-0.410025f,0.0552367f,0.0577653f},{-0.391009f,0.0264579f,0.0829813f},
+{-0.360978f,0.00206033f,0.106894f},{-0.322089f,-0.0142416f,0.128503f},{-0.276729f,-0.019966f,0.144602f},
+{-0.230467f,-0.0142416f,0.150868f},{-0.192583f,0.00206035f,0.144734f},{-0.172269f,0.0264579f,0.126669f},
+{-0.173642f,0.0552367f,0.0998949f},{-0.194526f,0.0840156f,0.0694042f},{-0.229637f,0.108413f,0.0404957f},
+{-0.273962f,0.124715f,0.0175577f},{-0.337139f,0.118383f,-0.0525144f},{-0.400699f,0.110904f,-0.0571073f},
+{-0.447192f,0.0896042f,-0.0430756f},{-0.465444f,0.0577272f,-0.01278f},{-0.456584f,0.0201259f,0.0244976f},
+{-0.42927f,-0.0174755f,0.0605408f},{-0.390675f,-0.0493524f,0.093387f},{-0.342933f,-0.0706518f,0.122279f},
+{-0.286261f,-0.0781312f,0.142185f},{-0.225698f,-0.0706519f,0.146978f},{-0.174201f,-0.0493524f,0.13474f},
+{-0.146169f,-0.0174755f,0.107994f},{-0.147595f,0.0201259f,0.0718902f},{-0.17391f,0.0577273f,0.0327803f},
+{-0.217068f,0.0896041f,-0.00361029f},{-0.272593f,0.110904f,-0.033185f},{-0.348767f,0.0850626f,-0.10191f},
+{-0.422111f,0.076967f,-0.110121f},{-0.477084f,0.0539125f,-0.0958718f},{-0.498416f,0.0194093f,-0.0603363f},
+{-0.487177f,-0.0212902f,-0.0148492f},{-0.454951f,-0.0619896f,0.0292421f},{-0.411793f,-0.0964929f,0.0680066f},
+{-0.360878f,-0.119547f,0.0996509f},{-0.301511f,-0.127643f,0.118439f},{-0.237483f,-0.119547f,0.118782f},
+{-0.182061f,-0.0964929f,0.100861f},{-0.151065f,-0.0619896f,0.0694335f},{-0.15111f,-0.0212902f,0.0308063f},
+{-0.176925f,0.0194093f,-0.00906683f},{-0.220087f,0.0539126f,-0.0462431f},{-0.27776f,0.0769669f,-0.0783452f},
+{0.291072f,0.0869352f,0.0992675f},{0.306729f,0.119396f,0.0566704f},{0.330009f,0.116298f,0.0553776f},
+{0.347061f,0.107476f,0.060103f},{0.355392f,0.094272f,0.0696509f},{0.35423f,0.078697f,0.082139f},
+{0.344255f,0.063122f,0.095742f},{0.326952f,0.0499182f,0.109044f},{0.304306f,0.0410956f,0.120722f},
+{0.279013f,0.0379976f,0.129152f},{0.254731f,0.0410956f,0.13261f},{0.235694f,0.0499182f,0.129947f},
+{0.225567f,0.063122f,0.121192f},{0.226215f,0.078697f,0.1077f},{0.237249f,0.094272f,0.0918432f},
+{0.256524f,0.107476f,0.0764213f},{0.280909f,0.116298f,0.0640395f},{0.322409f,0.130439f,0.00385884f},
+{0.367471f,0.124715f,0.001847f},{0.400107f,0.108413f,0.0123315f},{0.414317f,0.0840155f,0.0327456f},
+{0.410025f,0.0552367f,0.0577653f},{0.391009f,0.0264579f,0.0829813f},{0.360978f,0.00206034f,0.106894f},
+{0.322089f,-0.0142416f,0.128503f},{0.276729f,-0.019966f,0.144602f},{0.230467f,-0.0142416f,0.150868f},
+{0.192583f,0.00206036f,0.144734f},{0.172269f,0.0264579f,0.126669f},{0.173642f,0.0552368f,0.0998949f},
+{0.194526f,0.0840156f,0.0694042f},{0.229637f,0.108413f,0.0404957f},{0.273962f,0.124715f,0.0175577f},
+{0.337139f,0.118383f,-0.0525144f},{0.400699f,0.110904f,-0.0571073f},{0.447192f,0.0896042f,-0.0430756f},
+{0.465443f,0.0577272f,-0.01278f},{0.456584f,0.0201259f,0.0244975f},{0.42927f,-0.0174755f,0.0605408f},
+{0.390675f,-0.0493524f,0.093387f},{0.342933f,-0.0706518f,0.122279f},{0.286261f,-0.0781312f,0.142185f},
+{0.225698f,-0.0706519f,0.146978f},{0.174201f,-0.0493524f,0.13474f},{0.146169f,-0.0174755f,0.107994f},
+{0.147595f,0.0201259f,0.0718902f},{0.17391f,0.0577273f,0.0327803f},{0.217068f,0.0896041f,-0.0036103f},
+{0.272593f,0.110904f,-0.033185f},{0.348767f,0.0850626f,-0.10191f},{0.422111f,0.0769669f,-0.110121f},
+{0.477084f,0.0539125f,-0.0958718f},{0.498416f,0.0194093f,-0.0603363f},{0.487177f,-0.0212902f,-0.0148492f},
+{0.454951f,-0.0619896f,0.0292421f},{0.411793f,-0.0964929f,0.0680066f},{0.360878f,-0.119547f,0.0996509f},
+{0.301511f,-0.127643f,0.118439f},{0.237483f,-0.119547f,0.118782f},{0.182061f,-0.0964929f,0.100861f},
+{0.151065f,-0.0619896f,0.0694335f},{0.15111f,-0.0212902f,0.0308063f},{0.176925f,0.0194093f,-0.00906683f},
+{0.220087f,0.0539126f,-0.0462431f},{0.27776f,0.0769669f,-0.0783453f}
+},
+
+//lid 6
+{
+{-0.351756f,0.0844025f,-0.109661f},{-0.355945f,0.0328842f,-0.138446f},{-0.384378f,0.0362308f,-0.142751f},
+{-0.408193f,0.0457608f,-0.140451f},{-0.42265f,0.0600234f,-0.131521f},{-0.424904f,0.0768473f,-0.117353f},
+{-0.414884f,0.0936713f,-0.100537f},{-0.394983f,0.107934f,-0.084143f},{-0.36896f,0.117464f,-0.070887f},
+{-0.340955f,0.12081f,-0.0626191f},{-0.315021f,0.117464f,-0.0602733f},{-0.294794f,0.107934f,-0.0639409f},
+{-0.282961f,0.0936712f,-0.0728692f},{-0.2808f,0.0768474f,-0.0856041f},{-0.288278f,0.0600233f,-0.100374f},
+{-0.304522f,0.0457607f,-0.115367f},{-0.327964f,0.0362308f,-0.128713f},{-0.353096f,-0.0259013f,-0.144196f},
+{-0.405674f,-0.0197177f,-0.151037f},{-0.450633f,-0.00210858f,-0.145914f},{-0.477229f,0.0242454f,-0.128485f},
+{-0.479417f,0.0553321f,-0.10146f},{-0.458564f,0.0864186f,-0.0703846f},{-0.421405f,0.112773f,-0.0416503f},
+{-0.375401f,0.130382f,-0.0198441f},{-0.326511f,0.136565f,-0.00688288f},{-0.280637f,0.130382f,-0.00366803f},
+{-0.244819f,0.112772f,-0.0110978f},{-0.225012f,0.0864185f,-0.0284403f},{-0.222941f,0.055332f,-0.0523391f},
+{-0.23661f,0.0242453f,-0.078796f},{-0.263825f,-0.00210858f,-0.104838f},{-0.30352f,-0.0197177f,-0.127723f},
+{-0.34558f,-0.0830043f,-0.126825f},{-0.411879f,-0.0749251f,-0.131548f},{-0.468152f,-0.0519177f,-0.121991f},
+{-0.5f,-0.0174846f,-0.0981684f},{-0.499979f,0.023132f,-0.0636476f},{-0.47182f,0.0637486f,-0.0256644f},
+{-0.425949f,0.0981816f,0.00767143f},{-0.370867f,0.121189f,0.0318387f},{-0.310857f,0.129268f,0.0468414f},
+{-0.251612f,0.121189f,0.0521057f},{-0.204087f,0.0981816f,0.0437074f},{-0.179119f,0.0637485f,0.0201095f},
+{-0.179202f,0.0231319f,-0.013301f},{-0.19903f,-0.0174846f,-0.0490307f},{-0.233919f,-0.0519177f,-0.0823255f},
+{-0.283398f,-0.0749251f,-0.109512f},{-0.336776f,-0.129732f,-0.0889855f},{-0.404391f,-0.120987f,-0.0893879f},
+{-0.460079f,-0.0960837f,-0.0761018f},{-0.490006f,-0.0588136f,-0.0503488f},{-0.487934f,-0.0148505f,-0.0159837f},
+{-0.458895f,0.0291126f,0.020314f},{-0.413359f,0.0663826f,0.0515159f},{-0.358011f,0.0912858f,0.0746728f},
+{-0.294985f,0.100031f,0.0912395f},{-0.229974f,0.0912857f,0.0999435f},{-0.176824f,0.0663827f,0.0935117f},
+{-0.149845f,0.0291126f,0.067785f},{-0.152477f,-0.0148506f,0.0292381f},{-0.177433f,-0.0588137f,-0.0115784f},
+{-0.217614f,-0.0960837f,-0.0477599f},{-0.271491f,-0.120987f,-0.074726f},{0.351756f,0.0844025f,-0.109661f},
+{0.355945f,0.0328842f,-0.138446f},{0.384378f,0.0362308f,-0.142751f},{0.408193f,0.0457608f,-0.140451f},
+{0.42265f,0.0600234f,-0.131521f},{0.424904f,0.0768474f,-0.117353f},{0.414884f,0.0936713f,-0.100537f},
+{0.394983f,0.107934f,-0.084143f},{0.36896f,0.117464f,-0.070887f},{0.340955f,0.12081f,-0.0626191f},
+{0.315021f,0.117464f,-0.0602733f},{0.294794f,0.107934f,-0.0639409f},{0.282961f,0.0936712f,-0.0728692f},
+{0.2808f,0.0768474f,-0.0856041f},{0.288278f,0.0600233f,-0.100374f},{0.304522f,0.0457607f,-0.115367f},
+{0.327964f,0.0362308f,-0.128713f},{0.353096f,-0.0259012f,-0.144196f},{0.405674f,-0.0197177f,-0.151037f},
+{0.450633f,-0.00210858f,-0.145914f},{0.477229f,0.0242454f,-0.128485f},{0.479417f,0.0553321f,-0.10146f},
+{0.458564f,0.0864186f,-0.0703846f},{0.421405f,0.112773f,-0.0416503f},{0.375401f,0.130382f,-0.0198441f},
+{0.326511f,0.136565f,-0.00688288f},{0.280637f,0.130382f,-0.00366802f},{0.244819f,0.112772f,-0.0110978f},
+{0.225012f,0.0864185f,-0.0284403f},{0.222941f,0.055332f,-0.0523391f},{0.236611f,0.0242453f,-0.078796f},
+{0.263825f,-0.00210858f,-0.104838f},{0.30352f,-0.0197177f,-0.127723f},{0.345581f,-0.0830043f,-0.126825f},
+{0.411879f,-0.0749251f,-0.131548f},{0.468152f,-0.0519177f,-0.121991f},{0.5f,-0.0174846f,-0.0981684f},
+{0.499979f,0.023132f,-0.0636476f},{0.47182f,0.0637486f,-0.0256644f},{0.425949f,0.0981816f,0.00767143f},
+{0.370867f,0.121189f,0.0318387f},{0.310857f,0.129268f,0.0468414f},{0.251612f,0.121189f,0.0521057f},
+{0.204087f,0.0981816f,0.0437074f},{0.179119f,0.0637485f,0.0201095f},{0.179202f,0.0231319f,-0.013301f},
+{0.19903f,-0.0174846f,-0.0490307f},{0.233919f,-0.0519177f,-0.0823255f},{0.283398f,-0.0749251f,-0.109512f},
+{0.336776f,-0.129732f,-0.0889855f},{0.404391f,-0.120987f,-0.0893879f},{0.460079f,-0.0960837f,-0.0761018f},
+{0.490007f,-0.0588136f,-0.0503488f},{0.487934f,-0.0148505f,-0.0159837f},{0.458895f,0.0291126f,0.020314f},
+{0.413359f,0.0663826f,0.0515159f},{0.358011f,0.0912858f,0.0746728f},{0.294985f,0.100031f,0.0912395f},
+{0.229974f,0.0912857f,0.0999435f},{0.176824f,0.0663827f,0.0935117f},{0.149845f,0.0291126f,0.067785f},
+{0.152477f,-0.0148506f,0.0292381f},{0.177433f,-0.0588137f,-0.0115784f},{0.217614f,-0.0960837f,-0.0477599f},
+{0.271491f,-0.120987f,-0.074726f},{-0.287056f,0.0758929f,0.110646f},{-0.301988f,0.115564f,0.0728616f},
+{-0.325153f,0.112018f,0.0708336f},{-0.342261f,0.101921f,0.0739892f},{-0.351035f,0.0868102f,0.0813745f},
+{-0.350709f,0.0689855f,0.0915995f},{-0.341765f,0.0511608f,0.10337f},{-0.325429f,0.0360497f,0.115558f},
+{-0.303445f,0.0259528f,0.126808f},{-0.278313f,0.0224073f,0.135353f},{-0.253592f,0.0259528f,0.139427f},
+{-0.233614f,0.0360497f,0.137946f},{-0.22236f,0.0511608f,0.130911f},{-0.22208f,0.0689854f,0.119439f},
+{-0.232625f,0.0868102f,0.105524f},{-0.2518f,0.101921f,0.0916217f},{-0.276219f,0.112018f,0.080118f},
+{-0.317919f,0.13538f,0.0237192f},{-0.36191f,0.128829f,0.0210766f},{-0.394013f,0.110172f,0.0288914f},
+{-0.409112f,0.0822505f,0.0448135f},{-0.40697f,0.0493148f,0.0648619f},{-0.390534f,0.016379f,0.08627f},
+{-0.362855f,-0.0115425f,0.108162f},{-0.325769f,-0.0301992f,0.128919f},{-0.281276f,-0.0367505f,0.144595f},
+{-0.234463f,-0.0301991f,0.151037f},{-0.194554f,-0.0115425f,0.146466f},{-0.171463f,0.016379f,0.131679f},
+{-0.170486f,0.0493148f,0.109223f},{-0.190284f,0.0822505f,0.082936f},{-0.225447f,0.110172f,0.0573035f},
+{-0.269985f,0.128829f,0.0364921f},{-0.333196f,0.132325f,-0.0320871f},{-0.39485f,0.123765f,-0.0366893f},
+{-0.440427f,0.0993894f,-0.0258578f},{-0.460181f,0.0629081f,-0.00177522f},{-0.454693f,0.0198755f,0.0284132f},
+{-0.431007f,-0.0231572f,0.0590285f},{-0.395363f,-0.0596384f,0.0888389f},{-0.34986f,-0.0840145f,0.115946f},
+{-0.294567f,-0.0925742f,0.134374f},{-0.233834f,-0.0840145f,0.13864f},{-0.180142f,-0.0596384f,0.12824f},
+{-0.148514f,-0.0231572f,0.106138f},{-0.146522f,0.0198755f,0.07627f},{-0.171003f,0.0629081f,0.0431261f},
+{-0.213996f,0.0993894f,0.0113892f},{-0.269657f,0.123765f,-0.0148336f},{-0.346426f,0.106864f,-0.0853202f},
+{-0.418148f,0.0975991f,-0.0933364f},{-0.472597f,0.0712147f,-0.0826396f},{-0.495756f,0.0317277f,-0.0538754f},
+{-0.487934f,-0.0148505f,-0.0159838f},{-0.458964f,-0.0614287f,0.0220605f},{-0.417971f,-0.100916f,0.056811f},
+{-0.36836f,-0.1273f,0.0855621f},{-0.309844f,-0.136565f,0.102268f},{-0.245932f,-0.1273f,0.102289f},
+{-0.189196f,-0.100916f,0.0869168f},{-0.155469f,-0.0614287f,0.0609428f},{-0.152477f,-0.0148505f,0.0292381f},
+{-0.176282f,0.0317276f,-0.00420161f},{-0.21885f,0.0712148f,-0.0363203f},{-0.276383f,0.0975992f,-0.0644713f},
+{0.287056f,0.0758929f,0.110646f},{0.301988f,0.115564f,0.0728616f},{0.325153f,0.112018f,0.0708336f},
+{0.342261f,0.101921f,0.0739892f},{0.351035f,0.0868102f,0.0813745f},{0.350709f,0.0689855f,0.0915995f},
+{0.341765f,0.0511608f,0.10337f},{0.325429f,0.0360497f,0.115558f},{0.303445f,0.0259528f,0.126808f},
+{0.278313f,0.0224073f,0.135353f},{0.253592f,0.0259528f,0.139427f},{0.233614f,0.0360497f,0.137946f},
+{0.22236f,0.0511608f,0.130911f},{0.22208f,0.0689854f,0.119439f},{0.232625f,0.0868102f,0.105524f},
+{0.2518f,0.101921f,0.0916217f},{0.276219f,0.112018f,0.080118f},{0.317919f,0.13538f,0.0237192f},
+{0.36191f,0.128829f,0.0210766f},{0.394013f,0.110172f,0.0288914f},{0.409112f,0.0822505f,0.0448135f},
+{0.40697f,0.0493148f,0.0648619f},{0.390534f,0.016379f,0.08627f},{0.362855f,-0.0115425f,0.108162f},
+{0.325769f,-0.0301992f,0.128919f},{0.281276f,-0.0367505f,0.144595f},{0.234463f,-0.0301991f,0.151037f},
+{0.194554f,-0.0115425f,0.146466f},{0.171463f,0.016379f,0.131679f},{0.170486f,0.0493148f,0.109223f},
+{0.190285f,0.0822505f,0.082936f},{0.225447f,0.110172f,0.0573035f},{0.269985f,0.128829f,0.0364921f},
+{0.333196f,0.132325f,-0.0320871f},{0.394851f,0.123765f,-0.0366893f},{0.440427f,0.0993894f,-0.0258578f},
+{0.460181f,0.0629081f,-0.00177522f},{0.454693f,0.0198755f,0.0284132f},{0.431007f,-0.0231572f,0.0590285f},
+{0.395363f,-0.0596384f,0.0888389f},{0.34986f,-0.0840145f,0.115946f},{0.294567f,-0.0925742f,0.134374f},
+{0.233834f,-0.0840145f,0.13864f},{0.180142f,-0.0596384f,0.12824f},{0.148514f,-0.0231572f,0.106138f},
+{0.146523f,0.0198755f,0.07627f},{0.171003f,0.0629081f,0.0431261f},{0.213996f,0.0993894f,0.0113892f},
+{0.269657f,0.123765f,-0.0148336f},{0.346426f,0.106864f,-0.0853202f},{0.418148f,0.0975991f,-0.0933364f},
+{0.472597f,0.0712147f,-0.0826396f},{0.495756f,0.0317277f,-0.0538754f},{0.487934f,-0.0148505f,-0.0159838f},
+{0.458964f,-0.0614287f,0.0220605f},{0.417971f,-0.100916f,0.056811f},{0.36836f,-0.1273f,0.0855621f},
+{0.309845f,-0.136565f,0.102268f},{0.245932f,-0.1273f,0.102289f},{0.189196f,-0.100916f,0.0869168f},
+{0.155469f,-0.0614287f,0.0609428f},{0.152477f,-0.0148505f,0.0292381f},{0.176282f,0.0317276f,-0.00420161f},
+{0.21885f,0.0712148f,-0.0363203f},{0.276383f,0.0975992f,-0.0644713f}
+},
+
+//lid 5
+{
+{-0.35222f,0.0807632f,-0.116269f},{-0.355112f,0.0275006f,-0.141217f},{-0.383561f,0.0310274f,-0.145773f},
+{-0.407652f,0.0410709f,-0.144276f},{-0.422647f,0.056102f,-0.136598f},{-0.425567f,0.0738323f,-0.123872f},
+{-0.416122f,0.0915627f,-0.108372f},{-0.396538f,0.106594f,-0.092926f},{-0.370553f,0.116637f,-0.0801451f},
+{-0.342414f,0.120164f,-0.0718868f},{-0.316287f,0.116637f,-0.0691268f},{-0.295842f,0.106594f,-0.0720026f},
+{-0.283736f,0.0915627f,-0.0798502f},{-0.281224f,0.0738323f,-0.0913764f},{-0.288303f,0.0561019f,-0.104997f},
+{-0.304166f,0.0410709f,-0.119044f},{-0.327307f,0.0310274f,-0.131739f},{-0.351234f,-0.0315149f,-0.14288f},
+{-0.40356f,-0.0249982f,-0.149751f},{-0.448778f,-0.00644035f,-0.14589f},{-0.476382f,0.0213335f,-0.130823f},
+{-0.480046f,0.0540949f,-0.106621f},{-0.46045f,0.0868564f,-0.0780273f},{-0.423811f,0.11463f,-0.0509148f},
+{-0.377654f,0.133188f,-0.0298383f},{-0.328398f,0.139705f,-0.0169541f},{-0.282288f,0.133188f,-0.0132744f},
+{-0.246317f,0.11463f,-0.019573f},{-0.22617f,0.0868563f,-0.0350928f},{-0.223453f,0.0540949f,-0.0568338f},
+{-0.236342f,0.0213334f,-0.0812907f},{-0.262887f,-0.00644041f,-0.105693f},{-0.302078f,-0.0249983f,-0.127263f},
+{-0.34326f,-0.0872989f,-0.121779f},{-0.408985f,-0.0787845f,-0.126311f},{-0.465236f,-0.0545374f,-0.11824f},
+{-0.498151f,-0.0182492f,-0.0974167f},{-0.5f,0.0245557f,-0.0664839f},{-0.473501f,0.0673606f,-0.0315635f},
+{-0.428328f,0.103649f,-0.000164158f},{-0.373146f,0.127896f,0.0230542f},{-0.3129f,0.13641f,0.037678f},
+{-0.25362f,0.127896f,0.0431086f},{-0.206011f,0.103649f,0.0358444f},{-0.1805f,0.0673606f,0.0145129f},
+{-0.17957f,0.0245557f,-0.0160796f},{-0.198361f,-0.0182492f,-0.0492255f},{-0.232567f,-0.0545374f,-0.0804019f},
+{-0.281607f,-0.0787845f,-0.105784f},{-0.334569f,-0.131359f,-0.0809148f},{-0.40145f,-0.122143f,-0.0813779f},
+{-0.456808f,-0.0958979f,-0.069794f},{-0.487429f,-0.0566198f,-0.0471402f},{-0.486932f,-0.0102881f,-0.0163207f},
+{-0.459465f,0.0360436f,0.0170134f},{-0.414816f,0.0753217f,0.0462327f},{-0.359802f,0.101566f,0.0681354f},
+{-0.296993f,0.110782f,0.0839128f},{-0.232114f,0.101566f,0.0925683f},{-0.178659f,0.0753217f,0.0873822f},
+{-0.150754f,0.0360435f,0.0642135f},{-0.152175f,-0.0102882f,0.0287899f},{-0.176247f,-0.0566198f,-0.00911687f},
+{-0.216092f,-0.0958979f,-0.042849f},{-0.269784f,-0.122143f,-0.0678564f},{0.35222f,0.0807632f,-0.116269f},
+{0.355112f,0.0275006f,-0.141217f},{0.383561f,0.0310274f,-0.145773f},{0.407652f,0.0410709f,-0.144276f},
+{0.422647f,0.056102f,-0.136598f},{0.425567f,0.0738323f,-0.123872f},{0.416122f,0.0915627f,-0.108372f},
+{0.396538f,0.106594f,-0.092926f},{0.370553f,0.116637f,-0.0801451f},{0.342414f,0.120164f,-0.0718868f},
+{0.316287f,0.116637f,-0.0691268f},{0.295842f,0.106594f,-0.0720026f},{0.283736f,0.0915627f,-0.0798502f},
+{0.281224f,0.0738323f,-0.0913764f},{0.288303f,0.0561019f,-0.104997f},{0.304166f,0.0410709f,-0.119044f},
+{0.327307f,0.0310274f,-0.131739f},{0.351234f,-0.031515f,-0.14288f},{0.40356f,-0.0249982f,-0.149751f},
+{0.448778f,-0.00644035f,-0.14589f},{0.476382f,0.0213335f,-0.130823f},{0.480046f,0.0540949f,-0.106621f},
+{0.46045f,0.0868564f,-0.0780273f},{0.423811f,0.11463f,-0.0509149f},{0.377654f,0.133188f,-0.0298383f},
+{0.328398f,0.139705f,-0.0169541f},{0.282288f,0.133188f,-0.0132744f},{0.246317f,0.11463f,-0.019573f},
+{0.22617f,0.0868563f,-0.0350928f},{0.223453f,0.0540949f,-0.0568338f},{0.236342f,0.0213334f,-0.0812907f},
+{0.262887f,-0.00644041f,-0.105693f},{0.302078f,-0.0249983f,-0.127263f},{0.34326f,-0.0872989f,-0.121779f},
+{0.408985f,-0.0787845f,-0.126311f},{0.465236f,-0.0545374f,-0.11824f},{0.498151f,-0.0182492f,-0.0974167f},
+{0.5f,0.0245557f,-0.0664839f},{0.473501f,0.0673606f,-0.0315635f},{0.428328f,0.103649f,-0.00016416f},
+{0.373146f,0.127896f,0.0230542f},{0.3129f,0.13641f,0.037678f},{0.25362f,0.127896f,0.0431086f},
+{0.206011f,0.103649f,0.0358444f},{0.1805f,0.0673606f,0.0145129f},{0.17957f,0.0245557f,-0.0160796f},
+{0.198361f,-0.0182492f,-0.0492255f},{0.232567f,-0.0545375f,-0.0804019f},{0.281607f,-0.0787845f,-0.105784f},
+{0.334569f,-0.131359f,-0.0809148f},{0.40145f,-0.122143f,-0.0813779f},{0.456808f,-0.0958979f,-0.069794f},
+{0.487429f,-0.0566198f,-0.0471402f},{0.486932f,-0.0102881f,-0.0163207f},{0.459465f,0.0360436f,0.0170134f},
+{0.414816f,0.0753217f,0.0462327f},{0.359802f,0.101566f,0.0681354f},{0.296993f,0.110782f,0.0839128f},
+{0.232114f,0.101566f,0.0925683f},{0.178659f,0.0753217f,0.0873822f},{0.150754f,0.0360435f,0.0642135f},
+{0.152175f,-0.0102882f,0.0287899f},{0.176247f,-0.0566198f,-0.00911686f},{0.216092f,-0.0958979f,-0.042849f},
+{0.269784f,-0.122143f,-0.0678564f},{-0.283516f,0.0684505f,0.117249f},{-0.297523f,0.111982f,0.0825327f},
+{-0.320672f,0.108213f,0.0800315f},{-0.337917f,0.0974768f,0.0822191f},{-0.347078f,0.0814095f,0.0883145f},
+{-0.347375f,0.062457f,0.0972086f},{-0.33918f,0.0435043f,0.107872f},{-0.323569f,0.0274371f,0.119293f},
+{-0.302141f,0.0167013f,0.1301f},{-0.277259f,0.0129314f,0.138501f},{-0.252381f,0.0167013f,0.142792f},
+{-0.231847f,0.0274371f,0.14198f},{-0.219791f,0.0435043f,0.136064f},{-0.218713f,0.0624569f,0.125981f},
+{-0.228674f,0.0814096f,0.113434f},{-0.247538f,0.0974768f,0.100606f},{-0.271824f,0.108213f,0.0897131f},
+{-0.313436f,0.1369f,0.0359331f},{-0.35693f,0.129934f,0.0327261f},{-0.388907f,0.110097f,0.0387786f},
+{-0.404696f,0.0804084f,0.0519694f},{-0.403928f,0.0453886f,0.0691129f},{-0.389077f,0.0103687f,0.0882565f},
+{-0.36285f,-0.0193198f,0.108704f},{-0.326938f,-0.0391569f,0.12848f},{-0.28316f,-0.0461228f,0.14344f},
+{-0.236305f,-0.0391569f,0.149751f},{-0.195408f,-0.0193197f,0.146165f},{-0.170624f,0.0103687f,0.133635f},
+{-0.167907f,0.0453885f,0.114231f},{-0.18657f,0.0804084f,0.090957f},{-0.221347f,0.110097f,0.0676455f},
+{-0.265804f,0.129934f,0.0482343f},{-0.328906f,0.139409f,-0.0188677f},{-0.389563f,0.130308f,-0.0237764f},
+{-0.434822f,0.104389f,-0.0151712f},{-0.455683f,0.0655995f,0.00499309f},{-0.452287f,0.0198438f,0.0308808f},
+{-0.430691f,-0.0259118f,0.0581252f},{-0.396613f,-0.0647016f,0.085662f},{-0.352229f,-0.0906201f,0.111006f},
+{-0.29775f,-0.0997214f,0.128053f},{-0.237276f,-0.09062f,0.131966f},{-0.182806f,-0.0647016f,0.122977f},
+{-0.149318f,-0.0259118f,0.104165f},{-0.145113f,0.0198439f,0.0786865f},{-0.168025f,0.0655996f,0.0497981f},
+{-0.21047f,0.104389f,0.0213453f},{-0.265982f,0.130308f,-0.00271041f},{-0.342835f,0.119128f,-0.0736233f},
+{-0.413662f,0.109277f,-0.0818217f},{-0.468026f,0.0812232f,-0.0736504f},{-0.492562f,0.0392375f,-0.0493431f},
+{-0.486932f,-0.0102881f,-0.0163207f},{-0.459805f,-0.0598137f,0.0177488f},{-0.419752f,-0.101799f,0.0495111f},
+{-0.37045f,-0.129853f,0.0758506f},{-0.312195f,-0.139705f,0.0909771f},{-0.248628f,-0.129853f,0.091013f},
+{-0.191762f,-0.101799f,0.0777037f},{-0.156931f,-0.0598137f,0.0556475f},{-0.152175f,-0.0102881f,0.0287899f},
+{-0.174436f,0.0392374f,-0.000122022f},{-0.216246f,0.0812232f,-0.0287078f},{-0.273448f,0.109277f,-0.0542936f},
+{0.283516f,0.0684505f,0.117249f},{0.297523f,0.111982f,0.0825327f},{0.320672f,0.108213f,0.0800315f},
+{0.337917f,0.0974768f,0.0822191f},{0.347078f,0.0814095f,0.0883145f},{0.347375f,0.062457f,0.0972086f},
+{0.33918f,0.0435043f,0.107872f},{0.323569f,0.0274371f,0.119293f},{0.302141f,0.0167013f,0.1301f},
+{0.277259f,0.0129314f,0.138501f},{0.252381f,0.0167013f,0.142792f},{0.231847f,0.0274371f,0.14198f},
+{0.219791f,0.0435043f,0.136064f},{0.218713f,0.062457f,0.125981f},{0.228674f,0.0814096f,0.113434f},
+{0.247538f,0.0974768f,0.100606f},{0.271824f,0.108213f,0.0897131f},{0.313436f,0.1369f,0.0359331f},
+{0.35693f,0.129934f,0.0327261f},{0.388907f,0.110097f,0.0387786f},{0.404696f,0.0804084f,0.0519694f},
+{0.403928f,0.0453886f,0.0691129f},{0.389077f,0.0103687f,0.0882565f},{0.36285f,-0.0193197f,0.108704f},
+{0.326938f,-0.0391569f,0.12848f},{0.28316f,-0.0461228f,0.14344f},{0.236305f,-0.0391569f,0.149751f},
+{0.195408f,-0.0193197f,0.146165f},{0.170624f,0.0103687f,0.133635f},{0.167907f,0.0453885f,0.114231f},
+{0.18657f,0.0804084f,0.090957f},{0.221347f,0.110097f,0.0676455f},{0.265804f,0.129934f,0.0482343f},
+{0.328906f,0.139409f,-0.0188677f},{0.389563f,0.130308f,-0.0237764f},{0.434822f,0.104389f,-0.0151712f},
+{0.455683f,0.0655995f,0.00499309f},{0.452287f,0.0198438f,0.0308808f},{0.430691f,-0.0259118f,0.0581252f},
+{0.396613f,-0.0647016f,0.085662f},{0.352229f,-0.0906201f,0.111006f},{0.29775f,-0.0997214f,0.128053f},
+{0.237276f,-0.09062f,0.131966f},{0.182806f,-0.0647016f,0.122977f},{0.149318f,-0.0259118f,0.104165f},
+{0.145113f,0.0198439f,0.0786865f},{0.168025f,0.0655996f,0.0497981f},{0.21047f,0.104389f,0.0213453f},
+{0.265982f,0.130308f,-0.00271041f},{0.342835f,0.119128f,-0.0736233f},{0.413662f,0.109277f,-0.0818217f},
+{0.468026f,0.0812232f,-0.0736504f},{0.492562f,0.0392375f,-0.0493431f},{0.486932f,-0.0102881f,-0.0163207f},
+{0.459805f,-0.0598137f,0.0177488f},{0.419752f,-0.101799f,0.0495111f},{0.37045f,-0.129853f,0.0758506f},
+{0.312195f,-0.139705f,0.0909771f},{0.248628f,-0.129853f,0.091013f},{0.191762f,-0.101799f,0.0777037f},
+{0.156931f,-0.0598137f,0.0556475f},{0.152175f,-0.0102881f,0.0287899f},{0.174436f,0.0392374f,-0.000122023f},
+{0.216246f,0.0812232f,-0.0287078f},{0.273448f,0.109277f,-0.0542936f}
+},
+
+//lid 4
+{
+{-0.353855f,0.0634518f,-0.127808f},{-0.353743f,0.00680746f,-0.14288f},{-0.382005f,0.0107183f,-0.14774f},
+{-0.406503f,0.0218554f,-0.148074f},{-0.422603f,0.0385233f,-0.143562f},{-0.427103f,0.0581844f,-0.134712f},
+{-0.419209f,0.0778456f,-0.12295f},{-0.400665f,0.0945135f,-0.110367f},{-0.37505f,0.105651f,-0.0991699f},
+{-0.346773f,0.109561f,-0.0911444f},{-0.32025f,0.105651f,-0.0873742f},{-0.299264f,0.0945134f,-0.088188f},
+{-0.286447f,0.0778455f,-0.0932286f},{-0.283047f,0.0581844f,-0.101633f},{-0.28916f,0.0385233f,-0.112242f},
+{-0.304115f,0.0218554f,-0.123685f},{-0.32649f,0.0107183f,-0.134417f},{-0.347829f,-0.051748f,-0.134586f},
+{-0.39918f,-0.0445217f,-0.141112f},{-0.444479f,-0.023943f,-0.140152f},{-0.474048f,0.00685527f,-0.131052f},
+{-0.481203f,0.0431843f,-0.114419f},{-0.465041f,0.0795133f,-0.0929282f},{-0.430264f,0.110311f,-0.0708482f},
+{-0.384188f,0.13089f,-0.0522717f},{-0.334187f,0.138117f,-0.0397563f},{-0.287418f,0.13089f,-0.0346676f},
+{-0.250883f,0.110312f,-0.0377287f},{-0.229717f,0.0795133f,-0.0483917f},{-0.225358f,0.0431842f,-0.0646188f},
+{-0.236481f,0.00685524f,-0.0839373f},{-0.261654f,-0.023943f,-0.103878f},{-0.299784f,-0.0445217f,-0.121626f},
+{-0.339278f,-0.1033f,-0.104625f},{-0.40326f,-0.0938584f,-0.108657f},{-0.458827f,-0.066971f,-0.104285f},
+{-0.493724f,-0.0267311f,-0.0911008f},{-0.5f,0.020735f,-0.0697199f},{-0.47804f,0.0682011f,-0.0435093f},
+{-0.435242f,0.108441f,-0.0180731f},{-0.380135f,0.135328f,0.00212642f},{-0.319193f,0.14477f,0.0158355f},
+{-0.259542f,0.135328f,0.0221782f},{-0.211448f,0.108441f,0.0183685f},{-0.184369f,0.0682011f,0.0031685f},
+{-0.180904f,0.0207349f,-0.0201245f},{-0.197459f,-0.0267312f,-0.0464986f},{-0.230533f,-0.066971f,-0.0718127f},
+{-0.278897f,-0.0938584f,-0.0921433f},{-0.331281f,-0.14f,-0.0568862f},{-0.396099f,-0.129781f,-0.0579084f},
+{-0.450089f,-0.100678f,-0.050944f},{-0.481864f,-0.0571228f,-0.0363563f},{-0.48513f,-0.00574581f,-0.0149238f},
+{-0.461947f,0.0456311f,0.0101581f},{-0.419991f,0.0891865f,0.0335696f},{-0.365921f,0.118289f,0.0519629f},
+{-0.303382f,0.128509f,0.0659771f},{-0.238494f,0.118289f,0.0750094f},{-0.184008f,0.0891864f,0.0734764f},
+{-0.153528f,0.0456311f,0.0572033f},{-0.151825f,-0.00574587f,0.0300291f},{-0.174023f,-0.0571228f,-9.32868e-005f},
+{-0.213722f,-0.100678f,-0.027056f},{-0.267552f,-0.129781f,-0.0467337f},{0.353855f,0.0634518f,-0.127808f},
+{0.353743f,0.00680746f,-0.14288f},{0.382005f,0.0107183f,-0.14774f},{0.406503f,0.0218554f,-0.148074f},
+{0.422603f,0.0385233f,-0.143562f},{0.427103f,0.0581844f,-0.134712f},{0.419209f,0.0778455f,-0.12295f},
+{0.400665f,0.0945135f,-0.110367f},{0.37505f,0.105651f,-0.0991699f},{0.346773f,0.109561f,-0.0911444f},
+{0.32025f,0.105651f,-0.0873742f},{0.299264f,0.0945134f,-0.0881879f},{0.286447f,0.0778455f,-0.0932286f},
+{0.283047f,0.0581844f,-0.101633f},{0.28916f,0.0385233f,-0.112242f},{0.304115f,0.0218554f,-0.123685f},
+{0.32649f,0.0107183f,-0.134417f},{0.347829f,-0.051748f,-0.134586f},{0.39918f,-0.0445217f,-0.141112f},
+{0.444479f,-0.023943f,-0.140152f},{0.474048f,0.00685527f,-0.131052f},{0.481203f,0.0431843f,-0.114419f},
+{0.465041f,0.0795133f,-0.0929282f},{0.430264f,0.110311f,-0.0708482f},{0.384188f,0.13089f,-0.0522717f},
+{0.334187f,0.138117f,-0.0397563f},{0.287418f,0.13089f,-0.0346676f},{0.250883f,0.110312f,-0.0377287f},
+{0.229717f,0.0795133f,-0.0483917f},{0.225358f,0.0431842f,-0.0646188f},{0.236481f,0.00685524f,-0.0839372f},
+{0.261654f,-0.023943f,-0.103878f},{0.299784f,-0.0445217f,-0.121626f},{0.339278f,-0.1033f,-0.104625f},
+{0.40326f,-0.0938584f,-0.108657f},{0.458827f,-0.066971f,-0.104285f},{0.493724f,-0.0267311f,-0.0911008f},
+{0.5f,0.020735f,-0.0697199f},{0.47804f,0.068201f,-0.0435093f},{0.435242f,0.108441f,-0.0180731f},
+{0.380135f,0.135328f,0.00212642f},{0.319193f,0.14477f,0.0158355f},{0.259542f,0.135328f,0.0221782f},
+{0.211448f,0.108441f,0.0183685f},{0.184369f,0.0682011f,0.0031685f},{0.180904f,0.0207349f,-0.0201245f},
+{0.197459f,-0.0267312f,-0.0464986f},{0.230533f,-0.066971f,-0.0718127f},{0.278897f,-0.0938584f,-0.0921433f},
+{0.331281f,-0.14f,-0.0568862f},{0.396099f,-0.129781f,-0.0579084f},{0.450089f,-0.100678f,-0.050944f},
+{0.481864f,-0.0571228f,-0.0363563f},{0.48513f,-0.00574581f,-0.0149238f},{0.461947f,0.0456311f,0.0101581f},
+{0.419991f,0.0891864f,0.0335696f},{0.365921f,0.118289f,0.0519629f},{0.303382f,0.128509f,0.0659771f},
+{0.238494f,0.118289f,0.0750095f},{0.184008f,0.0891864f,0.0734764f},{0.153528f,0.0456311f,0.0572033f},
+{0.151825f,-0.00574587f,0.0300291f},{0.174023f,-0.0571228f,-9.32874e-005f},{0.213722f,-0.100678f,-0.027056f},
+{0.267552f,-0.129781f,-0.0467337f},{-0.279283f,0.0520408f,0.127571f},{-0.291091f,0.101044f,0.0980386f},
+{-0.314344f,0.0969793f,0.0946093f},{-0.331977f,0.0854032f,0.0951078f},{-0.341951f,0.0680782f,0.0990535f},
+{-0.343465f,0.0476421f,0.105775f},{-0.336696f,0.027206f,0.11463f},{-0.322456f,0.00988106f,0.12477f},
+{-0.302072f,-0.0016951f,0.134807f},{-0.277652f,-0.00576013f,0.142958f},{-0.252472f,-0.00169512f,0.147658f},
+{-0.230868f,0.00988104f,0.148074f},{-0.217233f,0.0272059f,0.144161f},{-0.214527f,0.0476421f,0.136514f},
+{-0.223242f,0.0680783f,0.126309f},{-0.241414f,0.0854032f,0.115241f},{-0.265439f,0.0969793f,0.10525f},
+{-0.306765f,0.13379f,0.0561555f},{-0.349583f,0.126279f,0.0517622f},{-0.381449f,0.104889f,0.0547534f},
+{-0.398489f,0.0728766f,0.0633834f},{-0.400159f,0.0351155f,0.0757282f},{-0.388138f,-0.00264553f,0.0910661f},
+{-0.364489f,-0.0346578f,0.108922f},{-0.330591f,-0.0560477f,0.126846f},{-0.287987f,-0.0635589f,0.140574f},
+{-0.241024f,-0.0560477f,0.146878f},{-0.198397f,-0.0346578f,0.145269f},{-0.17056f,-0.00264554f,0.136838f},
+{-0.164573f,0.0351155f,0.122803f},{-0.18101f,0.0728766f,0.104726f},{-0.215025f,0.104889f,0.0852658f},
+{-0.259448f,0.126279f,0.067972f},{-0.322458f,0.145293f,0.00425289f},{-0.381335f,0.135479f,-0.00130134f},
+{-0.4259f,0.107531f,0.00352389f},{-0.448605f,0.0657054f,0.0170174f},{-0.448895f,0.0163682f,0.0354859f},
+{-0.431053f,-0.0329691f,0.0567292f},{-0.399729f,-0.0747951f,0.0799807f},{-0.35711f,-0.102742f,0.102015f},
+{-0.303763f,-0.112556f,0.116832f},{-0.243626f,-0.102742f,0.120643f},{-0.18791f,-0.0747951f,0.114571f},
+{-0.151294f,-0.032969f,0.101662f},{-0.143201f,0.0163682f,0.0838106f},{-0.163332f,0.0657054f,0.0622674f},
+{-0.204947f,0.107531f,0.0393893f},{-0.260449f,0.135479f,0.018813f},{-0.337146f,0.133801f,-0.0513591f},
+{-0.405991f,0.123178f,-0.0596923f},{-0.459809f,0.0929286f,-0.0556713f},{-0.486676f,0.0476564f,-0.039131f},
+{-0.48513f,-0.00574584f,-0.0149238f},{-0.461581f,-0.0591481f,0.0117126f},{-0.423384f,-0.10442f,0.0378093f},
+{-0.374549f,-0.13467f,0.059798f},{-0.316475f,-0.145293f,0.072463f},{-0.253313f,-0.13467f,0.0730645f},
+{-0.196251f,-0.10442f,0.0637669f},{-0.159614f,-0.059148f,0.0486072f},{-0.151825f,-0.00574584f,0.0300291f},
+{-0.171463f,0.0476564f,0.00889002f},{-0.212175f,0.0929286f,-0.0135302f},{-0.269009f,0.123178f,-0.0346653f},
+{0.279283f,0.0520408f,0.127571f},{0.291091f,0.101044f,0.0980386f},{0.314344f,0.0969793f,0.0946093f},
+{0.331977f,0.0854032f,0.0951078f},{0.341951f,0.0680782f,0.0990535f},{0.343465f,0.0476421f,0.105775f},
+{0.336696f,0.027206f,0.11463f},{0.322456f,0.00988106f,0.12477f},{0.302072f,-0.0016951f,0.134807f},
+{0.277652f,-0.00576013f,0.142958f},{0.252472f,-0.00169512f,0.147658f},{0.230868f,0.00988104f,0.148074f},
+{0.217233f,0.0272059f,0.144161f},{0.214527f,0.0476421f,0.136514f},{0.223242f,0.0680782f,0.126309f},
+{0.241414f,0.0854032f,0.115241f},{0.265439f,0.0969793f,0.10525f},{0.306765f,0.13379f,0.0561555f},
+{0.349583f,0.126279f,0.0517622f},{0.381449f,0.104889f,0.0547534f},{0.398489f,0.0728766f,0.0633834f},
+{0.400159f,0.0351155f,0.0757282f},{0.388138f,-0.00264554f,0.0910661f},{0.364489f,-0.0346578f,0.108922f},
+{0.330591f,-0.0560477f,0.126846f},{0.287987f,-0.0635589f,0.140574f},{0.241024f,-0.0560477f,0.146878f},
+{0.198397f,-0.0346578f,0.145269f},{0.17056f,-0.00264554f,0.136838f},{0.164573f,0.0351155f,0.122803f},
+{0.18101f,0.0728766f,0.104726f},{0.215025f,0.104889f,0.0852658f},{0.259448f,0.126279f,0.067972f},
+{0.322458f,0.145293f,0.00425289f},{0.381335f,0.135479f,-0.00130134f},{0.4259f,0.107531f,0.00352389f},
+{0.448605f,0.0657054f,0.0170174f},{0.448896f,0.0163682f,0.0354859f},{0.431053f,-0.0329691f,0.0567292f},
+{0.399729f,-0.0747951f,0.0799807f},{0.35711f,-0.102742f,0.102015f},{0.303763f,-0.112556f,0.116832f},
+{0.243626f,-0.102742f,0.120643f},{0.187909f,-0.0747951f,0.114571f},{0.151294f,-0.032969f,0.101662f},
+{0.143201f,0.0163682f,0.0838106f},{0.163332f,0.0657054f,0.0622674f},{0.204947f,0.107531f,0.0393893f},
+{0.260449f,0.135479f,0.018813f},{0.337146f,0.133801f,-0.0513591f},{0.405991f,0.123178f,-0.0596923f},
+{0.459809f,0.0929286f,-0.0556713f},{0.486676f,0.0476564f,-0.039131f},{0.48513f,-0.00574584f,-0.0149238f},
+{0.461581f,-0.0591481f,0.0117126f},{0.423385f,-0.10442f,0.0378093f},{0.374549f,-0.13467f,0.059798f},
+{0.316475f,-0.145293f,0.072463f},{0.253313f,-0.13467f,0.0730645f},{0.196251f,-0.10442f,0.0637669f},
+{0.159614f,-0.059148f,0.0486072f},{0.151825f,-0.00574584f,0.0300291f},{0.171463f,0.0476564f,0.00889002f},
+{0.212175f,0.0929286f,-0.0135302f},{0.269009f,0.123178f,-0.0346653f}
+},
+
+//lid3
+{
+{-0.354934f,0.0573656f,-0.132288f},{-0.35381f,-0.000170749f,-0.143506f},{-0.381882f,0.0038597f,-0.148337f},
+{-0.406389f,0.0153374f,-0.149276f},{-0.422778f,0.032515f,-0.145954f},{-0.427813f,0.0527773f,-0.138659f},
+{-0.420534f,0.0730396f,-0.128481f},{-0.402489f,0.0902173f,-0.117185f},{-0.377147f,0.101695f,-0.106769f},
+{-0.348936f,0.105725f,-0.098952f},{-0.322337f,0.101695f,-0.0948513f},{-0.301181f,0.0902172f,-0.0948892f},
+{-0.288106f,0.0730396f,-0.0988492f},{-0.28438f,0.0527773f,-0.106035f},{-0.290143f,0.032515f,-0.11543f},
+{-0.304767f,0.0153374f,-0.125765f},{-0.326835f,0.00385966f,-0.135594f},{-0.34734f,-0.0581242f,-0.131498f},
+{-0.398136f,-0.0506769f,-0.137744f},{-0.443184f,-0.0294689f,-0.13778f},{-0.473215f,0.00227113f,-0.130937f},
+{-0.481555f,0.039711f,-0.117333f},{-0.466781f,0.077151f,-0.0988643f},{-0.432955f,0.108891f,-0.0790885f},
+{-0.387165f,0.130099f,-0.0617732f},{-0.337041f,0.137546f,-0.0495308f},{-0.290066f,0.130099f,-0.0438717f},
+{-0.253281f,0.108891f,-0.0455929f},{-0.231674f,0.0771509f,-0.0543229f},{-0.226688f,0.039711f,-0.0683984f},
+{-0.237222f,0.00227109f,-0.0856564f},{-0.26199f,-0.0294689f,-0.103695f},{-0.299775f,-0.0506769f,-0.119748f},
+{-0.338795f,-0.107672f,-0.0983158f},{-0.401925f,-0.0979416f,-0.102189f},{-0.456905f,-0.070232f,-0.0992443f},
+{-0.492207f,-0.0287616f,-0.0890065f},{-0.5f,0.020156f,-0.0714432f},{-0.479892f,0.0690737f,-0.0489261f},
+{-0.438293f,0.110544f,-0.0262122f},{-0.383453f,0.138254f,-0.00747452f},{-0.322322f,0.147984f,0.00582876f},
+{-0.262487f,0.138254f,0.0126678f},{-0.214117f,0.110544f,0.0103978f},{-0.186347f,0.0690736f,-0.00228616f},
+{-0.181908f,0.020156f,-0.0226702f},{-0.197763f,-0.0287616f,-0.0462757f},{-0.230646f,-0.070232f,-0.0690678f},
+{-0.278912f,-0.0979416f,-0.0872364f},{-0.331209f,-0.141271f,-0.0482373f},{-0.395084f,-0.130739f,-0.0496675f},
+{-0.44825f,-0.100746f,-0.0446528f},{-0.480164f,-0.0558588f,-0.0332809f},{-0.484745f,-0.00291071f,-0.0156133f},
+{-0.463326f,0.0500373f,0.00600839f},{-0.422637f,0.0949245f,0.0268506f},{-0.369065f,0.124917f,0.0437058f},
+{-0.30661f,0.135449f,0.0570844f},{-0.241634f,0.124917f,0.0664523f},{-0.186655f,0.0949245f,0.0665538f},
+{-0.155078f,0.0500372f,0.053143f},{-0.152135f,-0.00291078f,0.0293266f},{-0.173756f,-0.0558588f,0.00241507f},
+{-0.213691f,-0.100746f,-0.0216839f},{-0.267826f,-0.130739f,-0.0391481f},{0.354934f,0.0573656f,-0.132288f},
+{0.35381f,-0.000170749f,-0.143506f},{0.381882f,0.00385971f,-0.148337f},{0.406389f,0.0153374f,-0.149276f},
+{0.422778f,0.032515f,-0.145954f},{0.427813f,0.0527773f,-0.138659f},{0.420534f,0.0730396f,-0.128481f},
+{0.402489f,0.0902173f,-0.117185f},{0.377147f,0.101695f,-0.106769f},{0.348936f,0.105725f,-0.098952f},
+{0.322337f,0.101695f,-0.0948513f},{0.30118f,0.0902172f,-0.0948892f},{0.288106f,0.0730396f,-0.0988492f},
+{0.28438f,0.0527773f,-0.106035f},{0.290143f,0.032515f,-0.11543f},{0.304766f,0.0153374f,-0.125765f},
+{0.326835f,0.00385966f,-0.135594f},{0.34734f,-0.0581242f,-0.131498f},{0.398136f,-0.0506769f,-0.137744f},
+{0.443184f,-0.0294689f,-0.13778f},{0.473215f,0.00227113f,-0.130937f},{0.481555f,0.039711f,-0.117333f},
+{0.466781f,0.077151f,-0.0988643f},{0.432955f,0.108891f,-0.0790885f},{0.387165f,0.130099f,-0.0617732f},
+{0.337041f,0.137546f,-0.0495308f},{0.290066f,0.130099f,-0.0438717f},{0.253281f,0.108891f,-0.0455929f},
+{0.231674f,0.0771509f,-0.0543229f},{0.226688f,0.039711f,-0.0683984f},{0.237222f,0.00227109f,-0.0856564f},
+{0.26199f,-0.0294689f,-0.103695f},{0.299775f,-0.0506769f,-0.119748f},{0.338795f,-0.107672f,-0.0983158f},
+{0.401925f,-0.0979416f,-0.102189f},{0.456905f,-0.070232f,-0.0992443f},{0.492207f,-0.0287616f,-0.0890065f},
+{0.5f,0.020156f,-0.0714432f},{0.479892f,0.0690737f,-0.0489261f},{0.438293f,0.110544f,-0.0262122f},
+{0.383453f,0.138254f,-0.00747452f},{0.322321f,0.147984f,0.00582876f},{0.262487f,0.138254f,0.0126678f},
+{0.214117f,0.110544f,0.0103978f},{0.186347f,0.0690736f,-0.00228616f},{0.181908f,0.020156f,-0.0226702f},
+{0.197763f,-0.0287616f,-0.0462757f},{0.230646f,-0.070232f,-0.0690678f},{0.278912f,-0.0979416f,-0.0872364f},
+{0.331209f,-0.141271f,-0.0482373f},{0.395083f,-0.130739f,-0.0496675f},{0.44825f,-0.100746f,-0.0446528f},
+{0.480164f,-0.0558588f,-0.0332809f},{0.484745f,-0.00291071f,-0.0156133f},{0.463326f,0.0500373f,0.00600839f},
+{0.422637f,0.0949245f,0.0268506f},{0.369065f,0.124917f,0.0437058f},{0.30661f,0.135449f,0.0570844f},
+{0.241634f,0.124917f,0.0664523f},{0.186655f,0.0949245f,0.0665538f},{0.155078f,0.0500372f,0.053143f},
+{0.152135f,-0.00291078f,0.0293266f},{0.173756f,-0.0558588f,0.00241507f},{0.213691f,-0.100746f,-0.0216839f},
+{0.267826f,-0.130739f,-0.0391481f},{-0.277987f,0.0386883f,0.132131f},{-0.287513f,0.0910388f,0.106426f},
+{-0.310982f,0.0868129f,0.102243f},{-0.32908f,0.0747783f,0.101479f},{-0.339832f,0.0567673f,0.103884f},
+{-0.342399f,0.0355218f,0.10907f},{-0.336808f,0.0142763f,0.116615f},{-0.323672f,-0.00373473f,0.125754f},
+{-0.304119f,-0.0157693f,0.135112f},{-0.280073f,-0.0199953f,0.142976f},{-0.254669f,-0.0157693f,0.147932f},
+{-0.232214f,-0.00373472f,0.149276f},{-0.217264f,0.0142763f,0.146921f},{-0.21312f,0.0355218f,0.141185f},
+{-0.22065f,0.0567673f,0.13281f},{-0.238105f,0.0747783f,0.123086f},{-0.261851f,0.0868129f,0.113735f},
+{-0.302723f,0.129086f,0.0681242f},{-0.345325f,0.121278f,0.0626405f},{-0.37736f,0.0990408f,0.0633087f},
+{-0.395498f,0.0657608f,0.068684f},{-0.399073f,0.0265043f,0.0776627f},{-0.389194f,-0.0127523f,0.0902372f},
+{-0.367429f,-0.0460323f,0.105995f},{-0.33493f,-0.0682694f,0.122262f},{-0.293123f,-0.076078f,0.134908f},
+{-0.246114f,-0.0682694f,0.141237f},{-0.202283f,-0.0460323f,0.141245f},{-0.172133f,-0.0127523f,0.136049f},
+{-0.163456f,0.0265042f,0.126224f},{-0.177871f,0.0657607f,0.11221f},{-0.21106f,0.0990408f,0.0956785f},
+{-0.255442f,0.121278f,0.0798278f},{-0.318575f,0.147039f,0.018955f},{-0.376353f,0.136836f,0.0126824f},
+{-0.420545f,0.107782f,0.0146494f},{-0.444704f,0.0642997f,0.0232859f},{-0.447788f,0.0130085f,0.036352f},
+{-0.432737f,-0.0382826f,0.0530567f},{-0.403325f,-0.0817651f,0.0727878f},{-0.361725f,-0.110819f,0.0920003f},
+{-0.308949f,-0.121022f,0.105077f},{-0.249036f,-0.110819f,0.109041f},{-0.192594f,-0.0817651f,0.105453f},
+{-0.153797f,-0.0382826f,0.0971894f},{-0.142695f,0.0130085f,0.0852546f},{-0.160501f,0.0642996f,0.0694309f},
+{-0.201377f,0.107782f,0.0508067f},{-0.256994f,0.136836f,0.0326489f},{-0.333621f,0.142162f,-0.0362204f},
+{-0.400982f,0.131119f,-0.0447669f},{-0.454372f,0.0996714f,-0.0438248f},{-0.483064f,0.0526063f,-0.0330922f},
+{-0.484745f,-0.00291076f,-0.0156133f},{-0.464001f,-0.0584278f,0.00516931f},{-0.42714f,-0.105493f,0.0266546f},
+{-0.378398f,-0.136941f,0.0451392f},{-0.320159f,-0.147984f,0.0560012f},{-0.257181f,-0.136941f,0.0573072f},
+{-0.200088f,-0.105493f,0.0513338f},{-0.162235f,-0.0584278f,0.0415487f},{-0.152135f,-0.00291073f,0.0293265f},
+{-0.169683f,0.0526063f,0.0142241f},{-0.209585f,0.0996715f,-0.00340899f},{-0.266299f,0.131119f,-0.0212809f},
+{0.277987f,0.0386883f,0.132131f},{0.287513f,0.0910388f,0.106426f},{0.310982f,0.0868129f,0.102243f},
+{0.32908f,0.0747783f,0.101479f},{0.339832f,0.0567673f,0.103884f},{0.342399f,0.0355218f,0.10907f},
+{0.336808f,0.0142763f,0.116615f},{0.323672f,-0.00373473f,0.125754f},{0.304119f,-0.0157693f,0.135112f},
+{0.280073f,-0.0199953f,0.142976f},{0.254669f,-0.0157693f,0.147932f},{0.232214f,-0.00373472f,0.149276f},
+{0.217264f,0.0142763f,0.146921f},{0.21312f,0.0355218f,0.141185f},{0.22065f,0.0567673f,0.13281f},
+{0.238105f,0.0747783f,0.123086f},{0.261851f,0.0868129f,0.113735f},{0.302723f,0.129086f,0.0681242f},
+{0.345325f,0.121278f,0.0626405f},{0.37736f,0.0990408f,0.0633087f},{0.395498f,0.0657608f,0.068684f},
+{0.399073f,0.0265043f,0.0776627f},{0.389194f,-0.0127523f,0.0902372f},{0.367429f,-0.0460323f,0.105995f},
+{0.33493f,-0.0682694f,0.122262f},{0.293123f,-0.076078f,0.134908f},{0.246114f,-0.0682694f,0.141237f},
+{0.202283f,-0.0460323f,0.141246f},{0.172133f,-0.0127523f,0.136049f},{0.163456f,0.0265042f,0.126224f},
+{0.177871f,0.0657607f,0.11221f},{0.21106f,0.0990408f,0.0956785f},{0.255442f,0.121278f,0.0798278f},
+{0.318575f,0.147039f,0.018955f},{0.376353f,0.136836f,0.0126824f},{0.420545f,0.107782f,0.0146494f},
+{0.444704f,0.0642997f,0.0232859f},{0.447787f,0.0130085f,0.036352f},{0.432737f,-0.0382826f,0.0530567f},
+{0.403325f,-0.0817651f,0.0727878f},{0.361725f,-0.110819f,0.0920003f},{0.308949f,-0.121022f,0.105077f},
+{0.249036f,-0.110819f,0.109041f},{0.192594f,-0.0817651f,0.105453f},{0.153797f,-0.0382825f,0.0971894f},
+{0.142695f,0.0130085f,0.0852546f},{0.160501f,0.0642996f,0.0694309f},{0.201377f,0.107782f,0.0508067f},
+{0.256994f,0.136836f,0.0326489f},{0.333621f,0.142162f,-0.0362204f},{0.400982f,0.131119f,-0.0447669f},
+{0.454372f,0.0996714f,-0.0438248f},{0.483064f,0.0526063f,-0.0330922f},{0.484745f,-0.00291076f,-0.0156133f},
+{0.464001f,-0.0584278f,0.00516931f},{0.42714f,-0.105493f,0.0266546f},{0.378398f,-0.136941f,0.0451392f},
+{0.320159f,-0.147984f,0.0560012f},{0.257181f,-0.136941f,0.0573072f},{0.200088f,-0.105493f,0.0513338f},
+{0.162235f,-0.0584278f,0.0415487f},{0.152135f,-0.00291073f,0.0293265f},{0.169683f,0.0526063f,0.0142241f},
+{0.209585f,0.0996715f,-0.00340899f},{0.266299f,0.131119f,-0.0212809f}
+},
+
+//lid2
+{
+{-0.35492f,0.0490122f,-0.136664f},{-0.352441f,-0.00933507f,-0.143152f},{-0.38041f,-0.00517772f,-0.148025f},
+{-0.405069f,0.00666169f,-0.149782f},{-0.421938f,0.0243805f,-0.147992f},{-0.427713f,0.0452814f,-0.142654f},
+{-0.421216f,0.0661823f,-0.134438f},{-0.403749f,0.0839011f,-0.124699f},{-0.378666f,0.0957405f,-0.115177f},
+{-0.35044f,0.0998979f,-0.107521f},{-0.323665f,0.0957405f,-0.102911f},{-0.302226f,0.0839011f,-0.101906f},
+{-0.288762f,0.0661823f,-0.104479f},{-0.284557f,0.0452814f,-0.110146f},{-0.289822f,0.0243805f,-0.118063f},
+{-0.304004f,0.00666169f,-0.127075f},{-0.32572f,-0.00517772f,-0.13585f},{-0.345275f,-0.0662611f,-0.126649f},
+{-0.395652f,-0.0585793f,-0.132679f},{-0.44069f,-0.0367029f,-0.13407f},{-0.471557f,-0.00396281f,-0.130108f},
+{-0.481531f,0.0346569f,-0.12031f},{-0.468499f,0.0732766f,-0.105598f},{-0.435716f,0.106017f,-0.0886244f},
+{-0.390041f,0.127893f,-0.0727466f},{-0.339539f,0.135575f,-0.0606899f},{-0.292198f,0.127893f,-0.0541963f},
+{-0.255096f,0.106017f,-0.0541648f},{-0.232923f,0.0732764f,-0.0604336f},{-0.22704f,0.0346569f,-0.0718106f},
+{-0.236654f,-0.00396281f,-0.0865268f},{-0.26078f,-0.0367029f,-0.102256f},{-0.298141f,-0.0585793f,-0.116287f},
+{-0.336804f,-0.1131f,-0.0896059f},{-0.399229f,-0.103063f,-0.0934247f},{-0.453895f,-0.0744799f,-0.0923695f},
+{-0.490081f,-0.0317029f,-0.0858416f},{-0.5f,0.0187562f,-0.0730349f},{-0.482199f,0.0692151f,-0.0551062f},
+{-0.441819f,0.111992f,-0.0357056f},{-0.386863f,0.140575f,-0.0186269f},{-0.32513f,0.150612f,-0.00569723f},
+{-0.265008f,0.140575f,0.00175248f},{-0.216493f,0.111992f,0.00131805f},{-0.188031f,0.0692151f,-0.0082449f},
+{-0.182283f,0.018756f,-0.0249265f},{-0.196942f,-0.0317029f,-0.045005f},{-0.229284f,-0.0744799f,-0.0646411f},
+{-0.277356f,-0.103063f,-0.080166f},{-0.329818f,-0.14272f,-0.0368107f},{-0.392866f,-0.131856f,-0.0388037f},
+{-0.445457f,-0.100918f,-0.0362398f},{-0.477976f,-0.0546165f,-0.0288117f},{-0.484459f,0.0f,-0.0157477f},
+{-0.465204f,0.0546165f,0.00161825f},{-0.425725f,0.100918f,0.0193463f},{-0.372221f,0.131856f,0.034428f},
+{-0.309484f,0.14272f,0.0470423f},{-0.244464f,0.131856f,0.0565813f},{-0.189292f,0.100918f,0.0583469f},
+{-0.156703f,0.0546165f,0.048326f},{-0.152152f,0.0f,0.0288029f},{-0.172617f,-0.0546165f,0.00608634f},
+{-0.212389f,-0.100918f,-0.0143389f},{-0.266725f,-0.131856f,-0.0290232f},{0.35492f,0.0490122f,-0.136664f},
+{0.352441f,-0.00933507f,-0.143152f},{0.38041f,-0.00517772f,-0.148025f},{0.405069f,0.00666169f,-0.149782f},
+{0.421938f,0.0243805f,-0.147992f},{0.427713f,0.0452814f,-0.142654f},{0.421216f,0.0661823f,-0.134438f},
+{0.403749f,0.0839011f,-0.124699f},{0.378666f,0.0957405f,-0.115177f},{0.35044f,0.0998979f,-0.107521f},
+{0.323665f,0.0957405f,-0.102911f},{0.302226f,0.0839011f,-0.101906f},{0.288762f,0.0661823f,-0.104479f},
+{0.284557f,0.0452814f,-0.110146f},{0.289822f,0.0243805f,-0.118063f},{0.304004f,0.00666169f,-0.127075f},
+{0.32572f,-0.00517772f,-0.13585f},{0.345275f,-0.0662611f,-0.126649f},{0.395652f,-0.0585793f,-0.132679f},
+{0.44069f,-0.0367029f,-0.13407f},{0.471557f,-0.00396281f,-0.130108f},{0.481531f,0.0346569f,-0.12031f},
+{0.468499f,0.0732766f,-0.105598f},{0.435716f,0.106017f,-0.0886244f},{0.390041f,0.127893f,-0.0727466f},
+{0.339539f,0.135575f,-0.0606899f},{0.292198f,0.127893f,-0.0541963f},{0.255096f,0.106017f,-0.0541648f},
+{0.232923f,0.0732764f,-0.0604336f},{0.22704f,0.0346569f,-0.0718106f},{0.236655f,-0.00396281f,-0.0865268f},
+{0.26078f,-0.0367029f,-0.102256f},{0.298142f,-0.0585793f,-0.116287f},{0.336804f,-0.1131f,-0.0896059f},
+{0.399229f,-0.103063f,-0.0934246f},{0.453895f,-0.0744799f,-0.0923695f},{0.490081f,-0.0317029f,-0.0858416f},
+{0.5f,0.0187562f,-0.0730349f},{0.482199f,0.0692151f,-0.0551062f},{0.441819f,0.111992f,-0.0357056f},
+{0.386863f,0.140575f,-0.018627f},{0.32513f,0.150612f,-0.00569723f},{0.265008f,0.140575f,0.00175248f},
+{0.216493f,0.111992f,0.00131805f},{0.188031f,0.0692151f,-0.0082449f},{0.182283f,0.018756f,-0.0249265f},
+{0.196942f,-0.0317029f,-0.045005f},{0.229284f,-0.0744799f,-0.0646411f},{0.277356f,-0.103063f,-0.0801659f},
+{0.329818f,-0.14272f,-0.0368107f},{0.392866f,-0.131856f,-0.0388037f},{0.445457f,-0.100918f,-0.0362398f},
+{0.477976f,-0.0546165f,-0.0288117f},{0.484459f,0.0f,-0.0157477f},{0.465204f,0.0546165f,0.00161825f},
+{0.425725f,0.100918f,0.0193463f},{0.372221f,0.131856f,0.034428f},{0.309485f,0.14272f,0.0470423f},
+{0.244464f,0.131856f,0.0565813f},{0.189292f,0.100918f,0.0583469f},{0.156704f,0.0546165f,0.048326f},
+{0.152152f,0.0f,0.0288029f},{0.172617f,-0.0546165f,0.00608634f},{0.212389f,-0.100918f,-0.0143389f},
+{0.266725f,-0.131856f,-0.0290232f},{-0.277716f,0.00836844f,0.14043f},{-0.280742f,0.0653898f,0.122636f},
+{-0.304826f,0.0610009f,0.117201f},{-0.324257f,0.0485021f,0.114166f},{-0.336986f,0.0297963f,0.11374f},
+{-0.341972f,0.00773147f,0.11596f},{-0.338904f,-0.0143335f,0.120679f},{-0.328031f,-0.0330392f,0.127263f},
+{-0.310188f,-0.0455381f,0.134519f},{-0.287054f,-0.0499271f,0.141103f},{-0.26152f,-0.0455381f,0.146069f},
+{-0.23771f,-0.0330392f,0.149017f},{-0.220253f,-0.0143335f,0.149782f},{-0.21295f,0.00773147f,0.148127f},
+{-0.217451f,0.0297963f,0.143878f},{-0.232678f,0.0485021f,0.137394f},{-0.255266f,0.0610009f,0.129799f},
+{-0.293369f,0.112456f,0.0912079f},{-0.336341f,0.104346f,0.0834187f},{-0.369703f,0.0812518f,0.0796233f},
+{-0.390712f,0.0466881f,0.0791105f},{-0.398299f,0.00591745f,0.0819687f},{-0.392462f,-0.0348534f,0.0889353f},
+{-0.373867f,-0.0694169f,0.09953f},{-0.343481f,-0.0925117f,0.111166f},{-0.303004f,-0.100622f,0.120699f},
+{-0.256454f,-0.0925117f,0.126708f},{-0.211359f,-0.0694169f,0.129889f},{-0.177502f,-0.0348532f,0.131224f},
+{-0.163381f,0.00591745f,0.13016f},{-0.172658f,0.0466881f,0.125f},{-0.202749f,0.0812518f,0.115147f},
+{-0.24612f,0.104346f,0.102663f},{-0.309223f,0.142402f,0.0478398f},{-0.365947f,0.131806f,0.0395624f},
+{-0.410513f,0.101631f,0.0358015f},{-0.438152f,0.0564719f,0.0354415f},{-0.446767f,0.00320249f,0.0385313f},
+{-0.436696f,-0.0500671f,0.0461625f},{-0.409985f,-0.0952267f,0.0578119f},{-0.369058f,-0.125401f,0.0700902f},
+{-0.316548f,-0.135997f,0.0790487f},{-0.257432f,-0.125401f,0.0834509f},{-0.201015f,-0.0952267f,0.0851812f},
+{-0.159359f,-0.0500669f,0.0863865f},{-0.142616f,0.00320249f,0.0865623f},{-0.154858f,0.0564719f,0.0828629f},
+{-0.192921f,0.101632f,0.0734676f},{-0.248087f,0.131806f,0.0602875f},{-0.324881f,0.150669f,-0.00479203f},
+{-0.39012f,0.1392f,-0.0144446f},{-0.443458f,0.106539f,-0.0197515f},{-0.476273f,0.0576585f,-0.0201944f},
+{-0.484459f,0.0f,-0.0157477f},{-0.468884f,-0.0576585f,-0.00684364f},{-0.433719f,-0.106539f,0.00467625f},
+{-0.38391f,-0.1392f,0.0154431f},{-0.32438f,-0.150669f,0.0225054f},{-0.261719f,-0.1392f,0.0255482f},
+{-0.205523f,-0.106539f,0.0267245f},{-0.166441f,-0.0576583f,0.0280126f},{-0.152152f,0.0f,0.0288029f},
+{-0.165015f,0.0576585f,0.0263835f},{-0.202543f,0.106539f,0.0188847f},{-0.258754f,0.1392f,0.00739763f},
+{0.277716f,0.00836844f,0.14043f},{0.280742f,0.0653898f,0.122636f},{0.304826f,0.0610009f,0.117201f},
+{0.324257f,0.0485021f,0.114166f},{0.336986f,0.0297963f,0.11374f},{0.341972f,0.00773147f,0.11596f},
+{0.338904f,-0.0143335f,0.120679f},{0.328031f,-0.0330392f,0.127263f},{0.310188f,-0.0455381f,0.134519f},
+{0.287054f,-0.0499271f,0.141103f},{0.26152f,-0.0455381f,0.146069f},{0.23771f,-0.0330392f,0.149017f},
+{0.220253f,-0.0143335f,0.149782f},{0.21295f,0.00773147f,0.148127f},{0.217451f,0.0297963f,0.143878f},
+{0.232678f,0.0485021f,0.137394f},{0.255266f,0.0610009f,0.129799f},{0.293369f,0.112456f,0.0912079f},
+{0.336341f,0.104346f,0.0834187f},{0.369703f,0.0812518f,0.0796233f},{0.390712f,0.0466881f,0.0791105f},
+{0.398299f,0.00591745f,0.0819687f},{0.392462f,-0.0348534f,0.0889353f},{0.373867f,-0.0694169f,0.09953f},
+{0.343481f,-0.0925117f,0.111166f},{0.303004f,-0.100622f,0.120699f},{0.256454f,-0.0925117f,0.126708f},
+{0.211359f,-0.0694169f,0.129889f},{0.177502f,-0.0348532f,0.131224f},{0.163381f,0.00591745f,0.13016f},
+{0.172658f,0.0466881f,0.125f},{0.202749f,0.0812518f,0.115147f},{0.24612f,0.104346f,0.102663f},
+{0.309223f,0.142402f,0.0478398f},{0.365947f,0.131806f,0.0395624f},{0.410513f,0.101631f,0.0358015f},
+{0.438152f,0.0564719f,0.0354415f},{0.446767f,0.00320249f,0.0385313f},{0.436696f,-0.0500671f,0.0461625f},
+{0.409985f,-0.0952267f,0.0578119f},{0.369058f,-0.125401f,0.0700902f},{0.316548f,-0.135997f,0.0790487f},
+{0.257432f,-0.125401f,0.0834509f},{0.201015f,-0.0952267f,0.0851812f},{0.159359f,-0.0500669f,0.0863865f},
+{0.142616f,0.00320249f,0.0865623f},{0.154858f,0.0564719f,0.082863f},{0.192921f,0.101632f,0.0734676f},
+{0.248087f,0.131806f,0.0602875f},{0.324881f,0.150669f,-0.00479203f},{0.39012f,0.1392f,-0.0144446f},
+{0.443458f,0.106539f,-0.0197515f},{0.476273f,0.0576585f,-0.0201944f},{0.468884f,-0.0576585f,-0.00684364f},
+{0.433719f,-0.106539f,0.00467625f},{0.38391f,-0.1392f,0.0154431f},{0.32438f,-0.150669f,0.0225054f},
+{0.261719f,-0.1392f,0.0255482f},{0.205523f,-0.106539f,0.0267245f},{0.166441f,-0.0576583f,0.0280126f},
+{0.165015f,0.0576585f,0.0263835f},{0.202543f,0.106539f,0.0188847f},{0.258754f,0.1392f,0.00739763f}
+},
+
+//lid 1
+{
+{-0.353951f,0.019129f,-0.142995f},{-0.348688f,-0.0395605f,-0.13725f},{-0.37644f,-0.0352039f,-0.142413f},
+{-0.401426f,-0.0227972f,-0.146432f},{-0.419356f,-0.00422938f,-0.148674f},{-0.426804f,0.0176729f,-0.148449f},
+{-0.422104f,0.0395752f,-0.145383f},{-0.405972f,0.058143f,-0.139773f},{-0.38145f,0.0705497f,-0.132638f},
+{-0.353099f,0.0749063f,-0.125394f},{-0.325786f,0.0705497f,-0.119389f},{-0.303578f,0.058143f,-0.115579f},
+{-0.289167f,0.0395752f,-0.114452f},{-0.283899f,0.0176729f,-0.116049f},{-0.288135f,-0.00422939f,-0.119964f},
+{-0.301449f,-0.0227972f,-0.125397f},{-0.322478f,-0.0352039f,-0.13141f},{-0.340315f,-0.0922273f,-0.10959f},
+{-0.389728f,-0.0841773f,-0.115854f},{-0.434689f,-0.0612528f,-0.121228f},{-0.467406f,-0.0269439f,-0.124791f},
+{-0.481165f,0.0135262f,-0.124789f},{-0.472339f,0.0539964f,-0.119913f},{-0.442178f,0.0883053f,-0.110465f},
+{-0.396778f,0.11123f,-0.0984804f},{-0.345153f,0.11928f,-0.0867588f},{-0.296599f,0.11123f,-0.0776884f},
+{-0.258429f,0.0883053f,-0.0726898f},{-0.234746f,0.0539964f,-0.0723075f},{-0.226799f,0.0135262f,-0.076421f},
+{-0.234523f,-0.0269439f,-0.0840859f},{-0.257485f,-0.0612528f,-0.0933808f},{-0.294094f,-0.0841773f,-0.102202f},
+{-0.332059f,-0.130853f,-0.0636959f},{-0.392836f,-0.120335f,-0.0686586f},{-0.446727f,-0.0903832f,-0.0732333f},
+{-0.484947f,-0.0455564f,-0.0763222f},{-0.5f,0.00732036f,-0.0756228f},{-0.488046f,0.0601971f,-0.0697015f},
+{-0.450962f,0.105024f,-0.0593253f},{-0.395754f,0.134976f,-0.0468043f},{-0.332196f,0.145494f,-0.0345443f},
+{-0.270886f,0.134976f,-0.02476f},{-0.221613f,0.105024f,-0.0196705f},{-0.191182f,0.0601971f,-0.0206756f},
+{-0.182158f,0.00732032f,-0.0273943f},{-0.194127f,-0.0455565f,-0.0377315f},{-0.225565f,-0.0903832f,-0.0486242f},
+{-0.273503f,-0.120335f,-0.0574568f},{-0.325519f,-0.149558f,-0.00603217f},{-0.386779f,-0.138174f,-0.0106294f},
+{-0.438138f,-0.105754f,-0.0150412f},{-0.472319f,-0.0572334f,-0.0176549f},{-0.483755f,3.0617e-008f,-0.0160775f},
+{-0.470309f,0.0572334f,-0.0097539f},{-0.434281f,0.105754f,-0.000563411f},{-0.381004f,0.138174f,0.00963235f},
+{-0.317226f,0.149558f,0.0205644f},{-0.251709f,0.138174f,0.031268f},{-0.195747f,0.105754f,0.0380775f},
+{-0.160203f,0.0572334f,0.0373458f},{-0.151073f,-4.4012e-008f,0.0293253f},{-0.16826f,-0.0572335f,0.0178688f},
+{-0.207633f,-0.105754f,0.00716789f},{-0.262789f,-0.138174f,-0.000655924f},{0.353951f,0.019129f,-0.142995f},
+{0.348688f,-0.0395605f,-0.13725f},{0.37644f,-0.0352039f,-0.142413f},{0.401426f,-0.0227972f,-0.146432f},
+{0.419356f,-0.00422938f,-0.148674f},{0.426804f,0.0176729f,-0.148449f},{0.422103f,0.0395752f,-0.145383f},
+{0.405972f,0.058143f,-0.139773f},{0.381449f,0.0705497f,-0.132638f},{0.353099f,0.0749063f,-0.125394f},
+{0.325786f,0.0705497f,-0.119389f},{0.303578f,0.058143f,-0.115579f},{0.289167f,0.0395752f,-0.114452f},
+{0.283899f,0.0176729f,-0.116049f},{0.288135f,-0.00422939f,-0.119964f},{0.301449f,-0.0227972f,-0.125397f},
+{0.322478f,-0.0352039f,-0.13141f},{0.340315f,-0.0922273f,-0.10959f},{0.389728f,-0.0841773f,-0.115854f},
+{0.434689f,-0.0612528f,-0.121228f},{0.467405f,-0.0269439f,-0.124791f},{0.481165f,0.0135262f,-0.124789f},
+{0.472339f,0.0539964f,-0.119913f},{0.442178f,0.0883053f,-0.110465f},{0.396778f,0.11123f,-0.0984804f},
+{0.345153f,0.11928f,-0.0867588f},{0.296598f,0.11123f,-0.0776884f},{0.258429f,0.0883053f,-0.0726898f},
+{0.234746f,0.0539964f,-0.0723075f},{0.226799f,0.0135262f,-0.076421f},{0.234523f,-0.0269439f,-0.0840859f},
+{0.257485f,-0.0612528f,-0.0933808f},{0.294094f,-0.0841773f,-0.102202f},{0.332059f,-0.130853f,-0.0636959f},
+{0.392836f,-0.120335f,-0.0686586f},{0.446727f,-0.0903832f,-0.0732333f},{0.484947f,-0.0455564f,-0.0763222f},
+{0.5f,0.00732036f,-0.0756228f},{0.488046f,0.0601971f,-0.0697015f},{0.450962f,0.105024f,-0.0593253f},
+{0.395754f,0.134976f,-0.0468043f},{0.332195f,0.145494f,-0.0345443f},{0.270886f,0.134976f,-0.02476f},
+{0.221613f,0.105024f,-0.0196705f},{0.191182f,0.0601971f,-0.0206756f},{0.182158f,0.00732032f,-0.0273943f},
+{0.194127f,-0.0455565f,-0.0377315f},{0.225565f,-0.0903832f,-0.0486242f},{0.273503f,-0.120335f,-0.0574568f},
+{0.325519f,-0.149558f,-0.00603217f},{0.386779f,-0.138174f,-0.0106294f},{0.438138f,-0.105754f,-0.0150412f},
+{0.472319f,-0.0572334f,-0.0176549f},{0.483755f,3.0617e-008f,-0.0160775f},{0.470309f,0.0572334f,-0.0097539f},
+{0.434281f,0.105754f,-0.000563411f},{0.381004f,0.138174f,0.00963235f},{0.317226f,0.149558f,0.0205644f},
+{0.251709f,0.138174f,0.031268f},{0.195747f,0.105754f,0.0380775f},{0.160203f,0.0572334f,0.0373458f},
+{0.151073f,-4.4012e-008f,0.0293253f},{0.16826f,-0.0572335f,0.0178688f},{0.207633f,-0.105754f,0.00716789f},
+{0.262789f,-0.138174f,-0.000655924f},{-0.278685f,-0.0184455f,0.142104f},{-0.276782f,0.0402249f,0.131836f},
+{-0.301275f,0.0358657f,0.125528f},{-0.32166f,0.023452f,0.120724f},{-0.335761f,0.00487346f,0.117933f},
+{-0.342327f,-0.0170414f,0.117442f},{-0.340777f,-0.0389562f,0.119308f},{-0.331139f,-0.0575348f,0.123149f},
+{-0.314161f,-0.0699485f,0.128161f},{-0.291535f,-0.0743076f,0.133481f},{-0.266105f,-0.0699485f,0.138543f},
+{-0.241813f,-0.0575347f,0.143068f},{-0.223134f,-0.0389562f,0.146692f},{-0.213979f,-0.0170414f,0.148674f},
+{-0.216437f,0.00487348f,0.148103f},{-0.22997f,0.023452f,0.144568f},{-0.251555f,0.0358657f,0.138674f},
+{-0.286428f,0.0927713f,0.106668f},{-0.329876f,0.0847167f,0.0969867f},{-0.364411f,0.0617791f,0.0897744f},
+{-0.387562f,0.0274504f,0.0847431f},{-0.397904f,-0.0130429f,0.0824777f},{-0.394525f,-0.0535363f,0.0840476f},
+{-0.377363f,-0.0878649f,0.089252f},{-0.347459f,-0.110803f,0.096282f},{-0.307253f,-0.118857f,0.103236f},
+{-0.261203f,-0.110803f,0.1096f},{-0.216225f,-0.0878649f,0.116136f},{-0.180992f,-0.0535363f,0.123303f},
+{-0.163781f,-0.0130429f,0.129625f},{-0.169441f,0.0274504f,0.131883f},{-0.196926f,0.0617791f,0.127674f},
+{-0.239231f,0.0847167f,0.117999f},{-0.30165f,0.131194f,0.068821f},{-0.357946f,0.12067f,0.0586132f},
+{-0.402983f,0.0907009f,0.0504722f},{-0.433219f,0.0458484f,0.0433801f},{-0.445856f,-0.00705878f,0.0384981f},
+{-0.439138f,-0.0599659f,0.0380252f},{-0.413572f,-0.104818f,0.0420112f},{-0.371905f,-0.134788f,0.0480844f},
+{-0.318578f,-0.145312f,0.0540119f},{-0.259936f,-0.134788f,0.0596851f},{-0.204491f,-0.104818f,0.0666849f},
+{-0.162112f,-0.0599659f,0.0760798f},{-0.142086f,-0.00705876f,0.0861686f},{-0.150271f,0.0458484f,0.0923222f},
+{-0.18592f,0.0907008f,0.0903491f},{-0.24061f,0.12067f,0.0808271f},{-0.317406f,0.149644f,0.0199458f},
+{-0.381217f,0.138253f,0.00904715f},{-0.434494f,0.105814f,-0.00103264f},{-0.470442f,0.0572662f,-0.0100155f},
+{-0.483755f,3.82713e-009f,-0.0160775f},{-0.472208f,-0.0572662f,-0.0173934f},{-0.437995f,-0.105814f,-0.0145555f},
+{-0.386668f,-0.138253f,-0.00998602f},{-0.325449f,-0.149644f,-0.00532854f},{-0.262724f,-0.138253f,-8.28803e-006f},
+{-0.207546f,-0.105814f,0.00765557f},{-0.168184f,-0.0572662f,0.0181296f},{-0.151073f,3.82713e-009f,0.0293253f},
+{-0.160302f,0.0572663f,0.0370842f},{-0.195903f,0.105814f,0.0376073f},{-0.251874f,0.138253f,0.030682f},
+{0.278685f,-0.0184455f,0.142104f},{0.276782f,0.0402249f,0.131836f},{0.301275f,0.0358657f,0.125528f},
+{0.32166f,0.023452f,0.120724f},{0.335761f,0.00487346f,0.117933f},{0.342327f,-0.0170414f,0.117442f},
+{0.340777f,-0.0389562f,0.119308f},{0.331139f,-0.0575348f,0.123149f},{0.314161f,-0.0699485f,0.128161f},
+{0.291535f,-0.0743076f,0.133481f},{0.266105f,-0.0699485f,0.138543f},{0.241813f,-0.0575347f,0.143068f},
+{0.223134f,-0.0389562f,0.146692f},{0.213978f,-0.0170414f,0.148674f},{0.216437f,0.00487348f,0.148103f},
+{0.229969f,0.023452f,0.144568f},{0.251555f,0.0358657f,0.138674f},{0.286428f,0.0927713f,0.106668f},
+{0.329876f,0.0847167f,0.0969866f},{0.364411f,0.0617791f,0.0897744f},{0.387562f,0.0274504f,0.084743f},
+{0.397904f,-0.0130429f,0.0824776f},{0.394525f,-0.0535363f,0.0840476f},{0.377363f,-0.0878649f,0.089252f},
+{0.347459f,-0.110803f,0.0962819f},{0.307253f,-0.118857f,0.103236f},{0.261203f,-0.110802f,0.1096f},
+{0.216225f,-0.0878649f,0.116136f},{0.180992f,-0.0535363f,0.123303f},{0.163781f,-0.0130429f,0.129625f},
+{0.169441f,0.0274504f,0.131883f},{0.196926f,0.0617791f,0.127674f},{0.239231f,0.0847167f,0.117999f},
+{0.30165f,0.131194f,0.068821f},{0.357946f,0.12067f,0.0586132f},{0.402983f,0.0907009f,0.0504722f},
+{0.433218f,0.0458484f,0.0433801f},{0.445856f,-0.00705878f,0.0384981f},{0.439138f,-0.0599659f,0.0380252f},
+{0.413572f,-0.104818f,0.0420112f},{0.371905f,-0.134788f,0.0480844f},{0.318578f,-0.145312f,0.0540119f},
+{0.259936f,-0.134788f,0.0596851f},{0.204491f,-0.104818f,0.0666849f},{0.162111f,-0.0599659f,0.0760797f},
+{0.142086f,-0.00705875f,0.0861686f},{0.150271f,0.0458484f,0.0923222f},{0.18592f,0.0907008f,0.0903491f},
+{0.24061f,0.12067f,0.0808271f},{0.317406f,0.149644f,0.0199458f},{0.381217f,0.138253f,0.00904715f},
+{0.434494f,0.105814f,-0.00103264f},{0.470442f,0.0572662f,-0.0100155f},{0.483755f,3.82713e-009f,-0.0160775f},
+{0.472208f,-0.0572662f,-0.0173934f},{0.437995f,-0.105814f,-0.0145555f},{0.386668f,-0.138253f,-0.00998602f},
+{0.325449f,-0.149644f,-0.00532854f},{0.262724f,-0.138253f,-8.28803e-006f},{0.207546f,-0.105814f,0.00765557f},
+{0.168184f,-0.0572662f,0.0181296f},{0.151073f,3.82713e-009f,0.0293253f},{0.160302f,0.0572663f,0.0370842f},
+{0.195903f,0.105814f,0.0376073f},{0.251874f,0.138253f,0.030682f}
+}
+
+};
+
+static GLfloat normals [NUM_LIDS][344][3] = {
+
+//lid 10
+{
+{0.14128f,0.678859f,-0.720549f},{0.141183f,0.470342f,-0.871117f},{0.0436259f,0.538027f,-0.841798f},
+{0.0679973f,0.716579f,-0.694184f},{-0.119311f,0.639257f,-0.759681f},{-0.00235058f,0.772214f,-0.635358f},
+{-0.255136f,0.759046f,-0.598962f},{-0.0474012f,0.827055f,-0.560118f},{-0.314039f,0.853304f,-0.416235f},
+{-0.0600024f,0.866637f,-0.495318f},{-0.292773f,0.915841f,-0.274809f},{-0.049072f,0.891986f,-0.449392f},
+{-0.212481f,0.95807f,-0.192231f},{-0.0178326f,0.908456f,-0.417599f},{-0.0920599f,0.982527f,-0.161757f},
+{0.0370726f,0.914058f,-0.403886f},{0.0521203f,0.982077f,-0.18113f},{0.108309f,0.902514f,-0.416819f},
+{0.201428f,0.946854f,-0.250789f},{0.179027f,0.872331f,-0.45496f},{0.331459f,0.872109f,-0.359945f},
+{0.23599f,0.827361f,-0.509688f},{0.418216f,0.768374f,-0.484455f},{0.271011f,0.775009f,-0.570888f},
+{0.450676f,0.660369f,-0.60067f},{0.28066f,0.726565f,-0.627163f},{0.433824f,0.571637f,-0.69644f},
+{0.269128f,0.691375f,-0.670501f},{0.379646f,0.512038f,-0.77051f},{0.242614f,0.670979f,-0.70066f},
+{0.296688f,0.482442f,-0.824152f},{0.20092f,0.665188f,-0.719135f},{0.111321f,0.0838976f,-0.990237f},
+{-0.029379f,0.177399f,-0.983701f},{-0.36291f,0.315654f,-0.876732f},{-0.636533f,0.537885f,-0.552726f},
+{-0.692297f,0.698565f,-0.180919f},{-0.609692f,0.790176f,0.0624294f},{-0.463645f,0.864983f,0.191929f},
+{-0.266794f,0.932768f,0.242413f},{-0.0294763f,0.976851f,0.211879f},{0.23276f,0.968844f,0.0846355f},
+{0.473096f,0.871906f,-0.126332f},{0.622688f,0.697126f,-0.355352f},{0.663374f,0.512375f,-0.54535f},
+{0.624155f,0.368076f,-0.689167f},{0.531327f,0.266649f,-0.804108f},{0.396108f,0.19478f,-0.897307f},
+{0.301284f,0.331535f,-0.894043f},{0.293635f,0.335978f,-0.894929f},{0.0262531f,-0.314782f,-0.948801f},
+{-0.145065f,-0.279238f,-0.949201f},{-0.600169f,-0.204803f,-0.773209f},{-0.94784f,0.0687263f,-0.311249f},
+{-0.931339f,0.326478f,0.161309f},{-0.775903f,0.471621f,0.418986f},{-0.595717f,0.581008f,0.554573f},
+{-0.378996f,0.685218f,0.621963f},{-0.1154f,0.782225f,0.612215f},{0.228237f,0.846899f,0.480282f},
+{0.608238f,0.775101f,0.17107f},{0.820052f,0.537806f,-0.19565f},{0.837034f,0.294875f,-0.460893f},
+{0.762505f,0.126921f,-0.634411f},{0.630338f,0.00231725f,-0.776317f},{0.436413f,-0.113109f,-0.892609f},
+{0.320267f,0.0147375f,-0.947213f},{0.348327f,-0.00790562f,-0.93734f},{-0.0276759f,-0.417145f,-0.908418f},
+{-0.141207f,-0.463983f,-0.874517f},{-0.573196f,-0.464631f,-0.674955f},{-0.943646f,-0.249543f,-0.217397f},
+{-0.961507f,0.0693531f,0.265886f},{-0.808033f,0.269491f,0.523886f},{-0.636184f,0.393708f,0.663524f},
+{-0.43775f,0.497816f,0.748702f},{-0.202579f,0.60248f,0.771997f},{0.122768f,0.708696f,0.694751f},
+{0.564416f,0.712283f,0.417239f},{0.875302f,0.482711f,-0.0289185f},{0.906907f,0.205191f,-0.367988f},
+{0.825239f,0.0254238f,-0.564212f},{0.68962f,-0.103674f,-0.716712f},{0.478163f,-0.232147f,-0.847035f},
+{0.283993f,-0.306895f,-0.908385f},{0.330854f,-0.348141f,-0.877117f},{-0.141183f,0.470342f,-0.871117f},
+{-0.14128f,0.678859f,-0.720549f},{-0.043626f,0.538027f,-0.841798f},{-0.0679977f,0.716579f,-0.694184f},
+{0.119311f,0.639257f,-0.759681f},{0.00235085f,0.772214f,-0.635358f},{0.255136f,0.759046f,-0.598961f},
+{0.0474012f,0.827055f,-0.560118f},{0.314038f,0.853304f,-0.416236f},{0.0600023f,0.866637f,-0.495318f},
+{0.292773f,0.915841f,-0.274809f},{0.0490718f,0.891986f,-0.449392f},{0.212481f,0.95807f,-0.192231f},
+{0.0178326f,0.908456f,-0.417599f},{0.0920599f,0.982527f,-0.161757f},{-0.0370725f,0.914058f,-0.403886f},
+{-0.0521203f,0.982077f,-0.18113f},{-0.108309f,0.902514f,-0.416819f},{-0.201428f,0.946854f,-0.250789f},
+{-0.179027f,0.872331f,-0.45496f},{-0.331459f,0.872109f,-0.359945f},{-0.235989f,0.827361f,-0.509688f},
+{-0.418216f,0.768374f,-0.484455f},{-0.271012f,0.775009f,-0.570889f},{-0.450676f,0.660369f,-0.60067f},
+{-0.28066f,0.726565f,-0.627163f},{-0.433824f,0.571637f,-0.696439f},{-0.269128f,0.691375f,-0.670501f},
+{-0.379647f,0.512038f,-0.77051f},{-0.242614f,0.67098f,-0.70066f},{-0.296688f,0.482442f,-0.824152f},
+{-0.20092f,0.665189f,-0.719135f},{-0.111321f,0.0838977f,-0.990237f},{0.029379f,0.177399f,-0.983701f},
+{0.36291f,0.315654f,-0.876732f},{0.636533f,0.537885f,-0.552726f},{0.692297f,0.698565f,-0.18092f},
+{0.609692f,0.790176f,0.0624292f},{0.463645f,0.864984f,0.191929f},{0.266794f,0.932768f,0.242413f},
+{0.0294763f,0.976851f,0.211879f},{-0.23276f,0.968844f,0.0846357f},{-0.473096f,0.871906f,-0.126332f},
+{-0.622688f,0.697126f,-0.355352f},{-0.663374f,0.512375f,-0.54535f},{-0.624155f,0.368076f,-0.689167f},
+{-0.531328f,0.266649f,-0.804108f},{-0.396108f,0.19478f,-0.897307f},{-0.301284f,0.331535f,-0.894043f},
+{-0.293635f,0.335978f,-0.894929f},{-0.0262532f,-0.314781f,-0.948801f},{0.145065f,-0.279238f,-0.949201f},
+{0.600169f,-0.204803f,-0.773209f},{0.94784f,0.0687262f,-0.311249f},{0.931339f,0.326478f,0.161309f},
+{0.775903f,0.471621f,0.418986f},{0.595716f,0.581008f,0.554573f},{0.378996f,0.685218f,0.621963f},
+{0.1154f,0.782225f,0.612215f},{-0.228237f,0.846899f,0.480282f},{-0.608238f,0.775101f,0.17107f},
+{-0.820052f,0.537806f,-0.19565f},{-0.837034f,0.294875f,-0.460893f},{-0.762505f,0.126921f,-0.634411f},
+{-0.630338f,0.00231719f,-0.776317f},{-0.436413f,-0.113109f,-0.892609f},{-0.320267f,0.0147371f,-0.947213f},
+{-0.348327f,-0.0079059f,-0.93734f},{0.027676f,-0.417145f,-0.908418f},{0.141207f,-0.463983f,-0.874517f},
+{0.573197f,-0.46463f,-0.674955f},{0.943646f,-0.249543f,-0.217397f},{0.961506f,0.0693526f,0.265886f},
+{0.808033f,0.269491f,0.523887f},{0.636184f,0.393708f,0.663524f},{0.43775f,0.497816f,0.748702f},
+{0.202579f,0.60248f,0.771997f},{-0.122768f,0.708696f,0.694751f},{-0.564416f,0.712283f,0.417239f},
+{-0.875302f,0.482711f,-0.0289183f},{-0.906908f,0.205191f,-0.367988f},{-0.825239f,0.0254234f,-0.564211f},
+{-0.68962f,-0.103674f,-0.716712f},{-0.478163f,-0.232147f,-0.847035f},{-0.283994f,-0.306895f,-0.908385f},
+{-0.330854f,-0.34814f,-0.877117f},{-0.101791f,0.89554f,0.433181f},{-0.10134f,0.982935f,0.153519f},
+{-0.198237f,0.947331f,0.251529f},{-0.164187f,0.866134f,0.472075f},{-0.328502f,0.861858f,0.386377f},
+{-0.22236f,0.81515f,0.534871f},{-0.407264f,0.738985f,0.53669f},{-0.261475f,0.745438f,0.61315f},
+{-0.423584f,0.613071f,0.666874f},{-0.268118f,0.677242f,0.685169f},{-0.392497f,0.519335f,0.759103f},
+{-0.24919f,0.634149f,0.731956f},{-0.338078f,0.471162f,0.814684f},{-0.22364f,0.617892f,0.753787f},
+{-0.270615f,0.460525f,0.84539f},{-0.194833f,0.616506f,0.762863f},{-0.183681f,0.479089f,0.858333f},
+{-0.149814f,0.630977f,0.761199f},{-0.0646262f,0.532383f,0.844033f},{-0.0833697f,0.671555f,0.736249f},
+{0.0858598f,0.628864f,0.77276f},{-0.0110594f,0.735267f,0.677687f},{0.225661f,0.746376f,0.626099f},
+{0.0402802f,0.800838f,0.597525f},{0.297614f,0.844032f,0.446135f},{0.0578062f,0.850871f,0.522185f},
+{0.287181f,0.911623f,0.294058f},{0.0462129f,0.884f,0.465197f},{0.212292f,0.957645f,0.194545f},
+{0.0112676f,0.903058f,0.429371f},{0.0946535f,0.984007f,0.1509f},{-0.0411956f,0.907323f,0.418412f},
+{-0.0768357f,0.963819f,-0.255243f},{-0.231191f,0.968651f,-0.0909206f},{-0.478011f,0.865024f,0.152442f},
+{-0.613761f,0.668302f,0.420321f},{-0.621661f,0.468695f,0.627584f},{-0.555999f,0.333983f,0.761131f},
+{-0.465216f,0.269773f,0.843087f},{-0.358395f,0.248428f,0.899909f},{-0.215945f,0.246155f,0.944868f},
+{-0.00160027f,0.275933f,0.961176f},{0.307449f,0.391756f,0.867181f},{0.57879f,0.576987f,0.57627f},
+{0.658558f,0.716536f,0.229952f},{0.597679f,0.801598f,-0.0148259f},{0.460401f,0.872625f,-0.162965f},
+{0.266984f,0.934523f,-0.235344f},{0.103983f,0.993374f,-0.048947f},{0.105796f,0.993123f,-0.0501399f},
+{-0.0197862f,0.790362f,-0.61232f},{-0.242279f,0.852503f,-0.463184f},{-0.632416f,0.763443f,-0.131166f},
+{-0.817379f,0.505342f,0.276625f},{-0.788174f,0.265216f,0.555375f},{-0.687043f,0.131972f,0.714531f},
+{-0.56985f,0.0751975f,0.818301f},{-0.421735f,0.0372272f,0.905954f},{-0.203784f,-0.0289837f,0.978587f},
+{0.124815f,-0.104369f,0.986675f},{0.577569f,-0.0689256f,0.813427f},{0.917184f,0.152931f,0.367949f},
+{0.924202f,0.373489f,-0.0797226f},{0.792991f,0.508953f,-0.334863f},{0.620113f,0.617825f,-0.483478f},
+{0.394039f,0.719565f,-0.571804f},{0.224221f,0.865854f,-0.447239f},{0.212217f,0.873358f,-0.438418f},
+{0.0136589f,0.693472f,-0.720354f},{-0.145306f,0.729801f,-0.668039f},{-0.601517f,0.69868f,-0.387329f},
+{-0.891335f,0.442876f,0.0968627f},{-0.872552f,0.175056f,0.45608f},{-0.763231f,0.0371769f,0.645055f},
+{-0.642575f,-0.0180662f,0.76601f},{-0.48495f,-0.0563598f,0.872724f},{-0.238167f,-0.142315f,0.960741f},
+{0.123424f,-0.279803f,0.952091f},{0.574493f,-0.347868f,0.740908f},{0.939284f,-0.188771f,0.28655f},
+{0.979786f,0.0995065f,-0.173547f},{0.850407f,0.302179f,-0.430692f},{0.68788f,0.4362f,-0.580131f},
+{0.478047f,0.550419f,-0.684478f},{0.3163f,0.607377f,-0.72873f},{0.292721f,0.633415f,-0.71631f},
+{0.10134f,0.982936f,0.153519f},{0.101791f,0.895541f,0.433181f},{0.198237f,0.947331f,0.251529f},
+{0.164188f,0.866134f,0.472075f},{0.328502f,0.861858f,0.386377f},{0.22236f,0.81515f,0.534871f},
+{0.407264f,0.738986f,0.53669f},{0.261475f,0.745438f,0.61315f},{0.423584f,0.613071f,0.666874f},
+{0.268118f,0.677242f,0.685168f},{0.392497f,0.519336f,0.759103f},{0.24919f,0.634149f,0.731956f},
+{0.338078f,0.471162f,0.814684f},{0.22364f,0.617892f,0.753787f},{0.270615f,0.460525f,0.84539f},
+{0.194833f,0.616506f,0.762863f},{0.183681f,0.479089f,0.858333f},{0.149814f,0.630977f,0.761199f},
+{0.0646263f,0.532382f,0.844033f},{0.0833696f,0.671555f,0.736249f},{-0.0858598f,0.628864f,0.77276f},
+{0.0110594f,0.735267f,0.677687f},{-0.225661f,0.746376f,0.626099f},{-0.0402801f,0.800838f,0.597525f},
+{-0.297614f,0.844032f,0.446135f},{-0.0578062f,0.850871f,0.522185f},{-0.287181f,0.911623f,0.294058f},
+{-0.0462129f,0.884f,0.465198f},{-0.212292f,0.957645f,0.194545f},{-0.0112675f,0.903058f,0.429371f},
+{-0.0946533f,0.984007f,0.1509f},{0.041196f,0.907323f,0.418412f},{0.0768359f,0.963819f,-0.255243f},
+{0.231191f,0.968651f,-0.0909207f},{0.478011f,0.865024f,0.152442f},{0.613761f,0.668302f,0.420321f},
+{0.621661f,0.468695f,0.627584f},{0.555999f,0.333984f,0.761131f},{0.465216f,0.269773f,0.843087f},
+{0.358395f,0.248428f,0.899909f},{0.215945f,0.246155f,0.944868f},{0.00160026f,0.275933f,0.961176f},
+{-0.307449f,0.391756f,0.867181f},{-0.57879f,0.576987f,0.57627f},{-0.658558f,0.716536f,0.229952f},
+{-0.597679f,0.801598f,-0.014826f},{-0.460401f,0.872625f,-0.162965f},{-0.266984f,0.934523f,-0.235344f},
+{-0.103983f,0.993374f,-0.0489471f},{-0.105795f,0.993123f,-0.0501397f},{0.0197862f,0.790362f,-0.61232f},
+{0.242279f,0.852503f,-0.463184f},{0.632416f,0.763443f,-0.131166f},{0.817379f,0.505342f,0.276625f},
+{0.788174f,0.265216f,0.555375f},{0.687043f,0.131972f,0.714531f},{0.56985f,0.0751974f,0.818301f},
+{0.421735f,0.0372273f,0.905954f},{0.203784f,-0.0289837f,0.978587f},{-0.124815f,-0.104369f,0.986675f},
+{-0.577568f,-0.0689258f,0.813427f},{-0.917184f,0.152931f,0.367949f},{-0.924202f,0.373489f,-0.0797229f},
+{-0.792991f,0.508952f,-0.334863f},{-0.620113f,0.617825f,-0.483478f},{-0.394039f,0.719565f,-0.571804f},
+{-0.224221f,0.865854f,-0.447239f},{-0.212217f,0.873358f,-0.438418f},{-0.0136587f,0.693472f,-0.720354f},
+{0.145306f,0.729801f,-0.668039f},{0.601517f,0.69868f,-0.387329f},{0.891335f,0.442876f,0.0968627f},
+{0.872552f,0.175056f,0.45608f},{0.763232f,0.0371764f,0.645055f},{0.642575f,-0.0180665f,0.76601f},
+{0.48495f,-0.0563598f,0.872724f},{0.238168f,-0.142315f,0.960741f},{-0.123424f,-0.279803f,0.952091f},
+{-0.574493f,-0.347868f,0.740909f},{-0.939284f,-0.188771f,0.28655f},{-0.979786f,0.0995065f,-0.173547f},
+{-0.850407f,0.302179f,-0.430692f},{-0.68788f,0.4362f,-0.580131f},{-0.478047f,0.550419f,-0.684478f},
+{-0.3163f,0.607377f,-0.72873f},{-0.292721f,0.633415f,-0.71631f}
+},
+
+//lid 9
+{
+{0.170541f,0.555718f,-0.813691f},{0.159436f,0.323043f,-0.932857f},{0.0675904f,0.387311f,-0.919468f},
+{0.101067f,0.59512f,-0.797256f},{-0.092135f,0.494669f,-0.864184f},{0.0336952f,0.658639f,-0.751704f},
+{-0.229373f,0.644702f,-0.72921f},{-0.0108063f,0.727029f,-0.686522f},{-0.288707f,0.777821f,-0.55825f},
+{-0.0233612f,0.779424f,-0.626062f},{-0.263651f,0.867508f,-0.421803f},{-0.012134f,0.812561f,-0.58275f},
+{-0.179349f,0.921161f,-0.345394f},{0.0175103f,0.832714f,-0.553427f},{-0.0584333f,0.945729f,-0.319658f},
+{0.0683393f,0.839411f,-0.539184f},{0.0823237f,0.938165f,-0.336258f},{0.135725f,0.826017f,-0.54706f},
+{0.225929f,0.891127f,-0.393507f},{0.204819f,0.79023f,-0.577569f},{0.350601f,0.801826f,-0.483894f},
+{0.261618f,0.736218f,-0.62413f},{0.433427f,0.683162f,-0.587734f},{0.296097f,0.673774f,-0.677019f},
+{0.463621f,0.562726f,-0.684394f},{0.304738f,0.617548f,-0.725099f},{0.446703f,0.464193f,-0.764841f},
+{0.293235f,0.577481f,-0.761924f},{0.394005f,0.394726f,-0.830031f},{0.267887f,0.553192f,-0.788806f},
+{0.313145f,0.353344f,-0.881526f},{0.227697f,0.543901f,-0.807667f},{0.103488f,-0.0756736f,-0.991748f},
+{-0.0254071f,0.00398757f,-0.999669f},{-0.349912f,0.130467f,-0.927653f},{-0.638155f,0.398665f,-0.658654f},
+{-0.703033f,0.642145f,-0.305605f},{-0.609007f,0.79022f,-0.068285f},{-0.449166f,0.892346f,0.04437f},
+{-0.241132f,0.967482f,0.0763763f},{0.00191164f,0.99924f,0.0389275f},{0.257914f,0.963174f,-0.0759974f},
+{0.484125f,0.836707f,-0.256014f},{0.624151f,0.639931f,-0.448246f},{0.662818f,0.438996f,-0.606593f},
+{0.625793f,0.279749f,-0.728096f},{0.534464f,0.160511f,-0.82981f},{0.397089f,0.067222f,-0.915315f},
+{0.305679f,0.19791f,-0.931339f},{0.308629f,0.196352f,-0.930696f},{0.0010928f,-0.457257f,-0.889334f},
+{-0.16025f,-0.427096f,-0.889892f},{-0.589829f,-0.355518f,-0.725057f},{-0.94399f,-0.0546976f,-0.325408f},
+{-0.95306f,0.282341f,0.109367f},{-0.796299f,0.492715f,0.350912f},{-0.606733f,0.645652f,0.46369f},
+{-0.372043f,0.777756f,0.506636f},{-0.086674f,0.876457f,0.473614f},{0.257346f,0.909395f,0.326763f},
+{0.607804f,0.79297f,0.0421005f},{0.806237f,0.525687f,-0.271357f},{0.829843f,0.255751f,-0.495936f},
+{0.762498f,0.0578159f,-0.644402f},{0.631312f,-0.0985713f,-0.769239f},{0.42819f,-0.241367f,-0.870859f},
+{0.306199f,-0.119536f,-0.944433f},{0.342896f,-0.146123f,-0.927939f},{-0.0528956f,-0.553316f,-0.83129f},
+{-0.163834f,-0.590968f,-0.789883f},{-0.573892f,-0.568852f,-0.589114f},{-0.928504f,-0.32689f,-0.176134f},
+{-0.965442f,0.0371366f,0.25796f},{-0.823071f,0.286223f,0.490542f},{-0.651703f,0.453096f,0.608265f},
+{-0.440343f,0.593015f,0.674115f},{-0.181412f,0.713338f,0.676933f},{0.152749f,0.80595f,0.571937f},
+{0.566841f,0.771152f,0.289856f},{0.85507f,0.507622f,-0.105715f},{0.89627f,0.194243f,-0.398711f},
+{0.82294f,-0.0268582f,-0.567493f},{0.68957f,-0.19749f,-0.696772f},{0.470535f,-0.360343f,-0.80545f},
+{0.266767f,-0.44909f,-0.852733f},{0.309762f,-0.481723f,-0.81975f},{-0.159438f,0.323043f,-0.932857f},
+{-0.170543f,0.555717f,-0.813691f},{-0.0675907f,0.387311f,-0.919468f},{-0.101065f,0.595122f,-0.797255f},
+{0.0921356f,0.49467f,-0.864183f},{-0.0336954f,0.658639f,-0.751704f},{0.229373f,0.644702f,-0.72921f},
+{0.0108064f,0.72703f,-0.686521f},{0.288706f,0.777821f,-0.558249f},{0.0233612f,0.779424f,-0.626062f},
+{0.263651f,0.867508f,-0.421803f},{0.012134f,0.812561f,-0.58275f},{0.179349f,0.921161f,-0.345394f},
+{-0.0175103f,0.832714f,-0.553427f},{0.0584332f,0.945729f,-0.319658f},{-0.0683394f,0.83941f,-0.539184f},
+{-0.0823238f,0.938165f,-0.336259f},{-0.135725f,0.826017f,-0.54706f},{-0.225929f,0.891127f,-0.393507f},
+{-0.204819f,0.79023f,-0.577569f},{-0.350601f,0.801826f,-0.483894f},{-0.261618f,0.736219f,-0.62413f},
+{-0.433427f,0.683162f,-0.587733f},{-0.296097f,0.673776f,-0.677018f},{-0.463621f,0.562727f,-0.684393f},
+{-0.304738f,0.617549f,-0.725099f},{-0.446703f,0.464193f,-0.764841f},{-0.293235f,0.577482f,-0.761924f},
+{-0.394004f,0.394726f,-0.830031f},{-0.267886f,0.553192f,-0.788807f},{-0.313145f,0.353344f,-0.881526f},
+{-0.227697f,0.543901f,-0.807667f},{-0.103488f,-0.0756737f,-0.991748f},{0.0254069f,0.00398732f,-0.999669f},
+{0.349912f,0.130467f,-0.927653f},{0.638155f,0.398665f,-0.658654f},{0.703033f,0.642145f,-0.305605f},
+{0.609007f,0.79022f,-0.0682853f},{0.449166f,0.892346f,0.0443696f},{0.241132f,0.967482f,0.0763763f},
+{-0.0019117f,0.99924f,0.0389275f},{-0.257914f,0.963174f,-0.0759975f},{-0.484125f,0.836707f,-0.256014f},
+{-0.624151f,0.639931f,-0.448246f},{-0.662818f,0.438997f,-0.606592f},{-0.625793f,0.279749f,-0.728096f},
+{-0.534464f,0.160511f,-0.82981f},{-0.397088f,0.0672218f,-0.915315f},{-0.305679f,0.19791f,-0.931339f},
+{-0.308629f,0.196352f,-0.930696f},{-0.00109355f,-0.457257f,-0.889334f},{0.16025f,-0.427096f,-0.889893f},
+{0.589829f,-0.355518f,-0.725057f},{0.94399f,-0.0546977f,-0.325408f},{0.95306f,0.282341f,0.109367f},
+{0.796299f,0.492715f,0.350912f},{0.606732f,0.645652f,0.46369f},{0.372042f,0.777756f,0.506636f},
+{0.0866739f,0.876457f,0.473614f},{-0.257346f,0.909395f,0.326763f},{-0.607805f,0.79297f,0.0421001f},
+{-0.806237f,0.525687f,-0.271357f},{-0.829843f,0.255751f,-0.495936f},{-0.762498f,0.0578159f,-0.644402f},
+{-0.631312f,-0.0985713f,-0.769239f},{-0.42819f,-0.241367f,-0.870859f},{-0.306198f,-0.119536f,-0.944433f},
+{-0.342896f,-0.146124f,-0.927939f},{0.0528946f,-0.553315f,-0.831291f},{0.163834f,-0.590967f,-0.789884f},
+{0.573892f,-0.568851f,-0.589114f},{0.928504f,-0.32689f,-0.176134f},{0.965442f,0.0371366f,0.257959f},
+{0.823071f,0.286223f,0.490542f},{0.651704f,0.453095f,0.608266f},{0.440343f,0.593015f,0.674116f},
+{0.181412f,0.713338f,0.676933f},{-0.152749f,0.80595f,0.571937f},{-0.566841f,0.771152f,0.289855f},
+{-0.85507f,0.507622f,-0.105715f},{-0.89627f,0.194243f,-0.398711f},{-0.82294f,-0.026858f,-0.567493f},
+{-0.68957f,-0.19749f,-0.696772f},{-0.470535f,-0.360343f,-0.80545f},{-0.266767f,-0.44909f,-0.852733f},
+{-0.309761f,-0.481723f,-0.819751f},{-0.11464f,0.854504f,0.506637f},{-0.114874f,0.966279f,0.230455f},
+{-0.210589f,0.921522f,0.326266f},{-0.174897f,0.822321f,0.541478f},{-0.337297f,0.824425f,0.454483f},
+{-0.232515f,0.765838f,0.599525f},{-0.411322f,0.691063f,0.594345f},{-0.270972f,0.689156f,0.67204f},
+{-0.424194f,0.559147f,0.71233f},{-0.276544f,0.616478f,0.73721f},{-0.393218f,0.46414f,0.793696f},
+{-0.258301f,0.57317f,0.777661f},{-0.342514f,0.416759f,0.842019f},{-0.23626f,0.558058f,0.795457f},
+{-0.280672f,0.405896f,0.869754f},{-0.211881f,0.556491f,0.803383f},{-0.200032f,0.422183f,0.884166f},
+{-0.170563f,0.570243f,0.803574f},{-0.0874915f,0.472863f,0.876781f},{-0.107036f,0.611665f,0.783842f},
+{0.0581153f,0.571308f,0.818676f},{-0.036373f,0.679483f,0.732789f},{0.197933f,0.699796f,0.686373f},
+{0.0148238f,0.751729f,0.659306f},{0.273319f,0.812315f,0.51521f},{0.03261f,0.807523f,0.588934f},
+{0.266335f,0.891038f,0.367583f},{0.0218574f,0.843568f,0.536578f},{0.194206f,0.942733f,0.271181f},
+{-0.0102549f,0.863372f,0.504464f},{0.078806f,0.970194f,0.229157f},{-0.0581579f,0.867363f,0.494266f},
+{-0.0914466f,0.978258f,-0.186143f},{-0.244068f,0.969568f,-0.0192072f},{-0.48466f,0.847182f,0.217684f},
+{-0.612357f,0.635581f,0.470165f},{-0.615785f,0.428517f,0.661198f},{-0.550439f,0.291383f,0.782377f},
+{-0.463909f,0.226398f,0.856465f},{-0.362763f,0.202436f,0.909628f},{-0.225975f,0.194219f,0.954575f},
+{-0.0183055f,0.216191f,0.976179f},{0.286186f,0.330996f,0.899188f},{0.562947f,0.537093f,0.628189f},
+{0.648012f,0.704916f,0.288398f},{0.587764f,0.807722f,0.0460294f},{0.450024f,0.887599f,-0.0982117f},
+{0.255516f,0.952228f,-0.167251f},{0.0906943f,0.995508f,0.0271607f},{0.0933649f,0.995308f,0.0253784f},
+{-0.0355931f,0.831294f,-0.554693f},{-0.254659f,0.881814f,-0.396929f},{-0.632414f,0.771627f,-0.0681498f},
+{-0.809248f,0.494993f,0.316386f},{-0.781041f,0.242949f,0.575283f},{-0.682456f,0.101224f,0.723883f},
+{-0.568426f,0.0370607f,0.821899f},{-0.423234f,-0.0101017f,0.905964f},{-0.206764f,-0.0865563f,0.974555f},
+{0.118895f,-0.168938f,0.978429f},{0.568569f,-0.131554f,0.812049f},{0.916179f,0.11474f,0.383994f},
+{0.927836f,0.368796f,-0.0557681f},{0.794685f,0.525236f,-0.304306f},{0.618087f,0.648299f,-0.444608f},
+{0.385917f,0.758658f,-0.524887f},{0.210919f,0.897809f,-0.38659f},{0.203377f,0.902055f,-0.380702f},
+{-0.00079517f,0.742438f,-0.669914f},{-0.157844f,0.77598f,-0.610689f},{-0.602335f,0.730097f,-0.322724f},
+{-0.880543f,0.453024f,0.13933f},{-0.864745f,0.167017f,0.473626f},{-0.759086f,0.014962f,0.650818f},
+{-0.640551f,-0.0522314f,0.766137f},{-0.484416f,-0.104116f,0.86862f},{-0.23751f,-0.203911f,0.949742f},
+{0.123602f,-0.346612f,0.929829f},{0.570647f,-0.405671f,0.713998f},{0.936051f,-0.22429f,0.271114f},
+{0.980428f,0.0927185f,-0.173679f},{0.852254f,0.314963f,-0.417685f},{0.688798f,0.464589f,-0.55652f},
+{0.47305f,0.592612f,-0.651946f},{0.30497f,0.65594f,-0.690461f},{0.282411f,0.679895f,-0.676747f},
+{0.114874f,0.966279f,0.230455f},{0.11464f,0.854504f,0.506637f},{0.210589f,0.921522f,0.326266f},
+{0.174897f,0.822321f,0.541478f},{0.337297f,0.824425f,0.454483f},{0.232515f,0.765837f,0.599525f},
+{0.411322f,0.691063f,0.594346f},{0.270972f,0.689156f,0.67204f},{0.424194f,0.559147f,0.71233f},
+{0.276544f,0.616478f,0.73721f},{0.393218f,0.46414f,0.793696f},{0.258301f,0.57317f,0.777661f},
+{0.342514f,0.416759f,0.842019f},{0.236261f,0.558058f,0.795457f},{0.280672f,0.405896f,0.869754f},
+{0.211882f,0.556491f,0.803383f},{0.200032f,0.422183f,0.884166f},{0.170563f,0.570243f,0.803574f},
+{0.0874913f,0.472863f,0.876781f},{0.107037f,0.611665f,0.783842f},{-0.0581153f,0.571308f,0.818676f},
+{0.036373f,0.679483f,0.732789f},{-0.197933f,0.699796f,0.686373f},{-0.0148238f,0.751729f,0.659306f},
+{-0.273319f,0.812315f,0.515211f},{-0.03261f,0.807523f,0.588934f},{-0.266335f,0.891038f,0.367583f},
+{-0.0218573f,0.843568f,0.536577f},{-0.194206f,0.942733f,0.271181f},{0.0102549f,0.863372f,0.504464f},
+{-0.078806f,0.970194f,0.229156f},{0.058158f,0.867363f,0.494266f},{0.0914466f,0.978258f,-0.186143f},
+{0.244068f,0.969568f,-0.0192073f},{0.48466f,0.847182f,0.217684f},{0.612358f,0.635581f,0.470165f},
+{0.615785f,0.428517f,0.661198f},{0.550439f,0.291383f,0.782377f},{0.463909f,0.226398f,0.856465f},
+{0.362763f,0.202436f,0.909628f},{0.225975f,0.19422f,0.954575f},{0.0183055f,0.216191f,0.976179f},
+{-0.286186f,0.330996f,0.899188f},{-0.562947f,0.537093f,0.628189f},{-0.648012f,0.704916f,0.288399f},
+{-0.587764f,0.807722f,0.0460294f},{-0.450024f,0.887599f,-0.0982118f},{-0.255516f,0.952228f,-0.167251f},
+{-0.0906943f,0.995508f,0.0271607f},{-0.093365f,0.995308f,0.0253784f},{0.0355932f,0.831294f,-0.554693f},
+{0.254659f,0.881814f,-0.396929f},{0.632414f,0.771627f,-0.0681498f},{0.809248f,0.494993f,0.316386f},
+{0.781041f,0.242949f,0.575283f},{0.682456f,0.101224f,0.723883f},{0.568426f,0.0370607f,0.821899f},
+{0.423234f,-0.0101017f,0.905964f},{0.206764f,-0.0865562f,0.974555f},{-0.118895f,-0.168938f,0.978429f},
+{-0.568569f,-0.131554f,0.812049f},{-0.916179f,0.11474f,0.383994f},{-0.927836f,0.368796f,-0.0557682f},
+{-0.794686f,0.525236f,-0.304306f},{-0.618087f,0.648299f,-0.444608f},{-0.385917f,0.758658f,-0.524887f},
+{-0.210919f,0.897809f,-0.38659f},{-0.203377f,0.902055f,-0.380702f},{0.000795401f,0.742438f,-0.669914f},
+{0.157843f,0.77598f,-0.610689f},{0.602334f,0.730098f,-0.322724f},{0.880543f,0.453024f,0.13933f},
+{0.864745f,0.167017f,0.473626f},{0.759086f,0.014962f,0.650819f},{0.640551f,-0.0522313f,0.766137f},
+{0.484416f,-0.104115f,0.86862f},{0.23751f,-0.203911f,0.949742f},{-0.123602f,-0.346612f,0.92983f},
+{-0.570647f,-0.405671f,0.713998f},{-0.936051f,-0.22429f,0.271113f},{-0.980428f,0.0927184f,-0.173679f},
+{-0.852254f,0.314963f,-0.417685f},{-0.688798f,0.46459f,-0.55652f},{-0.47305f,0.592612f,-0.651947f},
+{-0.30497f,0.65594f,-0.690461f},{-0.282411f,0.679895f,-0.676747f}
+},
+
+//lid 8
+{
+{0.183219f,0.515603f,-0.837009f},{0.168233f,0.276577f,-0.946151f},{0.0789236f,0.33771f,-0.937936f},
+{0.115197f,0.55477f,-0.82399f},{-0.0788423f,0.444272f,-0.892416f},{0.0493115f,0.619585f,-0.783379f},
+{-0.215796f,0.602783f,-0.76817f},{0.00509343f,0.691651f,-0.722214f},{-0.275265f,0.749386f,-0.602205f},
+{-0.00771255f,0.748436f,-0.663162f},{-0.249493f,0.848683f,-0.466358f},{0.00346534f,0.784383f,-0.620267f},
+{-0.165042f,0.90581f,-0.390218f},{0.0322572f,0.805564f,-0.591631f},{-0.0456364f,0.929892f,-0.364991f},
+{0.080755f,0.81256f,-0.577256f},{0.0928438f,0.920014f,-0.380728f},{0.146091f,0.799024f,-0.583282f},
+{0.23474f,0.86947f,-0.434649f},{0.215159f,0.761573f,-0.611321f},{0.358561f,0.775663f,-0.519404f},
+{0.272868f,0.704116f,-0.655564f},{0.440662f,0.653013f,-0.615948f},{0.307414f,0.638509f,-0.705551f},
+{0.470318f,0.530909f,-0.704937f},{0.315767f,0.581186f,-0.75001f},{0.453707f,0.431995f,-0.779443f},
+{0.304783f,0.540878f,-0.783938f},{0.401809f,0.360715f,-0.841685f},{0.280105f,0.515498f,-0.809816f},
+{0.321717f,0.314999f,-0.892902f},{0.23998f,0.50473f,-0.829251f},{0.10177f,-0.124175f,-0.987028f},
+{-0.0213474f,-0.0510002f,-0.99847f},{-0.339633f,0.0669536f,-0.938172f},{-0.632029f,0.346039f,-0.693395f},
+{-0.701873f,0.620211f,-0.350303f},{-0.603308f,0.789452f,-0.113069f},{-0.43881f,0.898572f,-0.00368722f},
+{-0.229713f,0.972972f,0.023611f},{0.0125592f,0.999809f,-0.0149582f},{0.266795f,0.955612f,-0.125002f},
+{0.490219f,0.820159f,-0.294998f},{0.62726f,0.617606f,-0.474456f},{0.664848f,0.416024f,-0.620404f},
+{0.629087f,0.257234f,-0.73354f},{0.538512f,0.134383f,-0.831833f},{0.399787f,0.0328209f,-0.916021f},
+{0.30886f,0.159902f,-0.93757f},{0.317338f,0.155631f,-0.935455f},{-0.00782778f,-0.499674f,-0.866178f},
+{-0.163187f,-0.471999f,-0.866364f},{-0.57959f,-0.404497f,-0.70743f},{-0.937032f,-0.10026f,-0.334542f},
+{-0.960051f,0.266588f,0.0850474f},{-0.800902f,0.504502f,0.322543f},{-0.605592f,0.671753f,0.426623f},
+{-0.365098f,0.809509f,0.459781f},{-0.0727785f,0.904433f,0.420363f},{0.27279f,0.922361f,0.27356f},
+{0.614661f,0.788789f,0.00173532f},{0.8065f,0.514327f,-0.291591f},{0.830963f,0.243768f,-0.500077f},
+{0.767385f,0.0433333f,-0.639721f},{0.636351f,-0.121862f,-0.761714f},{0.42732f,-0.276056f,-0.860925f},
+{0.301003f,-0.155958f,-0.940784f},{0.343504f,-0.185537f,-0.920642f},{-0.0626903f,-0.592958f,-0.802789f},
+{-0.170517f,-0.628368f,-0.758997f},{-0.568461f,-0.601158f,-0.56166f},{-0.918823f,-0.356076f,-0.170216f},
+{-0.968663f,0.0240955f,0.247208f},{-0.829274f,0.296802f,0.473512f},{-0.65542f,0.48147f,0.581903f},
+{-0.438276f,0.633814f,0.637334f},{-0.16793f,0.756496f,0.632071f},{0.173844f,0.835371f,0.521472f},
+{0.578754f,0.777582f,0.245785f},{0.854862f,0.503223f,-0.126398f},{0.896856f,0.188576f,-0.40011f},
+{0.828344f,-0.0368846f,-0.559005f},{0.696091f,-0.218808f,-0.683798f},{0.470358f,-0.395467f,-0.788904f},
+{0.259101f,-0.490013f,-0.832318f},{0.302875f,-0.521613f,-0.797613f},{-0.168233f,0.276577f,-0.946152f},
+{-0.183218f,0.515603f,-0.837009f},{-0.0789234f,0.33771f,-0.937936f},{-0.115196f,0.55477f,-0.82399f},
+{0.0788423f,0.444272f,-0.892416f},{-0.0493115f,0.619585f,-0.783379f},{0.215796f,0.602783f,-0.76817f},
+{-0.00509343f,0.691651f,-0.722214f},{0.275265f,0.749386f,-0.602205f},{0.00771252f,0.748436f,-0.663162f},
+{0.249494f,0.848683f,-0.466358f},{-0.00346547f,0.784383f,-0.620267f},{0.165042f,0.90581f,-0.390218f},
+{-0.032257f,0.805564f,-0.591631f},{0.0456365f,0.929892f,-0.364991f},{-0.080755f,0.81256f,-0.577256f},
+{-0.0928437f,0.920014f,-0.380728f},{-0.146091f,0.799024f,-0.583282f},{-0.23474f,0.86947f,-0.434649f},
+{-0.215159f,0.761573f,-0.611321f},{-0.358561f,0.775663f,-0.519404f},{-0.272868f,0.704116f,-0.655563f},
+{-0.440662f,0.653013f,-0.615948f},{-0.307414f,0.638509f,-0.705551f},{-0.470318f,0.530909f,-0.704937f},
+{-0.315767f,0.581186f,-0.75001f},{-0.453707f,0.431995f,-0.779442f},{-0.304784f,0.540878f,-0.783938f},
+{-0.401809f,0.360715f,-0.841685f},{-0.280105f,0.515498f,-0.809816f},{-0.321718f,0.314999f,-0.892902f},
+{-0.23998f,0.50473f,-0.829251f},{-0.10177f,-0.124175f,-0.987028f},{0.0213474f,-0.0510003f,-0.99847f},
+{0.339633f,0.0669536f,-0.938172f},{0.632029f,0.346039f,-0.693395f},{0.701873f,0.620211f,-0.350303f},
+{0.603308f,0.789452f,-0.11307f},{0.43881f,0.898572f,-0.0036873f},{0.229713f,0.972972f,0.023611f},
+{-0.0125591f,0.999809f,-0.0149581f},{-0.266795f,0.955612f,-0.125002f},{-0.490219f,0.820159f,-0.294999f},
+{-0.62726f,0.617606f,-0.474456f},{-0.664848f,0.416024f,-0.620404f},{-0.629087f,0.257234f,-0.73354f},
+{-0.538512f,0.134383f,-0.831833f},{-0.399786f,0.0328209f,-0.916021f},{-0.30886f,0.159902f,-0.93757f},
+{-0.317339f,0.155631f,-0.935454f},{0.00782779f,-0.499674f,-0.866178f},{0.163186f,-0.471999f,-0.866364f},
+{0.57959f,-0.404497f,-0.707431f},{0.937032f,-0.10026f,-0.334542f},{0.960051f,0.266587f,0.0850475f},
+{0.800902f,0.504502f,0.322543f},{0.605592f,0.671753f,0.426623f},{0.365098f,0.809509f,0.459781f},
+{0.0727785f,0.904433f,0.420363f},{-0.27279f,0.922361f,0.27356f},{-0.614661f,0.788789f,0.00173559f},
+{-0.8065f,0.514327f,-0.291591f},{-0.830963f,0.243767f,-0.500077f},{-0.767385f,0.0433335f,-0.639721f},
+{-0.636351f,-0.121862f,-0.761713f},{-0.42732f,-0.276056f,-0.860925f},{-0.301003f,-0.155958f,-0.940784f},
+{-0.343504f,-0.185537f,-0.920642f},{0.0626903f,-0.592958f,-0.802789f},{0.170517f,-0.628368f,-0.758997f},
+{0.568461f,-0.601158f,-0.56166f},{0.918823f,-0.356076f,-0.170216f},{0.968663f,0.0240956f,0.247208f},
+{0.829274f,0.296802f,0.473512f},{0.65542f,0.48147f,0.581904f},{0.438276f,0.633814f,0.637334f},
+{0.16793f,0.756496f,0.632071f},{-0.173844f,0.835371f,0.521472f},{-0.578754f,0.777582f,0.245785f},
+{-0.854863f,0.503223f,-0.126398f},{-0.896856f,0.188576f,-0.40011f},{-0.828343f,-0.0368841f,-0.559005f},
+{-0.696091f,-0.218808f,-0.683798f},{-0.470358f,-0.395467f,-0.788904f},{-0.259101f,-0.490013f,-0.832318f},
+{-0.302875f,-0.521613f,-0.797613f},{-0.136628f,0.763066f,0.631715f},{-0.139911f,0.91351f,0.382f},
+{-0.230294f,0.853362f,0.467694f},{-0.193796f,0.727236f,0.658461f},{-0.346303f,0.741592f,0.574556f},
+{-0.248184f,0.665563f,0.703868f},{-0.410724f,0.601945f,0.684812f},{-0.282328f,0.587202f,0.758607f},
+{-0.420812f,0.474512f,0.773147f},{-0.286105f,0.519799f,0.804955f},{-0.394192f,0.388462f,0.832893f},
+{-0.271441f,0.48297f,0.832502f},{-0.348961f,0.345726f,0.871034f},{-0.253473f,0.469114f,0.845981f},
+{-0.288397f,0.331318f,0.898363f},{-0.227904f,0.465937f,0.854963f},{-0.205609f,0.337301f,0.918669f},
+{-0.183354f,0.479034f,0.858434f},{-0.0927383f,0.374538f,0.922562f},{-0.122056f,0.518721f,0.846186f},
+{0.0476515f,0.463623f,0.88475f},{-0.0593579f,0.58286f,0.810401f},{0.180078f,0.598609f,0.780538f},
+{-0.0151815f,0.654338f,0.75605f},{0.249804f,0.732175f,0.633654f},{-0.000536045f,0.713225f,0.700935f},
+{0.238979f,0.831312f,0.501806f},{-0.0116876f,0.752305f,0.658711f},{0.164828f,0.894338f,0.415923f},
+{-0.0414348f,0.773339f,0.632638f},{0.0495883f,0.923567f,0.380217f},{-0.0846693f,0.777271f,0.623443f},
+{-0.119615f,0.992173f,-0.0358517f},{-0.26578f,0.955061f,0.131223f},{-0.488134f,0.802358f,0.343433f},
+{-0.600233f,0.576302f,0.554613f},{-0.602773f,0.370741f,0.706552f},{-0.548009f,0.239525f,0.801444f},
+{-0.470781f,0.173944f,0.864933f},{-0.366503f,0.136982f,0.920278f},{-0.215389f,0.104768f,0.970892f},
+{0.00346038f,0.0981433f,0.995166f},{0.301978f,0.191861f,0.933809f},{0.572361f,0.418812f,0.704982f},
+{0.653782f,0.645133f,0.39544f},{0.583085f,0.795283f,0.165941f},{0.434465f,0.90003f,0.0344497f},
+{0.232282f,0.972393f,-0.0223025f},{0.0629826f,0.980353f,0.186928f},{0.0646f,0.980455f,0.185836f},
+{-0.0658798f,0.902312f,-0.426021f},{-0.275788f,0.926084f,-0.257505f},{-0.625976f,0.778258f,0.0496934f},
+{-0.790611f,0.479302f,0.381055f},{-0.772137f,0.214951f,0.597997f},{-0.688996f,0.0606832f,0.72222f},
+{-0.585024f,-0.0246281f,0.810642f},{-0.429108f,-0.106703f,0.896929f},{-0.181204f,-0.217596f,0.959071f},
+{0.160618f,-0.312677f,0.936181f},{0.582391f,-0.272557f,0.765855f},{0.918424f,-0.000439342f,0.395597f},
+{0.945892f,0.324477f,-0.00184092f},{0.807139f,0.541361f,-0.235489f},{0.61697f,0.701103f,-0.357495f},
+{0.370398f,0.829668f,-0.417679f},{0.185885f,0.94934f,-0.253379f},{0.183324f,0.950425f,-0.251168f},
+{-0.0297826f,0.831883f,-0.554151f},{-0.180719f,0.855135f,-0.485886f},{-0.598032f,0.776013f,-0.200401f},
+{-0.857929f,0.470815f,0.20565f},{-0.856175f,0.160369f,0.491168f},{-0.765669f,-0.0168231f,0.643014f},
+{-0.656838f,-0.115393f,0.74515f},{-0.492626f,-0.214217f,0.843463f},{-0.212263f,-0.358894f,0.908922f},
+{0.169484f,-0.501572f,0.848352f},{0.583877f,-0.521011f,0.622604f},{0.92203f,-0.305082f,0.238299f},
+{0.986224f,0.0586274f,-0.154675f},{0.863745f,0.332515f,-0.378654f},{0.693047f,0.521436f,-0.497785f},
+{0.463554f,0.677117f,-0.571516f},{0.283588f,0.75075f,-0.596617f},{0.2633f,0.769891f,-0.581327f},
+{0.13991f,0.91351f,0.382f},{0.136627f,0.763066f,0.631715f},{0.230294f,0.853362f,0.467694f},
+{0.193795f,0.727236f,0.658461f},{0.346303f,0.741592f,0.574556f},{0.248184f,0.665563f,0.703868f},
+{0.410724f,0.601945f,0.684812f},{0.282327f,0.587202f,0.758607f},{0.420812f,0.474512f,0.773147f},
+{0.286105f,0.519799f,0.804955f},{0.394192f,0.388462f,0.832892f},{0.271441f,0.482971f,0.832501f},
+{0.348961f,0.345727f,0.871034f},{0.253473f,0.469115f,0.845981f},{0.288397f,0.331318f,0.898363f},
+{0.227904f,0.465937f,0.854963f},{0.205609f,0.337301f,0.918669f},{0.183354f,0.479033f,0.858434f},
+{0.0927382f,0.374539f,0.922562f},{0.122055f,0.518722f,0.846186f},{-0.0476519f,0.463624f,0.88475f},
+{0.0593579f,0.58286f,0.810401f},{-0.180078f,0.598609f,0.780538f},{0.0151815f,0.654338f,0.75605f},
+{-0.249804f,0.732175f,0.633655f},{0.000536048f,0.713225f,0.700935f},{-0.238979f,0.831312f,0.501806f},
+{0.0116876f,0.752305f,0.658711f},{-0.164827f,0.894338f,0.415923f},{0.0414349f,0.773338f,0.632638f},
+{-0.0495883f,0.923567f,0.380217f},{0.0846698f,0.777271f,0.623443f},{0.119615f,0.992173f,-0.035852f},
+{0.26578f,0.955061f,0.131222f},{0.488134f,0.802358f,0.343433f},{0.600233f,0.576303f,0.554613f},
+{0.602773f,0.370741f,0.706552f},{0.548009f,0.239525f,0.801444f},{0.470781f,0.173944f,0.864933f},
+{0.366503f,0.136982f,0.920278f},{0.215389f,0.104768f,0.970892f},{-0.00346019f,0.0981433f,0.995166f},
+{-0.301978f,0.191862f,0.933809f},{-0.572361f,0.418812f,0.704982f},{-0.653782f,0.645133f,0.39544f},
+{-0.583085f,0.795283f,0.165942f},{-0.434465f,0.90003f,0.0344495f},{-0.232282f,0.972393f,-0.0223026f},
+{-0.0629828f,0.980353f,0.186927f},{-0.0646003f,0.980455f,0.185836f},{0.0658797f,0.902312f,-0.426021f},
+{0.275788f,0.926084f,-0.257506f},{0.625976f,0.778258f,0.0496934f},{0.790612f,0.479302f,0.381054f},
+{0.772137f,0.214951f,0.597996f},{0.688996f,0.0606832f,0.72222f},{0.585024f,-0.0246278f,0.810642f},
+{0.429108f,-0.106702f,0.896929f},{0.181204f,-0.217596f,0.959071f},{-0.160618f,-0.312677f,0.936181f},
+{-0.582391f,-0.272557f,0.765855f},{-0.918424f,-0.000439169f,0.395597f},{-0.945892f,0.324477f,-0.00184075f},
+{-0.807139f,0.541361f,-0.235489f},{-0.61697f,0.701103f,-0.357495f},{-0.370398f,0.829668f,-0.41768f},
+{-0.185885f,0.94934f,-0.253379f},{-0.183324f,0.950425f,-0.251168f},{0.0297826f,0.831883f,-0.554151f},
+{0.180719f,0.855135f,-0.485886f},{0.598032f,0.776013f,-0.200402f},{0.857929f,0.470815f,0.20565f},
+{0.856175f,0.16037f,0.491167f},{0.765669f,-0.0168233f,0.643014f},{0.656839f,-0.115393f,0.745149f},
+{0.492626f,-0.214217f,0.843463f},{0.212263f,-0.358894f,0.908922f},{-0.169484f,-0.501571f,0.848352f},
+{-0.583876f,-0.521011f,0.622604f},{-0.92203f,-0.305082f,0.238299f},{-0.986224f,0.0586269f,-0.154675f},
+{-0.863745f,0.332514f,-0.378654f},{-0.693047f,0.521436f,-0.497785f},{-0.463554f,0.677117f,-0.571516f},
+{-0.283588f,0.75075f,-0.596617f},{-0.2633f,0.769891f,-0.581327f}
+},
+
+//lid 6
+{
+{0.18588f,0.467699f,-0.864122f},{0.164569f,0.222549f,-0.960931f},{0.0776709f,0.28004f,-0.956841f},
+{0.119855f,0.505696f,-0.854345f},{-0.077628f,0.383854f,-0.920125f},{0.0565274f,0.570373f,-0.819439f},
+{-0.212757f,0.548379f,-0.808712f},{0.0137009f,0.645146f,-0.763937f},{-0.270868f,0.708583f,-0.651568f},
+{0.00144722f,0.706519f,-0.707693f},{-0.242624f,0.819741f,-0.518804f},{0.0133808f,0.74627f,-0.665509f},
+{-0.155487f,0.88262f,-0.443629f},{0.0427661f,0.769529f,-0.637179f},{-0.0347823f,0.907459f,-0.418699f},
+{0.0908849f,0.777336f,-0.622486f},{0.103208f,0.895443f,-0.433047f},{0.155223f,0.763664f,-0.626677f},
+{0.243236f,0.841282f,-0.482785f},{0.223441f,0.724979f,-0.651521f},{0.36442f,0.743646f,-0.560525f},
+{0.280273f,0.665542f,-0.691738f},{0.443866f,0.618457f,-0.648454f},{0.313675f,0.598365f,-0.73727f},
+{0.471772f,0.49537f,-0.729411f},{0.321239f,0.540099f,-0.777881f},{0.454403f,0.395144f,-0.79836f},
+{0.309857f,0.498331f,-0.809725f},{0.401749f,0.320453f,-0.85785f},{0.284175f,0.47071f,-0.83527f},
+{0.320433f,0.269367f,-0.908165f},{0.242663f,0.45807f,-0.855153f},{0.0869607f,-0.178282f,-0.980129f},
+{-0.0317048f,-0.109602f,-0.99347f},{-0.342502f,0.000655748f,-0.939517f},{-0.633753f,0.283601f,-0.719671f},
+{-0.708418f,0.584765f,-0.395213f},{-0.606138f,0.778497f,-0.162908f},{-0.434607f,0.898751f,-0.0579898f},
+{-0.220487f,0.974733f,-0.0357786f},{0.0234381f,0.996835f,-0.0759604f},{0.27529f,0.944113f,-0.181291f},
+{0.493509f,0.800437f,-0.340221f},{0.626126f,0.593557f,-0.505625f},{0.662475f,0.390644f,-0.639159f},
+{0.627328f,0.22911f,-0.744291f},{0.535737f,0.0995679f,-0.838494f},{0.392946f,-0.0108421f,-0.919498f},
+{0.300356f,0.11447f,-0.946933f},{0.315126f,0.107501f,-0.942942f},{-0.0254372f,-0.545227f,-0.837903f},
+{-0.178221f,-0.515778f,-0.83798f},{-0.581813f,-0.444985f,-0.680795f},{-0.932889f,-0.139635f,-0.331996f},
+{-0.967129f,0.24585f,0.0649586f},{-0.809593f,0.507989f,0.294119f},{-0.609129f,0.691194f,0.38886f},
+{-0.361291f,0.836961f,0.411052f},{-0.0620213f,0.929727f,0.362989f},{0.282972f,0.934857f,0.214405f},
+{0.615301f,0.786983f,-0.0454198f},{0.801931f,0.50525f,-0.318792f},{0.828411f,0.229084f,-0.511132f},
+{0.767789f,0.0192651f,-0.640413f},{0.635529f,-0.158819f,-0.755566f},{0.419196f,-0.323113f,-0.848453f},
+{0.287092f,-0.204083f,-0.93591f},{0.332725f,-0.234094f,-0.913506f},{-0.0777156f,-0.636227f,-0.767578f},
+{-0.185381f,-0.665275f,-0.723217f},{-0.574317f,-0.624742f,-0.529015f},{-0.915037f,-0.372036f,-0.155874f},
+{-0.970312f,0.0155884f,0.241355f},{-0.835734f,0.302763f,0.458131f},{-0.661248f,0.502507f,0.55699f},
+{-0.4389f,0.667767f,0.60121f},{-0.159616f,0.794844f,0.585445f},{0.18591f,0.864414f,0.467146f},
+{0.581437f,0.789583f,0.196187f},{0.849235f,0.504775f,-0.154925f},{0.893859f,0.18134f,-0.410039f},
+{0.828751f,-0.0575603f,-0.556649f},{0.696171f,-0.255841f,-0.67074f},{0.464342f,-0.444749f,-0.765888f},
+{0.24798f,-0.5422f,-0.802823f},{0.288333f,-0.569201f,-0.769983f},{-0.164569f,0.222549f,-0.960931f},
+{-0.18588f,0.467699f,-0.864122f},{-0.0776708f,0.28004f,-0.956841f},{-0.119855f,0.505696f,-0.854346f},
+{0.0776279f,0.383854f,-0.920125f},{-0.0565274f,0.570373f,-0.819439f},{0.212757f,0.548378f,-0.808713f},
+{-0.0137025f,0.645143f,-0.763939f},{0.270868f,0.708582f,-0.651568f},{-0.00144792f,0.706521f,-0.707691f},
+{0.242623f,0.819742f,-0.518803f},{-0.0133807f,0.74627f,-0.665509f},{0.155487f,0.88262f,-0.443629f},
+{-0.042766f,0.769529f,-0.637179f},{0.0347824f,0.907459f,-0.418699f},{-0.0908848f,0.777336f,-0.622486f},
+{-0.103208f,0.895443f,-0.433047f},{-0.155223f,0.763664f,-0.626676f},{-0.243236f,0.841282f,-0.482785f},
+{-0.223441f,0.724979f,-0.651521f},{-0.36442f,0.743646f,-0.560525f},{-0.280274f,0.665541f,-0.691738f},
+{-0.443867f,0.618457f,-0.648455f},{-0.313675f,0.598365f,-0.73727f},{-0.471772f,0.49537f,-0.729411f},
+{-0.32124f,0.540099f,-0.777881f},{-0.454403f,0.395144f,-0.79836f},{-0.309857f,0.49833f,-0.809726f},
+{-0.401749f,0.320453f,-0.85785f},{-0.284176f,0.47071f,-0.83527f},{-0.320433f,0.269367f,-0.908165f},
+{-0.242663f,0.45807f,-0.855153f},{-0.0869606f,-0.178282f,-0.980129f},{0.031705f,-0.109602f,-0.99347f},
+{0.342502f,0.000655692f,-0.939517f},{0.633753f,0.283601f,-0.719671f},{0.708419f,0.584765f,-0.395213f},
+{0.606138f,0.778498f,-0.162908f},{0.434606f,0.898752f,-0.0579898f},{0.220487f,0.974733f,-0.0357785f},
+{-0.0234378f,0.996835f,-0.0759606f},{-0.275291f,0.944112f,-0.181292f},{-0.493509f,0.800437f,-0.340221f},
+{-0.626126f,0.593557f,-0.505625f},{-0.662475f,0.390645f,-0.639158f},{-0.627328f,0.22911f,-0.744291f},
+{-0.535737f,0.099568f,-0.838494f},{-0.392946f,-0.0108418f,-0.919498f},{-0.300357f,0.11447f,-0.946933f},
+{-0.315126f,0.107502f,-0.942942f},{0.0254373f,-0.545227f,-0.837903f},{0.178221f,-0.515778f,-0.83798f},
+{0.581813f,-0.444985f,-0.680795f},{0.932888f,-0.139635f,-0.331996f},{0.967129f,0.24585f,0.0649582f},
+{0.809593f,0.507989f,0.294119f},{0.609129f,0.691194f,0.38886f},{0.361291f,0.836962f,0.411052f},
+{0.0620221f,0.929727f,0.36299f},{-0.282972f,0.934857f,0.214405f},{-0.615301f,0.786982f,-0.0454205f},
+{-0.801931f,0.50525f,-0.318792f},{-0.828411f,0.229084f,-0.511132f},{-0.767789f,0.0192654f,-0.640413f},
+{-0.635529f,-0.158819f,-0.755566f},{-0.419196f,-0.323113f,-0.848453f},{-0.287092f,-0.204083f,-0.935911f},
+{-0.332725f,-0.234094f,-0.913506f},{0.0777156f,-0.636227f,-0.767578f},{0.185381f,-0.665275f,-0.723217f},
+{0.574317f,-0.624742f,-0.529015f},{0.915037f,-0.372037f,-0.155874f},{0.970312f,0.0155882f,0.241355f},
+{0.835734f,0.302764f,0.45813f},{0.661248f,0.502507f,0.55699f},{0.4389f,0.667767f,0.60121f},
+{0.159616f,0.794844f,0.585445f},{-0.185909f,0.864414f,0.467147f},{-0.581437f,0.789583f,0.196187f},
+{-0.849235f,0.504775f,-0.154925f},{-0.893859f,0.18134f,-0.410039f},{-0.828751f,-0.0575601f,-0.556649f},
+{-0.696171f,-0.255841f,-0.67074f},{-0.464342f,-0.44475f,-0.765888f},{-0.24798f,-0.5422f,-0.802823f},
+{-0.288333f,-0.569202f,-0.769983f},{-0.164231f,0.647208f,0.744413f},{-0.168401f,0.825722f,0.538354f},
+{-0.252556f,0.752327f,0.608457f},{-0.218923f,0.609165f,0.762228f},{-0.356681f,0.632058f,0.687955f},
+{-0.270207f,0.544858f,0.7938f},{-0.412454f,0.495243f,0.764602f},{-0.299424f,0.470627f,0.829973f},
+{-0.422015f,0.380859f,0.822709f},{-0.301851f,0.415248f,0.858169f},{-0.401892f,0.308829f,0.862037f},
+{-0.292041f,0.388966f,0.873738f},{-0.363526f,0.271835f,0.891041f},{-0.278694f,0.377274f,0.883173f},
+{-0.304694f,0.252246f,0.918441f},{-0.251401f,0.371711f,0.89366f},{-0.21953f,0.245247f,0.944278f},
+{-0.203426f,0.38298f,0.901079f},{-0.106344f,0.266344f,0.957994f},{-0.14537f,0.419089f,0.896232f},
+{0.027634f,0.342629f,0.939064f},{-0.0921043f,0.475795f,0.87472f},{0.150223f,0.478986f,0.864873f},
+{-0.0560432f,0.540989f,0.83916f},{0.212316f,0.629316f,0.747585f},{-0.0446826f,0.598166f,0.800126f},
+{0.197281f,0.745623f,0.636495f},{-0.0554218f,0.637032f,0.768843f},{0.122751f,0.816344f,0.56437f},
+{-0.0810959f,0.657415f,0.749152f},{0.0109646f,0.843844f,0.536477f},{-0.11762f,0.661328f,0.740818f},
+{-0.150429f,0.979508f,0.133919f},{-0.290601f,0.909681f,0.2967f},{-0.492893f,0.728683f,0.475477f},
+{-0.588316f,0.49644f,0.638304f},{-0.591448f,0.302121f,0.747604f},{-0.550134f,0.182488f,0.814893f},
+{-0.484732f,0.115851f,0.866957f},{-0.378527f,0.0607272f,0.923596f},{-0.212839f,-0.000689027f,0.977087f},
+{0.015943f,-0.0365482f,0.999205f},{0.305805f,0.0359447f,0.951415f},{0.57072f,0.278041f,0.77264f},
+{0.651417f,0.564719f,0.506703f},{0.56895f,0.766234f,0.298632f},{0.409059f,0.893493f,0.185313f},
+{0.201877f,0.968758f,0.144064f},{0.0304928f,0.931217f,0.363189f},{0.0245996f,0.929896f,0.366999f},
+{-0.10373f,0.955245f,-0.277031f},{-0.304298f,0.947159f,-0.101449f},{-0.625893f,0.75942f,0.177593f},
+{-0.773097f,0.445834f,0.451168f},{-0.7627f,0.179062f,0.62147f},{-0.697411f,0.0163115f,0.716486f},
+{-0.606449f,-0.0938258f,0.789567f},{-0.441344f,-0.218556f,0.870316f},{-0.163703f,-0.363292f,0.917181f},
+{0.189081f,-0.461406f,0.866806f},{0.58293f,-0.414287f,0.69897f},{0.912069f,-0.125103f,0.390487f},
+{0.962139f,0.268252f,0.0482682f},{0.817556f,0.55344f,-0.159083f},{0.610798f,0.750085f,-0.25357f},
+{0.349988f,0.891328f,-0.288173f},{0.158433f,0.982699f,-0.0959295f},{0.160262f,0.982234f,-0.0976385f},
+{-0.0706087f,0.906588f,-0.416067f},{-0.213969f,0.914498f,-0.343382f},{-0.603053f,0.79487f,-0.0671517f},
+{-0.837519f,0.469329f,0.279806f},{-0.845853f,0.147687f,0.512563f},{-0.772128f,-0.0502244f,0.633479f},
+{-0.675299f,-0.184114f,0.714194f},{-0.504383f,-0.337547f,0.79477f},{-0.192974f,-0.522644f,0.830424f},
+{0.200919f,-0.646592f,0.735901f},{0.584482f,-0.62365f,0.519077f},{0.903386f,-0.383047f,0.19279f},
+{0.989227f,0.0196845f,-0.145061f},{0.873732f,0.349006f,-0.338803f},{0.693124f,0.580565f,-0.427228f},
+{0.447705f,0.760557f,-0.470226f},{0.253468f,0.841137f,-0.477748f},{0.241386f,0.850733f,-0.46689f},
+{0.168401f,0.825722f,0.538354f},{0.164232f,0.647208f,0.744413f},{0.252556f,0.752327f,0.608457f},
+{0.218923f,0.609165f,0.762227f},{0.35668f,0.632058f,0.687954f},{0.270207f,0.544859f,0.793799f},
+{0.412454f,0.495243f,0.764602f},{0.299424f,0.470627f,0.829973f},{0.422015f,0.380859f,0.822709f},
+{0.301851f,0.415248f,0.85817f},{0.401892f,0.308829f,0.862037f},{0.292041f,0.388965f,0.873738f},
+{0.363526f,0.271835f,0.891041f},{0.278694f,0.377274f,0.883173f},{0.304695f,0.252246f,0.918441f},
+{0.251401f,0.371711f,0.89366f},{0.21953f,0.245247f,0.944278f},{0.203426f,0.38298f,0.901079f},
+{0.106344f,0.266344f,0.957994f},{0.14537f,0.419089f,0.896232f},{-0.0276341f,0.342629f,0.939064f},
+{0.0921045f,0.475795f,0.874721f},{-0.150223f,0.478986f,0.864873f},{0.0560429f,0.540989f,0.83916f},
+{-0.212316f,0.629316f,0.747585f},{0.0446824f,0.598166f,0.800126f},{-0.197281f,0.745623f,0.636495f},
+{0.0554217f,0.637032f,0.768842f},{-0.122751f,0.816344f,0.56437f},{0.0810955f,0.657415f,0.749152f},
+{-0.0109649f,0.843844f,0.536477f},{0.11762f,0.661328f,0.740818f},{0.150429f,0.979508f,0.133919f},
+{0.290601f,0.909681f,0.2967f},{0.492893f,0.728683f,0.475477f},{0.588316f,0.49644f,0.638304f},
+{0.591449f,0.30212f,0.747604f},{0.550134f,0.182488f,0.814893f},{0.484732f,0.115851f,0.866957f},
+{0.378527f,0.0607272f,0.923596f},{0.212839f,-0.000689037f,0.977087f},{-0.015943f,-0.0365482f,0.999205f},
+{-0.305805f,0.0359448f,0.951415f},{-0.57072f,0.278041f,0.77264f},{-0.651417f,0.564719f,0.506703f},
+{-0.56895f,0.766234f,0.298632f},{-0.409059f,0.893493f,0.185313f},{-0.201877f,0.968758f,0.144064f},
+{-0.0304928f,0.931217f,0.363188f},{-0.0245995f,0.929896f,0.366999f},{0.103731f,0.955245f,-0.277031f},
+{0.304298f,0.947159f,-0.101449f},{0.625893f,0.75942f,0.177593f},{0.773097f,0.445834f,0.451168f},
+{0.7627f,0.179062f,0.621471f},{0.697411f,0.0163118f,0.716486f},{0.606449f,-0.0938259f,0.789567f},
+{0.441344f,-0.218556f,0.870316f},{0.163703f,-0.363292f,0.917181f},{-0.189081f,-0.461406f,0.866806f},
+{-0.58293f,-0.414287f,0.69897f},{-0.912069f,-0.125103f,0.390487f},{-0.962139f,0.268252f,0.0482685f},
+{-0.817556f,0.55344f,-0.159082f},{-0.610798f,0.750085f,-0.25357f},{-0.349988f,0.891328f,-0.288172f},
+{-0.158433f,0.982699f,-0.0959295f},{-0.160262f,0.982234f,-0.0976387f},{0.0706102f,0.906589f,-0.416066f},
+{0.213969f,0.914498f,-0.343382f},{0.603053f,0.79487f,-0.0671515f},{0.837519f,0.469329f,0.279806f},
+{0.845853f,0.147687f,0.512564f},{0.772128f,-0.0502239f,0.633479f},{0.675299f,-0.184114f,0.714195f},
+{0.504383f,-0.337547f,0.79477f},{0.192974f,-0.522644f,0.830424f},{-0.200919f,-0.646592f,0.735901f},
+{-0.584483f,-0.62365f,0.519077f},{-0.903386f,-0.383047f,0.19279f},{-0.989227f,0.0196847f,-0.145061f},
+{-0.873732f,0.349006f,-0.338802f},{-0.693124f,0.580565f,-0.427228f},{-0.447705f,0.760557f,-0.470226f},
+{-0.253469f,0.841136f,-0.477748f},{-0.241386f,0.850734f,-0.466889f}
+},
+
+//lid 5
+{
+{0.193444f,0.407529f,-0.892468f},{0.165525f,0.155217f,-0.973914f},{0.0817702f,0.2083f,-0.974641f},
+{0.130027f,0.443981f,-0.886552f},{-0.0700469f,0.308246f,-0.948724f},{0.0698369f,0.508184f,-0.858413f},
+{-0.202986f,0.479244f,-0.853887f},{0.0285804f,0.58596f,-0.809836f},{-0.259965f,0.655945f,-0.708629f},
+{0.0167872f,0.652994f,-0.757177f},{-0.22937f,0.781713f,-0.579925f},{0.0293912f,0.697471f,-0.71601f},
+{-0.13996f,0.851318f,-0.505638f},{0.0589978f,0.723127f,-0.688191f},{-0.0190551f,0.876732f,-0.480602f},
+{0.105824f,0.731903f,-0.673142f},{0.117151f,0.862225f,-0.492791f},{0.168272f,0.71841f,-0.674961f},
+{0.254554f,0.804206f,-0.53708f},{0.23545f,0.678528f,-0.695818f},{0.373057f,0.702449f,-0.60613f},
+{0.29162f,0.616637f,-0.731243f},{0.450121f,0.574444f,-0.683671f},{0.323966f,0.547484f,-0.771562f},
+{0.476569f,0.450249f,-0.755088f},{0.330806f,0.488291f,-0.807552f},{0.458733f,0.348468f,-0.817395f},
+{0.31924f,0.444994f,-0.8367f},{0.405583f,0.269649f,-0.87338f},{0.29274f,0.414652f,-0.861608f},
+{0.32327f,0.212095f,-0.922232f},{0.24994f,0.399549f,-0.881981f},{0.0759488f,-0.244867f,-0.966577f},
+{-0.0372175f,-0.181635f,-0.982661f},{-0.339106f,-0.0810756f,-0.937248f},{-0.630476f,0.204915f,-0.748672f},
+{-0.71242f,0.539226f,-0.449103f},{-0.6053f,0.763821f,-0.224031f},{-0.425226f,0.896448f,-0.124756f},
+{-0.206691f,0.972417f,-0.108088f},{0.0371f,0.98819f,-0.148678f},{0.285431f,0.926163f,-0.246478f},
+{0.498493f,0.773669f,-0.391077f},{0.627033f,0.56197f,-0.539462f},{0.662497f,0.357666f,-0.658159f},
+{0.628481f,0.192969f,-0.753508f},{0.53626f,0.0552887f,-0.84224f},{0.389472f,-0.0657248f,-0.91869f},
+{0.295455f,0.056842f,-0.953664f},{0.316848f,0.0475216f,-0.947285f},{-0.0397306f,-0.599632f,-0.799289f},
+{-0.189195f,-0.569456f,-0.799953f},{-0.578897f,-0.49671f,-0.64665f},{-0.925553f,-0.191261f,-0.326758f},
+{-0.975049f,0.218034f,0.0417236f},{-0.819003f,0.512483f,0.258062f},{-0.611015f,0.715488f,0.338728f},
+{-0.354073f,0.868841f,0.346045f},{-0.0474662f,0.956162f,0.288965f},{0.295731f,0.944569f,0.142591f},
+{0.617105f,0.780581f,-0.0993728f},{0.798058f,0.491737f,-0.348278f},{0.826967f,0.210536f,-0.521345f},
+{0.770201f,-0.00938286f,-0.637732f},{0.637273f,-0.202705f,-0.743501f},{0.413738f,-0.379248f,-0.827642f},
+{0.2762f,-0.263919f,-0.924154f},{0.324592f,-0.293701f,-0.899099f},{-0.089634f,-0.686727f,-0.721368f},
+{-0.196968f,-0.709494f,-0.676625f},{-0.57606f,-0.656331f,-0.487222f},{-0.907761f,-0.396805f,-0.13607f},
+{-0.97175f,0.00107842f,0.236008f},{-0.843724f,0.309278f,0.438722f},{-0.667858f,0.529876f,0.522683f},
+{-0.437969f,0.71117f,0.549927f},{-0.146691f,0.841099f,0.520609f},{0.20301f,0.895177f,0.396793f},
+{0.586122f,0.798484f,0.137423f},{0.843686f,0.503519f,-0.186178f},{0.891329f,0.172679f,-0.419183f},
+{0.830646f,-0.0802118f,-0.550994f},{0.698204f,-0.297244f,-0.651273f},{0.46035f,-0.500613f,-0.733119f},
+{0.239202f,-0.60152f,-0.762205f},{0.275863f,-0.623816f,-0.731268f},{-0.165525f,0.155217f,-0.973914f},
+{-0.193444f,0.407529f,-0.892468f},{-0.0817703f,0.2083f,-0.974641f},{-0.130028f,0.443981f,-0.886552f},
+{0.070047f,0.308246f,-0.948724f},{-0.0698366f,0.508184f,-0.858412f},{0.202986f,0.479244f,-0.853886f},
+{-0.0285805f,0.58596f,-0.809836f},{0.259965f,0.655945f,-0.708629f},{-0.0167873f,0.652994f,-0.757177f},
+{0.22937f,0.781714f,-0.579925f},{-0.0293914f,0.697471f,-0.71601f},{0.13996f,0.851318f,-0.505638f},
+{-0.0589978f,0.723127f,-0.688191f},{0.0190551f,0.876732f,-0.480602f},{-0.105824f,0.731903f,-0.673142f},
+{-0.117152f,0.862225f,-0.492791f},{-0.168272f,0.71841f,-0.674961f},{-0.254554f,0.804206f,-0.53708f},
+{-0.23545f,0.678528f,-0.695818f},{-0.373057f,0.702449f,-0.60613f},{-0.29162f,0.616637f,-0.731243f},
+{-0.450121f,0.574444f,-0.683671f},{-0.323966f,0.547484f,-0.771561f},{-0.476569f,0.450249f,-0.755088f},
+{-0.330806f,0.488291f,-0.807552f},{-0.458733f,0.348468f,-0.817394f},{-0.319241f,0.444994f,-0.836699f},
+{-0.405583f,0.269649f,-0.87338f},{-0.29274f,0.414652f,-0.861608f},{-0.32327f,0.212094f,-0.922232f},
+{-0.249939f,0.399549f,-0.881981f},{-0.0759488f,-0.244867f,-0.966577f},{0.0372174f,-0.181635f,-0.982661f},
+{0.339106f,-0.0810758f,-0.937248f},{0.630476f,0.204915f,-0.748672f},{0.71242f,0.539226f,-0.449103f},
+{0.6053f,0.763821f,-0.224031f},{0.425226f,0.896448f,-0.124756f},{0.206691f,0.972417f,-0.108088f},
+{-0.0370999f,0.98819f,-0.148678f},{-0.285431f,0.926163f,-0.246478f},{-0.498494f,0.773669f,-0.391077f},
+{-0.627033f,0.56197f,-0.539462f},{-0.662496f,0.357666f,-0.658159f},{-0.62848f,0.192969f,-0.753509f},
+{-0.53626f,0.0552887f,-0.84224f},{-0.389472f,-0.0657248f,-0.91869f},{-0.295455f,0.0568416f,-0.953664f},
+{-0.316847f,0.0475212f,-0.947285f},{0.0397307f,-0.599632f,-0.799289f},{0.189195f,-0.569456f,-0.799953f},
+{0.578897f,-0.496711f,-0.64665f},{0.925553f,-0.191262f,-0.326758f},{0.975049f,0.218034f,0.0417234f},
+{0.819003f,0.512483f,0.258062f},{0.611015f,0.715488f,0.338728f},{0.354073f,0.868841f,0.346045f},
+{0.0474661f,0.956162f,0.288965f},{-0.295731f,0.944569f,0.142591f},{-0.617106f,0.78058f,-0.0993727f},
+{-0.798058f,0.491737f,-0.348278f},{-0.826967f,0.210536f,-0.521344f},{-0.770201f,-0.00938315f,-0.637733f},
+{-0.637273f,-0.202705f,-0.743501f},{-0.413738f,-0.379248f,-0.827642f},{-0.2762f,-0.263918f,-0.924154f},
+{-0.324592f,-0.293701f,-0.8991f},{0.0896339f,-0.686727f,-0.721368f},{0.196968f,-0.709494f,-0.676625f},
+{0.57606f,-0.656331f,-0.487222f},{0.907761f,-0.396806f,-0.136069f},{0.971751f,0.001078f,0.236008f},
+{0.843724f,0.309278f,0.438722f},{0.667858f,0.529876f,0.522683f},{0.437969f,0.71117f,0.549927f},
+{0.146691f,0.841099f,0.520609f},{-0.203011f,0.895177f,0.396793f},{-0.586122f,0.798484f,0.137422f},
+{-0.843686f,0.503519f,-0.186178f},{-0.89133f,0.172678f,-0.419182f},{-0.830646f,-0.0802122f,-0.550993f},
+{-0.698204f,-0.297244f,-0.651273f},{-0.46035f,-0.500613f,-0.733119f},{-0.239203f,-0.601519f,-0.762205f},
+{-0.275863f,-0.623816f,-0.731268f},{-0.180068f,0.577236f,0.796476f},{-0.184464f,0.761676f,0.621147f},
+{-0.263986f,0.684387f,0.679651f},{-0.233173f,0.53943f,0.809102f},{-0.360888f,0.565359f,0.741707f},
+{-0.281882f,0.476613f,0.832696f},{-0.413008f,0.435886f,0.799642f},{-0.307999f,0.408132f,0.859398f},
+{-0.423679f,0.331379f,0.843021f},{-0.309908f,0.360869f,0.87962f},{-0.407224f,0.266101f,0.873704f},
+{-0.302213f,0.339523f,0.890725f},{-0.371172f,0.229158f,0.899843f},{-0.289523f,0.327562f,0.899378f},
+{-0.31079f,0.203294f,0.928483f},{-0.259276f,0.319654f,0.911371f},{-0.221476f,0.186725f,0.957122f},
+{-0.208676f,0.329032f,0.920974f},{-0.105951f,0.197938f,0.974472f},{-0.152893f,0.361911f,0.919589f},
+{0.0247945f,0.266447f,0.963531f},{-0.105696f,0.412464f,0.904821f},{0.139783f,0.401472f,0.905141f},
+{-0.0747584f,0.471703f,0.878582f},{0.194322f,0.559025f,0.806058f},{-0.065496f,0.526649f,0.847556f},
+{0.173984f,0.683979f,0.708451f},{-0.0765603f,0.565675f,0.821066f},{0.0973667f,0.758329f,0.64456f},
+{-0.101272f,0.586349f,0.803703f},{-0.0128182f,0.784094f,0.620509f},{-0.13559f,0.590702f,0.795416f},
+{-0.167613f,0.95658f,0.238456f},{-0.302976f,0.868131f,0.393134f},{-0.492446f,0.677089f,0.546852f},
+{-0.580527f,0.448426f,0.679634f},{-0.58693f,0.263618f,0.765519f},{-0.554051f,0.148408f,0.819147f},
+{-0.493685f,0.0752757f,0.866377f},{-0.383034f,0.00329912f,0.923728f},{-0.205087f,-0.0772348f,0.975691f},
+{0.0313089f,-0.126159f,0.991516f},{0.314577f,-0.0622055f,0.947191f},{0.572765f,0.183372f,0.798947f},
+{0.652539f,0.501707f,0.567876f},{0.561476f,0.73558f,0.379034f},{0.392032f,0.876671f,0.278852f},
+{0.180957f,0.951871f,0.247377f},{0.0093866f,0.885281f,0.464963f},{-0.00263635f,0.88147f,0.472233f},
+{-0.124483f,0.975732f,-0.180142f},{-0.318931f,0.947771f,-0.00348479f},{-0.623523f,0.739693f,0.253129f},
+{-0.76216f,0.422483f,0.49053f},{-0.758436f,0.156186f,0.632756f},{-0.704104f,-0.0146938f,0.709945f},
+{-0.618543f,-0.14637f,0.771998f},{-0.444527f,-0.300675f,0.843795f},{-0.148418f,-0.459723f,0.875572f},
+{0.208804f,-0.548394f,0.809731f},{0.584935f,-0.489972f,0.646358f},{0.905722f,-0.196085f,0.37579f},
+{0.97087f,0.227395f,0.0755174f},{0.825811f,0.553351f,-0.10881f},{0.607682f,0.772688f,-0.183509f},
+{0.337269f,0.919679f,-0.201098f},{0.141443f,0.989923f,0.00676962f},{0.143487f,0.989641f,0.00480806f},
+{-0.0933005f,0.94115f,-0.324855f},{-0.231626f,0.939611f,-0.251951f},{-0.604057f,0.796837f,0.0128559f},
+{-0.825195f,0.463072f,0.323448f},{-0.840198f,0.136845f,0.524729f},{-0.776581f,-0.0757791f,0.625444f},
+{-0.684572f,-0.236751f,0.689427f},{-0.505898f,-0.425245f,0.750489f},{-0.17675f,-0.62361f,0.761492f},
+{0.21899f,-0.722456f,0.65582f},{0.585977f,-0.671017f,0.454276f},{0.893638f,-0.418293f,0.162611f},
+{0.990147f,-0.00181478f,-0.140023f},{0.881177f,0.355667f,-0.311494f},{0.694655f,0.61195f,-0.378116f},
+{0.438808f,0.804679f,-0.399924f},{0.236289f,0.887341f,-0.39597f},{0.228909f,0.892442f,-0.388777f},
+{0.184464f,0.761676f,0.621147f},{0.180068f,0.577236f,0.796476f},{0.263986f,0.684387f,0.679651f},
+{0.233173f,0.53943f,0.809102f},{0.360888f,0.565359f,0.741707f},{0.281881f,0.476613f,0.832696f},
+{0.413008f,0.435886f,0.799643f},{0.307998f,0.408132f,0.859398f},{0.423679f,0.331378f,0.843021f},
+{0.309908f,0.360868f,0.87962f},{0.407224f,0.266101f,0.873704f},{0.302213f,0.339523f,0.890725f},
+{0.371172f,0.229158f,0.899843f},{0.289523f,0.327562f,0.899377f},{0.310791f,0.203294f,0.928483f},
+{0.259276f,0.319654f,0.911371f},{0.221476f,0.186725f,0.957122f},{0.208676f,0.329032f,0.920974f},
+{0.105951f,0.197938f,0.974472f},{0.152893f,0.361911f,0.919589f},{-0.0247946f,0.266447f,0.96353f},
+{0.105696f,0.412464f,0.904821f},{-0.139783f,0.401473f,0.905141f},{0.0747584f,0.471704f,0.878582f},
+{-0.194321f,0.559026f,0.806058f},{0.065496f,0.526648f,0.847556f},{-0.173984f,0.683979f,0.708451f},
+{0.0765603f,0.565675f,0.821066f},{-0.0973666f,0.758329f,0.64456f},{0.101272f,0.586349f,0.803703f},
+{0.0128182f,0.784094f,0.620509f},{0.13559f,0.590702f,0.795416f},{0.167613f,0.95658f,0.238456f},
+{0.302976f,0.868131f,0.393134f},{0.492446f,0.677089f,0.546852f},{0.580527f,0.448426f,0.679635f},
+{0.58693f,0.263618f,0.765518f},{0.554051f,0.148408f,0.819147f},{0.493685f,0.0752757f,0.866377f},
+{0.383034f,0.00329909f,0.923728f},{0.205088f,-0.0772348f,0.975691f},{-0.0313088f,-0.126159f,0.991516f},
+{-0.314577f,-0.0622053f,0.947191f},{-0.572765f,0.183371f,0.798946f},{-0.65254f,0.501707f,0.567876f},
+{-0.561476f,0.73558f,0.379034f},{-0.392032f,0.876671f,0.278852f},{-0.180957f,0.951871f,0.247377f},
+{-0.00938683f,0.885281f,0.464963f},{0.0026364f,0.88147f,0.472233f},{0.124484f,0.975732f,-0.180142f},
+{0.318931f,0.947771f,-0.00348472f},{0.623523f,0.739693f,0.253129f},{0.76216f,0.422484f,0.49053f},
+{0.758436f,0.156185f,0.632756f},{0.704104f,-0.0146936f,0.709945f},{0.618543f,-0.14637f,0.771998f},
+{0.444527f,-0.300675f,0.843795f},{0.148418f,-0.459723f,0.875572f},{-0.208804f,-0.548394f,0.809732f},
+{-0.584935f,-0.489972f,0.646358f},{-0.905722f,-0.196085f,0.37579f},{-0.97087f,0.227394f,0.0755171f},
+{-0.825811f,0.55335f,-0.10881f},{-0.607682f,0.772688f,-0.183509f},{-0.337269f,0.919679f,-0.201098f},
+{-0.141444f,0.989923f,0.0067696f},{-0.143487f,0.989641f,0.00480797f},{0.0933005f,0.94115f,-0.324856f},
+{0.231626f,0.939611f,-0.251951f},{0.604057f,0.796837f,0.012856f},{0.825195f,0.463072f,0.323448f},
+{0.840198f,0.136845f,0.524729f},{0.77658f,-0.0757789f,0.625444f},{0.684572f,-0.236751f,0.689427f},
+{0.505898f,-0.425245f,0.750489f},{0.17675f,-0.62361f,0.761492f},{-0.21899f,-0.722456f,0.65582f},
+{-0.585977f,-0.671017f,0.454276f},{-0.893638f,-0.418292f,0.162611f},{-0.990147f,-0.00181415f,-0.140023f},
+{-0.881177f,0.355667f,-0.311494f},{-0.694655f,0.61195f,-0.378116f},{-0.438808f,0.804679f,-0.399924f},
+{-0.236289f,0.887341f,-0.39597f},{-0.228909f,0.892442f,-0.388777f}
+},
+
+//lid 4
+{
+{0.197806f,0.252423f,-0.947183f},{0.152974f,-0.0131419f,-0.988143f},{0.076402f,0.0291397f,-0.996651f},
+{0.141586f,0.282977f,-0.948619f},{-0.0651858f,0.114567f,-0.991275f},{0.0907763f,0.340981f,-0.935677f},
+{-0.188783f,0.288503f,-0.938684f},{0.0551476f,0.4203f,-0.905708f},{-0.240493f,0.497493f,-0.833465f},
+{0.0456548f,0.499267f,-0.865244f},{-0.202638f,0.66064f,-0.722836f},{0.0611606f,0.557154f,-0.828154f},
+{-0.105771f,0.750916f,-0.651872f},{0.0934525f,0.590793f,-0.801393f},{0.0175425f,0.780671f,-0.624695f},
+{0.139504f,0.603068f,-0.785397f},{0.15047f,0.76202f,-0.629829f},{0.198294f,0.591171f,-0.781791f},
+{0.281108f,0.697071f,-0.659599f},{0.261657f,0.550939f,-0.792465f},{0.391376f,0.589919f,-0.706272f},
+{0.313791f,0.487662f,-0.814691f},{0.461111f,0.461151f,-0.758101f},{0.342101f,0.418757f,-0.841195f},
+{0.483411f,0.338155f,-0.807443f},{0.346951f,0.359543f,-0.86623f},{0.463587f,0.232429f,-0.855022f},
+{0.33397f,0.311178f,-0.889737f},{0.407038f,0.141258f,-0.902422f},{0.302905f,0.271678f,-0.913477f},
+{0.318994f,0.0666247f,-0.945412f},{0.25442f,0.249147f,-0.93445f},{0.0393542f,-0.403638f,-0.914072f},
+{-0.0633284f,-0.348984f,-0.934987f},{-0.341741f,-0.268004f,-0.90077f},{-0.622255f,0.00424061f,-0.782803f},
+{-0.723034f,0.396393f,-0.565769f},{-0.608206f,0.699392f,-0.375414f},{-0.40421f,0.8671f,-0.291121f},
+{-0.172562f,0.943235f,-0.283777f},{0.0704847f,0.944233f,-0.321646f},{0.30922f,0.863119f,-0.39926f},
+{0.508772f,0.695251f,-0.507717f},{0.627113f,0.478984f,-0.61425f},{0.661072f,0.274946f,-0.698133f},
+{0.629603f,0.100423f,-0.7704f},{0.533618f,-0.0611259f,-0.843514f},{0.373406f,-0.207599f,-0.904141f},
+{0.272005f,-0.0903327f,-0.958047f},{0.308413f,-0.102804f,-0.945681f},{-0.0753382f,-0.721378f,-0.688431f},
+{-0.221636f,-0.685687f,-0.693333f},{-0.580906f,-0.600102f,-0.549932f},{-0.906914f,-0.30141f,-0.294379f},
+{-0.990017f,0.14083f,-0.00574827f},{-0.844923f,0.508554f,0.165766f},{-0.615889f,0.760283f,0.206519f},
+{-0.333857f,0.926152f,0.175449f},{-0.012656f,0.99492f,0.0998718f},{0.322707f,0.945914f,-0.0332746f},
+{0.619119f,0.751467f,-0.22801f},{0.787733f,0.452378f,-0.418129f},{0.823064f,0.161486f,-0.544508f},
+{0.775054f,-0.0856956f,-0.626057f},{0.638683f,-0.318141f,-0.700622f},{0.397172f,-0.52005f,-0.756176f},
+{0.246139f,-0.418283f,-0.874331f},{0.294987f,-0.443073f,-0.846563f},{-0.116264f,-0.796737f,-0.593036f},
+{-0.226117f,-0.802769f,-0.551755f},{-0.586943f,-0.715357f,-0.379158f},{-0.89438f,-0.440125f,-0.0798445f},
+{-0.973234f,-0.0311641f,0.227692f},{-0.864269f,0.318505f,0.389351f},{-0.684692f,0.588076f,0.430538f},
+{-0.433616f,0.80353f,0.40782f},{-0.11501f,0.932725f,0.341755f},{0.240096f,0.946978f,0.213511f},
+{0.593785f,0.804597f,-0.00656442f},{0.829619f,0.49272f,-0.262602f},{0.884967f,0.146821f,-0.441901f},
+{0.834044f,-0.142061f,-0.533093f},{0.699282f,-0.404508f,-0.589388f},{0.447792f,-0.634866f,-0.629625f},
+{0.219984f,-0.737571f,-0.638433f},{0.244461f,-0.748524f,-0.616401f},{-0.152973f,-0.0131418f,-0.988143f},
+{-0.197805f,0.252424f,-0.947183f},{-0.0764017f,0.0291398f,-0.996651f},{-0.141586f,0.282977f,-0.948619f},
+{0.0651859f,0.114567f,-0.991275f},{-0.0907765f,0.340981f,-0.935677f},{0.188783f,0.288503f,-0.938684f},
+{-0.0551476f,0.4203f,-0.905708f},{0.240493f,0.497493f,-0.833465f},{-0.0456548f,0.499267f,-0.865244f},
+{0.202638f,0.66064f,-0.722836f},{-0.0611606f,0.557154f,-0.828154f},{0.105771f,0.750916f,-0.651872f},
+{-0.0934527f,0.590793f,-0.801393f},{-0.0175423f,0.780672f,-0.624695f},{-0.139504f,0.603067f,-0.785397f},
+{-0.15047f,0.76202f,-0.629829f},{-0.198294f,0.591171f,-0.781791f},{-0.281108f,0.697071f,-0.659599f},
+{-0.261658f,0.550939f,-0.792466f},{-0.391376f,0.589919f,-0.706272f},{-0.313791f,0.487663f,-0.81469f},
+{-0.46111f,0.46115f,-0.758101f},{-0.342102f,0.418756f,-0.841196f},{-0.483411f,0.338154f,-0.807443f},
+{-0.346951f,0.359543f,-0.86623f},{-0.463587f,0.23243f,-0.855022f},{-0.333971f,0.311179f,-0.889737f},
+{-0.407039f,0.141259f,-0.902422f},{-0.302905f,0.271678f,-0.913477f},{-0.318994f,0.0666247f,-0.945412f},
+{-0.25442f,0.249147f,-0.93445f},{-0.0393541f,-0.403638f,-0.914072f},{0.0633285f,-0.348984f,-0.934987f},
+{0.341741f,-0.268004f,-0.90077f},{0.622255f,0.00424059f,-0.782803f},{0.723034f,0.396392f,-0.565769f},
+{0.608206f,0.699393f,-0.375414f},{0.40421f,0.8671f,-0.291121f},{0.172562f,0.943235f,-0.283777f},
+{-0.0704845f,0.944233f,-0.321646f},{-0.30922f,0.863119f,-0.39926f},{-0.508772f,0.695251f,-0.507717f},
+{-0.627113f,0.478984f,-0.61425f},{-0.661072f,0.274945f,-0.698133f},{-0.629603f,0.100424f,-0.7704f},
+{-0.533618f,-0.0611257f,-0.843514f},{-0.373405f,-0.207599f,-0.904141f},{-0.272005f,-0.0903328f,-0.958047f},
+{-0.308413f,-0.102804f,-0.945681f},{0.0753384f,-0.721378f,-0.688431f},{0.221636f,-0.685687f,-0.693333f},
+{0.580906f,-0.600103f,-0.549932f},{0.906914f,-0.301409f,-0.294379f},{0.990017f,0.14083f,-0.00574841f},
+{0.844923f,0.508554f,0.165766f},{0.615889f,0.760283f,0.206519f},{0.333857f,0.926152f,0.175449f},
+{0.012656f,0.99492f,0.0998718f},{-0.322707f,0.945914f,-0.0332747f},{-0.619119f,0.751468f,-0.22801f},
+{-0.787733f,0.452378f,-0.418128f},{-0.823064f,0.161485f,-0.544508f},{-0.775054f,-0.0856957f,-0.626057f},
+{-0.638683f,-0.318141f,-0.700622f},{-0.397172f,-0.52005f,-0.756176f},{-0.246138f,-0.418282f,-0.874332f},
+{-0.294987f,-0.443073f,-0.846563f},{0.116265f,-0.796737f,-0.593037f},{0.226117f,-0.802769f,-0.551755f},
+{0.586943f,-0.715357f,-0.379159f},{0.89438f,-0.440125f,-0.0798443f},{0.973234f,-0.031164f,0.227692f},
+{0.864269f,0.318505f,0.389351f},{0.684692f,0.588076f,0.430539f},{0.433616f,0.803529f,0.40782f},
+{0.11501f,0.932725f,0.341755f},{-0.240096f,0.946978f,0.213511f},{-0.593785f,0.804597f,-0.00656453f},
+{-0.829619f,0.49272f,-0.262602f},{-0.884968f,0.146821f,-0.4419f},{-0.834045f,-0.142061f,-0.533093f},
+{-0.699282f,-0.404508f,-0.589388f},{-0.447792f,-0.634866f,-0.629625f},{-0.219984f,-0.737571f,-0.638433f},
+{-0.24446f,-0.748524f,-0.616401f},{-0.208426f,0.467505f,0.859068f},{-0.21141f,0.645342f,0.734057f},
+{-0.282958f,0.5677f,0.773079f},{-0.258987f,0.431703f,0.864036f},{-0.368601f,0.458411f,0.808698f},
+{-0.303103f,0.374109f,0.876454f},{-0.416668f,0.346642f,0.840374f},{-0.324375f,0.31716f,0.891174f},
+{-0.430617f,0.259782f,0.864339f},{-0.325747f,0.282993f,0.902111f},{-0.420251f,0.203556f,0.884282f},
+{-0.320713f,0.268048f,0.908457f},{-0.386943f,0.162916f,0.907598f},{-0.307412f,0.253854f,0.917091f},
+{-0.322163f,0.122735f,0.938695f},{-0.27108f,0.240458f,0.932038f},{-0.223762f,0.0878124f,0.97068f},
+{-0.21604f,0.245468f,0.945025f},{-0.10262f,0.0825365f,0.991291f},{-0.16423f,0.272449f,0.948051f},
+{0.0234933f,0.139016f,0.990011f},{-0.126689f,0.312363f,0.941477f},{0.125261f,0.270589f,0.954511f},
+{-0.103528f,0.360547f,0.926978f},{0.165273f,0.437098f,0.884098f},{-0.0972457f,0.411136f,0.906372f},
+{0.133677f,0.573686f,0.808093f},{-0.109202f,0.451287f,0.885672f},{0.0521017f,0.651921f,0.756495f},
+{-0.133792f,0.473599f,0.870519f},{-0.0551972f,0.673656f,0.736981f},{-0.166331f,0.479272f,0.861761f},
+{-0.194724f,0.892923f,0.40592f},{-0.321362f,0.778328f,0.539381f},{-0.489835f,0.58226f,0.648872f},
+{-0.569077f,0.369664f,0.734506f},{-0.583491f,0.204904f,0.785845f},{-0.565193f,0.0957166f,0.819387f},
+{-0.512484f,0.00638424f,0.858673f},{-0.392507f,-0.0996617f,0.914333f},{-0.192249f,-0.211968f,0.958181f},
+{0.0562841f,-0.275946f,0.959524f},{0.32738f,-0.221716f,0.918512f},{0.573276f,0.0211426f,0.819089f},
+{0.653155f,0.381962f,0.65383f},{0.546416f,0.668325f,0.504748f},{0.357923f,0.829639f,0.428475f},
+{0.140622f,0.899867f,0.412874f},{-0.0284427f,0.788122f,0.614862f},{-0.0532601f,0.776915f,0.627349f},
+{-0.157489f,0.987401f,-0.0154112f},{-0.342529f,0.926003f,0.158719f},{-0.619782f,0.690843f,0.372299f},
+{-0.744927f,0.377356f,0.550169f},{-0.752895f,0.119041f,0.647285f},{-0.717327f,-0.0636677f,0.693822f},
+{-0.639658f,-0.233703f,0.732271f},{-0.449197f,-0.43605f,0.779796f},{-0.124989f,-0.610088f,0.782413f},
+{0.23555f,-0.675885f,0.698352f},{0.5842f,-0.598166f,0.54855f},{0.89061f,-0.305432f,0.336936f},
+{0.982168f,0.152087f,0.110523f},{0.839266f,0.543118f,-0.0256032f},{0.599899f,0.797656f,-0.0621713f},
+{0.313645f,0.948255f,-0.0493838f},{0.112243f,0.977134f,0.180584f},{0.109262f,0.976934f,0.183471f},
+{-0.130507f,0.977203f,-0.167459f},{-0.261054f,0.960363f,-0.0977477f},{-0.60797f,0.781317f,0.141124f},
+{-0.806985f,0.441576f,0.392157f},{-0.831542f,0.116681f,0.543069f},{-0.785144f,-0.11618f,0.608318f},
+{-0.700039f,-0.321851f,0.637462f},{-0.505872f,-0.56167f,0.654691f},{-0.151627f,-0.765957f,0.624755f},
+{0.241223f,-0.821394f,0.51684f},{0.585322f,-0.732453f,0.347723f},{0.87707f,-0.467825f,0.109029f},
+{0.989822f,-0.0383588f,-0.137044f},{0.893267f,0.361677f,-0.266953f},{0.695714f,0.656377f,-0.291808f},
+{0.422793f,0.86367f,-0.274445f},{0.208815f,0.94524f,-0.250834f},{0.208427f,0.945437f,-0.250415f},
+{0.21141f,0.645342f,0.734057f},{0.208426f,0.467506f,0.859068f},{0.282958f,0.5677f,0.773079f},
+{0.258987f,0.431703f,0.864036f},{0.368601f,0.458412f,0.808698f},{0.303103f,0.374109f,0.876454f},
+{0.416668f,0.346641f,0.840374f},{0.324375f,0.317159f,0.891174f},{0.430617f,0.259782f,0.864339f},
+{0.325748f,0.282993f,0.90211f},{0.420251f,0.203557f,0.884282f},{0.320713f,0.268048f,0.908457f},
+{0.386943f,0.162916f,0.907598f},{0.307412f,0.253853f,0.917091f},{0.322162f,0.122735f,0.938695f},
+{0.27108f,0.240458f,0.932038f},{0.223762f,0.0878123f,0.97068f},{0.21604f,0.245468f,0.945025f},
+{0.10262f,0.0825365f,0.991291f},{0.16423f,0.272449f,0.948051f},{-0.0234933f,0.139016f,0.990011f},
+{0.126689f,0.312363f,0.941477f},{-0.125261f,0.270589f,0.954511f},{0.103528f,0.360547f,0.926978f},
+{-0.165273f,0.437098f,0.884099f},{0.0972457f,0.411136f,0.906372f},{-0.133677f,0.573686f,0.808093f},
+{0.109202f,0.451287f,0.885672f},{-0.0521018f,0.651921f,0.756495f},{0.133792f,0.473599f,0.870519f},
+{0.0551972f,0.673656f,0.736981f},{0.166331f,0.479272f,0.861761f},{0.194723f,0.892923f,0.40592f},
+{0.321362f,0.778328f,0.539381f},{0.489835f,0.58226f,0.648872f},{0.569077f,0.369664f,0.734506f},
+{0.583491f,0.204904f,0.785845f},{0.565193f,0.0957165f,0.819387f},{0.512484f,0.00638429f,0.858673f},
+{0.392507f,-0.0996618f,0.914333f},{0.192249f,-0.211968f,0.95818f},{-0.0562842f,-0.275946f,0.959524f},
+{-0.32738f,-0.221716f,0.918512f},{-0.573277f,0.0211428f,0.819089f},{-0.653155f,0.381962f,0.65383f},
+{-0.546416f,0.668325f,0.504748f},{-0.357923f,0.829639f,0.428475f},{-0.140621f,0.899867f,0.412874f},
+{0.0284431f,0.788121f,0.614862f},{0.0532601f,0.776915f,0.627349f},{0.157489f,0.987401f,-0.015411f},
+{0.342529f,0.926003f,0.158719f},{0.619782f,0.690843f,0.372299f},{0.744927f,0.377355f,0.55017f},
+{0.752895f,0.119041f,0.647285f},{0.717327f,-0.0636679f,0.693822f},{0.639658f,-0.233703f,0.732271f},
+{0.449197f,-0.43605f,0.779796f},{0.124989f,-0.610088f,0.782413f},{-0.23555f,-0.675885f,0.698352f},
+{-0.5842f,-0.598167f,0.54855f},{-0.89061f,-0.305431f,0.336936f},{-0.982168f,0.152087f,0.110523f},
+{-0.839266f,0.543117f,-0.0256036f},{-0.5999f,0.797656f,-0.0621718f},{-0.313645f,0.948255f,-0.0493838f},
+{-0.112243f,0.977134f,0.180583f},{-0.109261f,0.976934f,0.183472f},{0.130507f,0.977203f,-0.167459f},
+{0.261054f,0.960363f,-0.0977474f},{0.607969f,0.781317f,0.141124f},{0.806984f,0.441576f,0.392157f},
+{0.831542f,0.116681f,0.543069f},{0.785144f,-0.11618f,0.608318f},{0.700039f,-0.32185f,0.637462f},
+{0.505872f,-0.56167f,0.654691f},{0.151627f,-0.765957f,0.624755f},{-0.241224f,-0.821394f,0.51684f},
+{-0.585322f,-0.732453f,0.347722f},{-0.87707f,-0.467826f,0.109028f},{-0.989822f,-0.0383587f,-0.137044f},
+{-0.893267f,0.361677f,-0.266952f},{-0.695714f,0.656377f,-0.291808f},{-0.422793f,0.86367f,-0.274445f},
+{-0.208815f,0.94524f,-0.250834f},{-0.208427f,0.945437f,-0.250415f}
+},
+
+//lid 3
+{
+{0.19311f,0.19139f,-0.96233f},{0.142208f,-0.0774502f,-0.986802f},{0.0678547f,-0.0384938f,-0.996952f},
+{0.13967f,0.219289f,-0.965611f},{-0.0696221f,0.0408271f,-0.996738f},{0.0926616f,0.273519f,-0.957393f},
+{-0.188488f,0.211241f,-0.959088f},{0.0595677f,0.351221f,-0.934396f},{-0.237285f,0.427549f,-0.872294f},
+{0.0513543f,0.433495f,-0.899691f},{-0.196157f,0.604068f,-0.772415f},{0.0685151f,0.496912f,-0.865092f},
+{-0.0957246f,0.703615f,-0.704104f},{0.102755f,0.534448f,-0.838932f},{0.0293679f,0.736459f,-0.675844f},
+{0.149571f,0.54853f,-0.822644f},{0.161603f,0.717349f,-0.677713f},{0.207462f,0.537636f,-0.817256f},
+{0.289597f,0.651122f,-0.701551f},{0.268886f,0.498353f,-0.824224f},{0.3962f,0.544012f,-0.739646f},
+{0.318634f,0.436497f,-0.841393f},{0.462795f,0.417077f,-0.782219f},{0.345075f,0.369444f,-0.862806f},
+{0.483462f,0.295309f,-0.824049f},{0.349167f,0.310606f,-0.884085f},{0.462611f,0.187373f,-0.866535f},
+{0.335206f,0.259551f,-0.905688f},{0.403961f,0.0904898f,-0.91029f},{0.301477f,0.215711f,-0.928752f},
+{0.312545f,0.00928211f,-0.949858f},{0.250059f,0.189983f,-0.949409f},{0.0226189f,-0.461349f,-0.88693f},
+{-0.0777483f,-0.407964f,-0.909682f},{-0.347637f,-0.331404f,-0.877109f},{-0.62028f,-0.0696448f,-0.781283f},
+{-0.72716f,0.332372f,-0.600639f},{-0.61173f,0.662993f,-0.431541f},{-0.39808f,0.845991f,-0.354728f},
+{-0.160319f,0.923082f,-0.349597f},{0.0827605f,0.919205f,-0.384985f},{0.317574f,0.832385f,-0.454183f},
+{0.511501f,0.661363f,-0.548603f},{0.625966f,0.446074f,-0.639675f},{0.659684f,0.2427f,-0.711276f},
+{0.629048f,0.0628337f,-0.774823f},{0.530845f,-0.10926f,-0.840396f},{0.36452f,-0.264439f,-0.892859f},
+{0.259041f,-0.148767f,-0.954341f},{0.299861f,-0.161339f,-0.940241f},{-0.0884018f,-0.762538f,-0.640876f},
+{-0.235609f,-0.723775f,-0.648566f},{-0.585528f,-0.630369f,-0.509698f},{-0.900905f,-0.335078f,-0.275848f},
+{-0.993743f,0.110014f,-0.0192989f},{-0.855874f,0.50061f,0.129883f},{-0.618627f,0.770592f,0.15326f},
+{-0.32579f,0.939296f,0.107627f},{0.000229109f,0.999641f,0.0267795f},{0.331651f,0.938181f,-0.09912f},
+{0.618913f,0.735647f,-0.275264f},{0.783293f,0.435371f,-0.443738f},{0.821251f,0.141209f,-0.552817f},
+{0.775996f,-0.117576f,-0.619682f},{0.637531f,-0.364574f,-0.678704f},{0.389838f,-0.573292f,-0.720668f},
+{0.234329f,-0.478618f,-0.846177f},{0.280671f,-0.500188f,-0.819167f},{-0.125194f,-0.832553f,-0.539613f},
+{-0.23729f,-0.832272f,-0.501016f},{-0.593865f,-0.730879f,-0.336364f},{-0.891521f,-0.44951f,-0.0559531f},
+{-0.973153f,-0.0412239f,0.226436f},{-0.872411f,0.319219f,0.370133f},{-0.691725f,0.605878f,0.392973f},
+{-0.431433f,0.831836f,0.349162f},{-0.103034f,0.957642f,0.268899f},{0.252442f,0.957152f,0.141888f},
+{0.595298f,0.801204f,-0.0607619f},{0.823888f,0.48597f,-0.291617f},{0.882366f,0.135114f,-0.450749f},
+{0.834461f,-0.168251f,-0.524753f},{0.697484f,-0.446476f,-0.560514f},{0.441864f,-0.682478f,-0.58222f},
+{0.213859f,-0.783387f,-0.583584f},{0.2332f,-0.79081f,-0.565895f},{-0.142208f,-0.0774502f,-0.986802f},
+{-0.19311f,0.19139f,-0.96233f},{-0.0678546f,-0.0384938f,-0.996952f},{-0.13967f,0.219289f,-0.965611f},
+{0.0696222f,0.0408271f,-0.996738f},{-0.0926615f,0.273519f,-0.957393f},{0.188488f,0.211241f,-0.959088f},
+{-0.0595678f,0.351221f,-0.934396f},{0.237285f,0.427549f,-0.872294f},{-0.0513544f,0.433495f,-0.899691f},
+{0.196157f,0.604068f,-0.772415f},{-0.0685151f,0.496912f,-0.865092f},{0.0957247f,0.703616f,-0.704104f},
+{-0.102755f,0.534448f,-0.838932f},{-0.029368f,0.73646f,-0.675844f},{-0.149571f,0.548531f,-0.822644f},
+{-0.161603f,0.717349f,-0.677713f},{-0.207461f,0.537636f,-0.817256f},{-0.289597f,0.651122f,-0.701551f},
+{-0.268886f,0.498353f,-0.824224f},{-0.396201f,0.544011f,-0.739646f},{-0.318635f,0.436497f,-0.841393f},
+{-0.462795f,0.417077f,-0.782219f},{-0.345075f,0.369444f,-0.862806f},{-0.483462f,0.295309f,-0.824049f},
+{-0.349167f,0.310605f,-0.884085f},{-0.462611f,0.187373f,-0.866535f},{-0.335206f,0.259552f,-0.905687f},
+{-0.403961f,0.09049f,-0.910289f},{-0.301477f,0.215711f,-0.928752f},{-0.312545f,0.00928195f,-0.949857f},
+{-0.250059f,0.189983f,-0.949409f},{-0.0226189f,-0.46135f,-0.88693f},{0.0777483f,-0.407964f,-0.909681f},
+{0.347638f,-0.331404f,-0.877109f},{0.62028f,-0.0696447f,-0.781283f},{0.72716f,0.332372f,-0.600639f},
+{0.61173f,0.662993f,-0.431541f},{0.39808f,0.845991f,-0.354728f},{0.160319f,0.923082f,-0.349597f},
+{-0.0827604f,0.919205f,-0.384985f},{-0.317574f,0.832385f,-0.454183f},{-0.511501f,0.661363f,-0.548603f},
+{-0.625966f,0.446074f,-0.639675f},{-0.659685f,0.242701f,-0.711275f},{-0.629047f,0.0628333f,-0.774824f},
+{-0.530845f,-0.10926f,-0.840396f},{-0.36452f,-0.26444f,-0.892859f},{-0.259042f,-0.148767f,-0.954341f},
+{-0.299861f,-0.161339f,-0.940241f},{0.0884017f,-0.762538f,-0.640876f},{0.235608f,-0.723775f,-0.648566f},
+{0.585528f,-0.630369f,-0.509698f},{0.900905f,-0.335078f,-0.275848f},{0.993743f,0.110014f,-0.0192989f},
+{0.855874f,0.50061f,0.129883f},{0.618627f,0.770592f,0.153259f},{0.325789f,0.939296f,0.107627f},
+{-0.000229102f,0.999641f,0.0267794f},{-0.331651f,0.938181f,-0.0991201f},{-0.618913f,0.735647f,-0.275264f},
+{-0.783293f,0.435371f,-0.443739f},{-0.821251f,0.141209f,-0.552817f},{-0.775996f,-0.117575f,-0.619682f},
+{-0.637531f,-0.364574f,-0.678704f},{-0.389838f,-0.573292f,-0.720668f},{-0.234329f,-0.478618f,-0.846177f},
+{-0.280672f,-0.500188f,-0.819167f},{0.125194f,-0.832552f,-0.539614f},{0.23729f,-0.832272f,-0.501016f},
+{0.593865f,-0.730879f,-0.336363f},{0.891521f,-0.44951f,-0.0559528f},{0.973153f,-0.0412245f,0.226437f},
+{0.872411f,0.319219f,0.370134f},{0.691726f,0.605878f,0.392973f},{0.431433f,0.831836f,0.349161f},
+{0.103034f,0.957642f,0.268899f},{-0.252442f,0.957152f,0.141888f},{-0.595298f,0.801204f,-0.0607619f},
+{-0.823888f,0.485971f,-0.291617f},{-0.882366f,0.135114f,-0.45075f},{-0.834461f,-0.168251f,-0.524753f},
+{-0.697484f,-0.446475f,-0.560514f},{-0.441864f,-0.682478f,-0.58222f},{-0.213859f,-0.783387f,-0.583584f},
+{-0.2332f,-0.79081f,-0.565895f},{-0.229669f,0.394981f,0.889518f},{-0.231123f,0.558736f,0.79649f},
+{-0.296793f,0.48526f,0.822458f},{-0.27818f,0.361869f,0.889757f},{-0.375088f,0.387567f,0.842082f},
+{-0.3186f,0.309805f,0.895832f},{-0.421505f,0.290791f,0.858938f},{-0.336716f,0.261486f,0.90457f},
+{-0.438512f,0.215537f,0.872497f},{-0.337864f,0.234783f,0.911441f},{-0.432128f,0.162153f,0.887114f},
+{-0.333658f,0.221571f,0.916285f},{-0.399382f,0.113997f,0.909669f},{-0.318071f,0.203324f,0.926008f},
+{-0.329136f,0.0589227f,0.942442f},{-0.276121f,0.184141f,0.943318f},{-0.221544f,0.00826323f,0.975115f},
+{-0.217713f,0.184842f,0.95835f},{-0.0944669f,-0.00852958f,0.995491f},{-0.168781f,0.207319f,0.963604f},
+{0.0290205f,0.0408228f,0.998745f},{-0.137636f,0.239871f,0.960999f},{0.120965f,0.170167f,0.977962f},
+{-0.119261f,0.280395f,0.952447f},{0.148983f,0.342616f,0.927587f},{-0.114791f,0.328866f,0.937374f},
+{0.106802f,0.487704f,0.866452f},{-0.128197f,0.372061f,0.919313f},{0.0195776f,0.569159f,0.821994f},
+{-0.154669f,0.397586f,0.904435f},{-0.0864364f,0.588895f,0.803574f},{-0.188131f,0.405089f,0.894712f},
+{-0.213787f,0.826684f,0.520469f},{-0.33275f,0.699806f,0.632099f},{-0.486569f,0.510276f,0.709133f},
+{-0.562541f,0.316054f,0.763975f},{-0.58474f,0.166721f,0.793903f},{-0.577003f,0.0581446f,0.81467f},
+{-0.5284f,-0.0497126f,0.847539f},{-0.398676f,-0.186188f,0.897993f},{-0.17981f,-0.319832f,0.930256f},
+{0.0771954f,-0.387706f,0.918545f},{0.338345f,-0.336226f,0.878906f},{0.573425f,-0.101638f,0.812929f},
+{0.654623f,0.279956f,0.702206f},{0.53579f,0.60401f,0.590001f},{0.329575f,0.779685f,0.532421f},
+{0.106662f,0.843401f,0.526591f},{-0.0582746f,0.705608f,0.706202f},{-0.0917435f,0.688008f,0.719881f},
+{-0.18003f,0.977476f,0.110137f},{-0.357939f,0.891518f,0.277623f},{-0.615207f,0.644291f,0.454323f},
+{-0.732591f,0.34145f,0.588832f},{-0.750623f,0.0927056f,0.654195f},{-0.728923f,-0.0996895f,0.677299f},
+{-0.654723f,-0.300832f,0.693425f},{-0.44952f,-0.535469f,0.714986f},{-0.106872f,-0.711745f,0.69426f},
+{0.252943f,-0.755576f,0.604256f},{0.582754f,-0.663256f,0.469562f},{0.876843f,-0.377081f,0.298256f},
+{0.987578f,0.0908329f,0.128218f},{0.85011f,0.525354f,0.0362723f},{0.592618f,0.80484f,0.0321829f},
+{0.293156f,0.953591f,0.0687309f},{0.0880785f,0.946859f,0.309353f},{0.0767341f,0.944294f,0.320033f},
+{-0.156098f,0.986732f,-0.0446366f},{-0.281294f,0.959401f,0.0205867f},{-0.610051f,0.757103f,0.233735f},
+{-0.794174f,0.419187f,0.439966f},{-0.826092f,0.100254f,0.554546f},{-0.792747f,-0.146156f,0.59177f},
+{-0.710556f,-0.384711f,0.589158f},{-0.501651f,-0.653698f,0.566591f},{-0.133125f,-0.849606f,0.510341f},
+{0.253964f,-0.875214f,0.411708f},{0.584528f,-0.765206f,0.269789f},{0.86544f,-0.496404f,0.0677977f},
+{0.988373f,-0.0650512f,-0.13743f},{0.90281f,0.361254f,-0.2333f},{0.696363f,0.682041f,-0.223379f},
+{0.410113f,0.895258f,-0.174126f},{0.189645f,0.972416f,-0.135803f},{0.191705f,0.971681f,-0.138152f},
+{0.231123f,0.558736f,0.79649f},{0.229668f,0.394981f,0.889518f},{0.296793f,0.48526f,0.822458f},
+{0.27818f,0.361869f,0.889757f},{0.375088f,0.387566f,0.842082f},{0.318601f,0.309804f,0.895832f},
+{0.421505f,0.290791f,0.858938f},{0.336717f,0.261487f,0.90457f},{0.438512f,0.215537f,0.872497f},
+{0.337864f,0.234783f,0.911441f},{0.432128f,0.162153f,0.887114f},{0.333659f,0.221571f,0.916285f},
+{0.399382f,0.113997f,0.909669f},{0.318071f,0.203323f,0.926008f},{0.329136f,0.0589225f,0.942442f},
+{0.27612f,0.184141f,0.943319f},{0.221544f,0.00826301f,0.975115f},{0.217714f,0.184842f,0.95835f},
+{0.0944672f,-0.00852984f,0.995491f},{0.168781f,0.207319f,0.963604f},{-0.0290205f,0.0408228f,0.998745f},
+{0.137636f,0.23987f,0.960999f},{-0.120965f,0.170168f,0.977962f},{0.119261f,0.280396f,0.952447f},
+{-0.148983f,0.342615f,0.927587f},{0.114791f,0.328866f,0.937374f},{-0.106802f,0.487704f,0.866452f},
+{0.128197f,0.372061f,0.919313f},{-0.0195775f,0.569159f,0.821994f},{0.154669f,0.397586f,0.904435f},
+{0.0864366f,0.588895f,0.803574f},{0.188132f,0.405089f,0.894712f},{0.213787f,0.826684f,0.52047f},
+{0.332749f,0.699806f,0.632099f},{0.486569f,0.510276f,0.709133f},{0.562541f,0.316053f,0.763975f},
+{0.58474f,0.166722f,0.793903f},{0.577003f,0.0581448f,0.81467f},{0.5284f,-0.0497127f,0.847539f},
+{0.398676f,-0.186189f,0.897993f},{0.17981f,-0.319832f,0.930256f},{-0.0771954f,-0.387706f,0.918545f},
+{-0.338345f,-0.336226f,0.878906f},{-0.573425f,-0.101638f,0.812929f},{-0.654623f,0.279956f,0.702206f},
+{-0.535791f,0.60401f,0.590001f},{-0.329575f,0.779685f,0.53242f},{-0.106662f,0.843401f,0.526591f},
+{0.0582748f,0.705608f,0.706202f},{0.0917444f,0.688007f,0.719881f},{0.18003f,0.977476f,0.110137f},
+{0.35794f,0.891518f,0.277623f},{0.615207f,0.644291f,0.454323f},{0.732591f,0.341449f,0.588832f},
+{0.750623f,0.0927057f,0.654195f},{0.728923f,-0.0996895f,0.677299f},{0.654723f,-0.300832f,0.693425f},
+{0.44952f,-0.535469f,0.714986f},{0.106872f,-0.711745f,0.69426f},{-0.252943f,-0.755576f,0.604256f},
+{-0.582754f,-0.663256f,0.469562f},{-0.876843f,-0.377081f,0.298256f},{-0.987578f,0.0908331f,0.128219f},
+{-0.85011f,0.525354f,0.0362722f},{-0.592618f,0.80484f,0.0321824f},{-0.293156f,0.953591f,0.0687308f},
+{-0.0880785f,0.946859f,0.309353f},{-0.0767339f,0.944294f,0.320033f},{0.156098f,0.986732f,-0.0446371f},
+{0.281294f,0.959401f,0.0205868f},{0.610051f,0.757103f,0.233736f},{0.794174f,0.419187f,0.439966f},
+{0.826092f,0.100253f,0.554546f},{0.792747f,-0.146156f,0.591769f},{0.710556f,-0.384711f,0.589158f},
+{0.501651f,-0.653698f,0.566591f},{0.133125f,-0.849606f,0.510341f},{-0.253964f,-0.875214f,0.411708f},
+{-0.584528f,-0.765207f,0.269788f},{-0.86544f,-0.496404f,0.0677973f},{-0.988373f,-0.0650511f,-0.137429f},
+{-0.90281f,0.361254f,-0.2333f},{-0.696363f,0.682041f,-0.223379f},{-0.410113f,0.895258f,-0.174126f},
+{-0.189645f,0.972416f,-0.135803f},{-0.191705f,0.971681f,-0.138152f}
+},
+
+//lid 2
+{
+{0.187256f,0.116412f,-0.975389f},{0.129319f,-0.155775f,-0.979291f},{0.0579089f,-0.120735f,-0.990994f},
+{0.137498f,0.140876f,-0.980433f},{-0.0738917f,-0.0492811f,-0.996048f},{0.0954745f,0.189637f,-0.977201f},
+{-0.186073f,0.114379f,-0.975856f},{0.0656717f,0.26388f,-0.962317f},{-0.230893f,0.336505f,-0.912936f},
+{0.0590603f,0.34927f,-0.935159f},{-0.185953f,0.52868f,-0.828202f},{0.0783567f,0.419768f,-0.904243f},
+{-0.081558f,0.640475f,-0.763636f},{0.115249f,0.462736f,-0.878973f},{0.0452996f,0.67806f,-0.733609f},
+{0.163262f,0.479446f,-0.862251f},{0.176397f,0.659123f,-0.731054f},{0.220148f,0.470118f,-0.854707f},
+{0.301033f,0.59221f,-0.74744f},{0.279072f,0.432589f,-0.857313f},{0.403142f,0.486599f,-0.775047f},
+{0.325609f,0.373537f,-0.86859f},{0.466056f,0.363663f,-0.806561f},{0.349637f,0.31003f,-0.884101f},
+{0.484992f,0.244556f,-0.839628f},{0.352937f,0.25237f,-0.900969f},{0.462945f,0.13394f,-0.876209f},
+{0.337758f,0.197705f,-0.920235f},{0.401344f,0.0292842f,-0.915459f},{0.300295f,0.147658f,-0.942348f},
+{0.305224f,-0.0606399f,-0.950348f},{0.24473f,0.117415f,-0.962456f},{0.00340102f,-0.529962f,-0.848015f},
+{-0.0938613f,-0.478074f,-0.87329f},{-0.352454f,-0.406562f,-0.842902f},{-0.61385f,-0.160057f,-0.773027f},
+{-0.728006f,0.248101f,-0.639103f},{-0.613132f,0.611566f,-0.500057f},{-0.387794f,0.814176f,-0.432126f},
+{-0.143534f,0.892502f,-0.427596f},{0.0984222f,0.883124f,-0.458699f},{0.328302f,0.790308f,-0.51733f},
+{0.515789f,0.617037f,-0.594329f},{0.626024f,0.405388f,-0.666149f},{0.660135f,0.204925f,-0.722654f},
+{0.630921f,0.0188943f,-0.775617f},{0.52944f,-0.167059f,-0.831736f},{0.354696f,-0.333342f,-0.873541f},
+{0.243538f,-0.22025f,-0.944552f},{0.289875f,-0.232645f,-0.928358f},{-0.102856f,-0.809156f,-0.578522f},
+{-0.250447f,-0.767445f,-0.590174f},{-0.588122f,-0.665757f,-0.459217f},{-0.891009f,-0.37675f,-0.253303f},
+{-0.996878f,0.0697304f,-0.0370518f},{-0.868428f,0.488907f,0.0824813f},{-0.61914f,0.780765f,0.0840951f},
+{-0.313284f,0.949395f,0.0224016f},{0.0164307f,0.997917f,-0.0623912f},{0.342913f,0.922407f,-0.177695f},
+{0.620304f,0.711419f,-0.330312f},{0.779717f,0.412151f,-0.471353f},{0.821408f,0.11749f,-0.558109f},
+{0.780344f,-0.153673f,-0.606174f},{0.638631f,-0.418378f,-0.645841f},{0.382109f,-0.635191f,-0.671212f},
+{0.220792f,-0.550559f,-0.805069f},{0.263945f,-0.568498f,-0.779194f},{-0.135299f,-0.871634f,-0.471114f},
+{-0.249238f,-0.864706f,-0.436078f},{-0.599387f,-0.748603f,-0.283423f},{-0.885957f,-0.462876f,-0.0287339f},
+{-0.973386f,-0.055693f,0.222302f},{-0.882814f,0.320471f,0.343421f},{-0.69843f,0.628487f,0.342344f},
+{-0.425676f,0.863021f,0.272019f},{-0.0871386f,0.980548f,0.175874f},{0.268067f,0.961922f,0.0533471f},
+{0.599281f,0.790612f,-0.12568f},{0.819088f,0.473157f,-0.324372f},{0.881267f,0.120534f,-0.45699f},
+{0.838241f,-0.197245f,-0.508376f},{0.698173f,-0.493499f,-0.518664f},{0.435853f,-0.735407f,-0.518853f},
+{0.206757f,-0.833563f,-0.512273f},{0.22074f,-0.837852f,-0.499277f},{-0.129319f,-0.155775f,-0.979291f},
+{-0.187257f,0.116412f,-0.975389f},{-0.0579092f,-0.120735f,-0.990994f},{-0.137498f,0.140876f,-0.980433f},
+{0.0738916f,-0.0492814f,-0.996048f},{-0.0954751f,0.189636f,-0.977201f},{0.186073f,0.11438f,-0.975855f},
+{-0.0656712f,0.263882f,-0.962317f},{0.230893f,0.336506f,-0.912936f},{-0.05906f,0.349268f,-0.93516f},
+{0.185953f,0.528679f,-0.828203f},{-0.0783569f,0.419768f,-0.904243f},{0.0815577f,0.640475f,-0.763636f},
+{-0.11525f,0.462736f,-0.878973f},{-0.0452998f,0.67806f,-0.733609f},{-0.163262f,0.479446f,-0.862251f},
+{-0.176397f,0.659123f,-0.731054f},{-0.220148f,0.470118f,-0.854707f},{-0.301033f,0.592211f,-0.747439f},
+{-0.279072f,0.432589f,-0.857313f},{-0.403142f,0.486599f,-0.775047f},{-0.32561f,0.373536f,-0.86859f},
+{-0.466056f,0.363663f,-0.806561f},{-0.349637f,0.310031f,-0.884101f},{-0.484992f,0.244557f,-0.839628f},
+{-0.352937f,0.25237f,-0.900969f},{-0.462945f,0.13394f,-0.876209f},{-0.337758f,0.197703f,-0.920235f},
+{-0.401345f,0.0292838f,-0.915459f},{-0.300296f,0.147658f,-0.942348f},{-0.305224f,-0.0606397f,-0.950348f},
+{-0.24473f,0.117415f,-0.962456f},{-0.00340093f,-0.529962f,-0.848015f},{0.0938612f,-0.478075f,-0.87329f},
+{0.352454f,-0.406562f,-0.842902f},{0.61385f,-0.160057f,-0.773027f},{0.728006f,0.248101f,-0.639103f},
+{0.613132f,0.611566f,-0.500057f},{0.387794f,0.814176f,-0.432126f},{0.143534f,0.892502f,-0.427596f},
+{-0.0984221f,0.883124f,-0.458699f},{-0.328302f,0.790308f,-0.517331f},{-0.515789f,0.617037f,-0.594329f},
+{-0.626024f,0.405389f,-0.666149f},{-0.660135f,0.204925f,-0.722653f},{-0.63092f,0.018894f,-0.775617f},
+{-0.529439f,-0.167059f,-0.831736f},{-0.354696f,-0.333342f,-0.873541f},{-0.243538f,-0.22025f,-0.944552f},
+{-0.289875f,-0.232645f,-0.928358f},{0.102856f,-0.809156f,-0.578522f},{0.250447f,-0.767445f,-0.590174f},
+{0.588122f,-0.665757f,-0.459217f},{0.891009f,-0.37675f,-0.253303f},{0.996878f,0.0697302f,-0.0370519f},
+{0.868427f,0.488908f,0.0824812f},{0.61914f,0.780765f,0.0840952f},{0.313285f,0.949395f,0.0224016f},
+{-0.0164307f,0.997917f,-0.0623912f},{-0.342913f,0.922407f,-0.177696f},{-0.620304f,0.711419f,-0.330313f},
+{-0.779717f,0.412152f,-0.471352f},{-0.821408f,0.11749f,-0.558108f},{-0.780344f,-0.153673f,-0.606175f},
+{-0.638631f,-0.418378f,-0.645841f},{-0.38211f,-0.635191f,-0.671212f},{-0.220793f,-0.550559f,-0.805068f},
+{-0.263945f,-0.568497f,-0.779194f},{0.135299f,-0.871634f,-0.471114f},{0.249238f,-0.864706f,-0.436078f},
+{0.599387f,-0.748603f,-0.283424f},{0.885957f,-0.462876f,-0.0287343f},{0.973386f,-0.0556929f,0.222302f},
+{0.882814f,0.32047f,0.343421f},{0.69843f,0.628487f,0.342344f},{0.425676f,0.863021f,0.272019f},
+{0.0871387f,0.980548f,0.175874f},{-0.268067f,0.961922f,0.0533472f},{-0.599281f,0.790612f,-0.12568f},
+{-0.819088f,0.473157f,-0.324372f},{-0.881267f,0.120534f,-0.45699f},{-0.838241f,-0.197244f,-0.508376f},
+{-0.698173f,-0.4935f,-0.518664f},{-0.435853f,-0.735407f,-0.518853f},{-0.206757f,-0.833563f,-0.512274f},
+{-0.220741f,-0.837852f,-0.499276f},{-0.25909f,0.275155f,0.925831f},{-0.260689f,0.411094f,0.873524f},
+{-0.317162f,0.351731f,0.880735f},{-0.303933f,0.249266f,0.919506f},{-0.386375f,0.278498f,0.879291f},
+{-0.337758f,0.208897f,0.917759f},{-0.432851f,0.205417f,0.877749f},{-0.352056f,0.172151f,0.920011f},
+{-0.456366f,0.140033f,0.878704f},{-0.353222f,0.148434f,0.923689f},{-0.455199f,0.074466f,0.88727f},
+{-0.346659f,0.125659f,0.929536f},{-0.417496f,-0.00714653f,0.908651f},{-0.320588f,0.0897104f,0.942961f},
+{-0.327345f,-0.104932f,0.93906f},{-0.26398f,0.0534085f,0.963048f},{-0.192886f,-0.188203f,0.963003f},
+{-0.19785f,0.0430034f,0.979288f},{-0.0492551f,-0.219339f,0.974405f},{-0.152308f,0.0574572f,0.986662f},
+{0.0717795f,-0.1755f,0.981859f},{-0.129198f,0.08014f,0.988375f},{0.147879f,-0.0481031f,0.987835f},
+{-0.116173f,0.112476f,0.98684f},{0.154069f,0.137754f,0.97841f},{-0.114789f,0.165197f,0.979558f},
+{0.0873191f,0.307741f,0.947455f},{-0.135074f,0.224582f,0.965048f},{-0.0179641f,0.406632f,0.913415f},
+{-0.172292f,0.265112f,0.9487f},{-0.128381f,0.433488f,0.891968f},{-0.214693f,0.280536f,0.935525f},
+{-0.245676f,0.670307f,0.700237f},{-0.3474f,0.544072f,0.76374f},{-0.479751f,0.386625f,0.78763f},
+{-0.557924f,0.231905f,0.796832f},{-0.598018f,0.101114f,0.795079f},{-0.607651f,-0.027379f,0.793732f},
+{-0.558296f,-0.19439f,0.806547f},{-0.397246f,-0.396803f,0.827492f},{-0.137564f,-0.552716f,0.821937f},
+{0.13254f,-0.603532f,0.786246f},{0.372904f,-0.543639f,0.751931f},{0.581714f,-0.336158f,0.74068f},
+{0.668633f,0.0458593f,0.742177f},{0.534189f,0.433018f,0.726043f},{0.285923f,0.644991f,0.708685f},
+{0.0453926f,0.700839f,0.711874f},{-0.108407f,0.543837f,0.832159f},{-0.14636f,0.521887f,0.840365f},
+{-0.21819f,0.908956f,0.355236f},{-0.37833f,0.784453f,0.491427f},{-0.599202f,0.541926f,0.589299f},
+{-0.711835f,0.275202f,0.646185f},{-0.754253f,0.0427209f,0.655192f},{-0.755977f,-0.18121f,0.629016f},
+{-0.675388f,-0.448443f,0.585449f},{-0.432908f,-0.72345f,0.537783f},{-0.0651935f,-0.876173f,0.477568f},
+{0.28624f,-0.870309f,0.400785f},{0.585434f,-0.749534f,0.308975f},{0.849956f,-0.483778f,0.208648f},
+{0.988981f,-0.0370003f,0.143341f},{0.877374f,0.453848f,0.15568f},{0.581119f,0.781752f,0.226196f},
+{0.246531f,0.919117f,0.307321f},{0.0350671f,0.839431f,0.542334f},{0.00382345f,0.823531f,0.567259f},
+{-0.199301f,0.957252f,0.209638f},{-0.313378f,0.912873f,0.261643f},{-0.604842f,0.684644f,0.40673f},
+{-0.768845f,0.368021f,0.522913f},{-0.820627f,0.0645513f,0.567806f},{-0.811706f,-0.213571f,0.543618f},
+{-0.72293f,-0.512783f,0.463062f},{-0.476565f,-0.803756f,0.356177f},{-0.0965455f,-0.958156f,0.269474f},
+{0.275182f,-0.938919f,0.206655f},{0.589036f,-0.798747f,0.122636f},{0.849483f,-0.527538f,-0.00910188f},
+{0.984391f,-0.112052f,-0.135719f},{0.925676f,0.342887f,-0.159849f},{0.702208f,0.708021f,-0.0749055f},
+{0.382441f,0.923041f,0.0416495f},{0.150729f,0.982769f,0.106983f},{0.147868f,0.982829f,0.110375f},
+{0.260689f,0.411093f,0.873524f},{0.25909f,0.275155f,0.92583f},{0.317162f,0.351731f,0.880735f},
+{0.303932f,0.249266f,0.919506f},{0.386375f,0.278498f,0.879291f},{0.337757f,0.208897f,0.917759f},
+{0.432851f,0.205417f,0.877749f},{0.352056f,0.172151f,0.920011f},{0.456366f,0.140033f,0.878704f},
+{0.353222f,0.148434f,0.923689f},{0.455199f,0.0744661f,0.88727f},{0.346659f,0.125659f,0.929536f},
+{0.417496f,-0.00714663f,0.908651f},{0.320588f,0.0897105f,0.942961f},{0.327345f,-0.104932f,0.93906f},
+{0.26398f,0.0534084f,0.963048f},{0.192886f,-0.188203f,0.963003f},{0.197851f,0.0430034f,0.979288f},
+{0.0492551f,-0.219339f,0.974405f},{0.152308f,0.0574573f,0.986662f},{-0.0717796f,-0.1755f,0.981859f},
+{0.129198f,0.0801399f,0.988375f},{-0.147879f,-0.048103f,0.987835f},{0.116173f,0.112476f,0.98684f},
+{-0.154069f,0.137754f,0.97841f},{0.114789f,0.165197f,0.979558f},{-0.0873192f,0.307741f,0.947455f},
+{0.135074f,0.224582f,0.965048f},{0.0179641f,0.406632f,0.913415f},{0.172292f,0.265112f,0.9487f},
+{0.128382f,0.433487f,0.891968f},{0.214693f,0.280536f,0.935525f},{0.245676f,0.670307f,0.700237f},
+{0.3474f,0.544072f,0.76374f},{0.479751f,0.386625f,0.78763f},{0.557924f,0.231905f,0.796832f},
+{0.598018f,0.101113f,0.795079f},{0.607651f,-0.0273789f,0.793732f},{0.558296f,-0.19439f,0.806547f},
+{0.397246f,-0.396803f,0.827492f},{0.137564f,-0.552716f,0.821937f},{-0.13254f,-0.603532f,0.786246f},
+{-0.372904f,-0.543639f,0.751931f},{-0.581714f,-0.336158f,0.740679f},{-0.668633f,0.0458594f,0.742177f},
+{-0.534188f,0.433018f,0.726043f},{-0.285924f,0.644991f,0.708685f},{-0.0453924f,0.700838f,0.711874f},
+{0.108408f,0.543836f,0.83216f},{0.14636f,0.521887f,0.840365f},{0.21819f,0.908956f,0.355237f},
+{0.37833f,0.784453f,0.491427f},{0.599202f,0.541926f,0.589299f},{0.711835f,0.275203f,0.646185f},
+{0.754253f,0.0427209f,0.655192f},{0.755977f,-0.18121f,0.629017f},{0.675388f,-0.448443f,0.585449f},
+{0.432908f,-0.72345f,0.537783f},{0.0651936f,-0.876173f,0.477568f},{-0.28624f,-0.870309f,0.400785f},
+{-0.585434f,-0.749534f,0.308976f},{-0.849956f,-0.483778f,0.208648f},{-0.988981f,-0.0370008f,0.14334f},
+{-0.877374f,0.453849f,0.15568f},{-0.581118f,0.781752f,0.226197f},{-0.246531f,0.919117f,0.307321f},
+{-0.0350672f,0.839431f,0.542333f},{-0.0038228f,0.823531f,0.567259f},{0.199301f,0.957252f,0.209638f},
+{0.313378f,0.912873f,0.261644f},{0.604842f,0.684644f,0.40673f},{0.768845f,0.368021f,0.522914f},
+{0.820627f,0.0645516f,0.567806f},{0.811706f,-0.213571f,0.543618f},{0.722929f,-0.512783f,0.463062f},
+{0.476565f,-0.803756f,0.356177f},{0.0965456f,-0.958156f,0.269474f},{-0.275182f,-0.938919f,0.206655f},
+{-0.589036f,-0.798747f,0.122636f},{-0.849483f,-0.527538f,-0.00910149f},{-0.984391f,-0.112052f,-0.135719f},
+{-0.925676f,0.342887f,-0.159849f},{-0.702208f,0.708021f,-0.0749052f},{-0.382441f,0.923041f,0.0416498f},
+{-0.150728f,0.982769f,0.106983f},{-0.147869f,0.982829f,0.110375f}
+},
+
+//lid 1
+{
+{0.170033f,-0.0808841f,-0.982113f},{0.0991637f,-0.351643f,-0.930867f},{0.0327961f,-0.322779f,-0.945906f},
+{0.127706f,-0.063447f,-0.989781f},{-0.086217f,-0.267487f,-0.959696f},{0.0961476f,-0.0272848f,-0.994993f},
+{-0.181751f,-0.127272f,-0.975074f},{0.0739063f,0.0353914f,-0.996637f},{-0.215664f,0.0915415f,-0.972167f},
+{0.0716391f,0.12319f,-0.989794f},{-0.16116f,0.311979f,-0.936321f},{0.0969912f,0.209661f,-0.972952f},
+{-0.046894f,0.454896f,-0.889309f},{0.141817f,0.267782f,-0.952985f},{0.0844277f,0.508821f,-0.856722f},
+{0.194301f,0.292492f,-0.93632f},{0.212463f,0.495016f,-0.842507f},{0.24922f,0.287968f,-0.924643f},
+{0.328265f,0.43128f,-0.840381f},{0.300985f,0.256755f,-0.918415f},{0.419234f,0.333799f,-0.844287f},
+{0.338886f,0.207317f,-0.917701f},{0.473826f,0.221963f,-0.852186f},{0.35754f,0.153168f,-0.921252f},
+{0.489045f,0.106572f,-0.865724f},{0.359076f,0.0964688f,-0.928309f},{0.463733f,-0.0144368f,-0.885857f},
+{0.339982f,0.0312277f,-0.939913f},{0.394368f,-0.138702f,-0.908425f},{0.293215f,-0.0338574f,-0.955447f},
+{0.28677f,-0.245835f,-0.92592f},{0.228639f,-0.0745071f,-0.970656f},{-0.0325453f,-0.68793f,-0.725047f},
+{-0.127355f,-0.639044f,-0.758554f},{-0.364076f,-0.573592f,-0.733786f},{-0.596709f,-0.366853f,-0.713692f},
+{-0.722067f,0.0228584f,-0.691446f},{-0.613531f,0.44611f,-0.651587f},{-0.35934f,0.699754f,-0.61743f},
+{-0.0981476f,0.785488f,-0.611045f},{0.139556f,0.766936f,-0.626366f},{0.355613f,0.66565f,-0.656087f},
+{0.527228f,0.494736f,-0.690845f},{0.628305f,0.295939f,-0.719481f},{0.663179f,0.0997115f,-0.741789f},
+{0.635683f,-0.105603f,-0.764693f},{0.52601f,-0.323037f,-0.78674f},{0.334451f,-0.507225f,-0.79427f},
+{0.212833f,-0.406554f,-0.888491f},{0.263052f,-0.41547f,-0.87074f},{-0.128016f,-0.904378f,-0.407079f},
+{-0.279766f,-0.859132f,-0.428513f},{-0.595541f,-0.737597f,-0.318249f},{-0.867722f,-0.465516f,-0.174224f},
+{-0.997693f,-0.0361903f,-0.0574295f},{-0.89954f,0.435753f,-0.03076f},{-0.618557f,0.779961f,-0.0951219f},
+{-0.277132f,0.94154f,-0.191575f},{0.0567628f,0.959392f,-0.276306f},{0.367868f,0.857611f,-0.359411f},
+{0.623082f,0.636977f,-0.453903f},{0.771953f,0.34731f,-0.532415f},{0.820825f,0.0532505f,-0.568692f},
+{0.786007f,-0.245625f,-0.567328f},{0.636046f,-0.542784f,-0.548481f},{0.366481f,-0.767941f,-0.525317f},
+{0.19982f,-0.715118f,-0.669835f},{0.230048f,-0.72379f,-0.650543f},{-0.153901f,-0.944866f,-0.289037f},
+{-0.27318f,-0.925861f,-0.261063f},{-0.612847f,-0.778574f,-0.135058f},{-0.871441f,-0.486954f,0.0588787f},
+{-0.968914f,-0.0944346f,0.228664f},{-0.908279f,0.309565f,0.281424f},{-0.714681f,0.667427f,0.209219f},
+{-0.406015f,0.911098f,0.0710771f},{-0.0481226f,0.997305f,-0.0553851f},{0.299353f,0.941114f,-0.15714f},
+{0.604763f,0.747553f,-0.274638f},{0.80719f,0.435193f,-0.398812f},{0.877878f,0.0840118f,-0.471458f},
+{0.843833f,-0.263295f,-0.46757f},{0.69423f,-0.590936f,-0.4109f},{0.421959f,-0.834474f,-0.354407f},
+{0.195816f,-0.924426f,-0.327249f},{0.200539f,-0.924982f,-0.322788f},{-0.0991637f,-0.351643f,-0.930867f},
+{-0.170033f,-0.080884f,-0.982113f},{-0.0327961f,-0.322779f,-0.945906f},{-0.127706f,-0.0634469f,-0.989781f},
+{0.0862171f,-0.267487f,-0.959696f},{-0.0961476f,-0.0272849f,-0.994993f},{0.181751f,-0.127272f,-0.975074f},
+{-0.0739063f,0.0353914f,-0.996637f},{0.215664f,0.0915414f,-0.972167f},{-0.0716392f,0.12319f,-0.989794f},
+{0.16116f,0.311979f,-0.936321f},{-0.0969912f,0.209661f,-0.972952f},{0.0468939f,0.454896f,-0.889309f},
+{-0.141817f,0.267782f,-0.952985f},{-0.0844277f,0.508821f,-0.856722f},{-0.194301f,0.292492f,-0.93632f},
+{-0.212463f,0.495016f,-0.842507f},{-0.24922f,0.287968f,-0.924643f},{-0.328265f,0.43128f,-0.840381f},
+{-0.300984f,0.256755f,-0.918415f},{-0.419234f,0.333799f,-0.844287f},{-0.338886f,0.207317f,-0.917701f},
+{-0.473826f,0.221963f,-0.852186f},{-0.35754f,0.153168f,-0.921252f},{-0.489045f,0.106571f,-0.865724f},
+{-0.359076f,0.0964685f,-0.928309f},{-0.463733f,-0.014437f,-0.885857f},{-0.339982f,0.0312277f,-0.939913f},
+{-0.394368f,-0.138702f,-0.908425f},{-0.293215f,-0.0338572f,-0.955447f},{-0.28677f,-0.245835f,-0.92592f},
+{-0.228639f,-0.0745069f,-0.970656f},{0.0325452f,-0.68793f,-0.725047f},{0.127355f,-0.639044f,-0.758554f},
+{0.364076f,-0.573592f,-0.733786f},{0.596709f,-0.366853f,-0.713692f},{0.722066f,0.0228584f,-0.691446f},
+{0.613531f,0.446109f,-0.651587f},{0.35934f,0.699754f,-0.61743f},{0.0981477f,0.785488f,-0.611045f},
+{-0.139556f,0.766936f,-0.626366f},{-0.355613f,0.66565f,-0.656087f},{-0.527228f,0.494736f,-0.690845f},
+{-0.628305f,0.295939f,-0.719481f},{-0.663179f,0.0997115f,-0.741789f},{-0.635683f,-0.105603f,-0.764693f},
+{-0.52601f,-0.323037f,-0.78674f},{-0.334451f,-0.507225f,-0.79427f},{-0.212833f,-0.406554f,-0.888491f},
+{-0.263052f,-0.41547f,-0.87074f},{0.128016f,-0.904378f,-0.407079f},{0.279766f,-0.859132f,-0.428513f},
+{0.595541f,-0.737597f,-0.318249f},{0.867721f,-0.465516f,-0.174224f},{0.997693f,-0.0361901f,-0.0574301f},
+{0.89954f,0.435753f,-0.0307605f},{0.618557f,0.779961f,-0.0951221f},{0.277132f,0.94154f,-0.191575f},
+{-0.0567628f,0.959392f,-0.276306f},{-0.367868f,0.857611f,-0.359411f},{-0.623082f,0.636978f,-0.453903f},
+{-0.771953f,0.34731f,-0.532415f},{-0.820825f,0.0532507f,-0.568692f},{-0.786007f,-0.245625f,-0.567328f},
+{-0.636046f,-0.542784f,-0.548481f},{-0.366481f,-0.767941f,-0.525317f},{-0.199821f,-0.715118f,-0.669835f},
+{-0.230048f,-0.723789f,-0.650544f},{0.153902f,-0.944866f,-0.289038f},{0.27318f,-0.925861f,-0.261063f},
+{0.612847f,-0.778574f,-0.135058f},{0.871441f,-0.486954f,0.058879f},{0.968914f,-0.0944348f,0.228664f},
+{0.908278f,0.309565f,0.281425f},{0.714681f,0.667427f,0.209219f},{0.406015f,0.911098f,0.0710772f},
+{0.0481226f,0.997305f,-0.0553851f},{-0.299353f,0.941114f,-0.157141f},{-0.604763f,0.747553f,-0.274638f},
+{-0.80719f,0.435193f,-0.398812f},{-0.877878f,0.084012f,-0.471458f},{-0.843833f,-0.263295f,-0.46757f},
+{-0.69423f,-0.590936f,-0.410901f},{-0.421959f,-0.834474f,-0.354407f},{-0.195816f,-0.924426f,-0.327249f},
+{-0.200539f,-0.924982f,-0.322788f},{-0.274592f,0.174388f,0.945615f},{-0.279076f,0.301266f,0.911787f},
+{-0.329298f,0.2523f,0.909894f},{-0.314928f,0.1548f,0.936406f},{-0.393562f,0.19355f,0.898692f},
+{-0.344531f,0.121609f,0.930865f},{-0.440573f,0.129756f,0.88829f},{-0.358316f,0.0865385f,0.929581f},
+{-0.468003f,0.0598531f,0.881698f},{-0.359773f,0.0538913f,0.931482f},{-0.468217f,-0.0283813f,0.883158f},
+{-0.348396f,0.0130349f,0.937257f},{-0.422712f,-0.146026f,0.894422f},{-0.311357f,-0.0425276f,0.949341f},
+{-0.314744f,-0.27671f,0.907947f},{-0.244768f,-0.0926729f,0.965143f},{-0.162371f,-0.373759f,0.913203f},
+{-0.175774f,-0.11056f,0.978202f},{-0.0114407f,-0.403112f,0.915079f},{-0.132327f,-0.100493f,0.986099f},
+{0.105896f,-0.3578f,0.927774f},{-0.111692f,-0.0809213f,0.990443f},{0.173376f,-0.234368f,0.956563f},
+{-0.0998722f,-0.0481502f,0.993835f},{0.168055f,-0.0433064f,0.984826f},{-0.101326f,0.0145724f,0.994747f},
+{0.0843648f,0.148394f,0.985323f},{-0.130019f,0.0931257f,0.987129f},{-0.0359753f,0.269135f,0.96243f},
+{-0.178792f,0.15071f,0.972276f},{-0.151761f,0.310221f,0.938473f},{-0.229283f,0.174998f,0.957499f},
+{-0.2678f,0.5358f,0.800751f},{-0.35637f,0.423467f,0.832872f},{-0.476561f,0.294623f,0.828304f},
+{-0.558104f,0.164185f,0.813365f},{-0.609262f,0.0354151f,0.792178f},{-0.62625f,-0.121961f,0.770023f},
+{-0.567602f,-0.338786f,0.750368f},{-0.380861f,-0.573083f,0.725617f},{-0.102764f,-0.720569f,0.685726f},
+{0.167181f,-0.746836f,0.643651f},{0.393748f,-0.676346f,0.62251f},{0.583979f,-0.49102f,0.646427f},
+{0.672544f,-0.139115f,0.726865f},{0.53245f,0.270395f,0.802112f},{0.252808f,0.510165f,0.822083f},
+{-0.000430566f,0.567174f,0.823598f},{-0.144443f,0.416356f,0.897655f},{-0.17502f,0.398991f,0.900097f},
+{-0.244077f,0.810462f,0.532521f},{-0.388554f,0.67049f,0.632036f},{-0.585245f,0.450842f,0.673966f},
+{-0.698492f,0.217713f,0.681697f},{-0.757717f,-0.00531936f,0.652561f},{-0.770035f,-0.256798f,0.584039f},
+{-0.673661f,-0.561197f,0.480873f},{-0.405964f,-0.834516f,0.372525f},{-0.037435f,-0.955912f,0.291259f},
+{0.30449f,-0.923199f,0.234498f},{0.590489f,-0.787303f,0.177417f},{0.834721f,-0.536296f,0.125006f},
+{0.983082f,-0.12496f,0.133923f},{0.894006f,0.377014f,0.242101f},{0.565197f,0.73007f,0.384122f},
+{0.199286f,0.847592f,0.491806f},{-0.012911f,0.718485f,0.695423f},{-0.0557474f,0.689361f,0.722269f},
+{-0.227453f,0.884551f,0.407227f},{-0.333236f,0.830407f,0.446518f},{-0.595902f,0.602506f,0.530931f},
+{-0.750001f,0.315665f,0.581252f},{-0.817264f,0.0288773f,0.575539f},{-0.822818f,-0.269884f,0.500134f},
+{-0.71988f,-0.598072f,0.352255f},{-0.447652f,-0.874512f,0.186644f},{-0.0739497f,-0.993583f,0.0855858f},
+{0.287303f,-0.956873f,0.0430333f},{0.596468f,-0.802625f,-0.0044153f},{0.842439f,-0.531975f,-0.0854336f},
+{0.979279f,-0.138682f,-0.147577f},{0.942167f,0.319173f,-0.102225f},{0.704603f,0.707437f,0.0553817f},
+{0.351449f,0.908373f,0.226586f},{0.114208f,0.945229f,0.305776f},{0.0986314f,0.941089f,0.323454f},
+{0.279076f,0.301266f,0.911787f},{0.274592f,0.174388f,0.945615f},{0.329298f,0.2523f,0.909894f},
+{0.314929f,0.1548f,0.936406f},{0.393563f,0.19355f,0.898692f},{0.344531f,0.121608f,0.930865f},
+{0.440574f,0.129756f,0.88829f},{0.358316f,0.0865388f,0.929581f},{0.468003f,0.0598537f,0.881698f},
+{0.359773f,0.0538922f,0.931482f},{0.468217f,-0.0283817f,0.883158f},{0.348396f,0.0130332f,0.937257f},
+{0.422711f,-0.146026f,0.894422f},{0.311357f,-0.0425282f,0.949341f},{0.314744f,-0.27671f,0.907947f},
+{0.244769f,-0.0926728f,0.965142f},{0.162371f,-0.373759f,0.913203f},{0.175773f,-0.11056f,0.978203f},
+{0.0114408f,-0.403112f,0.915079f},{0.132328f,-0.100494f,0.986099f},{-0.105896f,-0.3578f,0.927774f},
+{0.111692f,-0.0809209f,0.990443f},{-0.173376f,-0.234368f,0.956563f},{0.0998722f,-0.0481507f,0.993835f},
+{-0.168055f,-0.0433065f,0.984826f},{0.101326f,0.0145723f,0.994747f},{-0.0843647f,0.148394f,0.985323f},
+{0.130019f,0.0931262f,0.987128f},{0.0359753f,0.269135f,0.96243f},{0.178792f,0.150709f,0.972276f},
+{0.151761f,0.310221f,0.938473f},{0.229284f,0.174998f,0.957499f},{0.2678f,0.5358f,0.800751f},
+{0.35637f,0.423467f,0.832872f},{0.476561f,0.294623f,0.828304f},{0.558104f,0.164184f,0.813365f},
+{0.609262f,0.0354153f,0.792177f},{0.626251f,-0.121961f,0.770023f},{0.567602f,-0.338786f,0.750368f},
+{0.380861f,-0.573083f,0.725617f},{0.102764f,-0.720569f,0.685726f},{-0.167181f,-0.746836f,0.643651f},
+{-0.393747f,-0.676347f,0.622509f},{-0.583979f,-0.49102f,0.646427f},{-0.672543f,-0.139115f,0.726865f},
+{-0.53245f,0.270395f,0.802112f},{-0.252808f,0.510165f,0.822083f},{0.000430498f,0.567174f,0.823598f},
+{0.144443f,0.416356f,0.897655f},{0.17502f,0.398991f,0.900097f},{0.244077f,0.810462f,0.532521f},
+{0.388554f,0.67049f,0.632036f},{0.585245f,0.450842f,0.673966f},{0.698492f,0.217713f,0.681697f},
+{0.757717f,-0.00531963f,0.652562f},{0.770035f,-0.256798f,0.584039f},{0.673661f,-0.561197f,0.480873f},
+{0.405965f,-0.834516f,0.372525f},{0.0374351f,-0.955912f,0.291259f},{-0.30449f,-0.923199f,0.234498f},
+{-0.590489f,-0.787303f,0.177417f},{-0.834721f,-0.536297f,0.125006f},{-0.983082f,-0.12496f,0.133923f},
+{-0.894006f,0.377014f,0.242101f},{-0.565197f,0.73007f,0.384122f},{-0.199286f,0.847592f,0.491806f},
+{0.012911f,0.718485f,0.695423f},{0.0557474f,0.689362f,0.722269f},{0.227453f,0.884551f,0.407227f},
+{0.333236f,0.830407f,0.446518f},{0.595902f,0.602506f,0.53093f},{0.750001f,0.315666f,0.581252f},
+{0.817264f,0.0288774f,0.575539f},{0.822817f,-0.269884f,0.500134f},{0.71988f,-0.598072f,0.352255f},
+{0.447652f,-0.874512f,0.186644f},{0.0739498f,-0.993583f,0.0855857f},{-0.287303f,-0.956873f,0.0430335f},
+{-0.596468f,-0.802625f,-0.00441504f},{-0.842439f,-0.531975f,-0.0854334f},{-0.979279f,-0.138682f,-0.147577f},
+{-0.942167f,0.319173f,-0.102225f},{-0.704604f,0.707437f,0.0553818f},{-0.351449f,0.908373f,0.226586f},
+{-0.114207f,0.945229f,0.305777f},{-0.0986314f,0.941089f,0.323454f}
+}
+
+};
+
+static GLfloat textures [84][2] = {
+//lid 1
+{0.0f,1.0f},{0.0f,0.875f},{0.0625f,0.875f},
+{0.0625f,1.0f},{0.125f,0.875f},{0.125f,1.0f},
+{0.1875f,0.875f},{0.1875f,1.0f},{0.25f,0.875f},
+{0.25f,1.0f},{0.3125f,0.875f},{0.3125f,1.0f},
+{0.375f,0.875f},{0.375f,1.0f},{0.4375f,0.875f},
+{0.4375f,1.0f},{0.5f,0.875f},{0.5f,1.0f},
+{0.5625f,0.875f},{0.5625f,1.0f},{0.625f,0.875f},
+{0.625f,1.0f},{0.6875f,0.875f},{0.6875f,1.0f},
+{0.75f,0.875f},{0.75f,1.0f},{0.8125f,0.875f},
+{0.8125f,1.0f},{0.875f,0.875f},{0.875f,1.0f},
+{0.9375f,0.875f},{0.9375f,1.0f},{1.0f,0.875f},
+{0.0f,0.75f},{0.0625f,0.75f},{0.125f,0.75f},
+{0.1875f,0.75f},{0.25f,0.75f},{0.3125f,0.75f},
+{0.375f,0.75f},{0.4375f,0.75f},{0.5f,0.75f},
+{0.5625f,0.75f},{0.625f,0.75f},{0.6875f,0.75f},
+{0.75f,0.75f},{0.8125f,0.75f},{0.875f,0.75f},
+{0.9375f,0.75f},{1.0f,0.75f},{0.0f,0.625f},
+{0.0625f,0.625f},{0.125f,0.625f},{0.1875f,0.625f},
+{0.25f,0.625f},{0.3125f,0.625f},{0.375f,0.625f},
+{0.4375f,0.625f},{0.5f,0.625f},{0.5625f,0.625f},
+{0.625f,0.625f},{0.6875f,0.625f},{0.75f,0.625f},
+{0.8125f,0.625f},{0.875f,0.625f},{0.9375f,0.625f},
+{1.0f,0.625f},{0.0f,0.5f},{0.0625f,0.5f},
+{0.125f,0.5f},{0.1875f,0.5f},{0.25f,0.5f},
+{0.3125f,0.5f},{0.375f,0.5f},{0.4375f,0.5f},
+{0.5f,0.5f},{0.5625f,0.5f},{0.625f,0.5f},
+{0.6875f,0.5f},{0.75f,0.5f},{0.8125f,0.5f},
+{0.875f,0.5f},{0.9375f,0.5f},{1.0f,0.5f}
+};
+
+static int material_ref [1][2] = {
+{0,448}
+};
+
+static void MyMaterial(GLenum mode,GLfloat *f,GLfloat alpha)
+{
+ GLfloat d[4];
+ d[0]=f[0];
+ d[1]=f[1];
+ d[2]=f[2];
+ d[3]=alpha;
+ glMaterialfv (GL_FRONT_AND_BACK,mode,d);
+};
+
+
+static void SelectMaterial(int i)
+{
+  //
+  // Define the reflective properties of the 3D Object faces.
+  //
+  glEnd();
+  GLfloat alpha=materials[i].alpha;
+  MyMaterial (GL_AMBIENT, materials[i].ambient,alpha);
+  MyMaterial (GL_DIFFUSE, materials[i].diffuse,alpha);
+  MyMaterial (GL_SPECULAR, materials[i].specular,alpha);
+  MyMaterial (GL_EMISSION, materials[i].emission,alpha);
+  glMaterialf (GL_FRONT_AND_BACK,GL_SHININESS,materials[i].phExp);
+  glBegin(GL_TRIANGLES);
+
+};
+
+static GLint Gen3DObjectList(int numlid)
+{
+ int i;
+ int j;
+
+ GLint lid=glGenLists(1);
+	int mcount=0;
+	int mindex=0;
+   glNewList(lid, GL_COMPILE);
+
+    glBegin (GL_TRIANGLES);
+      for(i=0;i<sizeof(face_indicies[numlid])/sizeof(face_indicies[numlid][0]);i++)
+       {
+      if(!mcount)
+       {
+        SelectMaterial(material_ref[mindex][0]);
+        mcount=material_ref[mindex][1];
+        mindex++;
+       }
+       mcount--;
+       for(j=0;j<3;j++)
+        {
+          int vi=face_indicies[numlid][i][j];
+          int ni=face_indicies[numlid][i][j+3];//Normal index
+          int ti=face_indicies[numlid][i][j+6];//Texture index
+           glNormal3f (normals[numlid][ni][0],normals[numlid][ni][1],normals[numlid][ni][2]);
+           glTexCoord2f(textures[ti][0],textures[ti][1]);
+           glVertex3f (vertices[numlid][vi][0],vertices[numlid][vi][1],vertices[numlid][vi][2]);
+        }
+       }
+    glEnd ();
+
+   glEndList();
+   return lid;
+};
+
+void initLids(){
+	GLint test;
+	int i;
+	for(i=0;i<NUM_LIDS;i++){
+		lidLists[i]=Gen3DObjectList(i);
+	}
+};
+
+void drawLids(int num) {
+	glCallList(lidLists[num]);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/lids.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,3 @@
+void initLids();
+
+void drawLid(int num);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/main.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,25 @@
+/sw/#ifdef __APPLE_CC__
+#include <Carbon/Carbon.h>
+#else
+#include <Carbon.h>
+#endif
+
+
+#include "Utilities.h"
+#include "QTUtilities.h"
+
+#include "camdata.h"
+#include "camproc.h"
+
+
+#define BailErr(err) {if(err != noErr) goto bail;}
+
+
+int main(void)
+{	
+    EnterMovies();
+    CamProc(); // change this prototype-> no windows
+    fprintf(stderr, "you have just murdered 1000 people.");
+    RunApplicationEventLoop();
+    return 0;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/mat_struct.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,12 @@
+#include <GL/gl.h>
+#include <GL/glu.h>
+
+typedef struct sample_MATERIAL{
+ GLfloat ambient[3];
+ GLfloat diffuse[3];
+ GLfloat specular[3];
+ GLfloat emission[3];
+ GLfloat alpha;
+ GLfloat phExp;
+ int   texture;
+}sample_MATERIAL;
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/models.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,75 @@
+#include"glm.h"
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include "face.h"
+
+#define ASCII_DIGITS 48
+
+void init_lists(GLint** lists, GLMmodel*** models, int num_lists, char* name, float my_scale){
+	int i;
+	char c;
+	GLint* temp_lists;
+	GLMmodel** temp_models;
+	char* temp = (char*)malloc(sizeof(char) * (strlen(name) + strlen(".obj" + 3)));
+	GLMmodel* model;	
+	float dum;
+	temp_lists = (GLint*)malloc(sizeof(GLint) * num_lists);	
+	temp_models = (GLMmodel**)malloc(sizeof(GLMmodel*) * num_lists);
+
+	for(i=0;i<num_lists;i++) {
+		strcpy(temp, name);
+		if(i<10){
+			c = (char)(ASCII_DIGITS+i);
+			strncat(temp, &c, 1);
+		}
+		else{
+			c = (char)(i/10+ASCII_DIGITS);
+			strncat(temp, &c, 1);
+			c = (char)(i%10 + ASCII_DIGITS);
+			strncat(temp, &c, 1);
+		}
+		strcat(temp, ".obj");
+		temp_models[i]=glmReadOBJ(temp);
+		glmScale(temp_models[i], my_scale);
+		dum =glmUnitize(temp_models[i]); // this actually just centers
+		//printf("%s factor %f", temp, dum);
+		temp_lists[i]=glmList(temp_models[i], GLM_SMOOTH);
+	}
+
+	*lists = temp_lists;
+	*models = temp_models;
+	free(temp);	
+}
+
+int compute_lid(BOOL open, int curr_lid, int max){
+	if(open) {
+		if(curr_lid < max){
+			curr_lid++;
+		}
+		else
+			curr_lid=max;
+	}
+	else {
+		if(curr_lid >=2){
+			curr_lid-=2;	
+		}
+		else if(curr_lid==1){
+			curr_lid--;
+		}
+		curr_lid=0;
+	}
+	return curr_lid;
+}
+
+void apply_output_mode(FACE f, GLfloat* angle, GLfloat* yangle, BOOL* left_open, BOOL* right_open, GLfloat* open, DIRECTION* dir)
+{
+	struct doggy_struct* dog = (struct doggy_struct*)f->char_struct;
+	if(f->my_mode==NORMAL){
+		f->curr_z_angle=0;
+		return;
+	}
+	if(f->my_mode==CRAZY1){
+		f->curr_z_angle = f->curr_z_angle+ANGLE_INC;
+		*angle = f->curr_z_angle;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/models.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,9 @@
+#include"glm.h"
+#include <GL/gl.h>
+#include <GL/glu.h>
+
+void init_lists(GLint** lists, GLMmodel*** models, int num_lists, char* name, float my_scale);
+
+int compute_lid(BOOL open, int curr_lid, int max);
+
+void apply_output_mode(FACE f, GLfloat* angle, GLfloat* yangle, BOOL* left_open, BOOL* right_open, GLfloat* open, DIRECTION* dir);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/sharky.c	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,249 @@
+#include "face.h"
+#include "sharky.h"
+#include <GL/gl.h>
+#include <GL/glu.h>
+#include "models.h"
+
+#define NUM_SHARKS 12
+#define NUM_SHARK_LIDS 10
+#define NUM_FINS 4
+#define NUM_SHARK_EYES 1
+#define NUM_SHARK_PUPILS 1
+#define NUM_SHARK_IRIS 1
+#define SHARK_SCALE .025
+#define SHARK_EYES_Y 7.5*SHARK_SCALE // .295
+#define SHARK_EYES_X 28.89*SHARK_SCALE // .26
+#define SHARK_EYES_Z 56*SHARK_SCALE // .38
+#define SHARK_FINS_X 75*SHARK_SCALE //.65
+#define SHARK_FINS_Y -44*SHARK_SCALE//.18
+#define SHARK_FINS_Z -15*SHARK_SCALE //.05
+#define SHARK_IRIS_X 0*SHARK_SCALE
+#define SHARK_IRIS_Y 1.67*SHARK_SCALE//.015
+#define SHARK_IRIS_Z 5.0*SHARK_SCALE//.08
+#define SHARK_PUP_X 0*SHARK_SCALE
+#define SHARK_PUP_Y 0*SHARK_SCALE 
+#define SHARK_PUP_Z 2.5*SHARK_SCALE //.028
+#define SHARK_IRIS_SCALE .10*SHARK_SCALE
+#define SHARK_PUP_SCALE .08*SHARK_SCALE
+#define SHARK_FIN_SCALE .9*SHARK_SCALE
+#define SHARK_EYE_SCALE .7*SHARK_SCALE
+#define SHARK_LID_SCALE .84*SHARK_SCALE
+#define SHARK_HEAD_SCALE .58*SHARK_SCALE
+#define TOP_FIN_X 0*SHARK_SCALE
+#define TOP_FIN_Y 4*SHARK_SCALE
+#define TOP_FIN_Z 25*SHARK_SCALE
+#define BOT_FIN_X 0*SHARK_SCALE
+#define BOT_FIN_Y 9*SHARK_SCALE
+#define BOT_FIN_Z -70*SHARK_SCALE
+#define TOP_FIN_SCALE 2*SHARK_SCALE
+#define MAX_FIN_ANGLE 90.0
+#define MIN_FIN_ANGLE -20.0
+#define ANGLE_INC 60
+float fins=0;
+
+
+char shark_mtl_file[MAX_FILE_LEN] = "dog.mtl";
+// the initial dog materials
+GLint init_shark_mats[NUM_PARTS] = {1, 2, 3, 4, 5, 3, 5, 0, 0, 0};
+
+void draw_shark_pupil(FACE f, PART p) {
+	struct shark_struct* shark=(struct shark_struct*)f->char_struct;
+	glPushMatrix();
+	glTranslatef(SHARK_IRIS_X, -SHARK_IRIS_Z, SHARK_IRIS_Y);
+	if(p==LEFT_IRIS)
+		glmSetMat(f->materials, f->mat_indeces[LEFT_IRIS]);
+	else
+		glmSetMat(f->materials, f->mat_indeces[RIGHT_IRIS]);
+	glCallList(shark->iris[0]);
+	glTranslatef(SHARK_PUP_X, -SHARK_PUP_Z, SHARK_PUP_Y);
+	glmSetMat(f->materials, f->mat_indeces[PUPIL]);
+	glCallList(shark->pupil[0]);
+	glPopMatrix();
+}
+
+void draw_shark_left_eye(FACE f, BOOL open, int max) {
+	struct shark_struct* shark=(struct shark_struct*)f->char_struct;
+	if(f->my_mode==CRAZY2)
+		shark->curr_left_lid=NUM_SHARK_LIDS-1;
+	else
+		shark->curr_left_lid = compute_lid(open, shark->curr_left_lid, max);
+	glPushMatrix();
+	glTranslatef(-SHARK_EYES_X, 0.0, 0.0);
+	glPushMatrix();
+	glTranslatef(0.0, -f->curr_eye_pop, 0.0);
+	draw_shark_pupil(f, LEFT_IRIS);
+	glmSetMat(f->materials, f->mat_indeces[EYES]);
+	glCallList(shark->eyes[shark->curr_left_eye]);
+	glPopMatrix();
+	glmSetMat(f->materials, f->mat_indeces[LIDS]);
+	glCallList(shark->lids[shark->curr_left_lid]);
+	glPopMatrix();
+}
+
+void draw_shark_right_eye(FACE f, BOOL open, int max) {
+	struct shark_struct* shark=(struct shark_struct*)f->char_struct;
+	if(f->my_mode==CRAZY2)
+		shark->curr_right_lid=NUM_SHARK_LIDS-1;
+	else
+		shark->curr_right_lid = compute_lid(open, shark->curr_right_lid, max);
+	glPushMatrix();
+	glTranslatef(SHARK_EYES_X, 0.0, 0.0);
+	glPushMatrix();
+	glTranslatef(0.0, -f->curr_eye_pop, 0.0);
+	draw_shark_pupil(f, RIGHT_IRIS);
+	glmSetMat(f->materials, f->mat_indeces[EYES]);
+	glCallList(shark->eyes[shark->curr_right_eye]);
+	glPopMatrix();
+	glmSetMat(f->materials, f->mat_indeces[LIDS]);
+	glCallList(shark->lids[shark->curr_right_lid]);
+	glPopMatrix();
+}
+
+void shark_eyes(FACE f, GLfloat angle, GLfloat yangle, BOOL left_open, BOOL right_open, DIRECTION dir)
+{
+	struct shark_struct* shark=(struct shark_struct*)f->char_struct;
+	int max_eye;
+	if(dir==CONST) { //then not moving, eyes are gettin sleepy
+		f->eye_count--;
+	}
+	else{
+		f->eye_count=EYE_TIME*NUM_SHARK_LIDS-1;
+	}
+	max_eye=f->eye_count/EYE_TIME;
+	if(max_eye<0)
+		max_eye=0;
+	if(f->my_mode==CRAZY2)
+		f->curr_eye_pop=f->curr_eye_pop + (MAX_EYE_POP - f->curr_eye_pop)/2;
+	else
+		f->curr_eye_pop=f->curr_eye_pop - (f->curr_eye_pop-0)/2;
+	glPushMatrix();
+	glTranslatef(0, 0, SHARK_EYES_Y);
+	glTranslatef(0, -SHARK_EYES_Z,0);
+	draw_shark_left_eye(f, left_open, max_eye);
+	draw_shark_right_eye(f, right_open, max_eye);	
+	glPopMatrix();
+}
+
+void shark_fins(FACE f, DIRECTION dir){
+	struct shark_struct* shark=(struct shark_struct*)f->char_struct;
+
+	if(dir==DOWN){
+		if(shark->curr_fin < (NUM_FINS-1))
+			shark->curr_fin++;
+		shark->curr_fin_angle = shark->curr_fin_angle+(MAX_FIN_ANGLE-shark->curr_fin_angle)/2;
+	}
+	if(dir==UP){
+		if(shark->curr_fin > 0)
+			shark->curr_fin--;
+		shark->curr_fin_angle = shark->curr_fin_angle+(MIN_FIN_ANGLE-shark->curr_fin_angle)/2;
+	}
+	else if(dir==CONST){
+		shark->curr_fin=1;
+		shark->curr_fin_angle = shark->curr_fin_angle+(0-shark->curr_fin_angle)/3;
+	}
+
+	glPushMatrix();
+	glTranslatef(-SHARK_FINS_X, -SHARK_FINS_Z, SHARK_FINS_Y);
+	if(f->my_mode==CRAZY1)
+		glRotatef(MAX_FIN_ANGLE, 0.0, 1.0, 0.0);
+	else
+		glRotatef(shark->curr_fin_angle, 0.0, 1.0, 0.0);
+	glmSetMat(f->materials, f->mat_indeces[APPENDAGE]);
+	glCallList(shark->fins[shark->curr_fin]);
+	glPopMatrix();
+	glPushMatrix();
+	glTranslatef(SHARK_FINS_X, -SHARK_FINS_Z, SHARK_FINS_Y);
+	glScalef(-1, 1, 1);
+	if(f->my_mode==CRAZY1)
+		glRotatef(MIN_FIN_ANGLE, 0.0, 1.0, 0.0);
+	else
+		glRotatef(shark->curr_fin_angle, 0.0, 1.0, 0.0);
+	glCallList(shark->fins[shark->curr_fin]);
+	glPopMatrix();
+}
+
+void draw_back_fins(FACE f){
+	struct shark_struct* shark=(struct shark_struct*)f->char_struct;
+	glPushMatrix();
+	glTranslatef(0, fins, TOP_FIN_Y);
+	glRotatef(180, 0.0, 1.0, 0.0);
+	glScalef(.5*TOP_FIN_SCALE,TOP_FIN_SCALE,TOP_FIN_SCALE);
+	glmSetMat(f->materials, f->mat_indeces[APPENDAGE]);
+	glCallList(shark->fins[2]);
+	glPopMatrix();
+	
+}
+
+void draw_shark(FACE f, GLfloat angle, GLfloat yangle, BOOL left_open, BOOL right_open, GLfloat open, DIRECTION dir, OUTPUT_MODE mode){
+	int next_face; 
+	struct shark_struct* shark;	
+
+	f->crazy_count--;
+	if(f->crazy_count==0){
+		f->my_mode = mode;
+		if(mode!=NORMAL)
+			f->crazy_count = CRAZY_COUNT;
+		else
+			f->crazy_count = 1;
+	}
+	apply_output_mode(f, &angle, &yangle, &left_open, &right_open, &open, &dir);
+	next_face = NUM_SHARKS - open*NUM_SHARKS - 1;
+	shark  = (struct shark_struct*)f->char_struct;
+	if(next_face > shark->curr_face)
+		shark->curr_face++;
+	else if(next_face < shark->curr_face)
+		shark->curr_face--;
+
+	glPushMatrix();
+	glRotatef(-90, 1.0, 0.0, 0.0);
+	glRotatef(-yangle, 0.0, 0.0, -1.0);
+	glRotatef(-angle, 0, 1, 0);
+	shark_eyes(f, angle, yangle, left_open, right_open, dir);	
+	shark_fins(f, dir);
+	//draw_back_fins(f);
+	glmSetMat(f->materials, f->mat_indeces[HEAD]);
+	glCallList(shark->faces[shark->curr_face]);
+	glPopMatrix();
+}
+
+
+void init_shark(FACE f){
+	int i;
+	struct shark_struct* shark;
+	f->char_struct = (struct shark_struct*)malloc(sizeof(struct shark_struct));
+	f->materials = glmMTL(shark_mtl_file);
+	f->mat_indeces=(GLint*)malloc(sizeof(GLint)*NUM_PARTS);
+	//initialize all of the parts to some colors
+	change_materials(f, init_shark_mats, NUM_PARTS);
+	f->my_mode = NORMAL;
+	f->eye_count = EYE_TIME*NUM_SHARK_LIDS-1;
+	f->crazy_count = 1;
+	f->curr_z_angle = 0;
+	f->curr_eye_pop = 0;
+	f->name = strdup("sharky");
+	f->draw_func = draw_shark;
+	shark = (struct shark_struct*)f->char_struct;
+	
+	printf("\nReading models: ");
+	fflush(0);
+	
+	//initialize the draw lists
+	init_lists(&shark->faces, &shark->m_faces, NUM_SHARKS, f->name, SHARK_HEAD_SCALE);
+	init_lists(&shark->lids, &shark->m_lids, NUM_SHARK_LIDS, "sharkylid", SHARK_LID_SCALE);
+	init_lists(&shark->fins, &shark->m_fins, NUM_FINS, "sharkyfin", SHARK_FIN_SCALE);
+	init_lists(&shark->eyes, &shark->m_eyes, NUM_SHARK_EYES, "sharkyeye", SHARK_EYE_SCALE);
+	init_lists(&shark->pupil, &shark->m_pupil, NUM_SHARK_PUPILS, "sharkypupil", SHARK_PUP_SCALE);
+	init_lists(&shark->iris, &shark->m_iris, NUM_SHARK_IRIS, "sharkyiris", SHARK_IRIS_SCALE);
+
+	printf("\n");
+	fflush(0);
+		
+	shark->curr_face = 0;
+	shark->curr_fin = 1;
+	shark->curr_left_lid = 0;
+	shark->curr_right_lid = 0;
+	shark->curr_left_eye = 0;
+	shark->curr_right_eye = 0;
+	shark->curr_pupil = 0;
+	shark->curr_fin_angle = 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/sharky.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,10 @@
+#include "glm.h"
+
+struct shark_struct{
+	GLint* faces, *lids, *fins, *eyes, *iris, *pupil;
+	GLMmodel** m_faces, **m_lids, **m_fins, **m_eyes, **m_iris, **m_pupil;
+	int curr_face, curr_fin, curr_left_lid, curr_right_lid, curr_right_eye, curr_left_eye, curr_pupil, eye_count;
+	float curr_fin_angle;
+};
+
+void init_shark(FACE f);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/test.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,8 @@
+class Test {
+	public:
+		Test();
+		~Test();
+		void runTest();
+	private:
+		asdfint fake;
+};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/crazychat/util.h	Tue Aug 09 07:10:23 2005 +0000
@@ -0,0 +1,93 @@
+#ifndef __UTIL_H__
+#define __UTIL_H__
+
+#include <pthread.h>
+#include <debug.h>
+
+#define THREAD_CREATE(thread, func, args)				\
+	do {								\
+		assert(!pthread_create(thread, NULL, func, args));	\
+	} while(0)
+
+#define THREAD_JOIN(thread)						\
+	do {								\
+		assert(!pthread_join(thread, NULL));			\
+	} while(0)
+
+#define MUTEX_INIT(mutex)						\
+	do {								\
+		assert(!pthread_mutex_init(mutex, NULL));		\
+	} while(0)
+
+#define MUTEX_DESTROY(mutex)						\
+	do {								\
+		assert(!pthread_mutex_destroy(mutex));			\
+	} while(0)
+
+#define MUTEX_LOCK(mutex)						\
+	do {								\
+		assert(!pthread_mutex_lock(mutex));			\
+	} while(0)
+
+#define MUTEX_UNLOCK(mutex)						\
+	do {								\
+		assert(!pthread_mutex_unlock(mutex));			\
+	} while(0)
+
+#define COND_INIT(cond)							\
+	do {								\
+		assert(!pthread_cond_init(cond, NULL));			\
+	} while(0)
+
+#define COND_SIGNAL(cond, mutex)					\
+	do {								\
+		MUTEX_LOCK(mutex);					\
+		assert(!pthread_cond_signal(cond));			\
+		MUTEX_UNLOCK(mutex);					\
+	} while(0)
+
+#define COND_WAIT(cond, mutex)						\
+	do {								\
+		assert(!pthread_cond_wait(cond, mutex));		\
+	} while(0)
+
+#define COND_DESTROY(cond)						\
+	do {								\
+		assert(!pthread_cond_destroy(cond));			\
+	} while(0)
+
+#define SET_TIME(x)							\
+	do {								\
+		assert(!gettimeofday((x), NULL));			\
+	} while(0)
+
+#define SET_TIMEOUT(timespec, given_timeout)	/* timeout is in ms */	\
+	do {								\
+		struct timeval* curr = (struct timeval*)(timespec);	\
+		unsigned int tout;					\
+		if (given_timeout > 100) {				\
+			tout = given_timeout;				\
+		} else {						\
+			tout = 100;					\
+		}							\
+		SET_TIME(curr);						\
+		curr->tv_sec += (tout / 1000);				\
+		curr->tv_usec /= 1000; /* set to ms */			\
+		curr->tv_usec += (tout % 1000);				\
+		curr->tv_sec += (curr->tv_usec / 1000);			\
+		curr->tv_usec = (curr->tv_usec % 1000);			\
+		curr->tv_usec *= 1000000;				\
+	} while (0)
+
+#endif
+
+/* -- gcc specific vararg macro support ... but its so nice! -- */
+#ifdef _DEBUG_
+#define Debug(x, args...)						\
+	do {								\
+		printf(x, ## args);					\
+		gaim_debug(GAIM_DEBUG_INFO, "crazychat", x, ## args);	\
+	} while (0)
+#else
+#define Debug(x, args...) do{}while(0)
+#endif