You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(12) |
Jul
(47) |
Aug
(21) |
Sep
(5) |
Oct
(17) |
Nov
|
Dec
(8) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(4) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(9) |
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
|
| 2003 |
Jan
|
Feb
(6) |
Mar
(7) |
Apr
(8) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(9) |
Nov
|
Dec
|
| 2004 |
Jan
(8) |
Feb
(46) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2005 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2006 |
Jan
(27) |
Feb
(2) |
Mar
|
Apr
(64) |
May
|
Jun
|
Jul
(11) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
(2) |
|
From: Robert K. <may...@us...> - 2001-07-23 23:13:36
|
Update of /cvsroot/bitcollider/bitcollider/win32
In directory usw-pr-cvs1:/tmp/cvs-serv21184/win32
Modified Files:
bc_dll.def bc_dll.dsp bitcollider.dsp
Log Message:
Made the -f function windows friendly and changed the name from bc_dll.dll to
bitcoll.dll
Index: bc_dll.def
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/win32/bc_dll.def,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** bc_dll.def 2001/04/05 23:38:13 1.4
--- bc_dll.def 2001/07/23 23:13:33 1.5
***************
*** 1,5 ****
; bc_dll.def : Declares the module parameters for the DLL.
! LIBRARY "bc_dll"
DESCRIPTION 'Bitcollider main library'
--- 1,5 ----
; bc_dll.def : Declares the module parameters for the DLL.
! LIBRARY "bitcoll"
DESCRIPTION 'Bitcollider main library'
***************
*** 25,29 ****
get_num_bitprints
getLongPathName
! convert_to_hex
sha_init
--- 25,30 ----
get_num_bitprints
getLongPathName
! convert_to_hex
! read_submission_from_file
sha_init
Index: bc_dll.dsp
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/win32/bc_dll.dsp,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -r1.10 -r1.11
*** bc_dll.dsp 2001/05/26 20:06:07 1.10
--- bc_dll.dsp 2001/07/23 23:13:33 1.11
***************
*** 54,58 ****
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
! # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib comctl32.lib /nologo /dll /machine:I386
!ELSEIF "$(CFG)" == "bc_dll - Win32 Debug"
--- 54,58 ----
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
! # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib comctl32.lib /nologo /dll /machine:I386 /out:"../bitcoll.dll"
!ELSEIF "$(CFG)" == "bc_dll - Win32 Debug"
***************
*** 80,84 ****
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
! # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib comctl32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
!ENDIF
--- 80,84 ----
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
! # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib comctl32.lib /nologo /dll /debug /machine:I386 /out:"../bitcoll.dll" /pdbtype:sept
!ENDIF
***************
*** 94,97 ****
--- 94,101 ----
SOURCE=.\bc_dll.def
+ # End Source File
+ # Begin Source File
+
+ SOURCE=..\lib\bitprint.c
# End Source File
# Begin Source File
Index: bitcollider.dsp
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/win32/bitcollider.dsp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** bitcollider.dsp 2001/04/03 23:53:49 1.6
--- bitcollider.dsp 2001/07/23 23:13:33 1.7
***************
*** 100,107 ****
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
- # Begin Source File
-
- SOURCE=..\bc_dll.lib
- # End Source File
# End Target
# End Project
--- 100,103 ----
|
|
From: Robert K. <may...@us...> - 2001-07-23 23:13:36
|
Update of /cvsroot/bitcollider/bitcollider/vorbis/win32 In directory usw-pr-cvs1:/tmp/cvs-serv21184/vorbis/win32 Modified Files: vorbis.dsp Log Message: Made the -f function windows friendly and changed the name from bc_dll.dll to bitcoll.dll Index: vorbis.dsp =================================================================== RCS file: /cvsroot/bitcollider/bitcollider/vorbis/win32/vorbis.dsp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** vorbis.dsp 2001/03/27 19:41:06 1.3 --- vorbis.dsp 2001/07/23 23:13:33 1.4 *************** *** 126,133 **** SOURCE="..\..\..\vorbis-sdk\release\ogg.lib" # End Source File - # Begin Source File - - SOURCE=..\..\bc_dll.lib - # End Source File # End Target # End Project --- 126,129 ---- |
|
From: Robert K. <may...@us...> - 2001-07-23 23:13:36
|
Update of /cvsroot/bitcollider/bitcollider/installer
In directory usw-pr-cvs1:/tmp/cvs-serv21184/installer
Modified Files:
bc-setup.wse
Log Message:
Made the -f function windows friendly and changed the name from bc_dll.dll to
bitcoll.dll
Index: bc-setup.wse
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/installer/bc-setup.wse,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** bc-setup.wse 2001/04/06 03:45:23 1.3
--- bc-setup.wse 2001/07/23 23:13:32 1.4
***************
*** 1,5 ****
Document Type: WSE
item: Global
! Version=8.13
Title=Bitzi's Bitcollider Installation
Flags=00010100
--- 1,5 ----
Document Type: WSE
item: Global
! Version=8.14
Title=Bitzi's Bitcollider Installation
Flags=00010100
***************
*** 35,39 ****
Variable Flags2=00001000
Variable Name3=_WISE_
! Variable Default3=D:\Program Files\Wise InstallBuilder 8.1
Variable Flags3=00001000
end
--- 35,39 ----
Variable Flags2=00001000
Variable Name3=_WISE_
! Variable Default3=C:\Program Files\Wise InstallBuilder 8.1
Variable Flags3=00001000
end
***************
*** 1210,1213 ****
--- 1210,1218 ----
item: Include Script
Pathname=%_WISE_%\INCLUDE\uninstal.wse
+ end
+ item: Install File
+ Source=d:\bitzi\bitcollider\plugins\image.bcp
+ Destination=%MAINDIR%\plugins\image.bcp
+ Flags=0000000010000010
end
item: Install File
|
|
From: Robert K. <may...@us...> - 2001-07-23 23:13:35
|
Update of /cvsroot/bitcollider/bitcollider/include
In directory usw-pr-cvs1:/tmp/cvs-serv21184/include
Modified Files:
bitcollider.h
Log Message:
Made the -f function windows friendly and changed the name from bc_dll.dll to
bitcoll.dll
Index: bitcollider.h
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/include/bitcollider.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** bitcollider.h 2001/07/23 21:22:34 1.8
--- bitcollider.h 2001/07/23 23:13:32 1.9
***************
*** 107,111 ****
BrowserEnum browser);
BitcolliderSubmission *read_submission_from_file(Bitcollider *bc,
! FILE *tagFile);
int get_num_bitprints (BitcolliderSubmission *sub);
void print_submission (BitcolliderSubmission *tag);
--- 107,111 ----
BrowserEnum browser);
BitcolliderSubmission *read_submission_from_file(Bitcollider *bc,
! char *tagFile);
int get_num_bitprints (BitcolliderSubmission *sub);
void print_submission (BitcolliderSubmission *tag);
|
|
From: Robert K. <may...@us...> - 2001-07-23 23:13:35
|
Update of /cvsroot/bitcollider/bitcollider/image/win32 In directory usw-pr-cvs1:/tmp/cvs-serv21184/image/win32 Modified Files: image.dsp Log Message: Made the -f function windows friendly and changed the name from bc_dll.dll to bitcoll.dll Index: image.dsp =================================================================== RCS file: /cvsroot/bitcollider/bitcollider/image/win32/image.dsp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** image.dsp 2001/05/31 21:57:38 1.1 --- image.dsp 2001/07/23 23:13:32 1.2 *************** *** 1,122 **** ! # Microsoft Developer Studio Project File - Name="image" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ! ! CFG=image - Win32 Debug ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "image.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "image.mak" CFG="image - Win32 Debug" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "image - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE "image - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "" ! # PROP Scc_LocalPath "" ! CPP=cl.exe ! MTL=midl.exe ! RSC=rc.exe ! ! !IF "$(CFG)" == "image - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir "Release" ! # PROP BASE Intermediate_Dir "Release" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "Release" ! # PROP Intermediate_Dir "Release" ! # PROP Target_Dir "" ! # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IMAGE_EXPORTS" /Yu"stdafx.h" /FD /c ! # ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\include" /I "..\..\ver" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IMAGE_EXPORTS" /YX /FD /c ! # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 ! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 ! # ADD BASE RSC /l 0x409 /d "NDEBUG" ! # ADD RSC /l 0x409 /d "NDEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 ! # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 ! # Begin Special Build Tool ! SOURCE="$(InputPath)" ! PostBuild_Cmds=IF NOT EXIST plugins mkdir ..\..\plugins copy release\image.dll ..\..\plugins\image.bcp ! # End Special Build Tool ! ! !ELSEIF "$(CFG)" == "image - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir "Debug" ! # PROP BASE Intermediate_Dir "Debug" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "Debug" ! # PROP Intermediate_Dir "Debug" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IMAGE_EXPORTS" /Yu"stdafx.h" /FD /GZ /c ! # ADD CPP /nologo /MD /W3 /Gm /GX /ZI /Od /I "..\..\include" /I "..\..\ver" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IMAGE_EXPORTS" /YX /FD /GZ /c ! # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 ! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 ! # ADD BASE RSC /l 0x409 /d "_DEBUG" ! # ADD RSC /l 0x409 /d "_DEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept ! # Begin Special Build Tool ! SOURCE="$(InputPath)" ! PostBuild_Cmds=IF NOT EXIST plugins mkdir ..\..\plugins copy debug\image.dll ..\..\plugins\image.bcp ! # End Special Build Tool ! ! !ENDIF ! ! # Begin Target ! ! # Name "image - Win32 Release" ! # Name "image - Win32 Debug" ! # Begin Group "Source Files" ! ! # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" ! # Begin Source File ! ! SOURCE=..\image.c ! # End Source File ! # Begin Source File ! ! SOURCE=.\image.def ! # End Source File ! # End Group ! # Begin Group "Header Files" ! ! # PROP Default_Filter "h;hpp;hxx;hm;inl" ! # End Group ! # Begin Group "Resource Files" ! ! # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" ! # End Group ! # Begin Source File ! ! SOURCE=..\..\bc_dll.lib ! # End Source File ! # End Target ! # End Project --- 1,118 ---- ! # Microsoft Developer Studio Project File - Name="image" - Package Owner=<4> ! # Microsoft Developer Studio Generated Build File, Format Version 6.00 ! # ** DO NOT EDIT ** ! ! # TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 ! ! CFG=image - Win32 Debug ! !MESSAGE This is not a valid makefile. To build this project using NMAKE, ! !MESSAGE use the Export Makefile command and run ! !MESSAGE ! !MESSAGE NMAKE /f "image.mak". ! !MESSAGE ! !MESSAGE You can specify a configuration when running NMAKE ! !MESSAGE by defining the macro CFG on the command line. For example: ! !MESSAGE ! !MESSAGE NMAKE /f "image.mak" CFG="image - Win32 Debug" ! !MESSAGE ! !MESSAGE Possible choices for configuration are: ! !MESSAGE ! !MESSAGE "image - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE "image - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") ! !MESSAGE ! ! # Begin Project ! # PROP AllowPerConfigDependencies 0 ! # PROP Scc_ProjName "" ! # PROP Scc_LocalPath "" ! CPP=cl.exe ! MTL=midl.exe ! RSC=rc.exe ! ! !IF "$(CFG)" == "image - Win32 Release" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 0 ! # PROP BASE Output_Dir "Release" ! # PROP BASE Intermediate_Dir "Release" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 0 ! # PROP Output_Dir "Release" ! # PROP Intermediate_Dir "Release" ! # PROP Target_Dir "" ! # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IMAGE_EXPORTS" /Yu"stdafx.h" /FD /c ! # ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\include" /I "..\..\ver" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IMAGE_EXPORTS" /YX /FD /c ! # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 ! # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 ! # ADD BASE RSC /l 0x409 /d "NDEBUG" ! # ADD RSC /l 0x409 /d "NDEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 ! # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 ! # Begin Special Build Tool ! SOURCE="$(InputPath)" ! PostBuild_Cmds=IF NOT EXIST plugins mkdir ..\..\plugins copy release\image.dll ..\..\plugins\image.bcp ! # End Special Build Tool ! ! !ELSEIF "$(CFG)" == "image - Win32 Debug" ! ! # PROP BASE Use_MFC 0 ! # PROP BASE Use_Debug_Libraries 1 ! # PROP BASE Output_Dir "Debug" ! # PROP BASE Intermediate_Dir "Debug" ! # PROP BASE Target_Dir "" ! # PROP Use_MFC 0 ! # PROP Use_Debug_Libraries 1 ! # PROP Output_Dir "Debug" ! # PROP Intermediate_Dir "Debug" ! # PROP Ignore_Export_Lib 0 ! # PROP Target_Dir "" ! # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IMAGE_EXPORTS" /Yu"stdafx.h" /FD /GZ /c ! # ADD CPP /nologo /MD /W3 /Gm /GX /ZI /Od /I "..\..\include" /I "..\..\ver" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "IMAGE_EXPORTS" /YX /FD /GZ /c ! # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 ! # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 ! # ADD BASE RSC /l 0x409 /d "_DEBUG" ! # ADD RSC /l 0x409 /d "_DEBUG" ! BSC32=bscmake.exe ! # ADD BASE BSC32 /nologo ! # ADD BSC32 /nologo ! LINK32=link.exe ! # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept ! # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept ! # Begin Special Build Tool ! SOURCE="$(InputPath)" ! PostBuild_Cmds=IF NOT EXIST plugins mkdir ..\..\plugins copy debug\image.dll ..\..\plugins\image.bcp ! # End Special Build Tool ! ! !ENDIF ! ! # Begin Target ! ! # Name "image - Win32 Release" ! # Name "image - Win32 Debug" ! # Begin Group "Source Files" ! ! # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" ! # Begin Source File ! ! SOURCE=..\image.c ! # End Source File ! # Begin Source File ! ! SOURCE=.\image.def ! # End Source File ! # End Group ! # Begin Group "Header Files" ! ! # PROP Default_Filter "h;hpp;hxx;hm;inl" ! # End Group ! # Begin Group "Resource Files" ! ! # PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" ! # End Group ! # End Target ! # End Project |
|
From: Robert K. <may...@us...> - 2001-07-23 23:13:35
|
Update of /cvsroot/bitcollider/bitcollider/bcshellext In directory usw-pr-cvs1:/tmp/cvs-serv21184/bcshellext Modified Files: bcshellext_p.c Log Message: Made the -f function windows friendly and changed the name from bc_dll.dll to bitcoll.dll Index: bcshellext_p.c =================================================================== RCS file: /cvsroot/bitcollider/bitcollider/bcshellext/bcshellext_p.c,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** bcshellext_p.c 2001/04/06 04:39:05 1.8 --- bcshellext_p.c 2001/07/23 23:13:32 1.9 *************** *** 3,7 **** /* File created by MIDL compiler version 5.01.0164 */ ! /* at Thu Apr 05 20:21:15 2001 */ /* Compiler settings for D:\bitzi\bitcollider\bcshellext\bcshellext.idl: --- 3,7 ---- /* File created by MIDL compiler version 5.01.0164 */ ! /* at Thu Jul 12 13:52:37 2001 */ /* Compiler settings for D:\bitzi\bitcollider\bcshellext\bcshellext.idl: |
|
From: Robert K. <may...@us...> - 2001-07-23 23:13:35
|
Update of /cvsroot/bitcollider/bitcollider/gui In directory usw-pr-cvs1:/tmp/cvs-serv21184/gui Modified Files: gui.dsp Log Message: Made the -f function windows friendly and changed the name from bc_dll.dll to bitcoll.dll Index: gui.dsp =================================================================== RCS file: /cvsroot/bitcollider/bitcollider/gui/gui.dsp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** gui.dsp 2001/04/06 00:39:42 1.4 --- gui.dsp 2001/07/23 23:13:32 1.5 *************** *** 112,119 **** # End Source File # End Group - # Begin Source File - - SOURCE=..\bc_dll.lib - # End Source File # End Target # End Project --- 112,115 ---- |
|
From: Robert K. <may...@us...> - 2001-07-23 22:32:14
|
Update of /cvsroot/bitcollider/bitcollider/include In directory usw-pr-cvs1:/tmp/cvs-serv8755/include Added Files: bitprint.h Log Message: Added the new bitprint.[ch] to the bitcollider. The bitprints and audioSha1 values are now in base32 --- NEW FILE: bitprint.h --- /* (PD) 2001 The Bitzi Corporation * Please see file COPYING or http://bitzi.com/publicdomain * for more info. * * $Id: bitprint.h,v 1.1 2001/07/23 22:32:10 mayhemchaos Exp $ */ #ifndef BITPRINT_H #define BITPRINT_H #ifdef __cplusplus extern "C" { #endif #include "sha1.h" #include "tigertree.h" /* =================================================================== */ /* Definitions for the Bitzi functions */ /* =================================================================== */ /* BITPRINT_RAW_LEN defines the length of the bitprint returned by the bitziCreateBitprint function. The bitprint argument needs to have at least BITPRINT_RAW_LEN bytes available. */ #define BITPRINT_RAW_LEN 44 #define BITPRINT_BASE32_LEN 71 #define SHA_BASE32SIZE 32 #define TIGER_BASE32SIZE 39 /* This is the context class for the bitziInit, bitziUpdate, bitziFinal bitprint calculation routines */ typedef struct _BP_CONTEXT { TT_CONTEXT tcontext; SHA_INFO scontext; } BP_CONTEXT; /* The main bitprint creation routines. */ int bitziBitprintFile(const char *fileName, unsigned char *bitprint); int bitziBitprintStream(FILE *file, unsigned char *bitprint); int bitziBitprintBuffer(unsigned char *buffer, unsigned int bufLen, unsigned char *bitprint); /* Routines to calculate a bitprint from multiple memory buffers */ int bitziBitprintInit(BP_CONTEXT *context); void bitziBitprintUpdate(BP_CONTEXT *context, unsigned char *buffer, unsigned bytes); void bitziBitprintFinal(BP_CONTEXT *context, unsigned char *bitprint); /* Support routines for converting bitprints from the raw binary form into a printable ascii version. Note that the char *bitprintBase32 argument to bitziBitprintToBase32 needs to have BITPRINT_BASE32_LEN bytes available, and the bitprint argument to bitziBitprintFromBase32 needs to have BITPRINT_RAW_LEN bytes available */ void bitziBitprintToBase32(const unsigned char *bitprint, char *bitprintBase32); void bitziBitprintFromBase32(const char *bitprintBase32, unsigned char *bitprint); /* General Base32 encoding/decoding support */ int bitziGetBase32EncodeLength(int rawLength); int bitziGetBase32DecodeLength(int base32Length); void bitziEncodeBase32(const unsigned char *buffer, unsigned int bufLen, char *base32Buffer); void bitziDecodeBase32(const char *base32Buffer, unsigned int base32BufLen, unsigned char *buffer); #ifdef __cplusplus } #endif #endif |
|
From: Robert K. <may...@us...> - 2001-07-23 22:32:14
|
Update of /cvsroot/bitcollider/bitcollider/lib In directory usw-pr-cvs1:/tmp/cvs-serv8755/lib Modified Files: Makefile.am main.c Added Files: bitprint.c Log Message: Added the new bitprint.[ch] to the bitcollider. The bitprints and audioSha1 values are now in base32 --- NEW FILE: bitprint.c --- /* (PD) 2001 The Bitzi Corporation * Please see file COPYING or http://bitzi.com/publicdomain * for more info. * * $Id: bitprint.c,v 1.1 2001/07/23 22:32:10 mayhemchaos Exp $ */ #include <string.h> #include <stdlib.h> #include <stdio.h> #include <assert.h> #include <ctype.h> #include "bitprint.h" /* =================================================================== */ /* Main code */ /* =================================================================== */ #define BASE32_LOOKUP_MAX 43 static unsigned char *base32Chars = "ABCDEFGHIJKMNPQRSTUVWXYZ23456789"; static unsigned char base32Lookup[BASE32_LOOKUP_MAX][2] = { { '0', 0xFF }, { '1', 0xFF }, { '2', 0x18 }, { '3', 0x19 }, { '4', 0x1A }, { '5', 0x1B }, { '6', 0x1C }, { '7', 0x1D }, { '8', 0x1E }, { '9', 0x1F }, { ':', 0xFF }, { ';', 0xFF }, { '<', 0xFF }, { '=', 0xFF }, { '>', 0xFF }, { '?', 0xFF }, { '@', 0xFF }, { 'A', 0x00 }, { 'B', 0x01 }, { 'C', 0x02 }, { 'D', 0x03 }, { 'E', 0x04 }, { 'F', 0x05 }, { 'G', 0x06 }, { 'H', 0x07 }, { 'I', 0x08 }, { 'J', 0x09 }, { 'K', 0x0A }, { 'L', 0xFF }, { 'M', 0x0B }, { 'N', 0x0C }, { 'O', 0xFF }, { 'P', 0x0D }, { 'Q', 0x0E }, { 'R', 0x0F }, { 'S', 0x10 }, { 'T', 0x11 }, { 'U', 0x12 }, { 'V', 0x13 }, { 'W', 0x14 }, { 'X', 0x15 }, { 'Y', 0x16 }, { 'Z', 0x17 } }; #define BUFFER_LEN 4096 #define ONEK_SIZE 1025 #define EMPTY_SHA "5I64H5U8PPFS4NUXZ9Z3K2A2UCZ7SB2J" #define ONE_SHA "GXXBUK53CQ2E2XCZJWNNFDKG626XIKFM" #define ONEK_SHA "CAE76MZYDA77PYGAT6RPTZ4II9VT88YM" #define EMPTY_TIGER "GKJ4222NCR2CIZ6UZQ2ZN5SYC37E6YCJFZRHH62" #define ONE_TIGER "DXMVDFFAK5XVEAH34NBJADEEHS8WDK4Q4BYAHZ2" #define ONEK_TIGER "4FNVCKHVA5QT2KBTIYJAM6KN3QCD6349AIRU7IS" static int check_sha1_hash(const char *result, unsigned char *data, int len); static int check_tigertree_hash(const char *result, unsigned char *data, int len); static int hash_sanity_check(void); int bitziBitprintFile(const char *fileName, unsigned char *bitprint) { FILE *file; int ret; file = fopen(fileName, "rb"); if (file == NULL) return 0; ret = bitziBitprintStream(file, bitprint); fclose(file); return ret; } int bitziBitprintStream(FILE *source, unsigned char *bitprint) { BP_CONTEXT context; unsigned char *buffer; int bytes; int ret = 1; if (bitziBitprintInit(&context) == -1) return -1; buffer = (unsigned char*)malloc(BUFFER_LEN); if (buffer == NULL) { return 0; } fseek(source, 0, SEEK_SET); for(;;) { bytes = fread(buffer, 1, BUFFER_LEN, source); if (bytes <= 0) { ret = feof(source) != 0; break; } bitziBitprintUpdate(&context, buffer, bytes); } free(buffer); bitziBitprintFinal(&context, bitprint); return ret; } int bitziBitprintBuffer(unsigned char *buffer, unsigned int bufLen, unsigned char *bitprint) { BP_CONTEXT context; if (bitziBitprintInit(&context) == -1) return -1; bitziBitprintUpdate(&context, buffer, bufLen); bitziBitprintFinal(&context, bitprint); return 1; } int bitziBitprintInit(BP_CONTEXT *context) { if (hash_sanity_check() > 0) return -1; tt_init(&context->tcontext); sha_init(&context->scontext); return 1; } void bitziBitprintUpdate(BP_CONTEXT *context, unsigned char *buffer, unsigned bytes) { tt_update(&context->tcontext, buffer, bytes); sha_update(&context->scontext, buffer, bytes); } void bitziBitprintFinal(BP_CONTEXT *context, unsigned char *bitprint) { sha_final(bitprint, &context->scontext); tt_digest(&context->tcontext, bitprint + SHA_DIGESTSIZE); } void bitziBitprintToBase32(const unsigned char *bitprint, char *base32Bitprint) { bitziEncodeBase32(bitprint, BITPRINT_RAW_LEN, base32Bitprint); } void bitziBitprintFromBase32(const char *base32Bitprint, unsigned char *bitprint) { bitziDecodeBase32(base32Bitprint, BITPRINT_BASE32_LEN, bitprint); } int bitziGetBase32EncodeLength(int rawLength) { return ((rawLength * 8) / 5) + ((rawLength % 5) != 0) + 1; } int bitziGetBase32DecodeLength(int base32Length) { return ((base32Length * 5) / 8); } void bitziEncodeBase32(const unsigned char *buffer, unsigned int bufLen, char *base32Buffer) { unsigned int i, index; unsigned char word; for(i = 0, index = 0; i < bufLen;) { /* Is the current word going to span a byte boundary? */ if (index > 3) { word = (buffer[i] & (0xFF >> index)); index = (index + 5) % 8; word <<= index; if (i < bufLen - 1) word |= buffer[i + 1] >> (8 - index); i++; } else { word = (buffer[i] >> (8 - (index + 5))) & 0x1F; index = (index + 5) % 8; if (index == 0) i++; } assert(word < 32); *(base32Buffer++) = (char)base32Chars[word]; } *base32Buffer = 0; } void bitziDecodeBase32(const char *base32Buffer, unsigned int base32BufLen, unsigned char *buffer) { int i, index, max, lookup, offset; unsigned char word; memset(buffer, 0, bitziGetBase32DecodeLength(base32BufLen)); max = strlen(base32Buffer); for(i = 0, index = 0, offset = 0; i < max; i++) { lookup = toupper(base32Buffer[i]) - '0'; /* Check to make sure that the given word falls inside a valid range */ if ( lookup < 0 && lookup >= BASE32_LOOKUP_MAX) word = 0xFF; else word = base32Lookup[lookup][1]; /* If this word is not in the table, ignore it */ if (word == 0xFF) continue; if (index <= 3) { index = (index + 5) % 8; if (index == 0) { buffer[offset] |= word; offset++; } else buffer[offset] |= word << (8 - index); } else { index = (index + 5) % 8; buffer[offset] |= (word >> index); offset++; buffer[offset] |= word << (8 - index); } } } static int hash_sanity_check(void) { int ret; unsigned char *data; ret = check_tigertree_hash(EMPTY_TIGER, "", 0); ret += check_sha1_hash(EMPTY_SHA, "", 0); ret += check_tigertree_hash(ONE_TIGER, "1", 1); ret += check_sha1_hash(ONE_SHA, "1", 1); data = malloc(ONEK_SIZE); memset(data, 'a', ONEK_SIZE); ret += check_tigertree_hash(ONEK_TIGER, data, ONEK_SIZE); ret += check_sha1_hash(ONEK_SHA, data, ONEK_SIZE); free(data); return ret; } /* NOTE: This function returns true if it failed the check! */ static int check_tigertree_hash(const char *result, unsigned char *data, int len) { TT_CONTEXT tcontext; unsigned char tigerTreeHash[TIGERSIZE]; char tigerTreeDigest[TIGER_BASE32SIZE + 1]; tt_init(&tcontext); tt_update(&tcontext, data, len); tt_digest(&tcontext, tigerTreeHash); bitziEncodeBase32(tigerTreeHash, TIGERSIZE, tigerTreeDigest); if (strcmp(tigerTreeDigest, result)) { fprintf(stderr, " tigertree: '%s' [%d]\n", tigerTreeDigest, len); fprintf(stderr, "correct tigertree: '%s' [%d]\n", result, len); return 1; } return 0; } /* NOTE: This function returns true if it failed the check! */ static int check_sha1_hash(const char *result, unsigned char *data, int len) { SHA_INFO scontext; unsigned char shaHash[SHA_DIGESTSIZE]; char shaDigest[SHA_BASE32SIZE + 1]; sha_init(&scontext); sha_update(&scontext, data, len); sha_final(shaHash, &scontext); bitziEncodeBase32(shaHash, SHA_DIGESTSIZE, shaDigest); if (strcmp(shaDigest, result)) { fprintf(stderr, " sha: '%s' [%d]\n", shaDigest, len); fprintf(stderr, " correct sha: '%s' [%d]\n", result, len); return 1; } return 0; } Index: Makefile.am =================================================================== RCS file: /cvsroot/bitcollider/bitcollider/lib/Makefile.am,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** Makefile.am 2001/07/09 21:19:52 1.10 --- Makefile.am 2001/07/23 22:32:10 1.11 *************** *** 9,13 **** INCLUDES = $(INCLTDL) -I$(top_srcdir)/.. -I$(top_srcdir)/ver -I$(top_srcdir)/include lib_LTLIBRARIES = libbitcollider.la ! libbitcollider_la_SOURCES = main.c sha1.c tiger.c tigertree.c sboxes.c browser.c mp3.c id3.c plugin_man.c plugin_man.h dirsearch.c dir.h libbitcollider_la_LDFLAGS = -version-info 1:0:0 libbitcollider_la_LIBADD = $(LIBLTDL) --- 9,13 ---- INCLUDES = $(INCLTDL) -I$(top_srcdir)/.. -I$(top_srcdir)/ver -I$(top_srcdir)/include lib_LTLIBRARIES = libbitcollider.la ! libbitcollider_la_SOURCES = main.c sha1.c tiger.c tigertree.c sboxes.c browser.c mp3.c id3.c plugin_man.c plugin_man.h dirsearch.c dir.h bitprint.c bitprint.h libbitcollider_la_LDFLAGS = -version-info 1:0:0 libbitcollider_la_LIBADD = $(LIBLTDL) Index: main.c =================================================================== RCS file: /cvsroot/bitcollider/bitcollider/lib/main.c,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -r1.24 -r1.25 *** main.c 2001/07/23 21:22:34 1.24 --- main.c 2001/07/23 22:32:11 1.25 *************** *** 13,18 **** #include "bc_version.h" #include "bitcollider.h" ! #include "tigertree.h" ! #include "sha1.h" #include "mp3.h" #include "id3.h" --- 13,17 ---- #include "bc_version.h" #include "bitcollider.h" ! #include "bitprint.h" #include "mp3.h" #include "id3.h" *************** *** 26,33 **** /*------------------------------------------------------------------------- */ - b_bool hashCheckPassed = false; - /*------------------------------------------------------------------------- */ - #define BUFFER_LEN 4096 #define FIRST_N_HEX 20 --- 25,29 ---- *************** *** 36,48 **** #define DEFAULT_NUM_ATTRS 16 #define GROW_NUM_ATTRS 16 - #define SHA_HEXSIZE ((SHA_DIGESTSIZE * 2 * sizeof(char)) + 1) - #define TIGER_HEXSIZE ((TIGERSIZE * 2 * sizeof(char)) + 1) - #define ONEK_SIZE 1025 - #define EMPTY_SHA "DA39A3EE5E6B4B0D3255BFEF95601890AFD80709" - #define ONE_SHA "356A192B7913B04C54574D18C28D46E6395428AB" - #define ONEK_SHA "1009DE2EF6183BD6D8C08F1ED8DF4847E71F7ACB" - #define EMPTY_TIGER "3293AC630C13F0245F92BBB1766E16167A4E58492DDE73F3" - #define ONE_TIGER "1D573194A056EB3200F9D302900C843C3D41AB4ED06C03DF" - #define ONEK_TIGER "D1593128F306DD1C2831459205F14CCB843E675F021F2EA2" #ifdef _WIN32 --- 32,35 ---- *************** *** 68,73 **** b_bool calculate_hashes(BitcolliderSubmission *submission, FILE *source, ! unsigned char *sha1, ! unsigned char *tigerTree, mp3_info *mp3Info, PluginMethods *methods, --- 55,59 ---- b_bool calculate_hashes(BitcolliderSubmission *submission, FILE *source, ! char *bitprint, mp3_info *mp3Info, PluginMethods *methods, *************** *** 79,84 **** b_bool get_bitprint_data(BitcolliderSubmission *submission, const char *fileName, ! unsigned char *sha1, ! unsigned char *tigerTree, unsigned char *firstHex, mp3_info *mp3Info, --- 65,69 ---- b_bool get_bitprint_data(BitcolliderSubmission *submission, const char *fileName, ! char *bitprint, unsigned char *firstHex, mp3_info *mp3Info, *************** *** 86,92 **** Attribute **attrList); void convert_to_multiple_submission(BitcolliderSubmission *submission); - b_bool hash_sanity_check(void); - b_bool check_tigertree_hash(const char *result, unsigned char *data, int len); - b_bool check_sha1_hash(const char *result, unsigned char *data, int len); void set_error(BitcolliderSubmission *sub, const char *newError); void set_warning(BitcolliderSubmission *sub, const char *newError); --- 71,74 ---- *************** *** 147,152 **** if (ret != ERROR_SUCCESS) return bc; - - /*printf("Reg key set. Using path: '%s'\n", path); */ } ptr = path; --- 129,132 ---- *************** *** 171,260 **** } - BitcolliderSubmission *read_submission_from_file(Bitcollider *bc, FILE *infile) - { - BitcolliderSubmission *submission; - char buf[BUFFER_LEN], last[BUFFER_LEN], temp[BUFFER_LEN]; - char *c, *t; - int line, empty = 1; - - submission = (BitcolliderSubmission *)malloc(sizeof(BitcolliderSubmission)); - if (submission == NULL) - return NULL; - - memset(submission, 0, sizeof(BitcolliderSubmission)); - submission->bc = bc; - - last[0] = 0; - - for( line = 1; fgets( buf, BUFFER_LEN, infile ) != NULL; ++line ) - { - if( ! ( ( t = strchr( buf, '\r' ) ) || ( t = strchr( buf, '\n' ) ) ) ) - { - if( strlen( buf ) == BUFFER_LEN - 1 ) - { - fprintf( stderr, "Line %d exceeds length limit\n", line ); - exit(1); - } - else - { - fprintf( stderr, "Line %d is truncated\n", line ); - exit(1); - } - } - *t = 0; - - for( c = buf; *c == ' ' && *c == '\t'; ++c ) - ; /* <-- Empty for loop */ - - if( ! *c || *c == '#' ) - continue; - - if( ! ( t = strchr( c, '=' ) ) ) - { - fprintf( stderr, "Line %d does not appear to contain a tag\n", - line ); - exit(1); - } - *t = 0; - if( ! strncmp( c, "head.", 5 ) ) - continue; - if( isdigit( *c ) ) - { - if( ! ( t = strchr( c, '.' ) ) ) - { - fprintf(stderr, "Line %d does not appear to contain a tag\n", - line ); - exit(1); - } - *t = 0; - - strcpy( last, c ); - c = t + 1; - } - if (empty) - { - empty = 0; - get_agent_string(temp); - add_attribute(submission, "head.agent", temp); - - sprintf(temp, "S%s", BC_SUBMITSPECVER); - add_attribute(submission, "head.version", temp); - } - - if(strncmp(c, "bitprint", 8) == 0) - { - if (submission->numBitprints == 1) - convert_to_multiple_submission(submission); - - submission->numBitprints++; - } - submission->numBitprints--; - add_attribute( submission, c, c + strlen( c ) + 1 ); - submission->numBitprints++; - } - - return submission; - } - BitcolliderSubmission *create_submission(Bitcollider *bc) { --- 151,154 ---- *************** *** 268,278 **** submission->bc = bc; - if (!hashCheckPassed && hash_sanity_check()) - { - set_error(submission, ERROR_HASHCHECK); - } - else - hashCheckPassed = true; - return submission; } --- 162,165 ---- *************** *** 282,287 **** b_bool matchingExtsOnly) { ! char shaDigest[SHA_HEXSIZE]; ! char tigerTreeDigest[TIGER_HEXSIZE]; char firstNHex[FIRST_N_HEX_SIZE + 1]; char temp[MAX_ATTR_STRING_LEN], *ext; --- 169,173 ---- b_bool matchingExtsOnly) { ! char bitprint[BITPRINT_BASE32_LEN + 1]; char firstNHex[FIRST_N_HEX_SIZE + 1]; char temp[MAX_ATTR_STRING_LEN], *ext; *************** *** 304,313 **** } - if (!hashCheckPassed) - { - set_error(submission, ERROR_HASHCHECK); - return false; - } - if (submission->fileName) { --- 190,193 ---- *************** *** 356,361 **** mp3Info = malloc(sizeof(mp3_info)); ! if (!get_bitprint_data(submission, fileName, shaDigest, tigerTreeDigest, ! firstNHex, mp3Info, methods, &attrList)) { if (mp3Info) --- 236,241 ---- mp3Info = malloc(sizeof(mp3_info)); ! if (!get_bitprint_data(submission, fileName, bitprint, firstNHex, ! mp3Info, methods, &attrList)) { if (mp3Info) *************** *** 380,385 **** convert_to_multiple_submission(submission); ! sprintf(temp, "%s%s", shaDigest, tigerTreeDigest); ! add_attribute(submission, "bitprint", temp); sprintf(temp, "%lu", submission->fileSize); --- 260,264 ---- convert_to_multiple_submission(submission); ! add_attribute(submission, "bitprint", bitprint); sprintf(temp, "%lu", submission->fileSize); *************** *** 400,407 **** if (mp3Check) { ! char audioShaDigest[SHA_HEXSIZE]; ID3Info *info; ! convert_to_hex(mp3Info->audioSha, SHA_DIGESTSIZE, audioShaDigest); sprintf(temp, "%d", mp3Info->duration); add_attribute(submission, "tag.mp3.duration", temp); --- 279,286 ---- if (mp3Check) { ! char audioShaDigest[SHA_BASE32SIZE + 1]; ID3Info *info; ! bitziEncodeBase32(mp3Info->audioSha, SHA_DIGESTSIZE, audioShaDigest); sprintf(temp, "%d", mp3Info->duration); add_attribute(submission, "tag.mp3.duration", temp); *************** *** 581,584 **** --- 460,476 ---- } + static void convert_to_hex(const unsigned char *buffer, + int size, + char *hexBuffer) + { + int i; + + for(i = 0; i < size; i++) + { + sprintf(hexBuffer + (i * sizeof(char) * 2), "%02X", buffer[i] & 0xFF); + } + } + + void add_attribute(BitcolliderSubmission *submission, const char *key, *************** *** 651,656 **** b_bool get_bitprint_data(BitcolliderSubmission *submission, const char *fileName, ! unsigned char *sha1, ! unsigned char *tigerTree, unsigned char *firstHex, mp3_info *mp3Info, --- 543,547 ---- b_bool get_bitprint_data(BitcolliderSubmission *submission, const char *fileName, ! char *bitprint, unsigned char *firstHex, mp3_info *mp3Info, *************** *** 672,676 **** fseek(source, 0, SEEK_SET); ! ret = calculate_hashes(submission, source, sha1, tigerTree, mp3Info, methods, attrList); if (ret) --- 563,567 ---- fseek(source, 0, SEEK_SET); ! ret = calculate_hashes(submission, source, bitprint, mp3Info, methods, attrList); if (ret) *************** *** 683,703 **** b_bool calculate_hashes(BitcolliderSubmission *submission, FILE *source, ! unsigned char *sha1, ! unsigned char *tigerTree, mp3_info *mcontext, PluginMethods *methods, Attribute **attrList) { ! TT_CONTEXT tcontext; ! SHA_INFO scontext; ! unsigned char *buffer; int bytes; - unsigned char tigerHash[TIGERSIZE]; - unsigned char shaHash[SHA_DIGESTSIZE]; b_bool ret = true; Context *context = NULL; - tt_init(&tcontext); - sha_init(&scontext); if (mcontext) mp3_init(mcontext); --- 574,594 ---- b_bool calculate_hashes(BitcolliderSubmission *submission, FILE *source, ! char *bitprint, mp3_info *mcontext, PluginMethods *methods, Attribute **attrList) { ! BP_CONTEXT bcontext; ! unsigned char *buffer, bitprintRaw[BITPRINT_RAW_LEN]; int bytes; b_bool ret = true; Context *context = NULL; + + if (bitziBitprintInit(&bcontext) == -1) + { + set_error(submission, ERROR_HASHCHECK); + return false; + } if (mcontext) mp3_init(mcontext); *************** *** 729,734 **** } ! tt_update(&tcontext, buffer, bytes); ! sha_update(&scontext, buffer, bytes); if (mcontext) mp3_update(mcontext, buffer, bytes); --- 620,624 ---- } ! bitziBitprintUpdate(&bcontext, buffer, bytes); if (mcontext) mp3_update(mcontext, buffer, bytes); *************** *** 752,757 **** free(buffer); ! tt_digest(&tcontext, tigerHash); ! sha_final(shaHash, &scontext); if (mcontext) mp3_final(mcontext); --- 642,648 ---- free(buffer); ! bitziBitprintFinal(&bcontext, bitprintRaw); ! bitziBitprintToBase32(bitprintRaw, bitprint); ! if (mcontext) mp3_final(mcontext); *************** *** 759,765 **** *attrList = methods->mem_analyze_final(context); - convert_to_hex(tigerHash, TIGERSIZE, tigerTree); - convert_to_hex(shaHash, SHA_DIGESTSIZE, sha1); - return ret; } --- 650,653 ---- *************** *** 795,808 **** } - void convert_to_hex(const unsigned char *buffer, int size, char *hexBuffer) - { - int i; - - for(i = 0; i < size; i++) - { - sprintf(hexBuffer + (i * sizeof(char) * 2), "%02X", buffer[i] & 0xFF); - } - } - b_bool submit_submission(BitcolliderSubmission *submission, const char *url, --- 683,686 ---- *************** *** 909,986 **** } ! void print_submission(BitcolliderSubmission *submission) { ! int i; ! for(i = 0; i < submission->numItems; i++) ! { ! printf("%s=%s\n", ! submission->attrList[i]->key, ! submission->attrList[i]->value); ! } ! } ! b_bool hash_sanity_check(void) ! { ! b_bool ret; ! unsigned char *data; ! ret = check_tigertree_hash(EMPTY_TIGER, "", 0); ! ret += check_sha1_hash(EMPTY_SHA, "", 0); ! ret += check_tigertree_hash(ONE_TIGER, "1", 1); ! ret += check_sha1_hash(ONE_SHA, "1", 1); ! ! data = malloc(ONEK_SIZE); ! memset(data, 'a', ONEK_SIZE); ! ret += check_tigertree_hash(ONEK_TIGER, data, ONEK_SIZE); ! ret += check_sha1_hash(ONEK_SHA, data, ONEK_SIZE); ! free(data); ! return ret; ! } ! /* NOTE: This function returns true if it failed the check! */ ! b_bool check_tigertree_hash(const char *result, unsigned char *data, int len) ! { ! TT_CONTEXT tcontext; ! unsigned char tigerTreeHash[TIGERSIZE]; ! char tigerTreeDigest[TIGER_HEXSIZE]; ! tt_init(&tcontext); ! tt_update(&tcontext, data, len); ! tt_digest(&tcontext, tigerTreeHash); ! convert_to_hex(tigerTreeHash, TIGERSIZE, tigerTreeDigest); ! if (strcmp(tigerTreeDigest, result)) ! { ! fprintf(stderr, " tigertree: '%s' [%d]\n", ! tigerTreeDigest, len); ! fprintf(stderr, "correct tigertree: '%s' [%d]\n", ! result, len); ! return true; } ! return false; } ! /* NOTE: This function returns true if it failed the check! */ ! b_bool check_sha1_hash(const char *result, unsigned char *data, int len) { ! SHA_INFO scontext; ! unsigned char shaHash[SHA_DIGESTSIZE]; ! char shaDigest[SHA_HEXSIZE]; ! ! sha_init(&scontext); ! sha_update(&scontext, data, len); ! sha_final(shaHash, &scontext); ! convert_to_hex(shaHash, SHA_DIGESTSIZE, shaDigest); ! if (strcmp(shaDigest, result)) { ! fprintf(stderr, " sha: '%s' [%d]\n", shaDigest, len); ! fprintf(stderr, " correct sha: '%s' [%d]\n", result, len); ! return true; } - return false; } --- 787,886 ---- } ! BitcolliderSubmission *read_submission_from_file(Bitcollider *bc, FILE *infile) { ! BitcolliderSubmission *submission; ! char buf[BUFFER_LEN], last[BUFFER_LEN], temp[BUFFER_LEN]; ! char *c, *t; ! int line, empty = 1; ! submission = (BitcolliderSubmission *)malloc(sizeof(BitcolliderSubmission)); ! if (submission == NULL) ! return NULL; ! memset(submission, 0, sizeof(BitcolliderSubmission)); ! submission->bc = bc; + last[0] = 0; ! for( line = 1; fgets( buf, BUFFER_LEN, infile ) != NULL; ++line ) ! { ! if( ! ( ( t = strchr( buf, '\r' ) ) || ( t = strchr( buf, '\n' ) ) ) ) ! { ! if( strlen( buf ) == BUFFER_LEN - 1 ) ! { ! fprintf( stderr, "Line %d exceeds length limit\n", line ); ! exit(1); ! } ! else ! { ! fprintf( stderr, "Line %d is truncated\n", line ); ! exit(1); ! } ! } ! *t = 0; ! for( c = buf; *c == ' ' && *c == '\t'; ++c ) ! ; /* <-- Empty for loop */ ! if( ! *c || *c == '#' ) ! continue; ! if( ! ( t = strchr( c, '=' ) ) ) ! { ! fprintf( stderr, "Line %d does not appear to contain a tag\n", ! line ); ! exit(1); ! } ! *t = 0; ! if( ! strncmp( c, "head.", 5 ) ) ! continue; ! if( isdigit( *c ) ) ! { ! if( ! ( t = strchr( c, '.' ) ) ) ! { ! fprintf(stderr, "Line %d does not appear to contain a tag\n", ! line ); ! exit(1); ! } ! *t = 0; ! strcpy( last, c ); ! c = t + 1; ! } ! if (empty) ! { ! empty = 0; ! get_agent_string(temp); ! add_attribute(submission, "head.agent", temp); ! ! sprintf(temp, "S%s", BC_SUBMITSPECVER); ! add_attribute(submission, "head.version", temp); ! } ! ! if(strncmp(c, "bitprint", 8) == 0) ! { ! if (submission->numBitprints == 1) ! convert_to_multiple_submission(submission); ! ! submission->numBitprints++; ! } ! submission->numBitprints--; ! add_attribute( submission, c, c + strlen( c ) + 1 ); ! submission->numBitprints++; } ! ! return submission; } ! void print_submission(BitcolliderSubmission *submission) { ! int i; ! for(i = 0; i < submission->numItems; i++) { ! printf("%s=%s\n", ! submission->attrList[i]->key, ! submission->attrList[i]->value); } } |
|
From: Robert K. <may...@us...> - 2001-07-23 22:32:13
|
Update of /cvsroot/bitcollider/bitcollider
In directory usw-pr-cvs1:/tmp/cvs-serv8755
Modified Files:
ChangeLog
Log Message:
Added the new bitprint.[ch] to the bitcollider. The bitprints and
audioSha1 values are now in base32
Index: ChangeLog
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/ChangeLog,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** ChangeLog 2001/07/23 21:22:34 1.1
--- ChangeLog 2001/07/23 22:32:10 1.2
***************
*** 9,13 ****
more cross-platform compatible
- Applied Nathan Lutchansky -f patch (with some debugging to handle
! single file submits correctly)
- Converted bitcollider to use new base32 encoding, rather than base16
- Adapted bitprinting code from the bitprint.[ch] for more modular
--- 9,14 ----
more cross-platform compatible
- Applied Nathan Lutchansky -f patch (with some debugging to handle
! single file submits correctly), which also sends debugging printfs
! to stderr, not stdout
- Converted bitcollider to use new base32 encoding, rather than base16
- Adapted bitprinting code from the bitprint.[ch] for more modular
|
|
From: Robert K. <may...@us...> - 2001-07-23 21:22:38
|
Update of /cvsroot/bitcollider/bitcollider/lib
In directory usw-pr-cvs1:/tmp/cvs-serv23145/lib
Modified Files:
main.c plugin_man.c
Log Message:
Updated the version number, added a ChangeLog file and applied the -f patch.
Index: main.c
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/lib/main.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -r1.23 -r1.24
*** main.c 2001/06/18 07:27:17 1.23
--- main.c 2001/07/23 21:22:34 1.24
***************
*** 9,12 ****
--- 9,13 ----
#include <stdlib.h>
#include <string.h>
+ #include <ctype.h>
#include "bc_version.h"
***************
*** 107,111 ****
/* Load the plugins from the build dir first if ./plugins exists */
if (printDebugInfo)
! printf("Loading plugins from ./plugins:\n");
total = load_plugins(bc, "./plugins", printDebugInfo);
--- 108,112 ----
/* Load the plugins from the build dir first if ./plugins exists */
if (printDebugInfo)
! fprintf(stderr, "Loading plugins from ./plugins:\n");
total = load_plugins(bc, "./plugins", printDebugInfo);
***************
*** 116,120 ****
sprintf(path, "%s/.bitcollider/plugins", ptr);
if (printDebugInfo)
! printf("Loading plugins from %s:\n", path);
total += load_plugins(bc, path, printDebugInfo);
}
--- 117,121 ----
sprintf(path, "%s/.bitcollider/plugins", ptr);
if (printDebugInfo)
! fprintf(stderr, "Loading plugins from %s:\n", path);
total += load_plugins(bc, path, printDebugInfo);
}
***************
*** 155,163 ****
{
if (printDebugInfo)
! printf("Loading plugins from %s:\n", ptr);
total += load_plugins(bc, ptr, printDebugInfo);
}
if (printDebugInfo)
! printf("Loaded %d plugins total.\n\n", total);
return bc;
--- 156,164 ----
{
if (printDebugInfo)
! fprintf(stderr, "Loading plugins from %s:\n", ptr);
total += load_plugins(bc, ptr, printDebugInfo);
}
if (printDebugInfo)
! fprintf(stderr, "Loaded %d plugins total.\n\n", total);
return bc;
***************
*** 170,173 ****
--- 171,260 ----
}
+ BitcolliderSubmission *read_submission_from_file(Bitcollider *bc, FILE *infile)
+ {
+ BitcolliderSubmission *submission;
+ char buf[BUFFER_LEN], last[BUFFER_LEN], temp[BUFFER_LEN];
+ char *c, *t;
+ int line, empty = 1;
+
+ submission = (BitcolliderSubmission *)malloc(sizeof(BitcolliderSubmission));
+ if (submission == NULL)
+ return NULL;
+
+ memset(submission, 0, sizeof(BitcolliderSubmission));
+ submission->bc = bc;
+
+ last[0] = 0;
+
+ for( line = 1; fgets( buf, BUFFER_LEN, infile ) != NULL; ++line )
+ {
+ if( ! ( ( t = strchr( buf, '\r' ) ) || ( t = strchr( buf, '\n' ) ) ) )
+ {
+ if( strlen( buf ) == BUFFER_LEN - 1 )
+ {
+ fprintf( stderr, "Line %d exceeds length limit\n", line );
+ exit(1);
+ }
+ else
+ {
+ fprintf( stderr, "Line %d is truncated\n", line );
+ exit(1);
+ }
+ }
+ *t = 0;
+
+ for( c = buf; *c == ' ' && *c == '\t'; ++c )
+ ; /* <-- Empty for loop */
+
+ if( ! *c || *c == '#' )
+ continue;
+
+ if( ! ( t = strchr( c, '=' ) ) )
+ {
+ fprintf( stderr, "Line %d does not appear to contain a tag\n",
+ line );
+ exit(1);
+ }
+ *t = 0;
+ if( ! strncmp( c, "head.", 5 ) )
+ continue;
+ if( isdigit( *c ) )
+ {
+ if( ! ( t = strchr( c, '.' ) ) )
+ {
+ fprintf(stderr, "Line %d does not appear to contain a tag\n",
+ line );
+ exit(1);
+ }
+ *t = 0;
+
+ strcpy( last, c );
+ c = t + 1;
+ }
+ if (empty)
+ {
+ empty = 0;
+ get_agent_string(temp);
+ add_attribute(submission, "head.agent", temp);
+
+ sprintf(temp, "S%s", BC_SUBMITSPECVER);
+ add_attribute(submission, "head.version", temp);
+ }
+
+ if(strncmp(c, "bitprint", 8) == 0)
+ {
+ if (submission->numBitprints == 1)
+ convert_to_multiple_submission(submission);
+
+ submission->numBitprints++;
+ }
+ submission->numBitprints--;
+ add_attribute( submission, c, c + strlen( c ) + 1 );
+ submission->numBitprints++;
+ }
+
+ return submission;
+ }
+
BitcolliderSubmission *create_submission(Bitcollider *bc)
{
***************
*** 734,738 ****
#ifdef _WIN32
! GetTempPath(MAX_PATH, tempFile);
strcat(tempFile, "bitprint.htm");
#else
--- 821,825 ----
#ifdef _WIN32
! GetTempPath(MAX_PATH, tempFile);
strcat(tempFile, "bitprint.htm");
#else
***************
*** 826,830 ****
int i;
- printf("\n");
for(i = 0; i < submission->numItems; i++)
{
--- 913,916 ----
Index: plugin_man.c
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/lib/plugin_man.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -r1.11 -r1.12
*** plugin_man.c 2001/07/09 21:19:52 1.11
--- plugin_man.c 2001/07/23 21:22:34 1.12
***************
*** 11,15 ****
#include <sys/types.h>
#include <dirent.h>
! #include <ltdl.h>
#include "bitcollider.h"
--- 11,15 ----
#include <sys/types.h>
#include <dirent.h>
! #include "libltdl/ltdl.h"
#include "bitcollider.h"
***************
*** 41,44 ****
--- 41,45 ----
}
+ #ifndef NO_PLUGINS
int load_plugins(Bitcollider *bc, const char *path, b_bool printDebugInfo)
{
***************
*** 65,69 ****
if (printDebugInfo)
! printf(" %s: ", entry->d_name);
sprintf(file, "%s/%s", path, entry->d_name);
--- 66,70 ----
if (printDebugInfo)
! fprintf(stderr, " %s: ", entry->d_name);
sprintf(file, "%s/%s", path, entry->d_name);
***************
*** 73,77 ****
{
if (printDebugInfo)
! printf("Cannot load plugin %s. (%s)\n", file, lt_dlerror());
continue;
}
--- 74,79 ----
{
if (printDebugInfo)
! fprintf(stderr, "Cannot load plugin %s. (%s)\n",
! file, lt_dlerror());
continue;
}
***************
*** 85,89 ****
lt_dlclose(bc->plugins[bc->numPluginsLoaded].handle);
if (printDebugInfo)
! printf("Cannot find entry point in %s.\n", file);
continue;
}
--- 87,91 ----
lt_dlclose(bc->plugins[bc->numPluginsLoaded].handle);
if (printDebugInfo)
! fprintf(stderr, "Cannot find entry point in %s.\n", file);
continue;
}
***************
*** 95,99 ****
lt_dlclose(bc->plugins[bc->numPluginsLoaded].handle);
if (printDebugInfo)
! printf("Cannot retrieve supported methods from %s.\n", file);
continue;
}
--- 97,102 ----
lt_dlclose(bc->plugins[bc->numPluginsLoaded].handle);
if (printDebugInfo)
! fprintf(stderr, "Cannot retrieve supported methods from %s.\n",
! file);
continue;
}
***************
*** 105,111 ****
if (printDebugInfo)
{
! printf("%s ", bc->plugins[bc->numPluginsLoaded].methods->get_name());
! printf("(%s)\n", bc->plugins[bc->numPluginsLoaded].methods->
! get_version());
}
--- 108,115 ----
if (printDebugInfo)
{
! fprintf(stderr, "%s ", bc->plugins[bc->numPluginsLoaded].
! methods->get_name());
! fprintf(stderr, "(%s)\n", bc->plugins[bc->numPluginsLoaded].
! methods->get_version());
}
***************
*** 118,123 ****
{
if (printDebugInfo)
! printf(" [Plugin %s has already been loaded. Skipping.]\n",
! bc->plugins[bc->numPluginsLoaded].file);
bc->plugins[bc->numPluginsLoaded].methods->shutdown_plugin();
--- 122,127 ----
{
if (printDebugInfo)
! fprintf(stderr, " [Plugin %s has already been loaded. "
! "Skipping.]\n", bc->plugins[bc->numPluginsLoaded].file);
bc->plugins[bc->numPluginsLoaded].methods->shutdown_plugin();
***************
*** 163,166 ****
--- 167,180 ----
}
}
+ #else
+ int load_plugins(Bitcollider *bc, const char *path, b_bool printDebugInfo)
+ {
+ return 0;
+ }
+
+ void unload_plugins(Bitcollider *bc)
+ {
+ }
+ #endif
int get_num_plugins(Bitcollider *bc)
|
|
From: Robert K. <may...@us...> - 2001-07-23 21:22:38
|
Update of /cvsroot/bitcollider/bitcollider/src
In directory usw-pr-cvs1:/tmp/cvs-serv23145/src
Modified Files:
Makefile.am bitcollider.c
Log Message:
Updated the version number, added a ChangeLog file and applied the -f patch.
Index: Makefile.am
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/src/Makefile.am,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** Makefile.am 2001/03/30 00:58:17 1.7
--- Makefile.am 2001/07/23 21:22:34 1.8
***************
*** 5,12 ****
# $Id$
#
! INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/include
noinst_PROGRAMS = bitcollider
bitcollider_SOURCES = bitcollider.c
bitcollider_LDFLAGS = -export-dynamic
! bitcollider_LDADD = $(top_builddir)/lib/.libs/libbitcollider.a @LIBS@ -ldl
--- 5,12 ----
# $Id$
#
! INCLUDES = $(INCLTDL) -I$(top_srcdir)/lib -I$(top_srcdir)/include
noinst_PROGRAMS = bitcollider
bitcollider_SOURCES = bitcollider.c
bitcollider_LDFLAGS = -export-dynamic
! bitcollider_LDADD = $(top_builddir)/lib/.libs/libbitcollider.a @LIBS@ $(LIBLTDL)
Index: bitcollider.c
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/src/bitcollider.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** bitcollider.c 2001/04/03 23:53:49 1.14
--- bitcollider.c 2001/07/23 21:22:34 1.15
***************
*** 8,11 ****
--- 8,12 ----
#include <stdlib.h>
#include <string.h>
+ #include <errno.h>
#include "bitcollider.h"
#include "dirsearch.h"
***************
*** 26,45 ****
get_agent_string(agentString);
printf("%s\n\n", agentString);
! printf("Usage: bitcollider [options] <file|dir> [file|dir] ...\n\n");
printf("Options:\n");
! printf(" -p - print the submission info, without submitting\n");
! printf(" -n - show submission in browser, without submitting\n");
! printf(" -u - send submission to alternate URL\n");
! printf(" -3 - force mp3 analysis even if file does not end in .mp3\n");
! printf(" -e [ext] - treat file as if it had a given extension\n");
! printf(" -d - debug print during plugin loading\n");
! printf(" -r - recurse into directories.\n");
! printf(" -a - analyze all files for a given directory.\n");
! printf(" (Default is to analyze only known extensions)\n");
#ifndef _WIN32
! printf(" -k - use the Konqueror to submit\n");
! printf(" -m - use the Mozilla to submit\n");
! printf(" -o - use the Opera to submit\n");
! printf(" -l - use the lynx to submit\n");
printf("\nBy default Netscape will be used. You may also set the\n");
printf("BROWSER environment variable to specify your browser of choice.\n");
--- 27,48 ----
get_agent_string(agentString);
printf("%s\n\n", agentString);
! printf("Usage: bitcollider [options] <file|dir> [file|dir] ...\n");
! printf(" bitcollider [options] -f <tag file>\n\n");
printf("Options:\n");
! printf(" -p - print the submission info, without submitting\n");
! printf(" -n - show submission in browser, without submitting\n");
! printf(" -u - send submission to alternate URL\n");
! printf(" -3 - force mp3 analysis even if file does not end in .mp3\n");
! printf(" -e [ext] - treat file as if it had a given extension\n");
! printf(" -d - debug print during plugin loading\n");
! printf(" -r - recurse into directories.\n");
! printf(" -a - analyze all files for a given directory.\n");
! printf(" (Default is to analyze only known extensions)\n");
! printf(" -f <file> - read tags from <file> instead of analyzing\n");
#ifndef _WIN32
! printf(" -k - use the Konqueror to submit\n");
! printf(" -m - use the Mozilla to submit\n");
! printf(" -o - use the Opera to submit\n");
! printf(" -l - use the lynx to submit\n");
printf("\nBy default Netscape will be used. You may also set the\n");
printf("BROWSER environment variable to specify your browser of choice.\n");
***************
*** 55,65 ****
char *error;
error = get_error(bc);
! printf("%s:\n", message);
if (error)
! printf(" Error: %s\n\n", error);
else
! printf(" Unknown error.\n\n");
}
--- 58,74 ----
char *error;
+ if( ! bc )
+ {
+ fprintf(stderr, "%s\n", message);
+ return;
+ }
+
error = get_error(bc);
! fprintf(stderr, "%s:\n", message);
if (error)
! fprintf(stderr, " Error: %s\n\n", error);
else
! fprintf(stderr, " Unknown error.\n\n");
}
***************
*** 70,74 ****
warning = get_warning(bc);
if (warning)
! printf("Warning: %s\n\n", warning);
}
--- 79,83 ----
warning = get_warning(bc);
if (warning)
! fprintf(stderr, "Warning: %s\n\n", warning);
}
***************
*** 78,91 ****
if (fileName)
{
! printf(" %s: ", fileName);
! fflush(stdout);
}
if (message)
! printf("%s \n", message);
else
{
! printf("%-3d%%\b\b\b\b", percentComplete);
! fflush(stdout);
}
}
--- 87,100 ----
if (fileName)
{
! fprintf(stderr, " %s: ", fileName);
! // fflush(stdout);
}
if (message)
! fprintf(stderr, "%s \n", message);
else
{
! fprintf(stderr, "%-3d%%\b\b\b\b", percentComplete);
! // fflush(stdout);
}
}
***************
*** 95,99 ****
const char *submitTarget;
char checkAsExt[MAX_EXT_LEN];
! Bitcollider *bc;
BitcolliderSubmission *submission;
int argIndex = 1, count;
--- 104,109 ----
const char *submitTarget;
char checkAsExt[MAX_EXT_LEN];
! char tagFile[MAX_PATH];
! Bitcollider *bc = NULL;
BitcolliderSubmission *submission;
int argIndex = 1, count;
***************
*** 116,119 ****
--- 126,130 ----
}
checkAsExt[0] = 0;
+ tagFile[0] = 0;
submitTarget = getenv("BITPRINT_SUBMIT_URL");
***************
*** 175,178 ****
--- 186,194 ----
}
else
+ if (strcmp(argv[argIndex], "-f") == 0)
+ {
+ strcpy(tagFile, argv[++argIndex]);
+ }
+ else
if (strcmp(argv[argIndex], "-n") == 0)
{
***************
*** 193,198 ****
if (checkAsExt[0])
{
! printf("You cannot use -3 and -e at the same time.");
! printf(" -3 ignored.\n");
}
else
--- 209,214 ----
if (checkAsExt[0])
{
! fprintf(stderr, "You cannot use -3 and -e at the same time.");
! fprintf(stderr, " -3 ignored.\n");
}
else
***************
*** 202,208 ****
break;
}
! if (argIndex == argc)
{
! printf("You must specify a file to bitcollide.\n");
exit(-1);
}
--- 218,224 ----
break;
}
! if (! tagFile[0] && argIndex == argc)
{
! fprintf(stderr, "You must specify a file to bitcollide.\n");
exit(-1);
}
***************
*** 212,220 ****
if (strncmp(submitTarget, "http://", 7))
{
! printf("'%s' is not a valid URL. Ignoring.\n\n", submitTarget);
submitTarget = NULL;
}
else
! printf("Submitting to: %s\n\n", submitTarget);
}
--- 228,236 ----
if (strncmp(submitTarget, "http://", 7))
{
! fprintf(stderr, "'%s' is not a valid URL. Ignoring.\n\n", submitTarget);
submitTarget = NULL;
}
else
! fprintf(stderr, "Submitting to: %s\n\n", submitTarget);
}
***************
*** 222,286 ****
if (!bc)
{
! printf("Cannot create bitcollider.\n");
exit(-1);
}
!
! submission = create_submission(bc);
! if (!submission)
{
! printf("Cannot create submission.\n");
! bitcollider_shutdown(bc);
! exit(-1);
! }
!
! if (autoSubmit)
! set_auto_submit(submission, true);
!
! if (checkAsExt[0])
! set_check_as(submission, checkAsExt);
!
! if (!quiet)
! set_progress_callback(bc, progress);
! /* Check the file type and existence and then print out error info
! or analyze the file or dir */
! for(; argIndex < argc; argIndex++)
{
! strcpy(fileName, argv[argIndex]);
! type = check_file_type(fileName);
! if (type == eOther)
! {
! printf("%s is not a regular file. Skipping.\n", fileName);
! continue;
! }
! if (type == eNotFound)
! {
! printf("Cannot find file/dir %s. Skipping.\n", fileName);
! continue;
! }
!
! if (type == eFile)
! {
! ret = analyze_file(submission, fileName, false);
! if (!ret)
{
! print_error(bc, "Cannot analyze file");
! bitcollider_shutdown(bc);
! exit(-1);
}
! }
! else
! {
! if (!quiet)
! printf("Finding files:\n");
! count = recurse_dir(submission, fileName, analyzeAll, recurse);
! if (!quiet)
! printf("Analyzed %d files.\n\n", count);
! }
!
! print_warning(bc);
}
!
if (!dump)
{
--- 238,328 ----
if (!bc)
{
! fprintf(stderr, "Cannot create bitcollider.\n");
exit(-1);
}
!
! if( tagFile[0] )
{
! FILE *file;
! if( strcmp( tagFile, "-" ) )
! file = fopen( tagFile, "r" );
! else
! file = stdin;
!
! if( ! file )
! {
! char error[1024];
! sprintf( error, "Can't open tag file: %s\n", strerror(errno) );
! print_error( NULL, error );
! exit(1);
! }
!
! submission = read_submission_from_file(bc, file);
! if (autoSubmit)
! set_auto_submit(submission, true);
!
! fclose(file);
! }
! else
{
! submission = create_submission(bc);
! if (!submission)
! {
! fprintf(stderr, "Cannot create submission.\n");
! bitcollider_shutdown(bc);
! exit(-1);
! }
!
! if (checkAsExt[0])
! set_check_as(submission, checkAsExt);
!
! if (autoSubmit)
! set_auto_submit(submission, true);
!
! if (!quiet)
! set_progress_callback(bc, progress);
!
! /* Check the file type and existence and then print out error info
! or analyze the file or dir */
! for(; argIndex < argc; argIndex++)
! {
! strcpy(fileName, argv[argIndex]);
! type = check_file_type(fileName);
! if (type == eOther)
{
! fprintf(stderr, "%s is not a regular file. Skipping.\n", fileName);
! continue;
}
! if (type == eNotFound)
! {
! fprintf(stderr, "Cannot find file/dir %s. Skipping.\n", fileName);
! continue;
! }
!
! if (type == eFile)
! {
! ret = analyze_file(submission, fileName, false);
! if (!ret)
! {
! print_error(bc, "Cannot analyze file");
! bitcollider_shutdown(bc);
! exit(-1);
! }
! }
! else
! {
! if (!quiet)
! fprintf(stderr, "Finding files:\n");
! count = recurse_dir(submission, fileName, analyzeAll, recurse);
! if (!quiet)
! fprintf(stderr, "Analyzed %d files.\n\n", count);
! }
!
! print_warning(bc);
! }
}
!
if (!dump)
{
***************
*** 292,303 ****
}
print_warning(bc);
! printf("Information submitted. Thank you!\n");
}
else
{
print_submission(submission);
}
bitcollider_shutdown(bc);
-
return 0;
--- 334,345 ----
}
print_warning(bc);
! fprintf(stderr, "Information submitted. Thank you!\n");
}
else
{
+ fprintf(stderr, "\n");
print_submission(submission);
}
bitcollider_shutdown(bc);
return 0;
|
|
From: Robert K. <may...@us...> - 2001-07-23 21:22:38
|
Update of /cvsroot/bitcollider/bitcollider
In directory usw-pr-cvs1:/tmp/cvs-serv23145
Modified Files:
AUTHORS
Added Files:
ChangeLog
Log Message:
Updated the version number, added a ChangeLog file and applied the -f patch.
--- NEW FILE: ChangeLog ---
Changes to version 0.3.2:
-------------------------
- fixed bug where an extra semi-colon would cause an if-block to always
execute and sometimes crash.
- fixed an incorrect detect sha1 presence line of code (valid sha1s
may start with a \0 (DUH!)
- Started using libltdl for dynamic loading, thus making the bitcollider
more cross-platform compatible
- Applied Nathan Lutchansky -f patch (with some debugging to handle
single file submits correctly)
- Converted bitcollider to use new base32 encoding, rather than base16
- Adapted bitprinting code from the bitprint.[ch] for more modular
bitprintint capabilities.
Index: AUTHORS
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/AUTHORS,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** AUTHORS 2001/05/31 21:57:38 1.2
--- AUTHORS 2001/07/23 21:22:34 1.3
***************
*** 8,12 ****
Image plugin
! - Mark Nelson [delirium] del...@th...
(please send changes/patches to ro...@bi...)
--- 8,15 ----
Image plugin
! - Mark Nelson [delirium] <del...@th...>
!
! Support for the -f option and printing error messages to stderr
! - Nathan Lutchansky <lut...@li...>
(please send changes/patches to ro...@bi...)
|
|
From: Robert K. <may...@us...> - 2001-07-23 21:22:38
|
Update of /cvsroot/bitcollider/bitcollider/include
In directory usw-pr-cvs1:/tmp/cvs-serv23145/include
Modified Files:
bc_version.h bitcollider.h
Log Message:
Updated the version number, added a ChangeLog file and applied the -f patch.
Index: bc_version.h
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/include/bc_version.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** bc_version.h 2001/05/26 20:06:06 1.1
--- bc_version.h 2001/07/23 21:22:34 1.2
***************
*** 22,26 ****
/* Your agent-version string; should be #[.#[.#[etc]]] format */
! #define BC_VERSION "0.3.1"
#endif
--- 22,26 ----
/* Your agent-version string; should be #[.#[.#[etc]]] format */
! #define BC_VERSION "0.3.2"
#endif
Index: bitcollider.h
===================================================================
RCS file: /cvsroot/bitcollider/bitcollider/include/bitcollider.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** bitcollider.h 2001/04/05 23:38:13 1.7
--- bitcollider.h 2001/07/23 21:22:34 1.8
***************
*** 106,109 ****
--- 106,111 ----
const char *url,
BrowserEnum browser);
+ BitcolliderSubmission *read_submission_from_file(Bitcollider *bc,
+ FILE *tagFile);
int get_num_bitprints (BitcolliderSubmission *sub);
void print_submission (BitcolliderSubmission *tag);
|
|
From: Robert K. <may...@us...> - 2001-07-16 20:37:02
|
Update of /cvsroot/bitcollider/bitprint
In directory usw-pr-cvs1:/tmp/cvs-serv28375
Modified Files:
bitprint.c
Log Message:
Fixed the static/non-static compiler warnings.
Index: bitprint.c
===================================================================
RCS file: /cvsroot/bitcollider/bitprint/bitprint.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** bitprint.c 2001/07/16 20:24:54 1.4
--- bitprint.c 2001/07/16 20:36:59 1.5
***************
*** 87,97 ****
typedef unsigned long LONG; /* 32-or-more-bit quantity */
! void sha_init(SHA_INFO *);
! void sha_update(SHA_INFO *, BYTE *, int);
! void sha_final(unsigned char [20], SHA_INFO *);
!
! void sha_stream(unsigned char [20], SHA_INFO *, FILE *);
! void sha_print(unsigned char [20]);
! char *sha_version(void);
#define SHA_VERSION 1
--- 87,97 ----
typedef unsigned long LONG; /* 32-or-more-bit quantity */
! static void sha_init(SHA_INFO *);
! static void sha_update(SHA_INFO *, BYTE *, int);
! static void sha_final(unsigned char [20], SHA_INFO *);
!
! static void sha_stream(unsigned char [20], SHA_INFO *, FILE *);
! static void sha_print(unsigned char [20]);
! static char *sha_version(void);
#define SHA_VERSION 1
***************
*** 104,116 ****
typedef unsigned char byte;
! void tiger(word64 *str, word64 length, word64 *res);
/* =================================================================== */
/* FILE: tigertree.h */
/* =================================================================== */
! void tt_init(TT_CONTEXT *ctx);
! void tt_update(TT_CONTEXT *ctx, unsigned char *buffer, unsigned long len);
! void tt_digest(TT_CONTEXT *ctx, unsigned char *hash);
! void tt_copy(TT_CONTEXT *dest, TT_CONTEXT *src);
/* =================================================================== */
--- 104,116 ----
typedef unsigned char byte;
! static void tiger(word64 *str, word64 length, word64 *res);
/* =================================================================== */
/* FILE: tigertree.h */
/* =================================================================== */
! static void tt_init(TT_CONTEXT *ctx);
! static void tt_update(TT_CONTEXT *ctx, unsigned char *buffer, unsigned long len);
! static void tt_digest(TT_CONTEXT *ctx, unsigned char *hash);
! static void tt_copy(TT_CONTEXT *dest, TT_CONTEXT *src);
/* =================================================================== */
***************
*** 178,184 ****
#define ONEK_TIGER "D1593128F306DD1C2831459205F14CCB843E675F021F2EA2"
! int check_sha1_hash(const char *result, unsigned char *data, int len);
! int check_tigertree_hash(const char *result, unsigned char *data, int len);
! int hash_sanity_check(void);
int bitziBitprintFile(const char *fileName, unsigned char *bitprint)
--- 178,184 ----
#define ONEK_TIGER "D1593128F306DD1C2831459205F14CCB843E675F021F2EA2"
! static int check_sha1_hash(const char *result, unsigned char *data, int len);
! static int check_tigertree_hash(const char *result, unsigned char *data, int len);
! static int hash_sanity_check(void);
int bitziBitprintFile(const char *fileName, unsigned char *bitprint)
***************
*** 245,248 ****
--- 245,250 ----
bitziBitprintUpdate(&context, buffer, bufLen);
bitziBitprintFinal(&context, bitprint);
+
+ return 1;
}
***************
*** 591,595 ****
/* The compress function is a function. Requires smaller cache? */
! static tiger_compress(word64 *str, word64 state[3])
{
tiger_compress_macro(((word64*)str), ((word64*)state));
--- 593,597 ----
/* The compress function is a function. Requires smaller cache? */
! static void tiger_compress(word64 *str, word64 state[3])
{
tiger_compress_macro(((word64*)str), ((word64*)state));
|
|
From: Robert K. <may...@us...> - 2001-07-16 20:24:57
|
Update of /cvsroot/bitcollider/bitprint
In directory usw-pr-cvs1:/tmp/cvs-serv25859
Modified Files:
bitprint.c bitprint.h
Log Message:
Changed the characters to be upper case and ensured proper compilation
undef cygwin
Index: bitprint.c
===================================================================
RCS file: /cvsroot/bitcollider/bitprint/bitprint.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** bitprint.c 2001/07/05 21:39:52 1.3
--- bitprint.c 2001/07/16 20:24:54 1.4
***************
*** 24,28 ****
this assumption cannot be made. */
! #ifdef _WIN32
#undef WORDS_BIGENDIAN
#define SIZEOF_LONG 4
--- 24,28 ----
this assumption cannot be made. */
! #if defined(_WIN32) || defined(__CYGWIN__)
#undef WORDS_BIGENDIAN
#define SIZEOF_LONG 4
***************
*** 100,111 ****
/* FILE: tiger.h */
/* =================================================================== */
- #ifdef _WIN32
- typedef unsigned long int tword;
-
- #else
- typedef unsigned long long int word64;
- #endif
-
typedef unsigned long word32;
typedef unsigned char byte;
--- 100,104 ----
***************
*** 126,130 ****
#define BASE32_LOOKUP_MAX 43
! static unsigned char *base32Chars = "abcdefghijkmnpqrstuvwxyz23456789";
static unsigned char base32Lookup[BASE32_LOOKUP_MAX][2] =
{
--- 119,123 ----
#define BASE32_LOOKUP_MAX 43
! static unsigned char *base32Chars = "ABCDEFGHIJKMNPQRSTUVWXYZ23456789";
static unsigned char base32Lookup[BASE32_LOOKUP_MAX][2] =
{
Index: bitprint.h
===================================================================
RCS file: /cvsroot/bitcollider/bitprint/bitprint.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** bitprint.h 2001/07/05 20:42:40 1.2
--- bitprint.h 2001/07/16 20:24:54 1.3
***************
*** 29,36 ****
--- 29,44 ----
/* =================================================================== */
+ #if defined(_WIN32)
+
#if defined (_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS >= 64)
typedef unsigned __int64 word64;
#else
#error __int64 type not supported
+ #endif
+
+ #else
+
+ typedef unsigned long long word64;
+
#endif
|
|
From: Robert K. <may...@us...> - 2001-07-12 20:52:55
|
Update of /cvsroot/bitcollider/supercollider
In directory usw-pr-cvs1:/tmp/cvs-serv31668
Modified Files:
localhtml.cpp main.cpp main.dfm main.h optionsdialog.cpp
optionsdialog.dfm optionsdialog.h
Log Message:
Fixing a few usability bugs and making sure that windows size right,
and the user can now remove a file from the list, as well as removing
it from disk.
Index: localhtml.cpp
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/localhtml.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** localhtml.cpp 2001/07/12 00:50:35 1.2
--- localhtml.cpp 2001/07/12 20:52:52 1.3
***************
*** 140,144 ****
html.Add("<a href=\"delete-");
html.Add(timestampText);
! html.Add(".html\">Delete</a></td>");
html.Add("<td valign=\"top\" width=\"10%%\">Rate</td></tr>");
}
--- 140,144 ----
html.Add("<a href=\"delete-");
html.Add(timestampText);
! html.Add(".html\">Remove</a></td>");
html.Add("<td valign=\"top\" width=\"10%%\">Rate</td></tr>");
}
***************
*** 241,249 ****
if (fileName.Length() > 0)
{
! html.Add("<p><center>Are you sure you want to delete file<br><b>");
html.Add(fileName);
! html.Add("</b><br><a href=\"remove-" + ident + ".html\">Yes</a>");
! html.Add(" <a href=\"pending.html\">No</a>");
! html.Add("</center>");
}
--- 241,250 ----
if (fileName.Length() > 0)
{
! html.Add("<p><center>Are you sure you want to remove file<br><b>");
html.Add(fileName);
! html.Add("</b><br><a href=\"pending.html\">No</a> | ");
! html.Add("<a href=\"remove-" + ident + ".html\">Yes</a> | ");
! html.Add("<a href=\"unlink-" + ident + ".html\">Yes, and delete from disk.</a>");
! html.Add("<br></center>");
}
Index: main.cpp
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/main.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** main.cpp 2001/07/12 00:50:35 1.2
--- main.cpp 2001/07/12 20:52:52 1.3
***************
*** 302,305 ****
--- 302,306 ----
{
URL = fileURL;
+ Debug_v("Call Navigate!");
bitziWebBrowser->Navigate(BSTR(URL));
}
***************
*** 399,402 ****
--- 400,404 ----
WideString burl(url);
+ Debug_v("Call Navigate 2");
browser->Navigate(BSTR(burl));
***************
*** 441,444 ****
--- 443,447 ----
char *ptr;
+ Debug_v("Before Navigate");
ptr = strrchr(url.c_str(), '\\');
if (ptr)
***************
*** 472,480 ****
}
}
! if (strcmp(command, "remove") == 0)
{
fileCache->getFileName(index, fileName);
fileCache->remove(index);
! unlink(fileName.c_str());
PostMessage(Handle, WM_NAVIGATE, 0, 0);
*Cancel = true;
--- 475,487 ----
}
}
! if (strcmp(command, "remove") == 0 ||
! strcmp(command, "unlink") == 0)
{
fileCache->getFileName(index, fileName);
fileCache->remove(index);
!
! if (strcmp(command, "unlink") == 0)
! unlink(fileName.c_str());
!
PostMessage(Handle, WM_NAVIGATE, 0, 0);
*Cancel = true;
***************
*** 504,507 ****
--- 511,516 ----
AnsiString url = *URL;
+ Debug_v("Load doc complete");
+
bitziWebBrowser->Cursor = crDefault;
spinTimer->Enabled = false;
***************
*** 732,737 ****
--- 741,754 ----
URL = url;
+ Debug_v("Navigate 3");
bitziWebBrowser->Navigate(BSTR(URL));
free(url);
}
+
+ void __fastcall TSuperColliderForm::bitziWebBrowserNavigateComplete2(
+ TObject *Sender, LPDISPATCH pDisp, TVariant *URL)
+ {
+ Debug_v("Navigate complete");
+ }
+ //---------------------------------------------------------------------------
Index: main.dfm
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/main.dfm,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** main.dfm 2001/07/11 19:07:00 1.1
--- main.dfm 2001/07/12 20:52:52 1.2
***************
*** 1,10 ****
object SuperColliderForm: TSuperColliderForm
! Left = 475
! Top = 691
! Width = 511
! Height = 301
Anchors = [akTop, akRight]
BorderIcons = [biSystemMenu, biMinimize]
Caption = 'SuperCollider'
Color = clBtnFace
Constraints.MinHeight = 150
--- 1,11 ----
object SuperColliderForm: TSuperColliderForm
! Left = 207
! Top = 688
Anchors = [akTop, akRight]
+ AutoScroll = False
BorderIcons = [biSystemMenu, biMinimize]
Caption = 'SuperCollider'
+ ClientHeight = 274
+ ClientWidth = 503
Color = clBtnFace
Constraints.MinHeight = 150
***************
*** 115,118 ****
--- 116,120 ----
TabOrder = 1
OnBeforeNavigate2 = bitziWebBrowserBeforeNavigate2
+ OnNavigateComplete2 = bitziWebBrowserNavigateComplete2
OnDocumentComplete = bitziWebBrowserDocumentComplete
ControlData = {
Index: main.h
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/main.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** main.h 2001/07/12 00:50:35 1.2
--- main.h 2001/07/12 20:52:52 1.3
***************
*** 88,91 ****
--- 88,93 ----
void __fastcall showMainWindowMessage(TMessage &Message);
void __fastcall navigateMessage(TMessage &Message);
+ void __fastcall bitziWebBrowserNavigateComplete2(TObject *Sender,
+ LPDISPATCH pDisp, TVariant *URL);
private:
Index: optionsdialog.cpp
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/optionsdialog.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** optionsdialog.cpp 2001/07/11 19:07:00 1.1
--- optionsdialog.cpp 2001/07/12 20:52:52 1.2
***************
*** 3,8 ****
#pragma hdrstop
- #include "debug.h"
#include "optionsdialog.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
--- 3,8 ----
#pragma hdrstop
#include "optionsdialog.h"
+ #include "bitcollider.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
***************
*** 45,49 ****
--- 45,54 ----
{
AnsiString file;
+ char agentString[100];
+ get_agent_string(agentString);
+ bitcolliderInfoLabel->Caption =
+ AnsiString("using ") + AnsiString(agentString);
+
popupOnNewFile->Checked = newValues.popupOnNewFile;
minimizeToTasktray->Checked = newValues.minimizeToTasktray;
***************
*** 235,237 ****
--- 240,256 ----
}
//---------------------------------------------------------------------------
+
+ void __fastcall TPreferencesForm::bitziImageClick(TObject *Sender)
+ {
+ ShellExecute(NULL,"open","http://bitzi.com", NULL,NULL,SW_SHOWNORMAL);
+ }
+
+ //---------------------------------------------------------------------------
+
+ void __fastcall TPreferencesForm::bitziUrlClick(TObject *Sender)
+ {
+ ShellExecute(NULL,"open","http://bitzi.com", NULL,NULL,SW_SHOWNORMAL);
+ }
+ //---------------------------------------------------------------------------
+
Index: optionsdialog.dfm
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/optionsdialog.dfm,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** optionsdialog.dfm 2001/07/11 19:07:00 1.1
--- optionsdialog.dfm 2001/07/12 20:52:52 1.2
***************
*** 1,5 ****
object PreferencesForm: TPreferencesForm
! Left = 391
! Top = 718
BorderIcons = [biSystemMenu]
BorderStyle = bsDialog
--- 1,5 ----
object PreferencesForm: TPreferencesForm
! Left = 374
! Top = 717
BorderIcons = [biSystemMenu]
BorderStyle = bsDialog
***************
*** 125,129 ****
object folderListbox: TListBox
Left = 8
! Top = 24
Width = 353
Height = 105
--- 125,129 ----
object folderListbox: TListBox
Left = 8
! Top = 25
Width = 353
Height = 105
***************
*** 150,153 ****
--- 150,577 ----
TabOrder = 2
OnClick = removeFolderButtonClick
+ end
+ end
+ object aboutSheet: TTabSheet
+ Caption = 'About'
+ ImageIndex = 2
+ object bitziImage: TImage
+ Left = 200
+ Top = 91
+ Width = 160
+ Height = 60
+ Picture.Data = {
+ 07544269746D6170B6290000424DB6290000000000003604000028000000A000
+ 00003C0000000100080000000000802500000000000000000000000100000000
+ 000000000000000080000080000000808000800000008000800080800000C0C0
+ C000C0DCC000F0CAA6000020400000206000002080000020A0000020C0000020
+ E00000400000004020000040400000406000004080000040A0000040C0000040
+ E00000600000006020000060400000606000006080000060A0000060C0000060
+ E00000800000008020000080400000806000008080000080A0000080C0000080
+ E00000A0000000A0200000A0400000A0600000A0800000A0A00000A0C00000A0
+ E00000C0000000C0200000C0400000C0600000C0800000C0A00000C0C00000C0
+ E00000E0000000E0200000E0400000E0600000E0800000E0A00000E0C00000E0
+ E00040000000400020004000400040006000400080004000A0004000C0004000
+ E00040200000402020004020400040206000402080004020A0004020C0004020
+ E00040400000404020004040400040406000404080004040A0004040C0004040
+ E00040600000406020004060400040606000406080004060A0004060C0004060
+ E00040800000408020004080400040806000408080004080A0004080C0004080
+ E00040A0000040A0200040A0400040A0600040A0800040A0A00040A0C00040A0
+ E00040C0000040C0200040C0400040C0600040C0800040C0A00040C0C00040C0
+ E00040E0000040E0200040E0400040E0600040E0800040E0A00040E0C00040E0
+ E00080000000800020008000400080006000800080008000A0008000C0008000
+ E00080200000802020008020400080206000802080008020A0008020C0008020
+ E00080400000804020008040400080406000804080008040A0008040C0008040
+ E00080600000806020008060400080606000806080008060A0008060C0008060
+ E00080800000808020008080400080806000808080008080A0008080C0008080
+ E00080A0000080A0200080A0400080A0600080A0800080A0A00080A0C00080A0
+ E00080C0000080C0200080C0400080C0600080C0800080C0A00080C0C00080C0
+ E00080E0000080E0200080E0400080E0600080E0800080E0A00080E0C00080E0
+ E000C0000000C0002000C0004000C0006000C0008000C000A000C000C000C000
+ E000C0200000C0202000C0204000C0206000C0208000C020A000C020C000C020
+ E000C0400000C0402000C0404000C0406000C0408000C040A000C040C000C040
+ E000C0600000C0602000C0604000C0606000C0608000C060A000C060C000C060
+ E000C0800000C0802000C0804000C0806000C0808000C080A000C080C000C080
+ E000C0A00000C0A02000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0
+ E000C0C00000C0C02000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0
+ A000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFF6E5EDEE09F6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFEED3D3D3D3D3DCDCED09F6F6FFFFF6FFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6FF
+ FFFFFFF6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFE5D3D3D3D3D3D3D3D3D3D3D4DCE509F6F6FFFFF6FF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F609
+ E5DCD3DDF6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D4DCED09FF
+ F6FFF6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6FFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6FFFFFFF6FFFFFFFFF6FFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6FFF609EEE5DCD3D3
+ D3D3D3D3F6FFFFFFFFFFFFFFFFFFFFFFFFFFF6FFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFF6D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ E509F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6FFFFF6F6FFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5D3D3D3D4DCE5EE0909F6F6F6FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF609EEE5DCD3D3D3D3D3D3D3
+ D3D3D3D3E5F6FFFFFFFFFFFFFFFFFFFFFFFFF6F6FFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFF6D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3DCEEFFF6FFFFFFFFFFFFFFFFFFFFF6FFF609EDDCDCDCF6F6FFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3D3DCDDEEFFFF
+ FFFFFFFFFFFFFFFFFFF6FFFFFFF6FFF609EEE5DCD3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D4F6FFFFFFFFFFFFFFFFFFFFF6DCDCDCE5E5EE09F6FFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3DC09F6FFFFFFFFFFFFFFF609E5DCD3D3D3D3D3D309FFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4D3D3D3D3D3D3D3D3D3D3D3D3D3F6FF
+ FFFFFFFFFFFFFFFFFFFFF609EEE5DCD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D309FFFFFFFFFFFFFFFFFFFFF6D3D3D3D3D3D3D3D3D4E509FFFFFFFF
+ FF0000FFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3D309F6FFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3EEFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3D3D3D3D3D3D3D3D3D3D3D3D3DCFFFF
+ FFFFFFFFFFFFFFFFEEDCD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3E5F6FFFFFFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3E5FFFFFFFF
+ FF0000FFFFFFFFFFFFFFEED3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3D3D309F6FFFFFFFF09D3D3D3D3D3D3D3D3D3D3E5F6FFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D3D3D3D3D3D3D3D3D3D3D3D3D3E5F6FF
+ FFFFFFFFFFFFFFFFD4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3E5FFFFFFFFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3EEFFFFFFFF
+ FF0000FFFFFFFFFFFFFFE5D3D3D3D3D3D3D3D3D3D3E50909E5DCD3D3D3D3D3D3
+ D3D3D3D3D3D3D3D4FFF6FFFFFFF6D3D3D3D3D3D3D3D3D3D3DCFFF6FFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D3D3D3D3D3D3D3D3D3D3D3D3D3EEFFFF
+ FFFFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D4DC
+ E5E5EE0909F6F6FFFFFFFFFFFFFFFFFFEED3D3D3D3D3D3D3D3D3D309FFFFFFFF
+ FF0000FFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3D3F6F6FFFFFFF609E5D3D3D3
+ D3D3D3D3D3D3D3D3EEFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3D4F6FFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3D3D3D309F6FF
+ FFFFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DCE5EE09F6F6FF
+ F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDD3D3D3D3D3D3D3D3D3D3F6FFFFFFFF
+ FF0000FFFFFFFFFFFFFFD4D3D3D3D3D3D3D3D3D3D4F6FFFFFFFFFFFFF6EED3D3
+ D3D3D3D3D3D3D3D3DCF6FFFFFFFFEED3D3D3D3D3D3D3D3D3D309FFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3D3D3D3F6FFFF
+ FFFFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3D3D3D3D3D409F6F6FFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5D3D3D3D3D3D3D3D3D3D4F6FFFFFFFF
+ FF0000FFFFFFFFFFFFF6D3D3D3D3D3D3D3D3D3D3DCF6FFFFFFFFFFFFFFFFD3D3
+ D3D3D3D3D3D3D3D3D4F6FFFFFFFF09D3D3D3D3D3D3D3D3D3D3EEF6FFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3D3D3D4F6F6FF
+ FFFFFFFFFFFFFFFFD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D409FFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3DCFFFFFFFFFF
+ FF0000FFFFFFFFFFFFF6D3D3D3D3D3D3D3D3D3D3DC09F6FFFFFFFFFFF609D3D3
+ D3D3D3D3D3D3D3D3D4F6FFFFFFFFF6DCD3D3D3D3D3D3D3D3D3E5FFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEED3D3D3D3D3D3D3D3D3D3D3D3DCFFFFFF
+ FFFFFFFFFFFFFFFF09D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3E5F6FFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3E5FFFFFFFFFF
+ FF0000FFFFFFFFFFFFEED3D3D3D3D3D3D3D3D3D3D3D3D4DCE5EE0909EED4D3D3
+ D3D3D3D3D3D3D3D3D4F6FFFFFFFFFFE5D3D3D3D3D3D3D3D3D3DCF6FFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEED3D3D3D3D3D3D3D3D3D3D3D3E5F6FFFF
+ FFFFFFFFFFFFFFFFFFF6E5D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DC09F6FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4D3D3D3D3D3D3D3D3D309F6FFFFFFFF
+ FF0000FFFFFFFFFFFFE5D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3D3D3D3DCFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3F6F6FFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5D3D3D3D3D3D3D3D3D3D3D3D309F6FFFF
+ FFFFFFFFFFFFFFFFFFFFFF09D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3E5F6F6FF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3D3D3D3D3D3D3D3D3D3F6FFFFFFFFFF
+ FF0000FFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3D3D3D3EEFFFFFFFFFFFFF6D3D3D3D3D3D3D3D3D3D309FFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5D3D3D3D3D3D3D3D3D3D3D3D3F6FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFF6E5D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D409F6
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D3D3D3D3D3D3D3D3D3D3FFF6FFFFFFFF
+ FF0000FFFFFFFFFFF6D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3D3D3DCF6FFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3EEFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3D3D3D3FFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFF09DCD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3E5
+ F6F6FFFFFFFFFFFFFFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3DCFFFFFFFFFFFF
+ FF0000FFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3D3D409F6FFFFFFFFFFFFFFE5D3D3D3D3D3D3D3D3D3E5F6FFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4D3D3D3D3D3D3D3D3D3D3D3DCF6FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E5D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D409F6FFFFFFFFFFFFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3E5F6FFFFFFFFFF
+ FF0000FFFFFFFFFFE5D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3DCF6FFFFFFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D4F6FFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D3D3D3D3D3D3D3D3D3D3D3D3E5FFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF609DCD3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3DDF6F6FFFFFFFFFFFFFFFFFFFFEDD3D3D3D3D3D3D3D3D3EDFFFFFFFFFFFF
+ FF0000FFFFFFFFFFDCD3D3D3D3D3D3D3D3D3D309EEE5DCD3D3D3D3D3D3D3D3D3
+ D3D3D3D409FFFFFFFFFFFFFFFFFFFFFFF6D4D3D3D3D3D3D3D3D3D3F6F6FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3D3D3E5F6FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E5D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D4EEFFF6FFFFFFFFFFFFFFFFE5D3D3D3D3D3D3D3D3D309F6FFFFFFFFFF
+ FF0000FFFFFFFFF6D3D3D3D3D3D3D3D3D3D3DCFFFFFFFFFF09E5D3D3D3D3D3D3
+ D3D3D3D309F6FFFFFFFFFFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3EEFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3D3D3EEFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09DCD3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3DC09F6FFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D309FFFFFFFFFFFF
+ FF0000FFFFFFFF09D3D3D3D3D3D3D3D3D3D3E5FFFFFFFFFFFFFFEED3D3D3D3D3
+ D3D3D3D3D4F6FFFFFFFFFFFFFFFFFFFFFFE5D3D3D3D3D3D3D3D3D3DCFFFFFFFF
+ FFFFFFF6F6FFF6FFF6FFF6FFFFFFEDD3D3D3D3D3D3D3D3D3D3D3D309FFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E5D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3D3D3EDF6FFFFFFFFFFF6D3D3D3D3D3D3D3D3D3D3F6FFFFFFFFFFFF
+ FF0000FFFFFFFFE5D3D3D3D3D3D3D3D3D3D3E5FFF6FFFFFFFFFFF6D4D3D3D3D3
+ D3D3D3D3D3EDF6FFFFFFFFFFFFFFFFFFFFEED3D3D3D3D3D3D3D3D3D3F6FFFFFF
+ FFFFFFF6D3D3DCE5ED09F6F6F6FFDCD3D3D3D3D3D3D3D3D3D3D3D309F6FFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09D4D3D3D3D3D3D3D3
+ D3D3D3D3D3D3D3D3F6FFFFFFFFFF09D3D3D3D3D3D3D3D3D3D4F6FFFFFFFFFFFF
+ FF0000FFFFFFFFDCD3D3D3D3D3D3D3D3D3D3D4E5EEF6FFF6FFFFEED3D3D3D3D3
+ D3D3D3D3D3DCFFFFFFFFFFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D309F6FFFF
+ FFFFFFFFD3D3D3D3D3D3D3D4DCE5D4D3D3D3D3D3D3D3D3D3D3D3D3F6FFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6FFFFFFFFF609E5D3D3D3D3D3D3D3
+ D3D3D3D3D3D3D3D3F6F6FFFFFFFFEED3D3D3D3D3D3D3D3D3D4F6F6FFFFFFFFFF
+ FF0000FFFFFFF6D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D4DCD4D3D3D3D3D3D3
+ D3D3D3D3D3D4FFFFFFFFFFFFFFFFFFFFFFFFD3D3D3D3D3D3D3D3D3D3E5F6FFFF
+ FFFFFFFFDCD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D4F6F6FFFFF6
+ FFFFFFFFFFFFFFFFFFFFFFFFFFF6FFFFF6F609E5DCD4D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3D3D3D309FFFFFFFFFFE5D3D3D3D3D3D3D3D3D3DCFFFFFFFFFFFFFF
+ FF0000FFFFFF09D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3DCFFFFFFFFFFFFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3D4F6F6FF
+ FFFFFFFFE5D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3E5EDEE09F6
+ F6F6FFFFFFFFFFFFFFFFFFFF09EEE5DCD4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3D3D3D309FFFFFFFFFFDCD3D3D3D3D3D3D3D3D3DCFFFFFFFFFFFFFF
+ FF0000FFFFFFE5D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3EEFFFFFFFFFFFFFFFFFFFFFFFFE5D3D3D3D3D3D3D3D3D3D309FFFF
+ FFFFFFFFE5D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3DCDC09F6FFFFFFFFFFE5D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3D3D3D309F6FFFFFFFFD3D3D3D3D3D3D3D3D3D3E5F6FFFFFFFFFFFF
+ FF0000FFFFFFF6EEE5D4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D4F6FFFFFFFFFFFFFFFFFFFFFFFFEED3D3D3D3D3D3D3D3D3D3EDF6FF
+ FFFFFFFFE5D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3E5FFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3D3DCE509FFFFFFFFFFF6D3D3D3D3D3D3D3D3D3D3E5FFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFF609EDDCD4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D309F6FFFFFFFFFFFFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3DCFFFF
+ FFFFFFFFEED3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D309F6FFFFFFFFFFFFDCD3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D4
+ DCE509F6FFF6FFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3EDF6FFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFF6F609E5DCD4D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D3D3D3D3D3D3D3D3D3D3DCFFFF
+ FFFFFFFFF609EDE5E5DDDCD4D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D3F6FFFFFFFFFFFFFF09D3D3D3D3D3D3D3D3D3D3D3D3D3D3DCE5EEF6F6
+ FFFFFFFFFFFFFFFFFFFFFFFFFFEED3D3D3D3D3D3D3D3D3D3EEFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF609EDE5DCD4D4D3D3D3D3D4
+ DCEDF6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6DCD3D3D3D3D3D4E5EE09F6FFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFF60909EDE5DCDCD4D3D3D3D3D3D3D3D3D3D3D3
+ D3D3D3D4FFFFFFFFFFFFFFFFFFDCD3D3D3D3D3D3D3D3DCE5EE09F6F6FFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFF6DDDCD4D4D3D3D3D3D3D309FFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F6F6F6F6
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5D3D4E509F6FFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F609EEE5DCD3D3D3D3D3D3
+ D3D3D3DCFFFFFFFFFFFFFFFFFFEED3D3D3DCE5EE09F6FFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF60909EDE5D4D4F6FFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6FFF6FFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F609E5DCD4
+ D4D3D3DCF6FFFFFFFFFFFFFFFFF60909F6FFF6FFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6FFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ F609EE09FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6FFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6FFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7BFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFB7FFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF772FF6FFFFFFFFFF
+ F6FFF6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66FB7FFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6FF6FFF6BFB7
+ 77F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF772FB7FFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F6F6F6F776F2F2F
+ F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFB7B7BFF6FFB76F6FB7FFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6BF2F6F6F6F6F6F2FBF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFF62F6F2F6F2F6F6FB7FFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6BFB76F2F6F6F6F6F6F2FB7FF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFF6B76F6F6F6F6F6F6F77B7F6F6FFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6772F2F6F6F6F6F6F6F6F2FF6FF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFF66F6F6F6F6F6F6F6F6F2F6F6FF6FFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6B76F2F6F6F6F6F6F6F6FF6
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFB72F6F6F6F6F6F6F6F2F6FBFF6FFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB76F6F6F6F6F6F6F77
+ FFF6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFF66F6F6F6F6F6F2F6FB7F6FFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB76F6F2F776F2F6F2F
+ B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFF6776F6F6F6F6F6FB7F6FFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF776F2FB7FFF6F6B76F
+ 2FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFB72F2F6F776F6F6FBFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66F6F6FF6FFFFFFFFF6
+ F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFF66FB7F6F6F66F6F6FBFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66F6FF6FFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFF6F6FFFFFFFFBF2F6FBFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66FF6FFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF772FBFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6FFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66FBFFFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFF6FFFFFFFFFFFFFFFFFFFFFF
+ FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FF00000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000}
+ OnClick = bitziImageClick
+ end
+ object Label2: TLabel
+ Left = 6
+ Top = 6
+ Width = 359
+ Height = 20
+ AutoSize = False
+ Caption = 'SuperCollider / 0.1.0'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -15
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ ParentFont = False
+ WordWrap = True
+ end
+ object Label3: TLabel
+ Left = 6
+ Top = 26
+ Width = 358
+ Height = 20
+ AutoSize = False
+ Caption = '(PD) 2001 The Bitzi Corporation'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -15
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ ParentFont = False
+ WordWrap = True
+ end
+ object bitcolliderInfoLabel: TLabel
+ Left = 20
+ Top = 48
+ Width = 345
+ Height = 20
+ AutoSize = False
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -15
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ ParentFont = False
+ WordWrap = True
+ end
+ object infoLabel: TLabel
+ Left = 2
+ Top = 72
+ Width = 196
+ Height = 70
+ AutoSize = False
+ Caption =
+ 'For more information about the SuperCollider and the Bitzi commu' +
+ 'nity metadatabase, please visit:'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -15
+ Font.Name = 'MS Sans Serif'
+ Font.Style = []
+ ParentFont = False
+ WordWrap = True
+ end
+ object bitziUrl: TLabel
+ Left = 2
+ Top = 142
+ Width = 194
+ Height = 16
+ Alignment = taCenter
+ AutoSize = False
+ Caption = 'http://bitzi.com'
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clBlue
+ Font.Height = -15
+ Font.Name = 'MS Sans Serif'
+ Font.Style = [fsUnderline]
+ ParentFont = False
+ OnClick = bitziUrlClick
end
end
Index: optionsdialog.h
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/optionsdialog.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** optionsdialog.h 2001/07/11 19:07:00 1.1
--- optionsdialog.h 2001/07/12 20:52:52 1.2
***************
*** 10,13 ****
--- 10,15 ----
#include <ComCtrls.hpp>
#include "preferences.h"
+ #include <ExtCtrls.hpp>
+ #include <Graphics.hpp>
//---------------------------------------------------------------------------
class TPreferencesForm : public TForm
***************
*** 32,35 ****
--- 34,44 ----
TCheckBox *popupOnReminderCheckBox;
TCheckBox *playReminderSoundCheckBox;
+ TTabSheet *aboutSheet;
+ TImage *bitziImage;
+ TLabel *Label2;
+ TLabel *Label3;
+ TLabel *bitcolliderInfoLabel;
+ TLabel *infoLabel;
+ TLabel *bitziUrl;
void __fastcall okButtonClick(TObject *Sender);
void __fastcall cancelButtonClick(TObject *Sender);
***************
*** 45,48 ****
--- 54,59 ----
void __fastcall upDownClick(TObject *Sender, TUDBtnType Button);
void __fastcall playReminderSoundCheckBoxClick(TObject *Sender);
+ void __fastcall bitziImageClick(TObject *Sender);
+ void __fastcall bitziUrlClick(TObject *Sender);
private: // User declarations
void __fastcall updateButtons(void);
|
|
From: Robert K. <may...@us...> - 2001-07-12 20:52:55
|
Update of /cvsroot/bitcollider/supercollider/rc In directory usw-pr-cvs1:/tmp/cvs-serv31668/rc Added Files: bitzi.bmp Log Message: Fixing a few usability bugs and making sure that windows size right, and the user can now remove a file from the list, as well as removing it from disk. --- NEW FILE: bitzi.bmp --- BM¶) ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿw/·ÿÿÿÿÿÿÿÿÿÿÿÿ |
|
From: Robert K. <may...@us...> - 2001-07-12 20:52:55
|
Update of /cvsroot/bitcollider/supercollider/installer In directory usw-pr-cvs1:/tmp/cvs-serv31668/installer Modified Files: sc-setup.wse Log Message: Fixing a few usability bugs and making sure that windows size right, and the user can now remove a file from the list, as well as removing it from disk. Index: sc-setup.wse =================================================================== RCS file: /cvsroot/bitcollider/supercollider/installer/sc-setup.wse,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** sc-setup.wse 2001/07/12 00:50:35 1.1 --- sc-setup.wse 2001/07/12 20:52:52 1.2 *************** *** 1226,1230 **** end item: Create Directory ! Pathname=%MAINDIR%\MyMusic end item: Create Directory --- 1226,1230 ---- end item: Create Directory ! Pathname=%MAINDIR%\watched end item: Create Directory *************** *** 1341,1357 **** end item: Edit Registry ! Total Keys=2 ! item: Key ! Key=Software\Bitzi\Supercollider ! New Value=%MAINDIR%\cache ! Value Name=CacheFolder ! Root=1 ! end ! item: Key ! Key=Software\Bitzi\Supercollider\WatchedFolders ! New Value=%MAINDIR%\MyMusic ! Value Name=Folder0 ! Root=1 ! end end item: Self-Register OCXs/DLLs --- 1341,1349 ---- end item: Edit Registry ! Total Keys=1 ! Key=Software\Bitzi\Supercollider ! New Value=%MAINDIR%\cache ! Value Name=CacheFolder ! Root=1 end item: Self-Register OCXs/DLLs |
|
From: Robert K. <may...@us...> - 2001-07-12 00:50:38
|
Update of /cvsroot/bitcollider/supercollider
In directory usw-pr-cvs1:/tmp/cvs-serv5330
Modified Files:
analyzer.cpp filecache.cpp filecache.h localhtml.cpp
localhtml.h main.cpp main.h reminderdialog.cpp
reminderdialog.dfm supercollider.bpr supercollider.cpp
Log Message:
Added a delete option so that users can delete files from the
pending list.
Index: analyzer.cpp
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/analyzer.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** analyzer.cpp 2001/07/11 19:07:00 1.1
--- analyzer.cpp 2001/07/12 00:50:35 1.2
***************
*** 120,123 ****
--- 120,124 ----
fileCache->setAttributes(index, list);
fileCache->setStatus(index, eAnalyzed);
+ fileCache->setTimestamp(index, GetTickCount());
parent->setStatus(" ");
***************
*** 137,141 ****
bitcollider_shutdown(bc);
}
- Debug_v("Analyzer exit.");
}
--- 138,141 ----
Index: filecache.cpp
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/filecache.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** filecache.cpp 2001/07/11 19:07:00 1.1
--- filecache.cpp 2001/07/12 00:50:35 1.2
***************
*** 86,89 ****
--- 86,90 ----
entry->status = eNew;
entry->attrs = NULL;
+ entry->timestamp = 0;
mutex->Acquire();
***************
*** 126,129 ****
--- 127,170 ----
}
+ DWORD FileCache::getTimestamp(int index)
+ {
+ DWORD timestamp = 0;
+
+ mutex->Acquire();
+ if (index >= 0 && index < cache->Count)
+ {
+ timestamp = ((CacheEntry *)cache->Items[index])->timestamp;
+ }
+ mutex->Release();
+
+ return timestamp;
+ }
+
+ void FileCache::setTimestamp(int index, DWORD timestamp)
+ {
+ mutex->Acquire();
+ if (index >= 0 && index < cache->Count)
+ {
+ ((CacheEntry *)cache->Items[index])->timestamp = timestamp;
+ }
+ mutex->Release();
+ }
+
+ int FileCache::getIndexFromTimestamp(DWORD timestamp)
+ {
+ int index = -1;
+
+ mutex->Acquire();
+ for(int i = cache->Count - 1; i >= 0; i--)
+ if (((CacheEntry *)cache->Items[i])->timestamp == timestamp)
+ {
+ index = i;
+ break;
+ }
+ mutex->Release();
+
+ return index;
+ }
+
void FileCache::getFileName(int index, AnsiString &fileName)
{
***************
*** 175,179 ****
// TODO: Delete attrs
cache->Delete(i);
! }
}
mutex->Release();
--- 216,220 ----
// TODO: Delete attrs
cache->Delete(i);
! }
}
mutex->Release();
Index: filecache.h
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/filecache.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** filecache.h 2001/07/11 19:07:00 1.1
--- filecache.h 2001/07/12 00:50:35 1.2
***************
*** 25,28 ****
--- 25,29 ----
CacheEntryStatus status;
TList *attrs;
+ DWORD timestamp;
};
***************
*** 44,48 ****
CacheEntryStatus getStatus(int index);
! void getFileName(int index, AnsiString &fileName);
void setAttributes(int index, TList *list);
--- 45,53 ----
CacheEntryStatus getStatus(int index);
! void getFileName(int index, AnsiString &fileName);
!
! DWORD getTimestamp(int index);
! void setTimestamp(int index, DWORD timestamp);
! int getIndexFromTimestamp(DWORD timestamp);
void setAttributes(int index, TList *list);
Index: localhtml.cpp
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/localhtml.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** localhtml.cpp 2001/07/11 19:07:00 1.1
--- localhtml.cpp 2001/07/12 00:50:35 1.2
***************
*** 58,61 ****
--- 58,64 ----
GenerateSubmissionPage(fileCache, html);
OutputFile("submit.html", html, fileURL);
+
+ GenerateDeletePage(fileCache, html, "", "");
+ OutputFile("delete.html", html, fileURL);
}
***************
*** 73,77 ****
return false;
! ret = fwrite(html.c_str(), html.Length(), 1, out) == (int)html.Length();
fclose(out);
--- 76,80 ----
return false;
! ret = fwrite(html.c_str(), 1, html.Length(), out) == (unsigned)html.Length();
fclose(out);
***************
*** 101,110 ****
else
{
! char file[MAX_PATH], ext[MAX_PATH];
numTotal = fileCache->getNumItems();
html.Add("<table width=\"100%%\">");
! html.Add("<tr><td colspan=\"2\" align=\"center\"><h3>");
if (numItems != 1)
html.Add("There are ");
--- 104,113 ----
else
{
! char file[MAX_PATH], ext[MAX_PATH], timestampText[12];
numTotal = fileCache->getNumItems();
html.Add("<table width=\"100%%\">");
! html.Add("<tr><td colspan=\"3\" align=\"center\"><h3>");
if (numItems != 1)
html.Add("There are ");
***************
*** 125,128 ****
--- 128,132 ----
{
fileCache->getFileName(i, fileName);
+ sprintf(timestampText, "%08X", fileCache->getTimestamp(i));
fnsplit(fileName.c_str(), NULL, NULL, file, ext);
html.Add("<tr><td width=\"80%%\">");
***************
*** 130,137 ****
if (fileName[2] == ':')
fileName[2] = '|';
! html.Add("</td><td width=\10%%\"><a href=\"file://");
html.Add(fileName);
html.Add("\" target=\"_blank\">Review</a></td>");
! html.Add("<td width=\"10%%\">Rate</td></tr>");
}
}
--- 134,145 ----
if (fileName[2] == ':')
fileName[2] = '|';
! html.Add("</td><td valign=\"top\" width=\10%%\"><a href=\"file://");
html.Add(fileName);
html.Add("\" target=\"_blank\">Review</a></td>");
! html.Add("<td width=\"10%%\" valign=\"top\">");
! html.Add("<a href=\"delete-");
! html.Add(timestampText);
! html.Add(".html\">Delete</a></td>");
! html.Add("<td valign=\"top\" width=\"10%%\">Rate</td></tr>");
}
}
***************
*** 224,225 ****
--- 232,251 ----
}
+ void __fastcall LocalHTML::GenerateDeletePage(FileCache *fileCache,
+ AnsiString &htmlArg,
+ const AnsiString &fileName,
+ const AnsiString &ident)
+ {
+ HTMLOutput html("Delete file", false);
+
+ if (fileName.Length() > 0)
+ {
+ html.Add("<p><center>Are you sure you want to delete file<br><b>");
+ html.Add(fileName);
+ html.Add("</b><br><a href=\"remove-" + ident + ".html\">Yes</a>");
+ html.Add(" <a href=\"pending.html\">No</a>");
+ html.Add("</center>");
+ }
+
+ html.Output(htmlArg);
+ }
Index: localhtml.h
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/localhtml.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** localhtml.h 2001/07/11 19:07:00 1.1
--- localhtml.h 2001/07/12 00:50:35 1.2
***************
*** 19,28 ****
void __fastcall GenerateSubmissionPage(FileCache *fileCache,
AnsiString &htmlArg);
!
! private:
!
bool __fastcall OutputFile(const AnsiString &fileName,
AnsiString &html,
AnsiString &fileURL);
AnsiString cacheDir;
--- 19,32 ----
void __fastcall GenerateSubmissionPage(FileCache *fileCache,
AnsiString &htmlArg);
! void __fastcall GenerateDeletePage(FileCache *fileCache,
! AnsiString &htmlArg,
! const AnsiString &fileName,
! const AnsiString &ident);
bool __fastcall OutputFile(const AnsiString &fileName,
AnsiString &html,
AnsiString &fileURL);
+
+ private:
+
AnsiString cacheDir;
Index: main.cpp
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/main.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** main.cpp 2001/07/11 19:07:00 1.1
--- main.cpp 2001/07/12 00:50:35 1.2
***************
*** 39,42 ****
--- 39,43 ----
submitUrl = "http://bitzi.com/lookup/";
reminderForm = NULL;
+ onPendingPage = true;
if (prefs->getPrefs().folderList->Count > 0)
***************
*** 227,252 ****
reminderForm->SetNumItemsPending(numPending);
! if (pendingUrl.Length() > 0 &&
! currentUrl.Length() > 0 &&
! currentUrl != pendingUrl)
{
! if (fileCache->getNumReadyItems() > 0)
! {
! int newTop, bottom, newHeight;
!
! bottom = bitziWebBrowser->Top + bitziWebBrowser->Height;
! newTop = alertImage->Top + alertImage->Height + 3;
! newHeight = bottom - newTop;
! if (bitziWebBrowser->Top != newTop)
! {
! bitziWebBrowser->Height = newHeight;
! bitziWebBrowser->Top = newTop;
! }
! }
! pendingButton->Enabled = fileCache->getNumReadyItems() > 0;
}
! else
{
if (bitziWebBrowser->Top != alertImage->Top)
{
--- 228,248 ----
reminderForm->SetNumItemsPending(numPending);
! if (!onPendingPage && fileCache->getNumReadyItems() > 0)
{
+ int newTop, bottom, newHeight;
! // Move the browser window down to uncover the alert image
! bottom = bitziWebBrowser->Top + bitziWebBrowser->Height;
! newTop = alertImage->Top + alertImage->Height + 3;
! newHeight = bottom - newTop;
! if (bitziWebBrowser->Top != newTop)
! {
! bitziWebBrowser->Height = newHeight;
! bitziWebBrowser->Top = newTop;
! }
}
! if (onPendingPage || (!onPendingPage && fileCache->getNumReadyItems() == 0))
{
+ // Move the browser window over the alert image
if (bitziWebBrowser->Top != alertImage->Top)
{
***************
*** 258,261 ****
--- 254,258 ----
}
}
+ pendingButton->Enabled = fileCache->getNumReadyItems() > 0;
}
***************
*** 287,298 ****
void __fastcall TSuperColliderForm::wake(void)
{
- if (pendingUrl.Length() > 0 &&
- currentUrl.Length() > 0 &&
- currentUrl != pendingUrl)
- {
- EnableButtons();
- return;
- }
-
UpdatePendingDisplay();
--- 284,287 ----
***************
*** 310,316 ****
local.OutputLocalPages(fileCache, fileURL);
! URL = fileURL;
! bitziWebBrowser->Navigate(BSTR(URL));
! pendingUrl = fileURL;
EnableButtons();
}
--- 299,307 ----
local.OutputLocalPages(fileCache, fileURL);
! if (onPendingPage)
! {
! URL = fileURL;
! bitziWebBrowser->Navigate(BSTR(URL));
! }
EnableButtons();
}
***************
*** 447,461 ****
TOLEBOOL *Cancel)
{
! AnsiString url = *URL;
bitziWebBrowser->Cursor = crHourGlass;
// If this is a local document, don't tell the user about it.
if (url[2] == ':')
{
- currentUrl = "";
return;
}
- currentUrl = url;
setStatus("Loading " + *URL);
spinTimer->Enabled = true;
--- 438,496 ----
TOLEBOOL *Cancel)
{
! AnsiString url = *URL;
! char *ptr;
!
! ptr = strrchr(url.c_str(), '\\');
! if (ptr)
! {
! char command[20];
! DWORD timestamp;
!
! ptr++;
! if (sscanf(ptr, "%[^-]-%8X.html", command, ×tamp) == 2)
! {
! LocalHTML local;
! AnsiString html;
! int index;
!
! index = fileCache->getIndexFromTimestamp(timestamp);
! if (index >= 0)
! {
! AnsiString fileName, newUrl;
! char ident[100];
!
! if (strcmp(command, "delete") == 0)
! {
! sprintf(ident, "%08X", timestamp);
! fileCache->getFileName(index, fileName);
! local.GenerateDeletePage(fileCache, html, fileName, ident);
! if (local.OutputFile("confirm.html", html, newUrl))
! {
! PostMessage(Handle, WM_NAVIGATE, 0, (LPARAM)strdup(newUrl.c_str()));
! *Cancel = true;
! return;
! }
! }
! if (strcmp(command, "remove") == 0)
! {
! fileCache->getFileName(index, fileName);
! fileCache->remove(index);
! unlink(fileName.c_str());
! PostMessage(Handle, WM_NAVIGATE, 0, 0);
! *Cancel = true;
! return;
! }
! }
! }
! }
bitziWebBrowser->Cursor = crHourGlass;
+ onPendingPage = strcmp(url.c_str() + url.Length() - 12, "pending.html") == 0;
// If this is a local document, don't tell the user about it.
if (url[2] == ':')
{
return;
}
setStatus("Loading " + *URL);
spinTimer->Enabled = true;
***************
*** 485,489 ****
if (url[2] == ':')
{
! currentUrl = "";
return;
}
--- 520,524 ----
if (url[2] == ':')
{
! EnableButtons();
return;
}
***************
*** 491,495 ****
setStatus("Document Loaded.");
}
- currentUrl = url;
}
--- 526,529 ----
***************
*** 498,502 ****
void __fastcall TSuperColliderForm::pendingButtonClick(TObject *Sender)
{
! currentUrl = "";
UpdatePendingDisplay();
EnableButtons();
--- 532,536 ----
void __fastcall TSuperColliderForm::pendingButtonClick(TObject *Sender)
{
! onPendingPage = true;
UpdatePendingDisplay();
EnableButtons();
***************
*** 683,685 ****
--- 717,737 ----
}
+ //---------------------------------------------------------------------------
+
+ void __fastcall TSuperColliderForm::navigateMessage(TMessage &Message)
+ {
+ char *url = (char *)Message.LParam;
+ WideString URL;
+
+ if (url == NULL)
+ {
+ onPendingPage = true;
+ UpdatePendingDisplay();
+ return;
+ }
+
+ URL = url;
+ bitziWebBrowser->Navigate(BSTR(URL));
+ free(url);
+ }
Index: main.h
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/main.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** main.h 2001/07/11 19:07:00 1.1
--- main.h 2001/07/12 00:50:35 1.2
***************
*** 28,31 ****
--- 28,32 ----
#define WM_REMINDERCLICKED (WM_USER + 2)
#define WM_SHOWMAINWINDOW (WM_USER + 3)
+ #define WM_NAVIGATE (WM_USER + 4)
//---------------------------------------------------------------------------
***************
*** 86,89 ****
--- 87,91 ----
void __fastcall showMainWindow(void);
void __fastcall showMainWindowMessage(TMessage &Message);
+ void __fastcall navigateMessage(TMessage &Message);
private:
***************
*** 115,119 ****
Preferences *prefs;
Graphics::TBitmap *spinBitmaps[8];
! bool reminderVisible;
TReminderForm *reminderForm;
--- 117,121 ----
Preferences *prefs;
Graphics::TBitmap *spinBitmaps[8];
! bool onPendingPage;
TReminderForm *reminderForm;
***************
*** 125,128 ****
--- 127,131 ----
MESSAGE_HANDLER(WM_REMINDERCLICKED, TMessage, reminderClicked);
MESSAGE_HANDLER(WM_SHOWMAINWINDOW, TMessage, showMainWindowMessage);
+ MESSAGE_HANDLER(WM_NAVIGATE, TMessage, navigateMessage);
END_MESSAGE_MAP(TForm)
__fastcall TSuperColliderForm(TComponent* Owner);
***************
*** 135,139 ****
void __fastcall updateProgress(int percent);
void __fastcall endProgress(void);
-
};
//---------------------------------------------------------------------------
--- 138,141 ----
Index: reminderdialog.cpp
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/reminderdialog.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** reminderdialog.cpp 2001/07/11 19:07:00 1.1
--- reminderdialog.cpp 2001/07/12 00:50:35 1.2
***************
*** 87,91 ****
if (!Visible)
{
! if (timerCount < prefs->getPrefs().reminderInterval)
return;
--- 87,91 ----
if (!Visible)
{
! if (timerCount < prefs->getPrefs().reminderInterval * 60)
return;
Index: reminderdialog.dfm
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/reminderdialog.dfm,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** reminderdialog.dfm 2001/07/11 19:07:00 1.1
--- reminderdialog.dfm 2001/07/12 00:50:35 1.2
***************
*** 88,92 ****
object reminderTimer: TTimer
Enabled = False
- Interval = 60000
OnTimer = reminderTimerTimer
Left = 22
--- 88,91 ----
Index: supercollider.bpr
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/supercollider.bpr,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** supercollider.bpr 2001/07/11 19:03:35 1.1
--- supercollider.bpr 2001/07/12 00:50:35 1.2
***************
*** 8,12 ****
watcher.obj debug.obj htmoutput.obj localhtml.obj preferences.obj
optionsdialog.obj reminderdialog.obj"/>
! <RESFILES value="supercollider.res bitmaps.res"/>
<IDLFILES value=""/>
<IDLGENFILES value=""/>
--- 8,12 ----
watcher.obj debug.obj htmoutput.obj localhtml.obj preferences.obj
optionsdialog.obj reminderdialog.obj"/>
! <RESFILES value="supercollider.res rc\resources.res"/>
<IDLFILES value=""/>
<IDLGENFILES value=""/>
***************
*** 19,42 ****
<PATHCPP value=".;"/>
<PATHPAS value=".;"/>
! <PATHRC value=".;"/>
<PATHASM value=".;"/>
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
<RELEASELIBPATH value="$(BCB)\lib\release"/>
<LINKER value="tlink32"/>
! <USERDEFINES value="NO_WIN32_LEAN_AND_MEAN;_DEBUG"/>
<SYSDEFINES value="NO_STRICT;USEPACKAGES"/>
<MAINSOURCE value="supercollider.cpp"/>
! <INCLUDEPATH value="D:\freeamp\freeamp\ui\freeamp\win32\include\;"C:\Program Files\Borland\CBuilder5\Bin\";$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include"/>
! <LIBPATH value="D:\freeamp\freeamp\ui\freeamp\win32\include\;"C:\Program Files\Borland\CBuilder5\Bin\";$(BCB)\lib\obj;$(BCB)\lib"/>
<WARNINGS value="-w-par"/>
</MACROS>
<OPTIONS>
<IDLCFLAGS value="-I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp -boa"/>
! <CFLAG1 value="-Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c
! -tW -tWM"/>
! <PFLAGS value="-$Y+ -$W -$O- -v -JPHNE -M"/>
<RFLAGS value=""/>
! <AFLAGS value="/mx /w2 /zi"/>
! <LFLAGS value="-D"" -aa -Tpe -x -Gn -v"/>
</OPTIONS>
<LINKER>
--- 19,41 ----
<PATHCPP value=".;"/>
<PATHPAS value=".;"/>
! <PATHRC value=".;rc"/>
<PATHASM value=".;"/>
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
<RELEASELIBPATH value="$(BCB)\lib\release"/>
<LINKER value="tlink32"/>
! <USERDEFINES value="NO_WIN32_LEAN_AND_MEAN"/>
<SYSDEFINES value="NO_STRICT;USEPACKAGES"/>
<MAINSOURCE value="supercollider.cpp"/>
! <INCLUDEPATH value="rc;D:\freeamp\freeamp\ui\freeamp\win32\include\;"C:\Program Files\Borland\CBuilder5\Bin\";$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include"/>
! <LIBPATH value="rc;D:\freeamp\freeamp\ui\freeamp\win32\include\;"C:\Program Files\Borland\CBuilder5\Bin\";$(BCB)\lib\obj;$(BCB)\lib"/>
<WARNINGS value="-w-par"/>
</MACROS>
<OPTIONS>
<IDLCFLAGS value="-I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp -boa"/>
! <CFLAG1 value="-O2 -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -a8 -b- -k- -vi -c -tW -tWM"/>
! <PFLAGS value="-$Y- -$L- -$D- -v -JPHNE -M"/>
<RFLAGS value=""/>
! <AFLAGS value="/mx /w2 /zn"/>
! <LFLAGS value="-D"" -aa -Tpe -x -Gn"/>
</OPTIONS>
<LINKER>
***************
*** 74,93 ****
[HistoryLists\hlIncludePath]
! Count=7
! Item0=D:\freeamp\freeamp\ui\freeamp\win32\include\;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include
! Item1=D:\freeamp\freeamp\ui\freeamp\win32\include;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include
! Item2=C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include
! Item3=C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;D:\bitzi\bitcollider\include
! Item4=C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl
! Item5=C:\Program Files\Borland\CBuilder5\Bin;$(BCB)\include;$(BCB)\include\vcl
! Item6=$(BCB)\include;$(BCB)\include\vcl
[HistoryLists\hlLibraryPath]
! Count=5
! Item0=D:\freeamp\freeamp\ui\freeamp\win32\include\;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\lib\obj;$(BCB)\lib
! Item1=D:\freeamp\freeamp\ui\freeamp\win32\include;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\lib\obj;$(BCB)\lib
! Item2=C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\lib\obj;$(BCB)\lib
! Item3=C:\Program Files\Borland\CBuilder5\Bin;$(BCB)\lib\obj;$(BCB)\lib
! Item4=$(BCB)\lib\obj;$(BCB)\lib
[HistoryLists\hlDebugSourcePath]
--- 73,96 ----
[HistoryLists\hlIncludePath]
! Count=9
! Item0=rc;D:\freeamp\freeamp\ui\freeamp\win32\include\;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include
! Item1=rc\;D:\freeamp\freeamp\ui\freeamp\win32\include\;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include
! Item2=D:\freeamp\freeamp\ui\freeamp\win32\include\;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include
! Item3=D:\freeamp\freeamp\ui\freeamp\win32\include;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include
! Item4=C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include
! Item5=C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;D:\bitzi\bitcollider\include
! Item6=C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl
! Item7=C:\Program Files\Borland\CBuilder5\Bin;$(BCB)\include;$(BCB)\include\vcl
! Item8=$(BCB)\include;$(BCB)\include\vcl
[HistoryLists\hlLibraryPath]
! Count=7
! Item0=rc;D:\freeamp\freeamp\ui\freeamp\win32\include\;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\lib\obj;$(BCB)\lib
! Item1=rc\;D:\freeamp\freeamp\ui\freeamp\win32\include\;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\lib\obj;$(BCB)\lib
! Item2=D:\freeamp\freeamp\ui\freeamp\win32\include\;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\lib\obj;$(BCB)\lib
! Item3=D:\freeamp\freeamp\ui\freeamp\win32\include;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\lib\obj;$(BCB)\lib
! Item4=C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\lib\obj;$(BCB)\lib
! Item5=C:\Program Files\Borland\CBuilder5\Bin;$(BCB)\lib\obj;$(BCB)\lib
! Item6=$(BCB)\lib\obj;$(BCB)\lib
[HistoryLists\hlDebugSourcePath]
***************
*** 97,102 ****
[HistoryLists\hlConditionals]
Count=4
! Item0=NO_WIN32_LEAN_AND_MEAN;_DEBUG
! Item1=NO_WIN32_LEAN_AND_MEAN
Item2=_DEBUG;NO_WIN32_LEAN_AND_MEAN
Item3=_DEBUG
--- 100,105 ----
[HistoryLists\hlConditionals]
Count=4
! Item0=NO_WIN32_LEAN_AND_MEAN
! Item1=NO_WIN32_LEAN_AND_MEAN;_DEBUG
Item2=_DEBUG;NO_WIN32_LEAN_AND_MEAN
Item3=_DEBUG
Index: supercollider.cpp
===================================================================
RCS file: /cvsroot/bitcollider/supercollider/supercollider.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** supercollider.cpp 2001/07/11 19:07:00 1.1
--- supercollider.cpp 2001/07/12 00:50:35 1.2
***************
*** 15,20 ****
USEUNIT("preferences.cpp");
USEFORM("optionsdialog.cpp", PreferencesForm);
- USERC("bitmaps.rc");
USEFORM("reminderdialog.cpp", ReminderForm);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
--- 15,20 ----
USEUNIT("preferences.cpp");
USEFORM("optionsdialog.cpp", PreferencesForm);
USEFORM("reminderdialog.cpp", ReminderForm);
+ USERC("rc\resources.rc");
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
***************
*** 26,30 ****
Application->Title = "SuperCollider";
Application->CreateForm(__classid(TSuperColliderForm), &SuperColliderForm);
! Application->Run();
}
catch (Exception &exception)
--- 26,30 ----
Application->Title = "SuperCollider";
Application->CreateForm(__classid(TSuperColliderForm), &SuperColliderForm);
! Application->Run();
}
catch (Exception &exception)
|
|
From: Robert K. <may...@us...> - 2001-07-12 00:50:38
|
Update of /cvsroot/bitcollider/supercollider/installer
In directory usw-pr-cvs1:/tmp/cvs-serv5330/installer
Added Files:
sc-setup.wse
Log Message:
Added a delete option so that users can delete files from the
pending list.
--- NEW FILE: sc-setup.wse ---
Document Type: WSE
item: Global
Version=8.14
Title=Bitzi's Supercollider Installation
Flags=00000100
Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Copy Default=1
Japanese Font Name=MS Gothic
Japanese Font Size=9
Progress Bar DLL=%_WISE_%\Progress\WIZ%_EXE_OS_TYPE_%.DLL
Start Gradient=0 0 255
End Gradient=0 0 0
Windows Flags=00000100000000010010110000001000
Log Pathname=%MAINDIR%\INSTALL.LOG
Message Font=MS Sans Serif
Font Size=8
Pages Modified=00000000010100000000011000000101
Disk Label=Default
Disk Filename=SETUP
[...1480 lines suppressed...]
Control Name=BACK
Operation=1
end
item: Set Control Attribute
Control Name=CANCEL
Operation=1
end
end
end
item: End Block
end
item: New Event
Name=Cancel
end
item: Remark
Text=This include script supports a rollback to preinstallation state if the user chooses to cancel before the installation is complete.
end
item: Include Script
Pathname=%_WISE_%\INCLUDE\rollback.wse
end
|
|
From: Robert K. <may...@us...> - 2001-07-11 21:31:28
|
Update of /cvsroot/bitcollider/supercollider/installer In directory usw-pr-cvs1:/tmp/cvs-serv4571/installer Log Message: Directory /cvsroot/bitcollider/supercollider/installer added to the repository |
|
From: Robert K. <may...@us...> - 2001-07-11 19:07:03
|
Update of /cvsroot/bitcollider/supercollider/rc
In directory usw-pr-cvs1:/tmp/cvs-serv28818/rc
Added Files:
alert.bmp next.bmp open.bmp options.bmp pending.bmp prev.bmp
reload.bmp reminder.wav resources.rc spin1.bmp spin2.bmp
spin3.bmp spin4.bmp spin5.bmp spin6.bmp spin7.bmp spin8.bmp
stop.bmp
Log Message:
Checking in the rest of the files too
--- NEW FILE: alert.bmp ---
BM6
--- NEW FILE: next.bmp ---
BM6
--- NEW FILE: open.bmp ---
BM6
--- NEW FILE: options.bmp ---
BM6
--- NEW FILE: pending.bmp ---
BM6
--- NEW FILE: prev.bmp ---
BM6
--- NEW FILE: reload.bmp ---
BM6
--- NEW FILE: reminder.wav ---
RIFFÔo
ò«ÖÆBËuèEx/°4"(ÈìdÙPÎBËpÌtÑsÜ4ï`MR218,Àý#ç8×ÌÎË-ÌÐÀØçkû[,W7%2YÿlãÐ
ÈfÆÈ½ÊÝËGËVÉtȵËÕÍäù×"ö0
9ü;Ä<3<;þ:1:ó6/è K+õ¿Þ8ÎÞÆyÉÓñßlíÒøÏÿµFeü9ôÖê,àgÕ¢ÍJÉ+É©ÌìÒ&Ú ßúáâJàëÛæÖҷνÏÝÕ[á+ñéy$ß/"7T;_=Û=Q>9=?;K8Ä3l-5%òä¾_ÿQøÛóñ¦ð°òB÷½þr²SÊ)2°79H7¶1)*½!õt!º
ïÂò"(i-1T3]44Z4Í3r32Ù0U.ß)"jÙÉýîDàÎÔÌBÆçÂ<ÁüÀÁfÁäÁµÂHÄÁÆÍÉ'ÎòÓPÚ§à5æ»êóíî¯íKëÙæÈàÚÓ®ÍûÉÉÌÒÛ&ærð}ù@7
¸íàþü÷Êð¤éýâXÞ>Úm×àÕ!ÕÚÕ×ÔÚß)æï!úÚ [+ü3ª9µ<=<w;7:(9 8£8ù8
9.9Ó8.7Ê41.,+^(Ù&¿&'ª),/Ù12¤0Ö,4&'¾Äû òêäÈà×Þ¢Þpà¡ãßç:íóWúó
BðÊ¡Tk
8Ë%,ÿ1=56=4Ð0+à%± JÀ¨mì&à;#¼&)Ð+/-;.³.§.8.:-i+ñ(Ô$8ÏwTùöíXãëÙUÒ?Í ÉÇKÆçÅÆ6ÇeÈÊ̺ÎïѺÕëÙÑÝëàãèäÊäãaà
Ò
óÿKùFòdêrâÚ)Ô
ÏBËÉ+ÉØÉØËÎÏþÐÔÑGÒÒqÑÒÐÝÏ-ÏãÎÌÎÝÎÏãÏ¥ÐÎÑÒÒjÓ´Ô×jÚß æÁí]öÿÉga!p$|&>'/'&¢$b"&S|ähk
]T¤
PÉ
iný%öïoélã¢Þ5ÚS×VÕØÓÓ®Ò÷ÒÓ5ÔPÕ´Ö8ØÙ¿ÚÈÛFÜßÜÎÜÜvÚ
05dM!×$r'u)å*,,ñ,ô,ý,,4,ö+X++*,**¿)F) ),))&)å(('Ô%¼#>!0
ve
óòÿ¬ýÒû©úêùµùíù$úwú©ú"ûeûÞúú£ù3øcöÍóñ¤íúéæÿâ[ß2ÜÙV×Õ8Ô«Ó±ÓøÓ$ÔÔÕ Ö\ÖÈÖhרø×)ØØ«ØÙsÙãÙ³ÚÂÛËÜRÞuàîâ³åðèªìñõ£ùPþÊ
²
ç
Ø*vy·æ¦ð±MÑbVM Ñ"$^&ý'))m)¡(Ô'&^%¼#/"Ú ¶
E]ü@
v5ºÃ9©O°ÉýúöBòïÄëðè{æäâ4á&à
_
õïÈ)!§"ë#ã$%Î%,&@&&#&ú%#&ã%Ñ%Ë%|%5%/%%«$U$ý###2")!ËÀà?
§
üKùlöüócñïíëLéÁçÂæêåÙääªãôâââ¼áCáïà¢àJàñßßß¼ÞÞaÞÞÞÙÞ¥ßXàRáRâªã]å§æ@èñéëíîðEñòtóÞôØõþö'øíø3ú´ûNýÿá
椦1
ÞS
STePѾ®º À±sspAôàãº;jÚæ!yѽÌ3'-ìöZÉ@? 9c@Æþêû²ù3÷üôíòÄðêîíë1êÐèúçëæ@æÂå åUäÑã{ã5ãâýáâádá¶à¶àpàFà;àaàÎàpáââpã¿äæç1èéëìñí.ïZðÇñêòùóõöÒ÷<ùúÏû9ýqþT
bäuç
ÿ-
V6!Æ·v´Ñ·J$2Ë
Bþ
û¸çJ¨æëSº2ã$[mX5,
ãj®?ÑÝØÚYÆ?£ðz
¸
»(Oä
ýêû¯ú]ù.øäö²õZô¾ò`ñð²îóìÓë°ê)éôçîæ@æ7åRäªãaã/ãÅâ¨âèâöâ)ã ã°ãä¤äIåªå5æçÁç#èüèÙéñêüëLíêî+ðäñKóØôíö¸ø¸ú ütþ
lÛEµ ï
%
Ø
øøØÀ9DYKÉb¦ÕÕVÎgõ;´Ìe±ÆÝê
YÊn
Bì
² L©ÕEZ"ÿTýtûùÏ÷öôWòñðïîRí}ìQëRêéÍèúçXçÅææÖåcååää[äãã¡ã§ã¹ã(ä[äîäåLæîæýç/éê1ëfìíØîðïñ(ò`óô¾õ÷3øù¸úìû£ýHÿÐ
0¦
qnj¨õÝ«AãÑ*pÌÀH|YàÉÝûGDV¨·?Ïó
0©
E ¸oð@Í¡
©²
©}\9S*ÌDé)
ËûRA®mÝb½J¯Æ*Q¦?²¦
Hí ZÒrá]ª
ýþìÿN Á +£"¨hú'¨É-÷ÝPB
G6*
úMt(\N\
ä
* Ù C&öʤ
úêøê÷äöçõô»óóÌñçðÿïùî6îÊíí}ìÓëfëIëåêÙêúêê¾êÓê¾êýê4ëë&ììí]íîÛîIïßïññòTóoô¯õ©öù÷"ù`úûÌüêýÿf
Wç¦<
(3Ï'¬Æ!yøh««·tðÁ!nðwä\Ò
W
¬Ûk
Üáç
çóí
Í
þ
¯9¾B
Õ
é
?hH¦tBqW?+þ
¬
Éibh
Ø ÇL/á}ðr/6G
4u)oîEÌ¡ñ;'i,}üðúåë¾Ô"5+pÿ$ÉÆÍx[';#+
Õõó
ÍýäôíæuâæàXàxáÓäÜêô
áQ
ï m'o+N-R-+(#0ØÆ}E3dX#,F4W91;K94ª.î(5$!!Ë!ý#')+U.x01÷1r110¤-³)#%õ³è[Þ«ÖÒÏÍ©ÌÍÎøÏîÒ6ÖëÙÝÙÞ8ßIÞpÛ«Ö
ÒeÍÊÉÌÈÑvÙ^áé,ï1óüôBôÕñ+îêÄå°á¹Þ
[Øû÷ôTôQõ»÷zû
®!!5!v |Jc
Øé^À÷Ý!ú%X*-,0L1Í0"/°,)*³'%O$>#°""
øÕÔBÆ9\£'V!·!r$&f'''÷%;$"m ÚøØbM_¬ øþù²ófîîéâååâàÜÞ2ÞÎݢݧÝÔÝ)ÞFÞÞÝÚÜÜþÚÚÙýØÙeÚdÜ&ß âQåfè1ë¸íÛïñòÓòó¦óWôõcö
øÆútþ4KDKò!
«b|Ë#"ñ#³%Ô&U'u'â&¼%p$Å"!j øàÎ
ÉAø
41§7ÛýùNôNðìu顿|ä ãâdáà)à¶ß)ßÓÞRÞÝ·ÜÑÛòÚ;Ú
?_\w?_-Î#^ d!"/"Ú!G! ^÷òÃV8ìkþ¯ÞÍfÞþØúT÷¾óð¦íë#éç2æåLä¿ãÎââÈáOá³à&àFßßÞÞÙÞgß à4á¿âäîæéëùì¾îðóñIóôíõx÷?ù½úüÿÐáûEKybÅ
ò! Ë D!O!~!;!O!O!º þ®2Ã6ûG
§
@q½ÿ
þü-ûùð÷eöHôòðï©í@ëÖèoæ4ä7âàýÞLÞ#Þ/ÞýÝÞjÞåÞJߥßà&áßá®âÎãåxæ1èUê¤ì@ïòQõÇøêû'ÿ.E T
MvÏK«B´Ý0JX 5!u!!!ñ ¶×ã½ÌmDqàZ1Qá 4ó§
Ù»ÄK
¯-
óeÕ-¯ì5jsû;m;
¢ôøò õÕÏ3ÁäÞ
²á¡þûù+öüóáñÇïÖíì¾ê§éè³çßæèåfåäÑãããñâ³â®â&ãaã°ãäæÁç;é{êUìîxï%ñßòôÞõZ÷ùú9üþ»
êB<3×!vÕ´ej¥ÎÈ«ºYMæ½àÒ̾NN
"èHlÄ
þ:
b
øyÏ}£y\Y?ÀPÉ·Ìõûé¦k!]õ
}t%òÿ´ýYûïø»öôWò{ðùîZíìë1êOé(è^ç¿ææååèääªä§äÖäuåGæçè+é¡êLìíïÍðò£óbõÇöYøúêûýMÿ§ÙÇí öø
|*bì®õD¥Úõq,ì²KÏÿ.Z ncÁäH
Ø ï
0ò
;̣ݣYÏ)Sï9
w£½v%û
%
µÏÜÄÄ
é
Ï1q¾t*þsõ$?D«0!À1qóBc ]ÄE©ü
óôhö"ø-úüêýÿCZ:ÏHá "Ò
Q_ÕçÔ²_3רÚݯÉòD8-¸t
û}
Õi£Æÿ!þBü]úYø¸ö7õ ó+òÖðÇïîiíìÍë,ëoêÔéIéÖèèîèùèÙèéÐéaê.ëßë
íBî7ïZð¯ñõòôÛõ
÷ø3úÄûQýºþ.
0yZM*àemø
*ûÀ9ÔÀóÏbSûfü wäQ}¡C
ýþ
G
wny!
²Ì$eæB·w±¦
ó¸
TÕ H1Í"
%t
¦¸H±YÆ*
·ÒDÌ8}}Ãäêþ
ûä\
êu1¾4ÿPþÉübûúøW÷Óõiôó¾ñ¾ð¾ïÇîüí+íwì#ìÊëxëTë@ëfëßëiì°ì.íµí]îïÐïÍð©ñØòô<õzöÏ÷tùóúüöýnÿÓ
£íà
qÛó\®ò
é
?ÒSÞ3"%
!ì
º CϾC»ÿ>þhüäú©ùø¦öhõôóÞñÓðóïcïßî+î]íüìrììì#ììüëIì¡ì
í¡íî1ïð.ñ(ò`óôÄõ÷"øùóúBüÃý½þl
Þ
õ
ê¦KhÏhÕØ·WÆKÀóêÙç
º rü@
(
¦N1
%Û¦Ï'E*¾%ÛPKb
ih§
7FöôÏÿ±þwýþûÀú`ù'øØö¯õ©ôxóíòòñ4ð¼ï:ïµî{îîÊí¸í¦íî6î:îîBïÇïcðçðçñ"óÖóÛô+öz÷7øBù½úáûïü\þÆÿ.l»µáN
(
ÒÌ
Äqä'Æ-<EN1ÔVÕE²3
©Q
T Q
êoOù
ÿ·
\t¬ïò9æÉ²nÆ
3
K]_
Ò»ÍQä
ï
k
Æ
(ÕN]²íÃÀ©£hé
t
íBb
} `EB.Ù]T
øêøWúþûHüwýÒþÌÿ)c³µ²ÍǺ
3ó©
ì
yõ9}²¦]ðµkÒ
ð6¯
Ì Õí
Çc1õÿÿòýü ûú<ù3øE÷eöõÇô©ó
ó§ò=ò¾ñHñÿð}ð7ðxððFð}ðlð(ñ¯ñò°òFóÿóôõ£ö÷hø1ùEúûÛüÌýÿ
wö·?
û
1Ûä?9çðq%Ø
n
É-§
¸ Üó
ß"ô³]
.ê£%
à
à
"91%Ø
e
ºHöTÄ
T ]ªêT`
Z¦KZQwTÿÛ
u "b£ÙÓ+f³ó
Gò3f?ýÐðëãFØ ÏqÊÉMËÀÎÒÔqÔqÓÑÑøÏÎÁÌÌGÌÍÉÍìÍçÍDνÏúÓCÛ¼åò
¯ã ë)x0¼45¤2N-R'ñ!!Ñ!$X(@+i-.~..Á,2*È%ùûâí@âÙ²ÒØÎ¸Ìn˦ËÌÎÑeÔØÜß³àUáßßßÛ×mÒMÎ6ÌÍõÐv×rßèçïÒôøµùhøõ6ñåìÄè÷äâæà
S
V<mMg\?0ÏÔà
Ë 8$(ñ*-¤-Í,å*U(æ%G#!
#× X ãŽ䷣ úqó°ìæýá ÞÛ/ÚaÙJÙaÙ&ÚÚÚ¥ÛܽÜÂÜ ÜÚ$Ù×àÕÕÚÔÖjØ^Û~ßã{çÓê©íï¾ð3ñëðRðÐïxïïUð¡ñ7ô÷Æû7
þ8÷#G'Ü)+Â+,~,ô+Ð+C+Ö**=***ô)m):)Î(G'ý$|!õ9
WWä
ûAq<Ég) Ý"÷%[(ñ)î*+
±²ì½vyJV8X |"S$
?N«Ú#!s"#>$Â$Ú$Ë$Ñ$×$½$½$$G$ý###ú!J ,^P4ç
"ÙE`ÿáýØüÌûú}ùøBöùóñØî#ìóèCæ>ã[àdÞÑÜ)ÜÂÛpÛÛ×Û)Ü|Ü>ݼÝÞ¶Þ{ß;àá&âOã å7çßéí(ð¯ó÷}û|ÿÄß²-
ðw«¯ìø_5ïË-!"##Ô#â##Ô"Ô!± ëàòûGGø¬ûûy²Ê}¥ý©ù
öòzïì(êLèUæUåä§ã×â#âáëàDà¥ßOßyÞïÝÝݳÝIÞOßÈàâj俢èê}ìî%ðñóôÛõ<÷(ùçúæü¸ÿ©çBh×Ô>v ý j!!ã!"ú!"Ñ!Î!|!ý U jÑéJ;
²
ê¾N
KwPy
´õõA8C !-!ë ×
ö£Æé´yàéË<ÃãûJs/¢>V?¥«Õ}äbê£ ZT.+Äÿþüû]ù÷tõ}ó{ñxï
íßêÜè ç@åªãâªáÝàÝàá;áá³áâ¢âFãÑãuä{åæ{çÐèiê/ìWî¦ð
óÊõªøYûþ¡
nðH
6
ÊÑvàq}j-vØ,PYP
<9fl»
ÐÒÓwÿÞýüíú3ù-÷²õ0ô©òððï{íóëuêIéQè+ç;æ¹åuåXå³åÖåæoæÔæuç÷ç¤èéUê`ë¼ì%î§ï"ñÊòöô÷%ù9û·ý»ÿ¹w ²
3©
S
ì$$ÌPÌkì½\´É'$ÚÆ}Õ¯ ê
ÄK
¦àµÌãÀ<×\ey¦v3ãPÒÏԺ̴?·1í H¶èÄ
û·hø>·Î
SGø
Ãn
L²O<
ðÏîÁíÁìüëîêdê=êÜéOéé³é7ê4êêèê°ëLìíîüî+ðuñ¤òÁóhõ
÷ølú<üûýkÿÁnÐ £
á(
·éàÌ®6vàP
bÒK*__vnT
ºbÿ TÍ7ù
²£µ
3ð¦\}ºhÔ¯hûÏÒ
¸k
-Ä
=Ç%
©Ì
õää¸ZÌJõ- Æ£q²-h6b
6E(
nÒ
. lÕ[á
¦
²E6
¸?êê$t
t<'øe¸
êÆ
HüÇ@õÿºþHýïûú`ùøÇöõNô
óòñð`ï²îúíuí7íßìüìåì¶ìêìoíßí+îÄîIï
ð²ðoñò¬óô²õÓö.ø©ùüúeü±ýÿC
6 ïÁùOOãÿMþýû0úùÕ÷özõôóZò~ñÄð
ðïüîrî:îúíÓí¦ííÙíÿícîïhïðÐðNñ6ò4óKôõHöÆ÷ÌøêùQû¯üþQÿ
C9ªuÄ
@*Õ¤
hÀø*eyK
¦*¯Æ
Ã*Eð µÒÇb]
ø(ùú}û|üêýBÿ(
Á9
ì
£6ÆÞP ©_ì
W}n
H Cûð².
w}<
¯
(WÃ;BDB
tû¾
ÃÕ
Q
ÜzQûÿÆþiýKü?û
úùø÷öõoô¯óócò4òrññÁðcðNðð+ð@ððâðñòòóó¡ôeõöÊö'ø]ùQúqûbüqýwþÆÿä
-k¸N \
K<ö
_
êûøêÛ\Ò
G
É
H
á äö%%µÄ
þ
¯
t
º
¬ì'ͦ?û
Øf¦Ø
E
} §Óͪ¬i]
ÿþÿùifç- B
Þ
k
inrá!
(
©i%©õ
Á
%
i ê+bzZ¬áÊ
<K:ß5,+<ÕoëÖÏÈÒÄÁÉ!Õâêíõöý²ÿýµöcíýâú×8ÎÇÄBÆÛÊøÐõÖ«ÛLß^ßÜø×sÒõÍÔËÔÎÔ×uåßöµ y(3¾9Q=²>0?ç>²=3<ù84L-±$¾kÿzùõ
ôHõøzýóKD&0I8H<ó;"82 *~!òõ
Ø
MY®$l*÷.t1ú2l313¦2C21Z0Í.+Ú%é¦WðõôæÙÏÎÇ¡¿ª¾¾Ø¾z¿ÀKÁKÃ0ÆEÊÏõÔÂÛ÷áxçìíîöïî=ëÖåÓßÙJÒÍûÊõËÐã×áì4ö'ÿ£íS
W
¸Õÿø3ñfêäß^Û;ÙØ×jØyÚëÝÐâ=êÛóÿ*P%f/ä6";=3=Ä;:8¤7W7Ä7Í7ð7Ä76§4¹1U.ú*×'%Ô$Î$
føk¯W¯Z¤ðúÄðÜåÑÛþÒ ÌûÈDzÈnËòÎGÒõÔ¨Ö÷Ö6ÖÚÔÚÒ¨ÐÎõÌÌìË
Ì_ÍtÎìÎ*ÏàÏÐÐSÐ·ÑæÔÚOâÿë9÷Í9$U L&c*-°.ñ.O.,Ü)#&!5ÀPǪw¯=Òݺ (C/4x6¯6@4è/ß*~% Jq?<DÅ"ã%ý(,8.°/]0u0%0m/u.,)/%ïÅÛwö@ë
ÇÖÒýùö(ï=çߨÑÍÊhÉÉËÞÌÚÎÐ
ÒãÒØÒgÒÑØÐEÐÏMÏmÏÝÏ«ÐÃÐ;ѦÑ/Ò_ÓÔ´ÖAÙݳâ¹éÓñú§E<É2 ¿#ô%',(i'm&Â$/"½8«©<íØ¦ qþÂ$â)@.#1x2L2µ0Å-*O&×"¼dAÌ;Oã½ "$°%C'¶'2(/('Ö&j%×"^\S-NýEôÙë[ädÝ¥×ÏÓ¨Ð·ÎØÍHÍÍDÎeÏûТÒ×ÔP×¥ÙëÛ¼Ýßuàà;ßÝjÛ®Ø>ÕÌÒòЦÏòÏïÑAÕ¨ÙÐÞ1äQé%îlòKõÆ÷.ù"ùEøöNôñüîìmê§èpç çCç(è¡êµíÞñE÷]ý¬ÉY&"p(F-ð043ó34Ó4ß4¤4C4Ö33µ22410å.¹-î,u,è+,4,Ð,°-ù-â-Å,ó*'[#8ç »þ²ù(ö²ó\ò¯ñ6ò7óçô<÷äùbüþÁ
6¾þûøø÷ö ö
÷À÷ûø
ú\ûÄü¬ýþ<þWýüHú©÷Hôfðêë{çËâ5Þ8ÚÀÖYÔÒkÑçÐÃÐyÑGÒìÒÀÓhÔÈÔ0ÕJÕJÕÕÝÕÖéÕgÖÖ×Ô×dØ[ÙÎÚܹßã¿æë4ðÕõtû.¾zØÃ$ôAb
Þ}ð*qØGO!!$°&1)R+u,--î+L*O(&Ô$/#!U ò\æ!;Py Ñv'v_q!Kt
µÿ-úHôÖîüé¹åâÅÞ;ܳÚÙ¨Ø$Ø,Ø¥ØÙ±ÙAÚ÷Ú÷Û[ÜÔÜÅÜxÜôÛïÚëÙ½Ø&×ýÕ|ÕVÕ±ÕÖ
ØaÚ/Ýgàã°æéì%îÇïcñTò¾òþòóò"ò¦ññÇñ.òêòôþõ]øûÿ@KeAº ï"&(I*{+X,Ð,I-&-¼,Ê,d,î+§+@+***Ó)d)C)O) ) )ª( ('J%# ÂÉ\B}æþ¯ü<û?úÇùùÄù$ú ú$ûSûnû
ûHúHùÏ÷?õó:ðíQé°åâ¿Þ¢ÛëØ¢ÖJÕtÔ'Ô$Ô;ÔÔ
ÕÕYÖîÖs×××רØËØãØsÙôÙªÚXÛMÜVݶÞ#áªãÜæÁêiî²òT÷ãûE
ÝÔGAMAõqs<Bê
ÆCÞýùô.ðìè{åßâ~à×ÞÂÝ¥ÜRÜãÛÜÛåÛ;ÜÜÎÜ5ÝvÝ5ÝÜRÜÜ$Û2Ú3Ù^Øø××××'ØaÙÛÚÜ2ßáämæéë"íîCð:ñäñ²ò(ó`óó¸óôôzõöøùùküQÿoÒ Ò
ØÌ¹' m"½$;&'A(ú())C)())Î((;((â'±'Å'u''O'ô&&Ú%¢$#ý!¥DvY£
Þ 4Ĥ©ÿþ'ýüYûûüúúZú
ú¯ùùó÷¯ö+õíò`ðÐíë@èFåâ~ß&Ý ÛxÙ
Ø×æÖÑÖ)×_×¿×Ø
ØÙÙÚÚÚÚÛ´Û,ÜÜ;ݼÝÈÞëßæà±â°äÂæZéíðð`ôð÷Æûµÿ`¯Ã £¾Ôy©ï'ûøÃP
µ@1
ÄHi
TKÆÕ_$ºDÏ®*àj¥×'ãD ý!##A$Ë$ë$%ô$m$³#Ñ"ú!à à÷ÝÎ&P×)hMÀYõv
9
Ï
<Cl\ÿü¬øQõò§ïóìÓêêè4ç°åä§ãªââÙá¢áLáàRàuà)à¢ß8ß)ß÷ÞCÞpÝ,Ý´Ü®ÜñÜVÝ ÞßDàá,ãÄäUæ1èöéë"íîðñêñIóâóBõnöf÷øùÒúVüþïÿFä N6ò©YÅõÝ2y u!"û"I#º#â#È#å#ë##^#)#C#X#ò"÷"®"ô!Ë!;!^ ^5ËÀ*©EºW
EöÍ.á
k¯
Þ;òì´Dæ }mM2Øõ>GG -!æ!P"v"¢"|"/"! |«¥Åï!±·
k3ÝÞ%¯Ø§
c¸
ÞW£,ÀÅnû
!m!2!O!a!p!-!D!8!è ¢ « s ûG±Ý½0½Ý棵
tÿ+c
í
_KûæÏ£¯
տɮ|¨ãÔÎÑjºAÑ$Y
õþG0?À
©
ÇÛ»q
áP!ÝÑhÚëò$ñx½÷)>YsÎyyJÎ^Ñì_yp$Õw}ybØ
*
(TW°êÿæþÆý|ü6ûúæø²÷höõùó°ò6ñ
ðlîìëé
_iØ
ÒÕÏtE_Pì<?5 ÀGæ8s´
JÉëà,Kv¦·©Éáð hç
Ò% }C6ÿQýSûûøõö<õ`ó{ñðlîåìùëÜêêIéè¼ççIæåZåâäjäýã¡ã5ãöââââ]âªâ2ãã1äëäöåç èFéêÇëRícî¤ïóð"òNóô»õßö3øzùÕú"ü ýÿ:
V>[OM8X)ì-b\GzéQÆf¯ §}óH
fÌÛ
õíæÕ±}eY<
B §1i
t
»\
Ù9zí°u
¦Þàww9
ï²_òkàRj$æ;¥±ÌD_bq'%
Û²
E öÞ"³»ÿêýMüÕú?ù÷òõcô
óÄñ¦ð7ïWîLíùë¡ë=ëêéÓè÷ç¾ç~çç¶ææ#ææææÔåæ2æægçèâèéUê]ëwìfíîÐï¡ðòóôõWö´÷íøEú_ûsüØýÿo
N¯
e¾àÌÃqp*V5yàøïÝ®kDÏM ænÛÒãw(M
9Ä
É tó@ÿ`W
E
Q
ó©\ûÏkÒ¥
}Õ6638¨Y>·Yõ3VÒ-q®óðØ
ù¾û
¾ ¬»6³x)ÏÿþEý´ûúhùð÷µöõÄôâóÏòíññððZïßîîÁííCíÖìÈì¿ì§ìrì(ìRì`ìUìIììííåícîFïðð{ñ=òóó¯ôòõÍöo÷%øBù3ú$û_üïüÕý"ÿ
N0£
4µBØ
t©ø<?\}ÆY_h<N96Þ
\à
W
Í"ç Áh`l¯Äÿ
Ç'û9
K
¦
Á
Ø
Ò
©
Ï
Y
_
TE©Õ
²
ð T ótö"`¶&§ß.~
þ¯þkÿ»ÿ
W
4
1
W
b
Ï
Ï
e
¯
1
S
E
Õ i 1 fÿÛr+i}üöè
ïTV<ð¾©zBc1n(ÞÁf»"êií
ú'ú²ùùEùNùYù7ùBù:ùþø(ùùeùqùù
ùùùwùùùäùú¬úû
ûû²ûãûVü¯üýNýýØý6þþHÿÿìÿ:
ùäʬzl:íÜtЬKôqù@ç
ý-ýýþþqþÉþÿ|ÿæÿ
`iÍÐ"Cw¾ÄÞç곪¤Á§nn¬Í]H.
£xOí¾`ü
þÌý®ý´ýýýäü3ý²üqüqüBüüü
üæû½û¯ûØûØûÉûØûáû
üüüøûüþûüHüüüíüýïüýbý±ýÉýäý\þþÀþ
ÿ+ÿeÿ»ÿÒÿ4
ÿÿ±þMþtþSþ6þ½ýöýíý?ýTýbýYýHýý!ýýêüþüÒüöü9ýÞüÒüÕüáü²üýýØüQý-ý'ýný ý ýþþýòýEþbþµþÉþéþ3ÿSÿeÿeÿÿÏÿêÿ
ÿÿ½þÆþÒþºþhþkþwþSþûýØýþ*þGþþ*þ3þ'þòýþýEþEþMþ'þþþçýäýGþYþbþ}þeþ¦þGþ
þþÒþÿBÿ?ÿVÿeÿwÿÒÿæÿ
ÿÞþõþºþìþïþÀþ
ÿ½þLISTZ
--- NEW FILE: resources.rc ---
101 BITMAP DISCARDABLE "spin1.bmp"
102 BITMAP DISCARDABLE "spin2.bmp"
103 BITMAP DISCARDABLE "spin3.bmp"
104 BITMAP DISCARDABLE "spin4.bmp"
105 BITMAP DISCARDABLE "spin5.bmp"
106 BITMAP DISCARDABLE "spin6.bmp"
107 BITMAP DISCARDABLE "spin7.bmp"
108 BITMAP DISCARDABLE "spin8.bmp"
200 WAVE DISCARDABLE "reminder.wav"
--- NEW FILE: spin1.bmp ---
BMv
--- NEW FILE: spin2.bmp ---
BMv
--- NEW FILE: spin3.bmp ---
BMv
--- NEW FILE: spin4.bmp ---
BMv
--- NEW FILE: spin5.bmp ---
BMv
--- NEW FILE: spin6.bmp ---
BMv
--- NEW FILE: spin7.bmp ---
BMv
--- NEW FILE: spin8.bmp ---
BMv
--- NEW FILE: stop.bmp ---
BM6
|
|
From: Robert K. <may...@us...> - 2001-07-11 19:05:07
|
Update of /cvsroot/bitcollider/supercollider/rc In directory usw-pr-cvs1:/tmp/cvs-serv28508/rc Log Message: Directory /cvsroot/bitcollider/supercollider/rc added to the repository |
|
From: Robert K. <may...@us...> - 2001-07-11 19:03:38
|
Update of /cvsroot/bitcollider/supercollider
In directory usw-pr-cvs1:/tmp/cvs-serv28186
Added Files:
supercollider.bpr
Log Message:
new project file
--- NEW FILE: supercollider.bpr ---
<?xml version='1.0' encoding='utf-8' ?>
<!-- C++Builder XML Project -->
<PROJECT>
<MACROS>
<VERSION value="BCB.05.03"/>
<PROJECT value="supercollider.exe"/>
<OBJFILES value="supercollider.obj main.obj preview.obj filecache.obj analyzer.obj
watcher.obj debug.obj htmoutput.obj localhtml.obj preferences.obj
optionsdialog.obj reminderdialog.obj"/>
<RESFILES value="supercollider.res bitmaps.res"/>
<IDLFILES value=""/>
<IDLGENFILES value=""/>
<DEFFILE value=""/>
<RESDEPEN value="$(RESFILES) main.dfm preview.dfm optionsdialog.dfm reminderdialog.dfm"/>
<LIBFILES value="bc_dll.lib"/>
<LIBRARIES value="bcbie50.lib Vclx50.lib"/>
<SPARELIBS value="Vcl50.lib Vclx50.lib bcbie50.lib"/>
<PACKAGES value="Vcl50.bpi"/>
<PATHCPP value=".;"/>
<PATHPAS value=".;"/>
<PATHRC value=".;"/>
<PATHASM value=".;"/>
<DEBUGLIBPATH value="$(BCB)\lib\debug"/>
<RELEASELIBPATH value="$(BCB)\lib\release"/>
<LINKER value="tlink32"/>
<USERDEFINES value="NO_WIN32_LEAN_AND_MEAN;_DEBUG"/>
<SYSDEFINES value="NO_STRICT;USEPACKAGES"/>
<MAINSOURCE value="supercollider.cpp"/>
<INCLUDEPATH value="D:\freeamp\freeamp\ui\freeamp\win32\include\;"C:\Program Files\Borland\CBuilder5\Bin\";$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include"/>
<LIBPATH value="D:\freeamp\freeamp\ui\freeamp\win32\include\;"C:\Program Files\Borland\CBuilder5\Bin\";$(BCB)\lib\obj;$(BCB)\lib"/>
<WARNINGS value="-w-par"/>
</MACROS>
<OPTIONS>
<IDLCFLAGS value="-I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp -boa"/>
<CFLAG1 value="-Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c
-tW -tWM"/>
<PFLAGS value="-$Y+ -$W -$O- -v -JPHNE -M"/>
<RFLAGS value=""/>
<AFLAGS value="/mx /w2 /zi"/>
<LFLAGS value="-D"" -aa -Tpe -x -Gn -v"/>
</OPTIONS>
<LINKER>
<ALLOBJ value="c0w32.obj $(PACKAGES) sysinit.obj $(OBJFILES)"/>
<ALLRES value="$(RESFILES)"/>
<ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mt.lib"/>
</LINKER>
<IDEOPTIONS>
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1033
CodePage=1252
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
[HistoryLists\hlIncludePath]
Count=7
Item0=D:\freeamp\freeamp\ui\freeamp\win32\include\;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include
Item1=D:\freeamp\freeamp\ui\freeamp\win32\include;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include
Item2=C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;..\bitcollider\include
Item3=C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl;D:\bitzi\bitcollider\include
Item4=C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\include;$(BCB)\include\vcl
Item5=C:\Program Files\Borland\CBuilder5\Bin;$(BCB)\include;$(BCB)\include\vcl
Item6=$(BCB)\include;$(BCB)\include\vcl
[HistoryLists\hlLibraryPath]
Count=5
Item0=D:\freeamp\freeamp\ui\freeamp\win32\include\;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\lib\obj;$(BCB)\lib
Item1=D:\freeamp\freeamp\ui\freeamp\win32\include;C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\lib\obj;$(BCB)\lib
Item2=C:\Program Files\Borland\CBuilder5\Bin\;$(BCB)\lib\obj;$(BCB)\lib
Item3=C:\Program Files\Borland\CBuilder5\Bin;$(BCB)\lib\obj;$(BCB)\lib
Item4=$(BCB)\lib\obj;$(BCB)\lib
[HistoryLists\hlDebugSourcePath]
Count=1
Item0=$(BCB)\source\vcl
[HistoryLists\hlConditionals]
Count=4
Item0=NO_WIN32_LEAN_AND_MEAN;_DEBUG
Item1=NO_WIN32_LEAN_AND_MEAN
Item2=_DEBUG;NO_WIN32_LEAN_AND_MEAN
Item3=_DEBUG
[Debugging]
DebugSourceDirs=$(BCB)\source\vcl
[Parameters]
RunParams=
HostApplication=
RemoteHost=
RemotePath=
RemoteDebug=0
[Compiler]
ShowInfoMsgs=0
LinkDebugVcl=0
LinkCGLIB=0
[Language]
ActiveLang=
ProjectLang=
RootDir=
</IDEOPTIONS>
</PROJECT>
|