remove old mac scripts including bgen
diff --git a/Mac/scripts/bgenall.py b/Mac/scripts/bgenall.py
deleted file mode 100644
index dc33163..0000000
--- a/Mac/scripts/bgenall.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# bgenall - Generate all bgen-generated modules
-#
-import sys
-import os
-import string
-
-def bgenone(dirname, shortname):
-    os.chdir(dirname)
-    print('%s:'%shortname)
-    # Sigh, we don't want to lose CVS history, so two
-    # modules have funny names:
-    if shortname == 'carbonevt':
-        modulename = 'CarbonEvtscan'
-    elif shortname == 'ibcarbon':
-        modulename = 'IBCarbonscan'
-    else:
-        modulename = shortname + 'scan'
-    try:
-        m = __import__(modulename)
-    except:
-        print("Error:", shortname, sys.exc_info()[1])
-        return 0
-    try:
-        m.main()
-    except:
-        print("Error:", shortname, sys.exc_info()[1])
-        return 0
-    return 1
-
-def main():
-    success = []
-    failure = []
-    sys.path.insert(0, os.curdir)
-    if len(sys.argv) > 1:
-        srcdir = sys.argv[1]
-    else:
-        srcdir = os.path.join(os.path.join(sys.prefix, 'Mac'), 'Modules')
-    srcdir = os.path.abspath(srcdir)
-    contents = os.listdir(srcdir)
-    for name in contents:
-        moduledir = os.path.join(srcdir, name)
-        scanmodule = os.path.join(moduledir, name +'scan.py')
-        if os.path.exists(scanmodule):
-            if bgenone(moduledir, name):
-                success.append(name)
-            else:
-                failure.append(name)
-    print('Done:', string.join(success, ' '))
-    if failure:
-        print('Failed:', string.join(failure, ' '))
-        return 0
-    return 1
-
-if __name__ == '__main__':
-    rv = main()
-    sys.exit(not rv)
diff --git a/Mac/scripts/cachersrc.py b/Mac/scripts/cachersrc.py
deleted file mode 100644
index 49a20c0..0000000
--- a/Mac/scripts/cachersrc.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# Scan the tree passed as argv[0] for .rsrc files, skipping .rsrc.df.rsrc
-# files, and open these. The effect of this is to create the .rsrc.df.rsrc
-# cache files if needed.
-# These are needed on OSX: the .rsrc files are in reality AppleSingle-encoded
-# files. We decode the resources into a datafork-based resource file.
-
-import macresource
-import os
-import sys
-import getopt
-
-class NoArgsError(Exception):
-    pass
-
-def handler(arg1, dirname, fnames):
-    verbose, force = arg1
-    for fn in fnames:
-        if fn[-5:] == '.rsrc' and fn[-13:] != '.rsrc.df.rsrc':
-            if force:
-                try:
-                    os.unlink(os.path.join(dirname, fn + '.df.rsrc'))
-                except IOError:
-                    pass
-            macresource.open_pathname(os.path.join(dirname, fn), verbose=verbose)
-
-def main():
-    try:
-        opts, args = getopt.getopt(sys.argv[1:], 'vf')
-        if not args:
-            raise NoArgsError
-    except (getopt.GetoptError, NoArgsError):
-        sys.stderr.write('Usage: cachersrc.py dirname ...\n')
-        sys.exit(1)
-    verbose = 0
-    force = 0
-    for o, v in opts:
-        if o == '-v':
-            verbose = 1
-        if o == '-f':
-            force = 1
-    for dir in sys.argv[1:]:
-        os.walk(dir, handler, (verbose, force))
-
-if __name__ == '__main__':
-    main()
diff --git a/Mac/scripts/errors.txt b/Mac/scripts/errors.txt
deleted file mode 100644
index 0682e62..0000000
--- a/Mac/scripts/errors.txt
+++ /dev/null
@@ -1,1852 +0,0 @@
--32768	svTempDisable	svTempDisable
--32640	svDisabled	Reserve range -32640 to -32768 for Apple temp disables.
--32615	fontNotOutlineErr	bitmap font passed to routine that does outlines only
--30788	kURL68kNotSupportedError	kURL68kNotSupportedError
--30787	kURLAccessNotAvailableError	kURLAccessNotAvailableError
--30786	kURLInvalidConfigurationError	kURLInvalidConfigurationError
--30785	kURLExtensionFailureError	kURLExtensionFailureError
--30783	kURLFileEmptyError	kURLFileEmptyError
--30781	kURLInvalidCallError	kURLInvalidCallError
--30780	kURLUnsettablePropertyError	kURLUnsettablePropertyError
--30779	kURLPropertyBufferTooSmallError	kURLPropertyBufferTooSmallError
--30778	kURLUnknownPropertyError	kURLUnknownPropertyError
--30777	kURLPropertyNotYetKnownError	kURLPropertyNotYetKnownError
--30776	kURLAuthenticationError	kURLAuthenticationError
--30775	kURLServerBusyError	kURLServerBusyError
--30774	kURLUnsupportedSchemeError	kURLUnsupportedSchemeError
--30773	kURLInvalidURLError	kURLInvalidURLError
--30772	kURLDestinationExistsError	kURLDestinationExistsError
--30771	kURLProgressAlreadyDisplayedError	kURLProgressAlreadyDisplayedError
--30770	kURLInvalidURLReferenceError	kURLInvalidURLReferenceError
--30599	controlHandleInvalidErr	controlHandleInvalidErr
--30597	controlInvalidDataVersionErr	controlInvalidDataVersionErr
--30596	errItemNotControl	errItemNotControl
--30595	errCantEmbedRoot	errCantEmbedRoot
--30594	errCantEmbedIntoSelf	errCantEmbedIntoSelf
--30593	errWindowRegionCodeInvalid	errWindowRegionCodeInvalid
--30592	errControlHiddenOrDisabled	errControlHiddenOrDisabled
--30591	errDataSizeMismatch	errDataSizeMismatch
--30590	errControlIsNotEmbedder	errControlIsNotEmbedder
--30589	errControlsAlreadyExist	errControlsAlreadyExist
--30588	errInvalidPartCode	errInvalidPartCode
--30587	errRootAlreadyExists	errRootAlreadyExists
--30586	errNoRootControl	errNoRootControl
--30585	errCouldntSetFocus	errCouldntSetFocus
--30584	errUnknownControl	errUnknownControl
--30583	errWindowDoesntSupportFocus	errWindowDoesntSupportFocus
--30582	errControlDoesntSupportFocus	errControlDoesntSupportFocus
--30581	errDataNotSupported	errDataNotSupported
--30580	errMessageNotSupported	errMessageNotSupported
--30567	themeMonitorDepthNotSupportedErr	theme not supported at monitor depth
--30566	themeScriptFontNotFoundErr	theme font requested for uninstalled script system
--30565	themeBadCursorIndexErr	themeBadCursorIndexErr
--30564	themeHasNoAccentsErr	themeHasNoAccentsErr
--30563	themeBadTextColorErr	themeBadTextColorErr
--30562	themeProcessNotRegisteredErr	themeProcessNotRegisteredErr
--30561	themeProcessRegisteredErr	themeProcessRegisteredErr
--30560	themeInvalidBrushErr	pattern index invalid
--30555	qtvrUninitialized	qtvrUninitialized
--30554	qtvrLibraryLoadErr	qtvrLibraryLoadErr
--30553	streamingNodeNotReadyErr	streamingNodeNotReadyErr
--30552	noMemoryNodeFailedInitialize	noMemoryNodeFailedInitialize
--30551	invalidHotSpotIDErr	invalidHotSpotIDErr
--30550	invalidNodeFormatErr	invalidNodeFormatErr
--30549	limitReachedErr	limitReachedErr
--30548	settingNotSupportedByNodeErr	settingNotSupportedByNodeErr
--30547	propertyNotSupportedByNodeErr	propertyNotSupportedByNodeErr
--30546	timeNotInViewErr	timeNotInViewErr
--30545	invalidViewStateErr	invalidViewStateErr
--30544	invalidNodeIDErr	invalidNodeIDErr
--30543	selectorNotSupportedByNodeErr	selectorNotSupportedByNodeErr
--30542	callNotSupportedByNodeErr	callNotSupportedByNodeErr
--30541	constraintReachedErr	constraintReachedErr
--30540	notAQTVRMovieErr	notAQTVRMovieErr
--30532	kFBCnoSuchHit	kFBCnoSuchHit
--30531	kFBCbadSearchSession	kFBCbadSearchSession
--30530	kFBCindexDiskIOFailed	kFBCindexDiskIOFailed
--30529	kFBCsummarizationCanceled	kFBCsummarizationCanceled
--30528	kFBCbadIndexFileVersion	kFBCbadIndexFileVersion
--30527	kFBCanalysisNotAvailable	kFBCanalysisNotAvailable
--30526	kFBCillegalSessionChange	tried to add/remove vols to a session
--30525	kFBCsomeFilesNotIndexed	kFBCsomeFilesNotIndexed
--30524	kFBCsearchFailed	kFBCsearchFailed
--30523	kFBCindexNotAvailable	kFBCindexNotAvailable
--30522	kFBCindexFileDestroyed	kFBCindexFileDestroyed
--30521	kFBCaccessCanceled	kFBCaccessCanceled
--30520	kFBCindexingCanceled	kFBCindexingCanceled
--30519	kFBCnoSearchSession	kFBCnoSearchSession
--30518	kFBCindexNotFound	kFBCindexNotFound
--30517	kFBCflushFailed	kFBCflushFailed
--30516	kFBCaddDocFailed	kFBCaddDocFailed
--30515	kFBCaccessorStoreFailed	kFBCaccessorStoreFailed
--30514	kFBCindexCreationFailed	couldn't create index
--30513	kFBCmergingFailed	couldn't merge index files
--30512	kFBCtokenizationFailed	couldn't read from document or query
--30511	kFBCmoveFailed	V-Twin exception caught
--30510	kFBCdeletionFailed	V-Twin exception caught
--30509	kFBCcommitFailed	V-Twin exception caught
--30508	kFBCindexingFailed	V-Twin exception caught
--30507	kFBCvalidationFailed	V-Twin exception caught
--30506	kFBCcompactionFailed	V-Twin exception caught
--30505	kFBCbadIndexFile	bad FSSpec, or bad data in file
--30504	kFBCfileNotIndexed	kFBCfileNotIndexed
--30503	kFBCbadParam	kFBCbadParam
--30502	kFBCallocFailed	probably low memory
--30501	kFBCnoIndexesFound	kFBCnoIndexesFound
--30500	kFBCvTwinExceptionErr	no telling what it was
--30450	kDSpStereoContextErr	kDSpStereoContextErr
--30449	kDSpInternalErr	kDSpInternalErr
--30448	kDSpConfirmSwitchWarning	kDSpConfirmSwitchWarning
--30447	kDSpFrameRateNotReadyErr	kDSpFrameRateNotReadyErr
--30446	kDSpContextNotFoundErr	kDSpContextNotFoundErr
--30445	kDSpContextNotReservedErr	kDSpContextNotReservedErr
--30444	kDSpContextAlreadyReservedErr	kDSpContextAlreadyReservedErr
--30443	kDSpInvalidAttributesErr	kDSpInvalidAttributesErr
--30442	kDSpInvalidContextErr	kDSpInvalidContextErr
--30441	kDSpSystemSWTooOldErr	kDSpSystemSWTooOldErr
--30440	kDSpNotInitializedErr	kDSpNotInitializedErr
--30429	kISpListBusyErr	kISpListBusyErr
--30428	kISpDeviceActiveErr	kISpDeviceActiveErr
--30427	kISpSystemActiveErr	kISpSystemActiveErr
--30426	kISpDeviceInactiveErr	kISpDeviceInactiveErr
--30425	kISpSystemInactiveErr	kISpSystemInactiveErr
--30424	kISpElementNotInListErr	kISpElementNotInListErr
--30423	kISpElementInListErr	kISpElementInListErr
--30422	kISpBufferToSmallErr	kISpBufferToSmallErr
--30421	kISpSystemListErr	kISpSystemListErr
--30420	kISpInternalErr	kISpInternalErr
--30399	kNSpJoinFailedErr	kNSpJoinFailedErr
--30398	kNSpCantBlockErr	kNSpCantBlockErr
--30397	kNSpMessageTooBigErr	kNSpMessageTooBigErr
--30396	kNSpSendFailedErr	kNSpSendFailedErr
--30395	kNSpConnectFailedErr	kNSpConnectFailedErr
--30394	kNSpGameTerminatedErr	kNSpGameTerminatedErr
--30393	kNSpTimeoutErr	kNSpTimeoutErr
--30392	kNSpInvalidProtocolListErr	kNSpInvalidProtocolListErr
--30391	kNSpInvalidProtocolRefErr	kNSpInvalidProtocolRefErr
--30390	kNSpInvalidDefinitionErr	kNSpInvalidDefinitionErr
--30389	kNSpAddPlayerFailedErr	kNSpAddPlayerFailedErr
--30388	kNSpCreateGroupFailedErr	kNSpCreateGroupFailedErr
--30387	kNSpNoHostVolunteersErr	kNSpNoHostVolunteersErr
--30386	kNSpNoGroupsErr	kNSpNoGroupsErr
--30385	kNSpNoPlayersErr	kNSpNoPlayersErr
--30384	kNSpInvalidGroupIDErr	kNSpInvalidGroupIDErr
--30383	kNSpInvalidPlayerIDErr	kNSpInvalidPlayerIDErr
--30382	kNSpNameRequiredErr	kNSpNameRequiredErr
--30381	kNSpFeatureNotImplementedErr	kNSpFeatureNotImplementedErr
--30380	kNSpAddressInUseErr	kNSpAddressInUseErr
--30379	kNSpRemovePlayerFailedErr	kNSpRemovePlayerFailedErr
--30378	kNSpFreeQExhaustedErr	kNSpFreeQExhaustedErr
--30377	kNSpInvalidAddressErr	kNSpInvalidAddressErr
--30376	kNSpNotAdvertisingErr	kNSpNotAdvertisingErr
--30374	kNSpAlreadyAdvertisingErr	kNSpAlreadyAdvertisingErr
--30373	kNSpMemAllocationErr	kNSpMemAllocationErr
--30371	kNSpOTVersionTooOldErr	kNSpOTVersionTooOldErr
--30370	kNSpOTNotPresentErr	kNSpOTNotPresentErr
--30369	kNSpInvalidParameterErr	kNSpInvalidParameterErr
--30367	kNSpInvalidGameRefErr	kNSpInvalidGameRefErr
--30366	kNSpProtocolNotAvailableErr	kNSpProtocolNotAvailableErr
--30365	kNSpHostFailedErr	kNSpHostFailedErr
--30364	kNSpPipeFullErr	kNSpPipeFullErr
--30362	kNSpTopologyNotSupportedErr	kNSpTopologyNotSupportedErr
--30361	kNSpAlreadyInitializedErr	kNSpAlreadyInitializedErr
--30360	kNSpInitializationFailedErr	kNSpInitializationFailedErr
--30344	kSSpScaleToZeroErr	kSSpScaleToZeroErr
--30343	kSSpParallelUpVectorErr	kSSpParallelUpVectorErr
--30342	kSSpCantInstallErr	kSSpCantInstallErr
--30341	kSSpVersionErr	kSSpVersionErr
--30340	kSSpInternalErr	kSSpInternalErr
--30049	kALMInternalErr	kALMInternalErr
--30048	kALMGroupNotFoundErr	kALMGroupNotFoundErr
--30047	kALMNoSuchModuleErr	kALMNoSuchModuleErr
--30046	kALMModuleCommunicationErr	kALMModuleCommunicationErr
--30045	kALMDuplicateModuleErr	kALMDuplicateModuleErr
--30044	kALMInstallationErr	kALMInstallationErr
--30043	kALMDeferSwitchErr	kALMDeferSwitchErr
--30042	kALMRebootFlagsLevelErr	kALMRebootFlagsLevelErr
--30029	kLocalesDefaultDisplayStatus	Requested display locale unavailable, used default
--30002	kLocalesTableFormatErr	kLocalesTableFormatErr
--30001	kLocalesBufferTooSmallErr	kLocalesBufferTooSmallErr
--29589	kFNSNameNotFoundErr	The name with the requested paramters was not found
--29587	kFNSBadFlattenedSizeErr	flattened size didn't match input or was too small
--29586	kFNSInsufficientDataErr	insufficient data for the operation
--29585	kFNSMismatchErr	reference didn't match or wasn't found in profile
--29584	kFNSDuplicateReferenceErr	the ref. being added is already in the profile
--29583	kFNSBadProfileVersionErr	profile version is out of known range
--29582	kFNSInvalidProfileErr	profile is NULL or otherwise bad
--29581	kFNSBadReferenceVersionErr	ref. version is out of known range
--29580	kFNSInvalidReferenceErr	ref. was NULL or otherwise bad
--29507	kCollateInvalidCollationRef	kCollateInvalidCollationRef
--29506	kCollateBufferTooSmall	kCollateBufferTooSmall
--29505	kCollateInvalidChar	kCollateInvalidChar
--29504	kCollatePatternNotFoundErr	kCollatePatternNotFoundErr
--29503	kCollateUnicodeConvertFailedErr	kCollateUnicodeConvertFailedErr
--29502	kCollateMissingUnicodeTableErr	kCollateMissingUnicodeTableErr
--29501	kCollateInvalidOptions	kCollateInvalidOptions
--29500	kCollateAttributesNotFoundErr	kCollateAttributesNotFoundErr
--29299	kMPInvalidIDErr	kMPInvalidIDErr
--29298	kMPInsufficientResourcesErr	kMPInsufficientResourcesErr
--29297	kMPTaskAbortedErr	kMPTaskAbortedErr
--29296	kMPTimeoutErr	kMPTimeoutErr
--29295	kMPDeletedErr	kMPDeletedErr
--29293	kMPBlueBlockingErr	kMPBlueBlockingErr
--29292	kMPTaskStoppedErr	A convention used with MPThrowException.
--29291	kMPTaskBlockedErr	kMPTaskBlockedErr
--29290	kMPTaskCreatedErr	kMPTaskCreatedErr
--29289	kMPProcessTerminatedErr	kMPProcessTerminatedErr
--29288	kMPProcessCreatedErr	kMPProcessCreatedErr
--29276	kMPPrivilegedErr	kMPPrivilegedErr
--29275	kMPIterationEndErr	kMPIterationEndErr
--25341	kUCTextBreakLocatorMissingType	Unicode text break error
--25340	kUCOutputBufferTooSmall	Output buffer too small for Unicode string result
--25318	errKCCreateChainFailed	errKCCreateChainFailed
--25317	errKCDataNotModifiable	errKCDataNotModifiable
--25316	errKCDataNotAvailable	errKCDataNotAvailable
--25315	errKCInteractionRequired	errKCInteractionRequired
--25314	errKCNoPolicyModule	errKCNoPolicyModule
--25313	errKCNoCertificateModule	errKCNoCertificateModule
--25312	errKCNoStorageModule	errKCNoStorageModule
--25311	errKCKeySizeNotAllowed	errKCKeySizeNotAllowed
--25310	errKCWrongKCVersion	errKCWrongKCVersion
--25309	errKCReadOnlyAttr	errKCReadOnlyAttr
--25308	errKCInteractionNotAllowed	errKCInteractionNotAllowed
--25307	errKCNoDefaultKeychain	errKCNoDefaultKeychain
--25306	errKCNoSuchClass	errKCNoSuchClass
--25305	errKCInvalidSearchRef	errKCInvalidSearchRef
--25304	errKCInvalidItemRef	errKCInvalidItemRef
--25303	errKCNoSuchAttr	errKCNoSuchAttr
--25302	errKCDataTooLarge	errKCDataTooLarge
--25301	errKCBufferTooSmall	errKCBufferTooSmall
--25300	errKCItemNotFound	errKCItemNotFound
--25299	errKCDuplicateItem	errKCDuplicateItem
--25298	errKCInvalidCallback	errKCInvalidCallback
--25297	errKCDuplicateCallback	errKCDuplicateCallback
--25296	errKCDuplicateKeychain	errKCDuplicateKeychain
--25295	errKCInvalidKeychain	errKCInvalidKeychain
--25294	errKCNoSuchKeychain	errKCNoSuchKeychain
--25293	errKCAuthFailed	errKCAuthFailed
--25292	errKCReadOnly	errKCReadOnly
--25291	errKCNotAvailable	errKCNotAvailable
--25280	printerStatusOpCodeNotSupportedErr	printerStatusOpCodeNotSupportedErr
--22018	kTXNOutsideOfFrameErr	kTXNOutsideOfFrameErr
--22017	kTXNOutsideOfLineErr	kTXNOutsideOfLineErr
--22016	kTXNATSUIIsNotInstalledErr	kTXNATSUIIsNotInstalledErr
--22015	kTXNDataTypeNotAllowedErr	kTXNDataTypeNotAllowedErr
--22014	kTXNCopyNotAllowedInEchoModeErr	kTXNCopyNotAllowedInEchoModeErr
--22013	kTXNCannotTurnTSMOffWhenUsingUnicodeErr	kTXNCannotTurnTSMOffWhenUsingUnicodeErr
--22012	kTXNAlreadyInitializedErr	kTXNAlreadyInitializedErr
--22011	kTXNInvalidRunIndex	kTXNInvalidRunIndex
--22010	kTXNSomeOrAllTagsInvalidForRunErr	kTXNSomeOrAllTagsInvalidForRunErr
--22009	kTXNAttributeTagInvalidForRunErr	dataValue is set to this per invalid tag
--22008	kTXNNoMatchErr	kTXNNoMatchErr
--22007	kTXNRunIndexOutofBoundsErr	kTXNRunIndexOutofBoundsErr
--22006	kTXNCannotSetAutoIndentErr	kTXNCannotSetAutoIndentErr
--22005	kTXNBadDefaultFileTypeWarning	kTXNBadDefaultFileTypeWarning
--22004	kTXNUserCanceledOperationErr	kTXNUserCanceledOperationErr
--22003	kTXNIllegalToCrossDataBoundariesErr	kTXNIllegalToCrossDataBoundariesErr
--22002	kTXNInvalidFrameIDErr	kTXNInvalidFrameIDErr
--22001	kTXNCannotAddFrameErr	kTXNCannotAddFrameErr
--22000	kTXNEndIterationErr	kTXNEndIterationErr
--20002	invalidIndexErr	The recordIndex parameter is not valid.
--20001	recordDataTooBigErr	The record data is bigger than buffer size (1024 bytes).
--20000	unknownInsertModeErr	There is no such an insert mode.
--14002	kModemScriptMissing	kModemScriptMissing
--14001	kModemPreferencesMissing	kModemPreferencesMissing
--14000	kModemOutOfMemory	kModemOutOfMemory
--13950	kHIDBaseError	kHIDBaseError
--13949	kHIDNullStateErr	kHIDNullStateErr
--13948	kHIDBufferTooSmallErr	kHIDBufferTooSmallErr
--13947	kHIDValueOutOfRangeErr	kHIDValueOutOfRangeErr
--13946	kHIDUsageNotFoundErr	kHIDUsageNotFoundErr
--13945	kHIDNotValueArrayErr	kHIDNotValueArrayErr
--13944	kHIDInvalidPreparsedDataErr	kHIDInvalidPreparsedDataErr
--13943	kHIDIncompatibleReportErr	kHIDIncompatibleReportErr
--13942	kHIDBadLogPhysValuesErr	kHIDBadLogPhysValuesErr
--13941	kHIDInvalidReportTypeErr	kHIDInvalidReportTypeErr
--13940	kHIDInvalidReportLengthErr	kHIDInvalidReportLengthErr
--13939	kHIDNullPointerErr	kHIDNullPointerErr
--13938	kHIDBadParameterErr	kHIDBadParameterErr
--13937	kHIDNotEnoughMemoryErr	kHIDNotEnoughMemoryErr
--13936	kHIDEndOfDescriptorErr	kHIDEndOfDescriptorErr
--13935	kHIDUsagePageZeroErr	kHIDUsagePageZeroErr
--13934	kHIDBadLogicalMinimumErr	kHIDBadLogicalMinimumErr
--13933	kHIDBadLogicalMaximumErr	kHIDBadLogicalMaximumErr
--13932	kHIDInvertedLogicalRangeErr	kHIDInvertedLogicalRangeErr
--13931	kHIDInvertedPhysicalRangeErr	kHIDInvertedPhysicalRangeErr
--13930	kHIDUnmatchedUsageRangeErr	kHIDUnmatchedUsageRangeErr
--13929	kHIDInvertedUsageRangeErr	kHIDInvertedUsageRangeErr
--13928	kHIDUnmatchedStringRangeErr	kHIDUnmatchedStringRangeErr
--13927	kHIDUnmatchedDesignatorRangeErr	kHIDUnmatchedDesignatorRangeErr
--13926	kHIDReportSizeZeroErr	kHIDReportSizeZeroErr
--13925	kHIDReportCountZeroErr	kHIDReportCountZeroErr
--13924	kHIDReportIDZeroErr	kHIDReportIDZeroErr
--13923	kHIDInvalidRangePageErr	kHIDInvalidRangePageErr
--13910	kHIDDeviceNotReady	The device is still initializing, try again later
--13909	kHIDVersionIncompatibleErr	kHIDVersionIncompatibleErr
--13887	debuggingNoMatchErr	debugging component or option not found at this index
--13886	debuggingNoCallbackErr	debugging component has no callback
--13885	debuggingInvalidNameErr	componentName or optionName is invalid (NULL)
--13884	debuggingInvalidOptionErr	optionSelectorNum is not registered
--13883	debuggingInvalidSignatureErr	componentSignature not registered
--13882	debuggingDuplicateOptionErr	optionSelectorNum already registered
--13881	debuggingDuplicateSignatureErr	componentSignature already registered
--13880	debuggingExecutionContextErr	routine cannot be called at this time
--13038	kBridgeSoftwareRunningCantSleep	kBridgeSoftwareRunningCantSleep
--13020	kNoSuchPowerSource	kNoSuchPowerSource
--13014	kProcessorTempRoutineRequiresMPLib2	kProcessorTempRoutineRequiresMPLib2
--13013	kCantReportProcessorTemperatureErr	kCantReportProcessorTemperatureErr
--13010	kPowerMgtRequestDenied	kPowerMgtRequestDenied
--13009	kPowerMgtMessageNotHandled	kPowerMgtMessageNotHandled
--13008	kPowerHandlerNotFoundForProcErr	kPowerHandlerNotFoundForProcErr
--13007	kPowerHandlerNotFoundForDeviceErr	kPowerHandlerNotFoundForDeviceErr
--13006	kPowerHandlerExistsForDeviceErr	kPowerHandlerExistsForDeviceErr
--13005	pmRecvEndErr	during receive, pmgr did not finish hs configured for this connection
--13004	pmRecvStartErr	during receive, pmgr did not start hs
--13003	pmSendEndErr	during send, pmgr did not finish hs
--13002	pmSendStartErr	during send, pmgr did not start hs
--13001	pmReplyTOErr	Timed out waiting for reply
--13000	pmBusyErr	Power Mgr never ready to start handshake
--11005	pictureDataErr	the picture data was invalid
--11004	colorsRequestedErr	the number of colors requested was illegal
--11003	cantLoadPickMethodErr	unable to load the custom pick proc
--11002	pictInfoVerbErr	the passed verb was invalid
--11001	pictInfoIDErr	the internal consistancy check for the PictInfoID is wrong
--11000	pictInfoVersionErr	wrong version of the PictInfo structure
--10780	errTaskNotFound	no task with that task id exists
--10116	telNotEnoughdspBW	not enough real-time for allocation
--10115	telBadSampleRate	incompatible sample rate
--10114	telBadSWErr	Software not installed properly
--10113	telDetAlreadyOn	detection is already turned on
--10112	telAutoAnsNotOn	autoAnswer in not turned on
--10111	telValidateFailed	telValidate failed
--10110	telBadProcID	invalid procID
--10109	telDeviceNotFound	device not found
--10108	telBadCodeResource	code resource not found
--10107	telInitFailed	initialization failed
--10106	telNoCommFolder	Communications/Extensions € not found
--10103	telUnknownErr	unable to set config
--10102	telNoSuchTool	unable to find tool with name specified
--10091	telBadFunction	bad msgCode specified
--10090	telPBErr	parameter block error, bad format
--10082	telCANotDeflectable	CA not "deflectable"
--10081	telCANotRejectable	CA not "rejectable"
--10080	telCANotAcceptable	CA not "acceptable"
--10072	telTermNotOpen	terminal not opened via TELOpenTerm
--10071	telStillNeeded	terminal driver still needed by someone else
--10070	telAlreadyOpen	terminal already open
--10064	telNoCallbackRef	no call back reference was specified, but is required
--10063	telDisplayModeNotSupp	display mode not supported by tool
--10062	telBadDisplayMode	bad display mode specified
--10061	telFwdTypeNotSupp	forward type not supported by tool
--10060	telDNTypeNotSupp	DN type not supported by tool
--10059	telBadRate	bad rate specified
--10058	telBadBearerType	bad bearerType specified
--10057	telBadSelect	unable to select or deselect DN
--10056	telBadParkID	bad park id specified
--10055	telBadPickupGroupID	bad pickup group ID specified
--10054	telBadFwdType	bad fwdType specified
--10053	telBadFeatureID	bad feature ID specified
--10052	telBadIntercomID	bad intercom ID specified
--10051	telBadPageID	bad page ID specified
--10050	telBadDNType	DN type invalid
--10047	telConfLimitExceeded	attempt to exceed switch conference limits
--10046	telCBErr	call back feature not set previously
--10045	telTransferRej	transfer request rejected
--10044	telTransferErr	transfer not prepared
--10043	telConfRej	conference request was rejected
--10042	telConfErr	conference was not prepared
--10041	telConfNoLimit	no limit was specified but required
--10040	telConfLimitErr	limit specified is too high for this configuration
--10033	telFeatNotSupp	feature program call not supported by this tool
--10032	telFeatActive	feature already active
--10031	telFeatNotAvail	feature subscribed but not available
--10030	telFeatNotSub	feature not subscribed
--10025	errAEPropertiesClash	illegal combination of properties settings for Set Data, make new, or duplicate
--10024	errAECantPutThatThere	in make new, duplicate, etc. class can't be an element of container
--10023	errAENotAnEnumMember	enumerated value in SetData is not allowed for this property
--10022	telIntExtNotSupp	internal external type not supported by this tool
--10021	telBadIntExt	bad internal external error
--10020	telStateNotSupp	device state not supported by tool
--10019	telBadStateErr	bad device state specified
--10018	telIndexNotSupp	index not supported by this tool
--10017	telBadIndex	bad index specified
--10016	telAPattNotSupp	alerting pattern not supported by tool
--10015	telBadAPattErr	bad alerting pattern specified
--10014	telVTypeNotSupp	volume type not supported by this tool
--10013	telBadVTypeErr	bad volume type error
--10012	telBadLevelErr	bad volume level setting
--10011	telHTypeNotSupp	hook type not supported by this tool
--10010	telBadHTypeErr	bad hook type specified
--10009	errAECantSupplyType	errAECantSupplyType
--10008	telNoOpenErr	unable to open terminal
--10007	telNoMemErr	no memory to allocate handle
--10006	errOSACantAssign	Signaled when an object cannot be set in a container.
--10005	telBadProcErr	bad msgProc specified
--10004	telBadHandErr	bad handle specified
--10003	OSAIllegalAssign	Signaled when an object can never be set in a container
--10002	telBadDNErr	TELDNHandle not found or invalid
--10001	telBadTermErr	invalid TELHandle or handle not found
--10000	errAEEventFailed	errAEEventFailed
--9999	cannotMoveAttachedController	cannotMoveAttachedController
--9998	controllerHasFixedHeight	controllerHasFixedHeight
--9997	cannotSetWidthOfAttachedController	cannotSetWidthOfAttachedController
--9996	controllerBoundsNotExact	controllerBoundsNotExact
--9995	editingNotAllowed	editingNotAllowed
--9994	badControllerHeight	badControllerHeight
--9408	deviceCantMeetRequest	deviceCantMeetRequest
--9407	seqGrabInfoNotAvailable	seqGrabInfoNotAvailable
--9406	badSGChannel	badSGChannel
--9405	couldntGetRequiredComponent	couldntGetRequiredComponent
--9404	notEnoughDiskSpaceToGrab	notEnoughDiskSpaceToGrab
--9403	notEnoughMemoryToGrab	notEnoughMemoryToGrab
--9402	cantDoThatInCurrentMode	cantDoThatInCurrentMode
--9401	grabTimeComplete	grabTimeComplete
--9400	noDeviceForChannel	noDeviceForChannel
--9109	kNoCardBusCISErr	No valid CIS exists for this CardBus card
--9108	kNotZVCapableErr	This socket does not support Zoomed Video
--9107	kCardPowerOffErr	Power to the card has been turned off
--9106	kAttemptDupCardEntryErr	The Enabler was asked to create a duplicate card entry
--9105	kAlreadySavedStateErr	The state has been saved on previous call
--9104	kTooManyIOWindowsErr	device requested more than one I/O window
--9103	kNotReadyErr	PC Card failed to go ready
--9102	kClientRequestDenied	CS Clients should return this code inorder to
--9101	kNoCompatibleNameErr	There is no compatible driver name for this device
--9100	kNoEnablerForCardErr	No Enablers were found that can support the card
--9099	kNoCardEnablersFoundErr	No Enablers were found
--9098	kUnsupportedCardErr	Card not supported by generic enabler
--9097	kNoClientTableErr	The client table has not be initialized yet
--9096	kNoMoreInterruptSlotsErr	All internal Interrupt slots are in use
--9095	kNoMoreTimerClientsErr	All timer callbacks are in use
--9094	kNoIOWindowRequestedErr	Request I/O window before calling configuration
--9093	kBadCustomIFIDErr	Custom interface ID is invalid
--9092	kBadTupleDataErr	Data in tuple is invalid
--9091	kInvalidCSClientErr	Card Services ClientID is not registered
--9090	kUnsupportedVsErr	Unsupported Voltage Sense
--9089	kInvalidDeviceNumber	kInvalidDeviceNumber
--9088	kPostCardEventErr	_PCCSLPostCardEvent failed and dropped an event
--9087	kCantConfigureCardErr	kCantConfigureCardErr
--9086	kPassCallToChainErr	kPassCallToChainErr
--9085	kCardBusCardErr	kCardBusCardErr
--9084	k16BitCardErr	k16BitCardErr
--9083	kBadDeviceErr	kBadDeviceErr
--9082	kBadLinkErr	kBadLinkErr
--9081	kInvalidRegEntryErr	kInvalidRegEntryErr
--9080	kNoCardSevicesSocketsErr	kNoCardSevicesSocketsErr
--9079	kOutOfResourceErr	Card Services has exhausted the resource
--9078	kNoMoreItemsErr	there are no more of the requested item
--9077	kInUseErr	requested resource is being used by a client
--9076	kConfigurationLockedErr	a configuration has already been locked
--9075	kWriteProtectedErr	media is write-protected
--9074	kBusyErr	unable to process request at this time - try later
--9073	kUnsupportedModeErr	mode is not supported
--9072	kUnsupportedFunctionErr	function is not supported by this implementation
--9071	kNoCardErr	no PC card in the socket
--9070	kGeneralFailureErr	an undefined error has occurred
--9069	kWriteFailureErr	unable to complete write request
--9068	kReadFailureErr	unable to complete read request
--9067	kBadSpeedErr	specified speed is unavailable
--9066	kBadCISErr	CIS on card is invalid
--9065	kBadHandleErr	clientHandle is invalid
--9064	kBadArgsErr	values in argument packet are invalid
--9063	kBadArgLengthErr	ArgLength argument is invalid
--9062	kBadWindowErr	specified window is invalid
--9061	kBadVppErr	specified Vpp1 or Vpp2 power level index is invalid
--9060	kBadVccErr	specified Vcc power level index is invalid
--9059	kBadTypeErr	specified window or interface type is invalid
--9058	kBadSocketErr	specified logical or physical socket number is invalid
--9057	kBadSizeErr	specified size is invalid
--9056	kBadPageErr	specified page is invalid
--9055	kBadOffsetErr	specified PC card memory array offset is invalid
--9054	kBadIRQErr	specified IRQ level is invalid
--9053	kBadEDCErr	specified EDC generator specified is invalid
--9052	kBadBaseErr	specified base system memory address is invalid
--9051	kBadAttributeErr	specified attributes field value is invalid
--9050	kBadAdapterErr	invalid adapter number
--8992	codecOffscreenFailedPleaseRetryErr	codecOffscreenFailedPleaseRetryErr
--8991	lockPortBitsWrongGDeviceErr	lockPortBitsWrongGDeviceErr
--8990	directXObjectAlreadyExists	directXObjectAlreadyExists
--8989	codecDroppedFrameErr	returned from ImageCodecDrawBand
--8988	codecOffscreenFailedErr	codecOffscreenFailedErr
--8987	codecNeedAccessKeyErr	codec needs password in order to decompress
--8986	codecParameterDialogConfirm	codecParameterDialogConfirm
--8985	lockPortBitsSurfaceLostErr	lockPortBitsSurfaceLostErr
--8984	lockPortBitsBadPortErr	lockPortBitsBadPortErr
--8983	lockPortBitsWindowClippedErr	lockPortBitsWindowClippedErr
--8982	lockPortBitsWindowResizedErr	lockPortBitsWindowResizedErr
--8981	lockPortBitsWindowMovedErr	lockPortBitsWindowMovedErr
--8980	lockPortBitsBadSurfaceErr	lockPortBitsBadSurfaceErr
--8979	codecNeedToFlushChainErr	codecNeedToFlushChainErr
--8978	codecDisabledErr	codec disabled itself -- pass codecFlagReenable to reset
--8977	codecNoMemoryPleaseWaitErr	codecNoMemoryPleaseWaitErr
--8976	codecNothingToBlitErr	codecNothingToBlitErr
--8975	codecCantQueueErr	codecCantQueueErr
--8974	codecCantWhenErr	codecCantWhenErr
--8973	codecOpenErr	codecOpenErr
--8972	codecConditionErr	codecConditionErr
--8971	codecExtensionNotFoundErr	codecExtensionNotFoundErr
--8970	codecDataVersErr	codecDataVersErr
--8969	codecBadDataErr	codecBadDataErr
--8968	codecWouldOffscreenErr	codecWouldOffscreenErr
--8967	codecAbortErr	codecAbortErr
--8966	codecSpoolErr	codecSpoolErr
--8965	codecImageBufErr	codecImageBufErr
--8964	codecScreenBufErr	codecScreenBufErr
--8963	codecSizeErr	codecSizeErr
--8962	codecUnimpErr	codecUnimpErr
--8961	noCodecErr	noCodecErr
--8960	codecErr	codecErr
--8852	kIllegalClockValueErr	kIllegalClockValueErr
--8851	kUTCOverflowErr	kUTCOverflowErr
--8850	kUTCUnderflowErr	kUTCUnderflowErr
--8809	kATSULastErr	The last ATSUI error code.
--8808	kATSULineBreakInWord	This is not an error code but is returned by ATSUBreakLine to
--8807	kATSUCoordinateOverflowErr	Used to indicate the coordinates provided to an ATSUI routine caused
--8806	kATSUNoFontScalerAvailableErr	Used when no font scaler is available for the font passed
--8805	kATSUNoFontCmapAvailableErr	Used when no CMAP table can be accessed or synthesized for the
--8804	kATSULowLevelErr	Used when an error was encountered within the low level ATS
--8803	kATSUQuickDrawTextErr	Used when QuickDraw Text encounters an error rendering or measuring
--8802	kATSUNoStyleRunsAssignedErr	Used when an attempt was made to measure, highlight or draw
--8801	kATSUNotSetErr	Used when the client attempts to retrieve an attribute,
--8800	kATSUInvalidCacheErr	Used when an attempt was made to read in style data
--8799	kATSUInvalidAttributeTagErr	Used when an attempt was made to use a tag value that
--8798	kATSUInvalidAttributeSizeErr	Used when an attempt was made to use an attribute with a
--8797	kATSUInvalidAttributeValueErr	Used when an attempt was made to use an attribute with
--8796	kATSUInvalidFontErr	Used when an attempt was made to use an invalid font ID.
--8795	kATSUNoCorrespondingFontErr	This value is retrned by font ID conversion
--8794	kATSUFontsNotMatched	This value is returned by ATSUMatchFontsToText()
--8793	kATSUFontsMatched	This is not an error code but is returned by
--8792	kATSUInvalidTextRangeErr	An attempt was made to extract information
--8791	kATSUInvalidStyleErr	An attempt was made to use a ATSUStyle which
--8790	kATSUInvalidTextLayoutErr	An attempt was made to use a ATSUTextLayout
--8785	kTECOutputBufferFullStatus	output buffer has no room for conversion of next input text element (partial conversion)
--8784	kTECNeedFlushStatus	kTECNeedFlushStatus
--8783	kTECUsedFallbacksStatus	kTECUsedFallbacksStatus
--8771	kTECItemUnavailableErr	item (e.g. name) not available for specified region (& encoding if relevant)
--8770	kTECGlobalsUnavailableErr	globals have already been deallocated (premature TERM)
--8769	unicodeChecksumErr	unicodeChecksumErr
--8768	unicodeNoTableErr	unicodeNoTableErr
--8767	unicodeVariantErr	unicodeVariantErr
--8766	unicodeFallbacksErr	unicodeFallbacksErr
--8765	unicodePartConvertErr	unicodePartConvertErr
--8764	unicodeBufErr	unicodeBufErr
--8763	unicodeCharErr	unicodeCharErr
--8762	unicodeElementErr	unicodeElementErr
--8761	unicodeNotFoundErr	unicodeNotFoundErr
--8760	unicodeTableFormatErr	unicodeTableFormatErr
--8759	unicodeDirectionErr	unicodeDirectionErr
--8758	unicodeContextualErr	unicodeContextualErr
--8757	unicodeTextEncodingDataErr	unicodeTextEncodingDataErr
--8756	kTECDirectionErr	direction stack overflow, etc.
--8755	kTECIncompleteElementErr	text element may be incomplete or is too long for internal buffers
--8754	kTECUnmappableElementErr	kTECUnmappableElementErr
--8753	kTECPartialCharErr	input buffer ends in the middle of a multibyte character, conversion stopped
--8752	kTECBadTextRunErr	kTECBadTextRunErr
--8751	kTECArrayFullErr	supplied name buffer or TextRun, TextEncoding, or UnicodeMapping array is too small
--8750	kTECBufferBelowMinimumSizeErr	output buffer too small to allow processing of first input text element
--8749	kTECNoConversionPathErr	kTECNoConversionPathErr
--8748	kTECCorruptConverterErr	invalid converter object reference
--8747	kTECTableFormatErr	kTECTableFormatErr
--8746	kTECTableChecksumErr	kTECTableChecksumErr
--8745	kTECMissingTableErr	kTECMissingTableErr
--8740	kTextUndefinedElementErr	text conversion errors
--8739	kTextMalformedInputErr	in DBCS, for example, high byte followed by invalid low byte
--8738	kTextUnsupportedEncodingErr	specified encoding not supported for this operation
--7139	kRANotEnabled	kRANotEnabled
--7138	kRACallBackFailed	kRACallBackFailed
--7137	kRADuplicateIPAddr	kRADuplicateIPAddr
--7136	kRANCPRejectedbyPeer	kRANCPRejectedbyPeer
--7135	kRAExtAuthenticationFailed	kRAExtAuthenticationFailed
--7134	kRAATalkInactive	kRAATalkInactive
--7133	kRAPeerNotResponding	kRAPeerNotResponding
--7132	kRAPPPPeerDisconnected	kRAPPPPeerDisconnected
--7131	kRAPPPUserDisconnected	kRAPPPUserDisconnected
--7130	kRAPPPNegotiationFailed	kRAPPPNegotiationFailed
--7129	kRAPPPAuthenticationFailed	kRAPPPAuthenticationFailed
--7128	kRAPPPProtocolRejected	kRAPPPProtocolRejected
--7127	dcmBufferOverflowErr	data is larger than buffer size
--7126	kRANotPrimaryInterface	when IPCP is not primary TCP/IP intf.
--7125	kRATCPIPNotConfigured	TCP/IP not configured, could be loaded
--7124	kRATCPIPInactive	TCP/IP inactive, cannot be loaded
--7123	kRARemoteAccessNotReady	kRARemoteAccessNotReady
--7122	kRAInitOpenTransportFailed	kRAInitOpenTransportFailed
--7121	dcmProtectedErr	need keyword to use dictionary
--7120	kRAUserPwdEntryRequired	kRAUserPwdEntryRequired
--7119	kRAUserPwdChangeRequired	kRAUserPwdChangeRequired
--7118	dcmBadFindMethodErr	no such find method supported
--7117	kRAInvalidSerialProtocol	kRAInvalidSerialProtocol
--7116	kRAInvalidPortState	kRAInvalidPortState
--7115	dcmBadKeyErr	bad key information
--7114	kRAPortBusy	kRAPortBusy
--7113	kRAInstallationDamaged	kRAInstallationDamaged
--7112	dcmBadFieldTypeErr	no such field type supported
--7111	dcmBadFieldInfoErr	incomplete information
--7110	dcmNecessaryFieldErr	lack required/identify field
--7109	dcmDupRecordErr	same record already exist
--7108	kRANotConnected	kRANotConnected
--7107	dcmBlockFullErr	dictionary block full
--7106	kRAMissingResources	kRAMissingResources
--7105	dcmDictionaryBusyErr	dictionary is busy
--7104	dcmDictionaryNotOpenErr	dictionary not opened
--7103	dcmPermissionErr	invalid permission
--7102	dcmBadDictionaryErr	invalid dictionary
--7101	dcmNotDictionaryErr	not dictionary
--7100	kRAInvalidParameter	kRAInvalidParameter
--7000	laEngineNotFoundErr	can't find the engine
--6999	laPropertyErr	Error in properties
--6998	kUSBUnknownDeviceErr	device ref not recognised
--6997	laPropertyIsReadOnlyErr	the property is read only
--6996	laPropertyUnknownErr	the property is unknown to this environment
--6995	laPropertyValueErr	Invalid property value
--6994	laDictionaryTooManyErr	too many dictionaries
--6993	laDictionaryUnknownErr	can't use this dictionary with this environment
--6992	laDictionaryNotOpenedErr	the dictionary is not opened
--6991	laTextOverFlowErr	text is too long
--6990	laFailAnalysisErr	analysis failed
--6989	laNoMoreMorphemeErr	nothing to read
--6988	laInvalidPathErr	path is not correct
--6987	kUSBNotHandled	Notification was not handled   (same as NotFound)
--6986	laEnvironmentNotFoundErr	can't fint the specified environment
--6985	laEnvironmentBusyErr	specified environment is used
--6984	laTooSmallBufferErr	output buffer is too small to store any result
--6983	kUSBFlagsError	Unused flags not zeroed
--6982	kUSBAbortedError	Pipe aborted
--6981	kUSBNoBandwidthError	Not enough bandwidth available
--6980	kUSBPipeIdleError	Pipe is Idle, it will not accept transactions
--6979	kUSBPipeStalledError	Pipe has stalled, error needs to be cleared
--6978	kUSBUnknownInterfaceErr	Interface ref not recognised
--6977	kUSBDeviceBusy	Device is already being configured
--6976	kUSBDevicePowerProblem	Device has a power problem
--6975	kUSBInvalidBuffer	bad buffer, usually nil
--6974	kUSBDeviceSuspended	Device is suspended
--6973	kUSBDeviceNotSuspended	device is not suspended for resume
--6972	kUSBDeviceDisconnected	Disconnected during suspend or reset
--6971	kUSBTimedOut	Transaction timed out.
--6970	kUSBQueueAborted	Pipe zero stall cleared.
--6969	kUSBPortDisabled	The port you are attached to is disabled, use USBDeviceReset.
--6950	kUSBBadDispatchTable	Improper driver dispatch table
--6949	kUSBUnknownNotification	Notification type not defined
--6948	kUSBQueueFull	Internal queue maxxed
--6916	kUSBLinkErr	kUSBLinkErr
--6915	kUSBCRCErr	Pipe stall, bad CRC
--6914	kUSBBitstufErr	Pipe stall, bitstuffing
--6913	kUSBDataToggleErr	Pipe stall, Bad data toggle
--6912	kUSBEndpointStallErr	Device didn't understand
--6911	kUSBNotRespondingErr	Pipe stall, No device, device hung
--6910	kUSBPIDCheckErr	Pipe stall, PID CRC error
--6909	kUSBWrongPIDErr	Pipe stall, Bad or wrong PID
--6908	kUSBOverRunErr	Packet too large or more data than buffer
--6907	kUSBUnderRunErr	Less data than buffer
--6906	kUSBRes1Err	kUSBRes1Err
--6905	kUSBRes2Err	kUSBRes2Err
--6904	kUSBBufOvrRunErr	Host hardware failure on data in, PCI busy?
--6903	kUSBBufUnderRunErr	Host hardware failure on data out, PCI busy?
--6902	kUSBNotSent1Err	Transaction not sent
--6901	kUSBNotSent2Err	Transaction not sent
--6232	kDMFoundErr	Did not proceed because we found an item
--6231	kDMMainDisplayCannotMoveErr	Trying to move main display (or a display mirrored to it)
--6230	kDMDisplayAlreadyInstalledErr	Attempt to add an already installed display.
--6229	kDMDisplayNotFoundErr	Could not find item (will someday remove).
--6228	kDMDriverNotDisplayMgrAwareErr	Video Driver does not support display manager.
--6227	kDMSWNotInitializedErr	Required software not initialized (eg windowmanager or display mgr).
--6226	kSysSWTooOld	Missing critical pieces of System Software.
--6225	kDMMirroringNotOn	Returned by all calls that need mirroring to be on to do their thing.
--6224	kDMCantBlock	Mirroring is already on, canÕt Block now (call DMUnMirror() first).
--6223	kDMMirroringBlocked	DMBlockMirroring() has been called.
--6222	kDMWrongNumberOfDisplays	Can only handle 2 displays for now.
--6221	kDMMirroringOnAlready	Returned by all calls that need mirroring to be off to do their thing.
--6220	kDMGenErr	Unexpected Error
--6150	kQTSSUnknownErr	kQTSSUnknownErr
--5753	collectionVersionErr	collectionVersionErr
--5752	collectionIndexRangeErr	collectionIndexRangeErr
--5751	collectionItemNotFoundErr	collectionItemNotFoundErr
--5750	collectionItemLockedErr	collectionItemLockedErr
--5699	kNavMissingKindStringErr	kNavMissingKindStringErr
--5698	kNavInvalidCustomControlMessageErr	kNavInvalidCustomControlMessageErr
--5697	kNavCustomControlMessageFailedErr	kNavCustomControlMessageFailedErr
--5696	kNavInvalidSystemConfigErr	kNavInvalidSystemConfigErr
--5695	kNavWrongDialogClassErr	kNavWrongDialogClassErr
--5694	kNavWrongDialogStateErr	kNavWrongDialogStateErr
--5640	dialogNoTimeoutErr	dialogNoTimeoutErr
--5623	menuInvalidErr	menu is invalid
--5622	menuItemNotFoundErr	specified menu item wasn't found
--5621	menuUsesSystemDefErr	GetMenuDefinition failed because the menu uses the system MDEF
--5620	menuNotFoundErr	specified menu or menu ID wasn't found
--5615	windowWrongStateErr	window is not in a state that is valid for the current action
--5614	windowManagerInternalErr	something really weird happened inside the window manager
--5613	windowAttributesConflictErr	passed some attributes that are mutually exclusive
--5612	windowAttributeImmutableErr	tried to change attributes which can't be changed
--5611	errWindowDoesNotFitOnscreen	ConstrainWindowToScreen could not make the window fit onscreen
--5610	errWindowNotFound	returned from FindWindowOfClass
--5609	errFloatingWindowsNotInitialized	called HideFloatingWindows or ShowFloatingWindows without calling InitFloatingWindows
--5608	errWindowsAlreadyInitialized	tried to call InitFloatingWindows twice, or called InitWindows and then floating windows
--5607	errUserWantsToDragWindow	if returned from TrackWindowProxyDrag, you should call DragWindow on the window
--5606	errCorruptWindowDescription	tried to load a corrupt window description (size or version fields incorrect)
--5605	errUnrecognizedWindowClass	tried to create a window with a bad WindowClass
--5604	errWindowPropertyNotFound	tried to get a nonexistent property
--5603	errInvalidWindowProperty	tried to access a property tag with private creator
--5602	errWindowDoesNotHaveProxy	tried to do something requiring a proxy to a window which doesnÕt have a proxy
--5601	errUnsupportedWindowAttributesForClass	tried to create a window with WindowAttributes not supported by the WindowClass
--5600	errInvalidWindowPtr	tried to pass a bad WindowRef argument
--5553	gestaltLocationErr	gestalt function ptr wasn't in sysheap
--5552	gestaltDupSelectorErr	tried to add an entry that already existed
--5551	gestaltUndefSelectorErr	undefined selector was passed to Gestalt
--5550	gestaltUnknownErr	value returned if Gestalt doesn't know the answer
--5502	envVersTooBig	Version bigger than call can handle
--5501	envBadVers	Version non-positive
--5500	envNotPresent	returned by glue.
--5421	qtsAddressBusyErr	qtsAddressBusyErr
--5420	qtsConnectionFailedErr	qtsConnectionFailedErr
--5408	qtsTimeoutErr	qtsTimeoutErr
--5407	qtsUnknownValueErr	qtsUnknownValueErr
--5406	qtsTooMuchDataErr	qtsTooMuchDataErr
--5405	qtsUnsupportedFeatureErr	qtsUnsupportedFeatureErr
--5404	qtsUnsupportedRateErr	qtsUnsupportedRateErr
--5403	qtsUnsupportedDataTypeErr	qtsUnsupportedDataTypeErr
--5402	qtsBadDataErr	something is wrong with the data
--5401	qtsBadStateErr	qtsBadStateErr
--5400	qtsBadSelectorErr	qtsBadSelectorErr
--5388	errIAEndOfTextRun	errIAEndOfTextRun
--5387	errIATextExtractionErr	errIATextExtractionErr
--5386	errIAInvalidDocument	errIAInvalidDocument
--5385	errIACanceled	errIACanceled
--5384	errIABufferTooSmall	errIABufferTooSmall
--5383	errIANoMoreItems	errIANoMoreItems
--5382	errIAParamErr	errIAParamErr
--5381	errIAAllocationErr	errIAAllocationErr
--5380	errIAUnknownErr	errIAUnknownErr
--5363	hrURLNotHandledErr	hrURLNotHandledErr
--5362	hrUnableToResizeHandleErr	hrUnableToResizeHandleErr
--5361	hrMiscellaneousExceptionErr	hrMiscellaneousExceptionErr
--5360	hrHTMLRenderingLibNotInstalledErr	hrHTMLRenderingLibNotInstalledErr
--5253	errCannotUndo	errCannotUndo
--5252	errNonContiuousAttribute	errNonContiuousAttribute
--5251	errUnknownElement	errUnknownElement
--5250	errReadOnlyText	errReadOnlyText
--5249	errEmptyScrap	errEmptyScrap
--5248	errNoHiliteText	errNoHiliteText
--5247	errOffsetNotOnElementBounday	errOffsetNotOnElementBounday
--5246	errInvalidRange	errInvalidRange
--5245	errIteratorReachedEnd	errIteratorReachedEnd
--5244	errEngineNotFound	errEngineNotFound
--5243	errAlreadyInImagingMode	errAlreadyInImagingMode
--5242	errNotInImagingMode	errNotInImagingMode
--5241	errMarginWilllNotFit	errMarginWilllNotFit
--5240	errUnknownAttributeTag	errUnknownAttributeTag
--5063	afpSameNodeErr	An Attempt was made to connect to a file server running on the same machine
--5062	afpAlreadyMounted	The volume is already mounted
--5061	afpCantMountMoreSrvre	The Maximum number of server connections has been reached
--5060	afpBadDirIDType	afpBadDirIDType
--5048	afpCallNotAllowed	The server knows what you wanted to do, but won't let you do it just now
--5047	afpAlreadyLoggedInErr	User has been authenticated but is already logged in from another machine (and that's not allowed on this server)
--5046	afpPwdPolicyErr	Password does not conform to servers password policy
--5045	afpPwdNeedsChangeErr	The password needs to be changed
--5044	afpInsideTrashErr	The folder being shared is inside the trash folder OR the shared folder is being moved into the trash folder
--5043	afpInsideSharedErr	The folder being shared is inside a shared folder OR the folder contains a shared folder and is being moved into a shared folder
--5042	afpPwdExpiredErr	The password being used is too old: this requires the user to change the password before log-in can continue
--5041	afpPwdTooShortErr	The password being set is too short: there is a minimum length that must be met or exceeded
--5040	afpPwdSameErr	Someone tried to change their password to the same password on a mantadory password change
--5039	afpBadIDErr	afpBadIDErr
--5038	afpSameObjectErr	afpSameObjectErr
--5037	afpCatalogChanged	afpCatalogChanged
--5036	afpDiffVolErr	afpDiffVolErr
--5035	afpIDExists	afpIDExists
--5034	afpIDNotFound	afpIDNotFound
--5033	afpContainsSharedErr	the folder being shared contains a shared folder
--5032	afpObjectLocked	Object is M/R/D/W inhibited
--5031	afpVolLocked	Volume is Read-Only
--5030	afpIconTypeError	Icon size specified different from existing icon size
--5029	afpDirNotFound	Unknown directory specified
--5028	afpCantRename	AFPRename cannot rename volume
--5027	afpServerGoingDown	Server is shutting down
--5026	afpTooManyFilesOpen	Maximum open file count reached
--5025	afpObjectTypeErr	File/Directory specified where Directory/File expected
--5024	afpCallNotSupported	Unsupported AFP call was made
--5023	afpUserNotAuth	No AFPLogin call has successfully been made for this session
--5022	afpSessClosed	Session closed
--5021	afpRangeOverlap	Some or all of range already locked by same user
--5020	afpRangeNotLocked	Tried to unlock range that was not locked by user
--5019	afpParmErr	A specified parameter was out of allowable range
--5018	afpObjectNotFound	Specified file or directory does not exist
--5017	afpObjectExists	Specified destination file or directory already exists
--5016	afpNoServer	Server not responding
--5015	afpNoMoreLocks	Maximum lock limit reached
--5014	afpMiscErr	Unexpected error encountered during execution
--5013	afpLockErr	Some or all of requested range is locked by another user
--5012	afpItemNotFound	Unknown UserName/UserID or missing comment/APPL entry
--5011	afpFlatVol	Cannot create directory on specified volume
--5010	afpFileBusy	Cannot delete an open file
--5009	afpEofError	Read beyond logical end-of-file
--5008	afpDiskFull	Insufficient free space on volume for operation
--5007	afpDirNotEmpty	Cannot delete non-empty directory
--5006	afpDenyConflict	Specified open/deny modes conflict with current open modes
--5005	afpCantMove	Move destination is offspring of source, or root was specified
--5004	afpBitmapErr	Bitmap contained bits undefined for call
--5003	afpBadVersNum	Unknown AFP protocol version number specified
--5002	afpBadUAM	Unknown user authentication method specified
--5001	afpAuthContinue	Further information required to complete AFPLogin call
--5000	afpAccessDenied	Insufficient access privileges for operation
--4999	illegalScrapFlavorSizeErr	illegalScrapFlavorSizeErr
--4998	illegalScrapFlavorTypeErr	illegalScrapFlavorTypeErr
--4997	illegalScrapFlavorFlagsErr	illegalScrapFlavorFlagsErr
--4996	scrapFlavorSizeMismatchErr	scrapFlavorSizeMismatchErr
--4995	scrapFlavorFlagsMismatchErr	scrapFlavorFlagsMismatchErr
--4994	nilScrapFlavorDataErr	nilScrapFlavorDataErr
--4993	noScrapPromiseKeeperErr	noScrapPromiseKeeperErr
--4992	scrapPromiseNotKeptErr	scrapPromiseNotKeptErr
--4991	processStateIncorrectErr	processStateIncorrectErr
--4990	badScrapRefErr	badScrapRefErr
--4989	duplicateScrapFlavorErr	duplicateScrapFlavorErr
--4988	internalScrapErr	internalScrapErr
--4960	coreFoundationUnknownErr	coreFoundationUnknownErr
--4276	badRoutingSizeErr	badRoutingSizeErr
--4275	routingNotFoundErr	routingNotFoundErr
--4274	duplicateRoutingErr	duplicateRoutingErr
--4273	invalidFolderTypeErr	invalidFolderTypeErr
--4272	noMoreFolderDescErr	noMoreFolderDescErr
--4271	duplicateFolderDescErr	duplicateFolderDescErr
--4270	badFolderDescErr	badFolderDescErr
--4217	cmCantGamutCheckError	Gammut checking not supported by this ColorWorld
--4216	cmNamedColorNotFound	NamedColor not found
--4215	cmCantCopyModifiedV1Profile	Illegal to copy version 1 profiles that have been modified
--4214	cmRangeOverFlow	Color conversion warning that some output color values over/underflowed and were clipped
--4213	cmInvalidProfileComment	Bad Profile comment during drawpicture
--4212	cmNoGDevicesError	Begin/End Matching -- no gdevices available
--4211	cmInvalidDstMap	Destination pix/bit map was invalid
--4210	cmInvalidSrcMap	Source pix/bit map was invalid
--4209	cmInvalidColorSpace	Profile colorspace does not match bitmap type
--4208	cmErrIncompatibleProfile	Other ColorSync Errors
--4207	cmSearchError	cmSearchError
--4206	cmInvalidSearch	Bad Search Handle
--4205	cmInvalidProfileLocation	Operation not supported for this profile location
--4204	cmInvalidProfile	A Profile must contain a 'cs1 ' tag to be valid
--4203	cmFatalProfileErr	cmFatalProfileErr
--4202	cmCantDeleteElement	cmCantDeleteElement
--4201	cmIndexRangeErr	Tag index out of range
--4200	kNSLInitializationFailed	UNABLE TO INITIALIZE THE MANAGER!!!!! DO NOT CONTINUE!!!!
--4199	kNSLNotInitialized	kNSLNotInitialized
--4198	kNSLInsufficientSysVer	kNSLInsufficientSysVer
--4197	kNSLInsufficientOTVer	kNSLInsufficientOTVer
--4196	kNSLNoElementsInList	kNSLNoElementsInList
--4195	kNSLBadReferenceErr	kNSLBadReferenceErr
--4194	kNSLBadServiceTypeErr	kNSLBadServiceTypeErr
--4193	kNSLBadDataTypeErr	kNSLBadDataTypeErr
--4192	kNSLBadNetConnection	kNSLBadNetConnection
--4191	kNSLNoSupportForService	kNSLNoSupportForService
--4190	kNSLInvalidPluginSpec	kNSLInvalidPluginSpec
--4189	kNSLRequestBufferAlreadyInList	kNSLRequestBufferAlreadyInList
--4188	kNSLNoContextAvailable	(ContinueLookup function ptr invalid)
--4187	kNSLBufferTooSmallForData	(Client buffer too small for data from plugin)
--4186	kNSLCannotContinueLookup	(Can't continue lookup; error or bad state)
--4185	kNSLBadClientInfoPtr	(nil ClientAsyncInfoPtr; no reference available)
--4184	kNSLNullListPtr	(client is trying to add items to a nil list)
--4183	kNSLBadProtocolTypeErr	(client is trying to add a null protocol type)
--4182	kNSLPluginLoadFailed	(manager unable to load one of the plugins)
--4181	kNSLNoPluginsFound	(manager didn't find any valid plugins to load)
--4180	kNSLSearchAlreadyInProgress	(you can only have one ongoing search per clientRef)
--4179	kNSLNoPluginsForSearch	(no plugins will respond to search request; bad protocol(s)?)
--4178	kNSLNullNeighborhoodPtr	(client passed a null neighborhood ptr)
--4177	kNSLSomePluginsFailedToLoad	(one or more plugins failed to load, but at least one did load; this error isn't fatal)
--4176	kNSLErrNullPtrError	kNSLErrNullPtrError
--4175	kNSLNotImplementedYet	kNSLNotImplementedYet
--4174	kNSLUILibraryNotAvailable	The NSL UI Library needs to be in the Extensions Folder
--4173	kNSLNoCarbonLib	kNSLNoCarbonLib
--4172	kNSLBadURLSyntax	URL contains illegal characters
--4171	kNSLSchedulerError	A custom thread routine encountered an error
--4170	kNSL68kContextNotSupported	no 68k allowed
--4009	noHelpForItem	noHelpForItem
--4008	badProfileError	badProfileError
--4007	colorSyncNotInstalled	colorSyncNotInstalled
--4006	pickerCantLive	pickerCantLive
--4005	cantLoadPackage	cantLoadPackage
--4004	cantCreatePickerWindow	cantCreatePickerWindow
--4003	cantLoadPicker	cantLoadPicker
--4002	pickerResourceError	pickerResourceError
--4001	requiredFlagsDontMatch	requiredFlagsDontMatch
--4000	firstPickerError	firstPickerError
--3285	kOTPortLostConnection	
--3284	kOTUserRequestedErr	
--3283	kOTConfigurationChangedErr	
--3282	kOTBadConfigurationErr	
--3281	kOTPortWasEjectedErr	
--3280	kOTPortHasDiedErr	
--3279	kOTClientNotInittedErr	
--3278	kENOMSGErr	
--3277	kESRCHErr	
--3276	kEINPROGRESSErr	
--3275	kENODATAErr	
--3274	kENOSTRErr	
--3273	kECANCELErr	
--3272	kEBADMSGErr	
--3271	kENOSRErr	
--3270	kETIMEErr	
--3269	kEPROTOErr	‚‚‚ fill out missing codes ‚‚‚
--3264	kEHOSTUNREACHErr	No route to host
--3263	kEHOSTDOWNErr	Host is down
--3260	kECONNREFUSEDErr	Connection refused
--3259	kETIMEDOUTErr	Connection timed out
--3258	kETOOMANYREFSErr	Too many references: can't splice
--3257	kESHUTDOWNErr	Can't send after socket shutdown
--3256	kENOTCONNErr	Socket is not connected
--3255	kEISCONNErr	Socket is already connected
--3254	kENOBUFSErr	No buffer space available
--3253	kECONNRESETErr	Connection reset by peer
--3252	kECONNABORTEDErr	Software caused connection abort
--3251	kENETRESETErr	Network dropped connection on reset
--3250	kENETUNREACHErr	Network is unreachable
--3249	kENETDOWNErr	Network is down
--3248	kEADDRNOTAVAILErr	Can't assign requested address
--3247	kEADDRINUSEErr	Address already in use
--3244	kEOPNOTSUPPErr	Operation not supported on socket
--3243	kESOCKTNOSUPPORTErr	Socket type not supported
--3242	kEPROTONOSUPPORTErr	Protocol not supported
--3241	kENOPROTOOPTErr	Protocol not available
--3240	kEPROTOTYPEErr	Protocol wrong type for socket
--3239	kEMSGSIZEErr	Message too long
--3238	kEDESTADDRREQErr	Destination address required
--3237	kENOTSOCKErr	Socket operation on non-socket
--3236	kEALREADYErr	
--3234	kEWOULDBLOCKErr	Call would block, so was aborted
--3233	kERANGEErr	Message size too large for STREAM
--3231	kEPIPEErr	Broken pipe
--3224	kENOTTYErr	Not a character device
--3221	kEINVALErr	Invalid argument
--3218	kENODEVErr	No such device
--3216	kOTDuplicateFoundErr	OT generic duplicate found error
--3215	kEBUSYErr	Device or resource busy
--3213	kEFAULTErr	Bad address
--3212	kEACCESErr	Permission denied
--3211	kOTOutOfMemoryErr	OT ran out of memory, may be a temporary
--3210	kEAGAINErr	Try operation again later
--3208	kEBADFErr	Bad file number
--3205	kENXIOErr	No such device or address
--3204	kEIOErr	I/O error
--3203	kEINTRErr	Interrupted system service
--3202	kENORSRCErr	No such resource
--3201	kOTNotFoundErr	OT generic not found error
--3200	kEPERMErr	Permission denied
--3180	kOTCanceledErr	XTI2OSStatus(TCANCELED) The command was cancelled
--3179	kOTBadSyncErr	XTI2OSStatus(TBADSYNC) A synchronous call at interrupt time
--3178	kOTProtocolErr	XTI2OSStatus(TPROTO) An unspecified provider error occurred
--3177	kOTQFullErr	XTI2OSStatus(TQFULL)
--3176	kOTResAddressErr	XTI2OSStatus(TRESADDR)
--3175	kOTResQLenErr	XTI2OSStatus(TRESQLEN)
--3174	kOTProviderMismatchErr	XTI2OSStatus(TPROVMISMATCH) Tried to accept on incompatible endpoint
--3173	kOTIndOutErr	XTI2OSStatus(TINDOUT) Accept failed because of pending listen
--3172	kOTAddressBusyErr	XTI2OSStatus(TADDRBUSY) Address requested is already in use
--3171	kOTBadQLenErr	XTI2OSStatus(TBADQLEN) A Bind to an in-use addr with qlen > 0
--3170	kOTBadNameErr	XTI2OSStatus(TBADNAME) A bad endpoint name was supplied
--3169	kOTNoStructureTypeErr	XTI2OSStatus(TNOSTRUCTYPE) Bad structure type requested for OTAlloc
--3168	kOTStateChangeErr	XTI2OSStatus(TSTATECHNG) State is changing - try again later
--3167	kOTNotSupportedErr	XTI2OSStatus(TNOTSUPPORT) Command is not supported
--3166	kOTNoReleaseErr	XTI2OSStatus(TNOREL) No orderly release indication available
--3165	kOTBadFlagErr	XTI2OSStatus(TBADFLAG) A Bad flag value was supplied
--3164	kOTNoUDErrErr	XTI2OSStatus(TNOUDERR) No Unit Data Error indication available
--3163	kOTNoDisconnectErr	XTI2OSStatus(TNODIS) No disconnect indication available
--3162	kOTNoDataErr	XTI2OSStatus(TNODATA) No data available for reading
--3161	kOTFlowErr	XTI2OSStatus(TFLOW) Provider is flow-controlled
--3160	kOTBufferOverflowErr	XTI2OSStatus(TBUFOVFLW) Passed buffer not big enough
--3159	kOTBadDataErr	XTI2OSStatus(TBADDATA) An illegal amount of data was specified
--3158	kOTLookErr	XTI2OSStatus(TLOOK) An event occurred - call Look()
--3157	kOTSysErrorErr	XTI2OSStatus(TSYSERR) A system error occurred
--3156	kOTBadSequenceErr	XTI2OSStatus(TBADSEQ) Sequence specified does not exist
--3155	kOTOutStateErr	XTI2OSStatus(TOUTSTATE) Call issued in wrong state
--3154	kOTNoAddressErr	XTI2OSStatus(TNOADDR) No address was specified
--3153	kOTBadReferenceErr	XTI2OSStatus(TBADF) Bad provider reference
--3152	kOTAccessErr	XTI2OSStatus(TACCES) Missing access permission
--3151	kOTBadOptionErr	XTI2OSStatus(TBADOPT) A Bad option was specified
--3150	kOTBadAddressErr	XTI2OSStatus(TBADADDR) A Bad address was specified
--3109	sktClosedErr	sktClosedErr
--3108	recNotFnd	recNotFnd
--3107	atpBadRsp	atpBadRsp
--3106	atpLenErr	atpLenErr
--3105	readQErr	readQErr
--3104	extractErr	extractErr
--3103	ckSumErr	ckSumErr
--3102	noMPPErr	noMPPErr
--3101	buf2SmallErr	buf2SmallErr
--3032	noPrefAppErr	noPrefAppErr
--3031	badTranslationSpecErr	badTranslationSpecErr
--3030	noTranslationPathErr	noTranslationPathErr
--3026	couldNotParseSourceFileErr	Source document does not contain source type
--3025	invalidTranslationPathErr	Source type to destination type not a valid path
--3005	retryComponentRegistrationErr	retryComponentRegistrationErr
--3004	unresolvedComponentDLLErr	unresolvedComponentDLLErr
--3003	componentDontRegister	componentDontRegister
--3002	componentNotCaptured	componentNotCaptured
--3001	validInstancesExist	validInstancesExist
--3000	invalidComponentID	invalidComponentID
--2899	cfragLastErrCode	The last value in the range of CFM errors.
--2831	cfragOutputLengthErr	An output parameter is too small to hold the value.
--2830	cfragAbortClosureErr	Used by notification handlers to abort a closure.
--2829	cfragClosureIDErr	The closure ID was not valid.
--2828	cfragContainerIDErr	The fragment container ID was not valid.
--2827	cfragNoRegistrationErr	The registration name was not found.
--2826	cfragNotClosureErr	The closure ID was actually a connection ID.
--2825	cfragFileSizeErr	A file was too large to be mapped.
--2824	cfragFragmentUsageErr	A semantic error in usage of the fragment.
--2823	cfragArchitectureErr	A fragment has an unacceptable architecture.
--2822	cfragNoApplicationErr	No application member found in the cfrg resource.
--2821	cfragInitFunctionErr	A fragment's initialization routine returned an error.
--2820	cfragFragmentCorruptErr	A fragment's container was corrupt (known format).
--2819	cfragCFMInternalErr	An internal inconstistancy has been detected.
--2818	cfragCFMStartupErr	Internal error during CFM initialization.
--2817	cfragLibConnErr	
--2816	cfragInitAtBootErr	A boot library has an initialization function.  (System 7 only)
--2815	cfragInitLoopErr	Circularity in required initialization order.
--2814	cfragImportTooNewErr	An import library was too new for a client.
--2813	cfragImportTooOldErr	An import library was too old for a client.
--2812	cfragInitOrderErr	
--2811	cfragNoIDsErr	No more CFM IDs for contexts, connections, etc.
--2810	cfragNoClientMemErr	Out of memory for fragment mapping or section instances.
--2809	cfragNoPrivateMemErr	Out of memory for internal bookkeeping.
--2808	cfragNoPositionErr	The registration insertion point was not found.
--2807	cfragUnresolvedErr	A fragment had "hard" unresolved imports.
--2806	cfragFragmentFormatErr	A fragment's container format is unknown.
--2805	cfragDupRegistrationErr	The registration name was already in use.
--2804	cfragNoLibraryErr	The named library was not found.
--2803	cfragNoSectionErr	The specified section was not found.
--2802	cfragNoSymbolErr	The specified symbol was not found.
--2801	cfragConnectionIDErr	The connection ID was not valid.
--2800	cfragFirstErrCode	The first value in the range of CFM errors.
--2780	errASInconsistentNames	English errors:
--2763	errASNoResultReturned	The range -2780 thru -2799 is reserved for dialect specific error codes. (Error codes from different dialects may overlap.)
--2762	errASParameterNotForEvent	errASParameterNotForEvent
--2761	errASIllegalFormalParameter	errASIllegalFormalParameter
--2760	errASTerminologyNestingTooDeep	errASTerminologyNestingTooDeep
--2755	OSAControlFlowError	Signaled when illegal control flow occurs in an application (no catcher for throw, non-lexical loop exit, etc.)
--2754	OSAInconsistentDeclarations	Signaled when a variable is declared inconsistently in the same scope, such as both local and global
--2753	OSAUndefinedVariable	Signaled when a variable is accessed that has no value
--2752	OSADuplicateHandler	Signaled when more than one handler is defined with the same name in a scope where the language doesn't allow it
--2751	OSADuplicateProperty	Signaled when a formal parameter, local variable, or instance variable is specified more than once.
--2750	OSADuplicateParameter	Signaled when a formal parameter, local variable, or instance variable is specified more than once
--2742	OSATokenTooLong	Signaled when a name or number is too long to be parsed
--2741	OSASyntaxTypeError	Signaled when another form of syntax was expected. (e.g. "expected a <type> but found <this>")
--2740	OSASyntaxError	Signaled when a syntax error occurs. (e.g. "Syntax error" or "<this> can't go after <that>")
--2721	errASCantCompareMoreThan32k	Parser/Compiler errors:
--2720	errASCantConsiderAndIgnore	errASCantConsiderAndIgnore
--2710	errOSACantCreate	errOSACantCreate
--2709	errOSACantGetTerminology	errOSACantGetTerminology
--2708	errOSADataBlockTooLarge	Signaled when an intrinsic limitation is exceeded for the size of a value or data structure.
--2707	errOSAInternalTableOverflow	Signaled when a runtime internal data structure overflows
--2706	errOSAStackOverflow	Signaled when the runtime stack overflows
--2705	errOSACorruptTerminology	Signaled when an application's terminology resource is not readable
--2704	errOSAAppNotHighLevelEventAware	Signaled when an application can't respond to AppleEvents
--2703	errOSACantLaunch	Signaled when application can't be launched or when it is remote and program linking is not enabled
--2702	errOSANumericOverflow	Signaled when integer or real value is too large to be represented
--2701	errOSADivideByZero	Signaled when there is an attempt to divide by zero
--2700	errOSAGeneralError	Signaled by user scripts or applications when no actual error code is to be returned.
--2582	noIconDataAvailableErr	The necessary icon data is not available
--2581	noSuchIconErr	The requested icon could not be found
--2580	invalidIconRefErr	The icon ref is not valid
--2557	nrCallNotSupported	This call is not available or supported on this machine
--2556	nrTransactionAborted	transaction was aborted
--2555	nrExitedIteratorScope	outer scope of iterator was exited
--2554	nrIterationDone	iteration operation is done
--2553	nrPropertyAlreadyExists	property already exists
--2552	nrInvalidEntryIterationOp	invalid entry iteration operation
--2551	nrPathBufferTooSmall	buffer for path is too small
--2550	nrPathNotFound	a path component lookup failed
--2549	nrResultCodeBase	nrResultCodeBase
--2548	nrOverrunErr	nrOverrunErr
--2547	nrNotModifiedErr	nrNotModifiedErr
--2546	nrTypeMismatchErr	nrTypeMismatchErr
--2545	nrPowerSwitchAbortErr	nrPowerSwitchAbortErr
--2544	nrPowerErr	nrPowerErr
--2543	nrDataTruncatedErr	nrDataTruncatedErr
--2542	nrNotSlotDeviceErr	nrNotSlotDeviceErr
--2541	nrNameErr	nrNameErr
--2540	nrNotCreatedErr	nrNotCreatedErr
--2539	nrNotFoundErr	nrNotFoundErr
--2538	nrInvalidNodeErr	nrInvalidNodeErr
--2537	nrNotEnoughMemoryErr	nrNotEnoughMemoryErr
--2536	nrLockedErr	nrLockedErr
--2526	mmInternalError	mmInternalError
--2524	tsmDefaultIsNotInputMethodErr	Current Input source is KCHR or uchr, not Input Method  (GetDefaultInputMethod)
--2523	tsmNoStem	No stem exists for the token
--2522	tsmNoMoreTokens	No more tokens are available for the source text
--2521	tsmNoHandler	No Callback Handler exists for callback
--2520	tsmInvalidContext	Invalid TSMContext specified in call
--2519	tsmUnknownErr	any other errors
--2518	tsmUnsupportedTypeErr	unSupported interface type error
--2517	tsmScriptHasNoIMErr	script has no imput method or is using old IM
--2516	tsmInputMethodIsOldErr	returned by GetDefaultInputMethod
--2515	tsmComponentAlreadyOpenErr	text service already opened for the document
--2514	tsmTSNotOpenErr	text service is not open
--2513	tsmTSHasNoMenuErr	the text service has no menu
--2512	tsmUseInputWindowErr	not TSM aware because we are using input window
--2511	tsmDocumentOpenErr	there are open documents
--2510	tsmTextServiceNotFoundErr	no text service found
--2509	tsmCantOpenComponentErr	canÕt open the component
--2508	tsmNoOpenTSErr	no open text service
--2507	tsmDocNotActiveErr	document is NOT active
--2506	tsmTSMDocBusyErr	document is still active
--2505	tsmInvalidDocIDErr	invalid TSM documentation id
--2504	tsmNeverRegisteredErr	app never registered error (not TSM aware)
--2503	tsmAlreadyRegisteredErr	want to register again error
--2502	tsmNotAnAppErr	not an application error
--2501	tsmInputMethodNotFoundErr	tsmInputMethodNotFoundErr
--2500	tsmUnsupScriptLanguageErr	tsmUnsupScriptLanguageErr
--2499	kernelUnrecoverableErr	kernelUnrecoverableErr
--2422	kernelReturnValueErr	kernelReturnValueErr
--2421	kernelAlreadyFreeErr	kernelAlreadyFreeErr
--2419	kernelIDErr	kernelIDErr
--2418	kernelExceptionErr	kernelExceptionErr
--2417	kernelTerminatedErr	kernelTerminatedErr
--2416	kernelInUseErr	kernelInUseErr
--2415	kernelTimeoutErr	kernelTimeoutErr
--2414	kernelAsyncReceiveLimitErr	kernelAsyncReceiveLimitErr
--2413	kernelAsyncSendLimitErr	kernelAsyncSendLimitErr
--2412	kernelAttributeErr	kernelAttributeErr
--2411	kernelExecutionLevelErr	kernelExecutionLevelErr
--2410	kernelDeletePermissionErr	kernelDeletePermissionErr
--2409	kernelExecutePermissionErr	kernelExecutePermissionErr
--2408	kernelReadPermissionErr	kernelReadPermissionErr
--2407	kernelWritePermissionErr	kernelWritePermissionErr
--2406	kernelObjectExistsErr	kernelObjectExistsErr
--2405	kernelUnsupportedErr	kernelUnsupportedErr
--2404	kernelPrivilegeErr	kernelPrivilegeErr
--2403	kernelOptionsErr	kernelOptionsErr
--2402	kernelCanceledErr	kernelCanceledErr
--2401	kernelIncompleteErr	kernelIncompleteErr
--2209	badCallOrderErr	Usually due to a status call being called prior to being setup first
--2208	noDMAErr	CanÕt do DMA digitizing (i.e. can't go to requested dest
--2207	badDepthErr	CanÕt digitize into this depth
--2206	notExactSizeErr	CanÕt do exact size requested
--2205	noMoreKeyColorsErr	all key indexes in use
--2204	notExactMatrixErr	warning of bad matrix, digitizer did its best
--2203	matrixErr	bad matrix, digitizer did nothing
--2202	qtParamErr	bad input parameter (out of range, etc)
--2201	digiUnimpErr	feature unimplemented
--2159	qtXMLApplicationErr	qtXMLApplicationErr
--2158	qtXMLParseErr	qtXMLParseErr
--2157	qtActionNotHandledErr	qtActionNotHandledErr
--2149	notEnoughDataErr	notEnoughDataErr
--2148	urlDataHFTPURLErr	urlDataHFTPURLErr
--2147	urlDataHFTPServerDisconnectedErr	urlDataHFTPServerDisconnectedErr
--2146	urlDataHFTPNoPasswordErr	urlDataHFTPNoPasswordErr
--2145	urlDataHFTPNeedPasswordErr	urlDataHFTPNeedPasswordErr
--2144	urlDataHFTPBadNameListErr	urlDataHFTPBadNameListErr
--2143	urlDataHFTPNoNetDriverErr	urlDataHFTPNoNetDriverErr
--2142	urlDataHFTPFilenameErr	urlDataHFTPFilenameErr
--2141	urlDataHFTPPermissionsErr	urlDataHFTPPermissionsErr
--2140	urlDataHFTPQuotaErr	urlDataHFTPQuotaErr
--2139	urlDataHFTPNoDirectoryErr	urlDataHFTPNoDirectoryErr
--2138	urlDataHFTPDataConnectionErr	urlDataHFTPDataConnectionErr
--2137	urlDataHFTPServerErr	urlDataHFTPServerErr
--2136	urlDataHFTPBadPasswordErr	urlDataHFTPBadPasswordErr
--2135	urlDataHFTPBadUserErr	urlDataHFTPBadUserErr
--2134	urlDataHFTPShutdownErr	urlDataHFTPShutdownErr
--2133	urlDataHFTPProtocolErr	urlDataHFTPProtocolErr
--2132	urlDataHHTTPRedirectErr	urlDataHHTTPRedirectErr
--2131	urlDataHHTTPURLErr	urlDataHHTTPURLErr
--2130	urlDataHHTTPNoNetDriverErr	urlDataHHTTPNoNetDriverErr
--2129	urlDataHHTTPProtocolErr	urlDataHHTTPProtocolErr
--2127	qtNetworkAlreadyAllocatedErr	qtNetworkAlreadyAllocatedErr
--2126	notAllowedToSaveMovieErr	notAllowedToSaveMovieErr
--2125	fileOffsetTooBigErr	fileOffsetTooBigErr
--2124	ASDEntryNotFoundErr	ASDEntryNotFoundErr
--2123	ASDBadForkErr	ASDBadForkErr
--2122	ASDBadHeaderErr	ASDBadHeaderErr
--2121	AAPNotFoundErr	AAPNotFoundErr
--2120	AAPNotCreatedErr	AAPNotCreatedErr
--2119	qfcbNotCreatedErr	qfcbNotCreatedErr
--2118	qfcbNotFoundErr	qfcbNotFoundErr
--2117	wackBadMetaDataErr	wackBadMetaDataErr
--2116	wackForkNotFoundErr	wackForkNotFoundErr
--2115	wackBadFileErr	wackBadFileErr
--2114	unknownFormatErr	unknownFormatErr
--2113	pathNotVerifiedErr	pathNotVerifiedErr
--2112	noPathMappingErr	noPathMappingErr
--2111	emptyPathErr	emptyPathErr
--2110	pathTooLongErr	pathTooLongErr
--2109	cannotBeLeafAtomErr	cannotBeLeafAtomErr
--2108	invalidAtomTypeErr	invalidAtomTypeErr
--2107	invalidAtomContainerErr	invalidAtomContainerErr
--2106	invalidAtomErr	invalidAtomErr
--2105	duplicateAtomTypeAndIDErr	duplicateAtomTypeAndIDErr
--2104	atomIndexInvalidErr	atomIndexInvalidErr
--2103	atomsNotOfSameTypeErr	atomsNotOfSameTypeErr
--2102	notLeafAtomErr	notLeafAtomErr
--2101	cannotFindAtomErr	cannotFindAtomErr
--2097	unsupportedProcessorErr	unsupportedProcessorErr
--2096	unsupportedOSErr	unsupportedOSErr
--2095	qtmlUninitialized	qtmlUninitialized
--2094	qtmlDllEntryNotFoundErr	Windows specific errors (when qtml is loading)
--2093	qtmlDllLoadErr	Windows specific errors (when qtml is loading)
--2092	componentDllEntryNotFoundErr	Windows specific errors (when component is loading)
--2091	componentDllLoadErr	Windows specific errors (when component is loading)
--2090	videoOutputInUseErr	videoOutputInUseErr
--2089	noExportProcAvailableErr	noExportProcAvailableErr
--2087	tuneParseOSErr	tuneParseOSErr
--2086	tunePlayerFullOSErr	tunePlayerFullOSErr
--2085	noteChannelNotAllocatedOSErr	noteChannelNotAllocatedOSErr
--2084	illegalNoteChannelOSErr	illegalNoteChannelOSErr
--2083	synthesizerOSErr	synthesizerOSErr
--2082	synthesizerNotRespondingOSErr	synthesizerNotRespondingOSErr
--2081	midiManagerAbsentOSErr	midiManagerAbsentOSErr
--2080	illegalControllerOSErr	illegalControllerOSErr
--2079	illegalInstrumentOSErr	illegalInstrumentOSErr
--2078	illegalKnobValueOSErr	illegalKnobValueOSErr
--2077	illegalKnobOSErr	illegalKnobOSErr
--2076	illegalChannelOSErr	illegalChannelOSErr
--2075	illegalPartOSErr	illegalPartOSErr
--2074	illegalVoiceAllocationOSErr	illegalVoiceAllocationOSErr
--2073	cantReceiveFromSynthesizerOSErr	cantReceiveFromSynthesizerOSErr
--2072	cantSendToSynthesizerOSErr	cantSendToSynthesizerOSErr
--2071	notImplementedMusicOSErr	notImplementedMusicOSErr
--2070	internalComponentErr	internalComponentErr
--2069	invalidSpriteIDErr	invalidSpriteIDErr
--2068	invalidImageIndexErr	invalidImageIndexErr
--2067	invalidSpriteIndexErr	invalidSpriteIndexErr
--2066	gWorldsNotSameDepthAndSizeErr	gWorldsNotSameDepthAndSizeErr
--2065	invalidSpritePropertyErr	invalidSpritePropertyErr
--2064	invalidSpriteWorldPropertyErr	invalidSpriteWorldPropertyErr
--2063	missingRequiredParameterErr	missingRequiredParameterErr
--2062	movieTextNotFoundErr	movieTextNotFoundErr
--2061	sourceNotFoundErr	sourceNotFoundErr
--2060	noSourceTreeFoundErr	noSourceTreeFoundErr
--2059	samplesAlreadyInMediaErr	samplesAlreadyInMediaErr
--2058	auxiliaryExportDataUnavailable	auxiliaryExportDataUnavailable
--2057	unsupportedAuxiliaryImportData	unsupportedAuxiliaryImportData
--2056	soundSupportNotAvailableErr	QT for Windows error
--2055	noSoundTrackInMovieErr	QT for Windows error
--2054	noVideoTrackInMovieErr	QT for Windows error
--2053	featureUnsupported	featureUnsupported
--2052	couldNotUseAnExistingSample	couldNotUseAnExistingSample
--2051	noDefaultDataRef	noDefaultDataRef
--2050	badDataRefIndex	badDataRefIndex
--2049	invalidDataRefContainer	invalidDataRefContainer
--2048	noMovieFound	noMovieFound
--2047	dataNoDataRef	dataNoDataRef
--2046	endOfDataReached	endOfDataReached
--2045	dataAlreadyClosed	dataAlreadyClosed
--2044	dataAlreadyOpenForWrite	dataAlreadyOpenForWrite
--2043	dataNotOpenForWrite	dataNotOpenForWrite
--2042	dataNotOpenForRead	dataNotOpenForRead
--2041	invalidSampleDescription	invalidSampleDescription
--2040	invalidChunkCache	invalidChunkCache
--2039	invalidSampleDescIndex	invalidSampleDescIndex
--2038	invalidChunkNum	invalidChunkNum
--2037	invalidSampleNum	invalidSampleNum
--2036	invalidRect	invalidRect
--2035	cantEnableTrack	cantEnableTrack
--2034	internalQuickTimeError	internalQuickTimeError
--2033	badEditIndex	badEditIndex
--2032	timeNotInMedia	timeNotInMedia
--2031	timeNotInTrack	timeNotInTrack
--2030	trackNotInMovie	trackNotInMovie
--2029	trackIDNotFound	trackIDNotFound
--2028	badTrackIndex	badTrackIndex
--2027	maxSizeToGrowTooSmall	maxSizeToGrowTooSmall
--2026	userDataItemNotFound	userDataItemNotFound
--2025	staleEditState	staleEditState
--2024	nonMatchingEditState	nonMatchingEditState
--2023	invalidEditState	invalidEditState
--2022	cantCreateSingleForkFile	happens when file already exists
--2021	wfFileNotFound	wfFileNotFound
--2020	movieToolboxUninitialized	movieToolboxUninitialized
--2019	progressProcAborted	progressProcAborted
--2018	mediaTypesDontMatch	mediaTypesDontMatch
--2017	badEditList	badEditList
--2016	cantPutPublicMovieAtom	cantPutPublicMovieAtom
--2015	invalidTime	invalidTime
--2014	invalidDuration	invalidDuration
--2013	invalidHandler	invalidHandler
--2012	invalidDataRef	invalidDataRef
--2011	invalidSampleTable	invalidSampleTable
--2010	invalidMovie	invalidMovie
--2009	invalidTrack	invalidTrack
--2008	invalidMedia	invalidMedia
--2007	noDataHandler	noDataHandler
--2006	noMediaHandler	noMediaHandler
--2005	badComponentType	badComponentType
--2004	cantOpenHandler	cantOpenHandler
--2003	cantFindHandler	cantFindHandler
--2002	badPublicMovieAtom	badPublicMovieAtom
--2001	badImageDescription	badImageDescription
--2000	couldNotResolveDataRef	couldNotResolveDataRef
--1862	nonDragOriginatorErr	illegal attempt at originator only data
--1861	badImageErr	bad translucent image PixMap
--1860	badImageRgnErr	bad translucent image region
--1859	noSuitableDisplaysErr	no displays support translucency
--1858	unsupportedForPlatformErr	call is for PowerPC only
--1857	dragNotAcceptedErr	drag was not accepted by receiver
--1856	handlerNotFoundErr	handler not found
--1855	duplicateHandlerErr	handler already exists
--1854	cantGetFlavorErr	error while trying to get flavor data
--1853	duplicateFlavorErr	flavor type already exists
--1852	badDragFlavorErr	unknown flavor type
--1851	badDragItemErr	unknown drag item reference
--1850	badDragRefErr	unknown drag reference
--1813	errEndOfBody	errEndOfBody
--1812	errEndOfDocument	errEndOfDocument
--1811	errTopOfBody	errTopOfBody
--1810	errTopOfDocument	errTopOfDocument
--1801	errOffsetIsOutsideOfView	errOffsetIsOutsideOfView
--1800	errOffsetInvalid	errOffsetInvalid
--1762	errOSACantOpenComponent	Can't connect to scripting system with that ID
--1761	errOSAComponentMismatch	Parameters are from 2 different components
--1759	errOSADataFormatTooNew	errOSADataFormatTooNew
--1758	errOSADataFormatObsolete	errOSADataFormatObsolete
--1757	errOSANoSuchDialect	errOSANoSuchDialect
--1756	errOSASourceNotAvailable	errOSASourceNotAvailable
--1754	errOSABadSelector	errOSABadSelector
--1753	errOSAScriptError	errOSAScriptError
--1752	errOSABadStorageType	errOSABadStorageType
--1751	errOSAInvalidID	errOSAInvalidID
--1750	errOSASystemError	errOSASystemError
--1741	errAEBufferTooSmall	buffer for AEFlattenDesc too small
--1740	errAEBuildSyntaxError	AEBuildDesc and friends detected a syntax error
--1739	errAEDescIsNull	attempting to perform an invalid operation on a null descriptor
--1738	errAEStreamAlreadyConverted	attempt to convert a stream that has already been converted
--1737	errAEStreamBadNesting	nesting violation while streaming
--1736	errAEDuplicateHandler	attempt to install handler in table for identical class and id (1.1 or greater)
--1735	errAEEventFiltered	event has been filtered, and should not be propogated (1.1 or greater)
--1734	errAEReceiveEscapeCurrent	break out of only lowest level of AEReceive (1.1 or greater)
--1733	errAEReceiveTerminate	break out of all levels of AEReceive to the topmost (1.1 or greater)
--1732	errAERecordingIsAlreadyOn	available only in version 1.0.1 or greater
--1731	errAEUnknownObjectType	available only in version 1.0.1 or greater
--1730	errAEEmptyListContainer	Attempt to pass empty list as container to accessor
--1729	errAENegativeCount	CountProc returned negative value
--1728	errAENoSuchObject	e.g.,: specifier asked for the 3rd, but there are only 2. Basically, this indicates a run-time resolution error.
--1727	errAENotAnObjSpec	Param to AEResolve not of type 'obj '
--1726	errAEBadTestKey	Test is neither typeLogicalDescriptor nor typeCompDescriptor
--1725	errAENoSuchLogical	Something other than AND, OR, or NOT
--1723	errAEAccessorNotFound	Accessor proc matching wantClass and containerType or wildcards not found
--1721	errAEWrongNumberArgs	Logical op kAENOT used with other than 1 term
--1720	errAEImpossibleRange	A range like 3rd to 2nd, or 1st to all.
--1719	errAEIllegalIndex	index is out of range in a put operation
--1718	errAEReplyNotArrived	the contents of the reply you are accessing have not arrived yet
--1717	errAEHandlerNotFound	no handler in the dispatch tables fits the parameters to AEGetEventHandler or AEGetCoercionHandler
--1716	errAEUnknownAddressType	the target address type is not known
--1715	errAEParamMissed	a required parameter was not accessed
--1714	errAENotASpecialFunction	there is no special function for/with this keyword
--1713	errAENoUserInteraction	no user interaction is allowed
--1712	errAETimeout	the AppleEvent timed out
--1711	errAEWaitCanceled	in AESend, the user cancelled out of wait loop for reply or receipt
--1710	errAEUnknownSendMode	mode wasn't NoReply, WaitReply, or QueueReply or Interaction level is unknown
--1709	errAEReplyNotValid	AEResetTimer was passed an invalid reply parameter
--1708	errAEEventNotHandled	the AppleEvent was not handled by any handler
--1707	errAENotAppleEvent	the event is not in AppleEvent format
--1706	errAENewerVersion	need newer version of the AppleEvent manager
--1705	errAEBadListItem	the specified list item does not exist
--1704	errAENotAEDesc	errAENotAEDesc
--1703	errAEWrongDataType	errAEWrongDataType
--1702	errAECorruptData	errAECorruptData
--1701	errAEDescNotFound	errAEDescNotFound
--1700	errAECoercionFail	bad parameter data or unable to coerce the data supplied
--1424	errFSIteratorNotSupported	The iterator's flags or container are not supported by this call
--1423	errFSIteratorNotFound	Passed FSIterator is not an open iterator
--1422	errFSBadIteratorFlags	Flags passed to FSOpenIterator are bad
--1421	errFSForkExists	Named fork already exists.
--1420	errFSRefsDifferent	FSCompareFSRefs; refs are for different objects
--1419	errFSBadSearchParams	Something wrong with CatalogSearch searchParams
--1418	errFSBadItemCount	maximumItems was zero
--1417	errFSNoMoreItems	Iteration ran out of items to return
--1413	errFSBadAllocFlags	Invalid bits set in allocationFlags
--1412	errFSBadPosMode	Newline bits set in positionMode
--1411	errFSMissingName	A Unicode name parameter was NULL or nameLength parameter was zero
--1410	errFSNameTooLong	File/fork name is too long to create/rename
--1409	errFSForkNotFound	Named fork does not exist
--1407	errFSNotAFolder	Expected a folder, got a file
--1406	errFSMissingCatInfo	A CatalogInfo parameter was NULL
--1405	errFSBadInfoBitmap	A CatalogInfoBitmap or VolumeInfoBitmap has reserved or invalid bits set
--1404	errFSBadForkRef	A ForkRefNum parameter was bad
--1403	errFSBadBuffer	A buffer parameter was bad
--1402	errFSBadForkName	Fork name parameter is bad
--1401	errFSBadFSRef	FSRef parameter is bad
--1400	errFSUnknownCall	selector is not recognized by this filesystem
--1327	badFCBErr	FCBRecPtr is not valid
--1311	volVMBusyErr	can't eject because volume is in use by VM
--1310	fsDataTooBigErr	file or volume is too big for system
--1309	fileBoundsErr	file's EOF, offset, mark or size is too big
--1308	notARemountErr	when _Mount allows only remounts and doesn't get one
--1307	badFidErr	file id is dangling or doesn't match with the file number
--1306	sameFileErr	can't exchange a file with itself
--1305	desktopDamagedErr	desktop database files are corrupted
--1304	catChangedErr	the catalog has been modified
--1303	diffVolErr	files on different volumes
--1302	notAFileErr	directory specified
--1301	fidExists	file id already exists
--1300	fidNotFound	no file thread exists.
--1280	errRefNum	bad connection refNum
--1279	errAborted	control call was aborted
--1278	errState	bad connection state for this operation
--1277	errOpening	open connection request failed
--1276	errAttention	attention message too long
--1275	errFwdReset	read terminated by forward reset
--1274	errDSPQueueSize	DSP Read/Write Queue Too small
--1273	errOpenDenied	open connection request was denied
--1105	reqAborted	reqAborted
--1104	noDataArea	noDataArea
--1103	noSendResp	noSendResp
--1102	cbNotFound	cbNotFound
--1101	noRelErr	noRelErr
--1100	badBuffNum	badBuffNum
--1099	badATPSkt	badATPSkt
--1098	tooManySkts	tooManySkts
--1097	tooManyReqs	tooManyReqs
--1096	reqFailed	reqFailed
--1075	aspNoAck	No ack on attention request (server err)
--1074	aspTooMany	Too many clients (server error)
--1073	aspSizeErr	Command block too big
--1072	aspSessClosed	Session closed
--1071	aspServerBusy	Server cannot open another session
--1070	aspParamErr	Parameter error
--1069	aspNoServers	No servers at that address
--1068	aspNoMoreSess	No more sessions on server
--1067	aspBufTooSmall	Buffer too small
--1066	aspBadVersNum	Server cannot support this ASP version
--1029	nbpNISErr	Error trying to open the NIS
--1028	nbpNotFound	Name not found on remove
--1027	nbpDuplicate	Duplicate name exists already
--1026	nbpConfDiff	Name confirmed at different socket
--1025	nbpNoConfirm	nbpNoConfirm
--1024	nbpBuffOvr	Buffer overflow in LookupName
--1000	noMaskFoundErr	Icon Utilties Error
--985	kFMFontContainerAccessErr	kFMFontContainerAccessErr
--984	kFMFontTableAccessErr	kFMFontTableAccessErr
--983	kFMIterationScopeModifiedErr	kFMIterationScopeModifiedErr
--982	kFMInvalidFontErr	kFMInvalidFontErr
--981	kFMInvalidFontFamilyErr	kFMInvalidFontFamilyErr
--980	kFMIterationCompleted	kFMIterationCompleted
--932	guestNotAllowedErr	destination port requires authentication
--931	badLocNameErr	location name malformed
--930	badServiceMethodErr	illegal service type, or not supported
--928	noUserRecErr	Invalid user reference number
--927	authFailErr	unable to authenticate user at destination
--926	noInformErr	PPCStart failed because destination did not have inform pending
--925	networkErr	An error has occurred in the network, not too likely
--924	noUserRefErr	unable to create a new userRefNum
--923	notLoggedInErr	The default userRefNum does not yet exist
--922	noDefaultUserErr	user hasn't typed in owners name in Network Setup Control Pannel
--919	badPortNameErr	PPCPortRec malformed
--917	sessClosedErr	session was closed
--916	portClosedErr	port was closed
--915	noResponseErr	unable to contact destination
--914	noToolboxNameErr	A system resource is missing, not too likely
--913	noMachineNameErr	user hasn't named his Macintosh in the Network Setup Control Panel
--912	userRejectErr	Destination rejected the session request
--911	noUserNameErr	user name unknown on destination machine
--910	portNameExistsErr	port is already open (perhaps in another app)
--909	badReqErr	bad parameter or invalid state for operation
--908	noSessionErr	Invalid session reference number
--907	sessTableErr	Out of session tables, try again later
--906	destPortErr	Port does not exist at destination
--905	localOnlyErr	Network activity is currently disabled
--904	noGlobalsErr	The system is hosed, better re-boot
--903	noPortErr	Unable to open port or bad portRefNum.  If you're calling
--902	nameTypeErr	Invalid or inappropriate locationKindSelector in locationName
--900	notInitErr	PPCToolBox not initialized
--877	notAppropriateForClassic	This application won't or shouldn't run on Classic (Problem 2481058).
--876	appVersionTooOld	The application's creator and version are incompatible with the current version of Mac OS.
--875	wrongApplicationPlatform	The application could not launch because the required platform is not available
--863	hmCloseViewActive	Returned from HMRemoveBalloon if CloseView was active
--862	hmNoBalloonUp	Returned from HMRemoveBalloon if no balloon was visible when call was made
--861	hmOperationUnsupported	Returned from HMShowBalloon call if bad method passed to routine
--859	hmUnknownHelpType	Returned if help msg record contained a bad type
--858	hmWrongVersion	Returned if help mgr resource was the wrong version
--857	hmSkippedBalloon	Returned from calls if helpmsg specified a skip balloon
--855	hmHelpManagerNotInited	Returned from HMGetHelpMenuHandle if help menu not setup
--854	hmSameAsLastBalloon	Returned from HMShowMenuBalloon if menu & item is same as last time
--853	hmBalloonAborted	Returned if mouse was moving or mouse wasn't in window port rect
--850	hmHelpDisabled	Show Balloons mode was off, call to routine ignored
--813	rcDBPackNotInited	attempt to call other routine before InitDBPack
--812	rcDBWrongVersion	incompatible versions
--811	rcDBNoHandler	no app handler for specified data type
--810	rcDBBadAsyncPB	tried to kill a bad pb
--809	rcDBAsyncNotSupp	ddev does not support async calls
--808	rcDBBadDDEV	bad ddev specified on DBInit
--807	rcDBBadSessNum	bad session number for DBGetConnInfo
--806	rcDBBadSessID	rcDBBadSessID
--805	rcDBExec	rcDBExec
--804	rcDBBreak	rcDBBreak
--803	rcDBBadType	rcDBBadType
--802	rcDBError	rcDBError
--801	rcDBValue	rcDBValue
--800	rcDBNull	rcDBNull
--677	icTooManyProfilesErr	too many profiles in database
--676	icProfileNotFoundErr	profile not found
--675	icConfigInappropriateErr	incorrect manufacturer code
--674	icConfigNotFoundErr	no internet configuration was found
--673	icNoURLErr	no URL found
--672	icNothingToOverrideErr	no component for the override component to capture
--671	icNoMoreWritersErr	you cannot begin a write session because someone else is already doing it
--670	icTruncatedErr	more data was present than was returned
--669	icInternalErr	Internet Config internal error
--668	icPrefDataErr	problem with preference data
--667	icPermErr	cannot set preference
--666	icPrefNotFoundErr	Internet preference not found
--648	vmInvalidOwningProcessErr	current process does not own the BackingFileID or FileViewID
--647	vmAddressNotInFileViewErr	address is not in a FileView
--646	vmNoMoreFileViewsErr	no more FileViews were found
--645	vmFileViewAccessErr	requested FileViewAccess cannot be obtained
--644	vmInvalidFileViewIDErr	invalid FileViewID
--643	vmNoMoreBackingFilesErr	no more BackingFiles were found
--642	vmBusyBackingFileErr	open views found on BackingFile
--641	vmMappingPrivilegesErr	requested MappingPrivileges cannot be obtained
--640	vmInvalidBackingFileIDErr	invalid BackingFileID
--626	noMMUErr	no MMU present
--625	cannotDeferErr	unable to defer additional functions
--624	interruptsMaskedErr	donÕt call with interrupts masked
--623	notLockedErr	specified range of memory is not locked
--622	cannotMakeContiguousErr	cannot make specified range contiguous
--621	notHeldErr	specified range of memory is not held
--620	notEnoughMemoryErr	insufficient physical memory
--619	threadProtocolErr	threadProtocolErr
--618	threadNotFoundErr	threadNotFoundErr
--617	threadTooManyReqsErr	threadTooManyReqsErr
--610	noUserInteractionAllowed	no user interaction allowed
--609	connectionInvalid	connectionInvalid
--608	noOutstandingHLE	noOutstandingHLE
--607	bufferIsSmall	error returns from Post and Accept
--606	appIsDaemon	app is BG-only, and launch flags disallow this
--605	appMemFullErr	application SIZE not big enough for launch
--604	hardwareConfigErr	hardware configuration not correct for call
--603	protocolErr	app made module calls in improper order
--602	appModeErr	memory mode is 32-bit, but app not 32-bit clean
--601	memFragErr	not enough room to launch app w/special requirements
--600	procNotFound	no eligible process with specified descriptor
--503	driverHardwareGoneErr	disk driver's hardware was disconnected
--502	hwParamErr	bad selector for _HWPriv
--501	teScrapSizeErr	scrap item too big for text edit record
--500	rgnTooBigErr	rgnTooBigErr
--492	exUserBreak	user debugger break; execute debugger commands on stack
--491	strUserBreak	user debugger break; display string on stack
--490	userBreak	user debugger break
--463	notThePublisherWrn	not the first registered publisher for that container
--462	containerAlreadyOpenWrn	container already opened by this section
--461	containerNotFoundWrn	could not find editionContainer at this time
--460	multiplePublisherWrn	A Publisher is already registered for that container
--454	badSubPartErr	can not use sub parts in this release
--453	badEditionFileErr	edition file is corrupt
--452	notRegisteredSectionErr	not a registered SectionRecord
--451	badSectionErr	not a valid SectionRecord
--450	editionMgrInitErr	edition manager not inited by this app
--438	fsmUnknownFSMMessageErr	unknown message passed to FSM
--437	fsmNoAlternateStackErr	no alternate stack for HFS CI
--436	fsmBadFSDVersionErr	FSM version incompatible with FSD
--435	fsmDuplicateFSIDErr	FSID already exists on InstallFS
--434	fsmBadFSDLenErr	FSD size incompatible with current FSM vers
--433	fsmBadFFSNameErr	Name length not 1 <= length <= 31
--432	fsmBusyFFSErr	File system is busy, cannot be removed
--431	fsmFFSNotFoundErr	Foreign File system does not exist - new Pack2 could return this error too
--417	btKeyAttrErr	There is no such a key attribute.
--416	btKeyLenErr	Maximum key length is too long or equal to zero.
--415	btRecNotFnd	Record cannot be found.
--414	btDupRecErr	Record already exists.
--413	btNoSpace	Can't allocate disk space.
--410	notBTree	The file is not a dictionary.
--400	gcrOnMFMErr	gcr format on high density media error
--360	slotNumErr	invalid slot # error
--351	smRecNotFnd	Record not found in the SRT.
--350	smSRTOvrFlErr	SRT over flow.
--349	smNoGoodOpens	No opens were successfull in the loop.
--348	smOffsetErr	Offset was too big (temporary error
--347	smByteLanesErr	NumByteLanes was determined to be zero.
--346	smBadsPtrErr	Bad pointer was passed to sCalcsPointer
--345	smsGetDrvrErr	Error occurred during _sGetDriver.
--344	smNoMoresRsrcs	No more sResources
--343	smDisDrvrNamErr	Error occurred during _sDisDrvrName.
--342	smGetDrvrNamErr	Error occurred during _sGetDrvrName.
--341	smCkStatusErr	Status of slot = fail.
--340	smBlkMoveErr	_BlockMove error
--339	smNewPErr	_NewPtr error
--338	smSelOOBErr	Selector out of bounds error
--337	smSlotOOBErr	Slot out of bounds error
--336	smNilsBlockErr	Nil sBlock error (Dont allocate and try to use a nil sBlock)
--335	smsPointerNil	LPointer is nil From sOffsetData. If this error occurs; check sInfo rec for more information.
--334	smCPUErr	Code revision is wrong
--333	smCodeRevErr	Code revision is wrong
--332	smReservedErr	Reserved field not zero
--331	smBadsList	Bad sList: Id1 < Id2 < Id3 ...format is not followed.
--330	smBadRefId	Reference Id not found in List
--320	smBusErrTO	BusError time out.
--319	smBadBoardId	BoardId was wrong; re-init the PRAM record.
--318	smReservedSlot	slot is reserved, VM should not use this address space.
--317	smInitTblVErr	An error occurred while trying to initialize the Slot Resource Table.
--316	smInitStatVErr	The InitStatusV field was negative after primary or secondary init.
--315	smNoBoardId	No Board Id.
--314	smGetPRErr	Error occurred during _sGetPRAMRec (See SIMStatus).
--313	smNoBoardSRsrc	No Board sResource.
--312	smDisposePErr	_DisposePointer error
--311	smFHBlkDispErr	Error occurred during _sDisposePtr (Dispose of FHeader block).
--310	smFHBlockRdErr	Error occurred during _sGetFHeader.
--309	smBLFieldBad	ByteLanes field was bad.
--308	smUnExBusErr	Unexpected BusError
--307	smResrvErr	Fatal reserved error. Resreved field <> 0.
--306	smNosInfoArray	No sInfoArray. Memory Mgr error.
--305	smDisabledSlot	This slot is disabled (-305 use to be smLWTstBad)
--304	smNoDir	Directory offset is Nil
--303	smRevisionErr	Wrong revison level
--302	smFormatErr	FHeader Format is not Apple's
--301	smCRCFail	CRC check failed for declaration data
--300	smEmptySlot	No card in slot
--299	nmTypErr	Notification Manager:wrong queue type
--293	smPriInitErr	Error; Cards could not be initialized.
--292	smPRAMInitErr	Error; Slot Resource Table could not be initialized.
--291	smSRTInitErr	Error; Slot Resource Table could not be initialized.
--290	smSDMInitErr	Error; SDM could not be initialized.
--261	midiInvalidCmdErr	command not supported for port type
--260	midiDupIDErr	duplicate client ID
--259	midiNameLenErr	name supplied is longer than 31 characters
--258	midiWriteErr	MIDIWritePacket couldn't write to all connected ports
--257	midiNoConErr	no connection exists between specified ports
--256	midiVConnectRmvd	pending virtual connection removed
--255	midiVConnectMade	pending virtual connection resolved
--254	midiVConnectErr	pending virtual connection created
--253	midiTooManyConsErr	too many connections made
--252	midiTooManyPortsErr	too many ports already installed in the system
--251	midiNoPortErr	no port with that ID found
--250	midiNoClientErr	no client with that ID found
--247	badInputText	badInputText
--246	badDictFormat	badDictFormat
--245	incompatibleVoice	incompatibleVoice
--244	voiceNotFound	voiceNotFound
--243	bufTooSmall	bufTooSmall
--242	synthNotReady	synthNotReady
--241	synthOpenFailed	synthOpenFailed
--240	noSynthFound	noSynthFound
--232	siUnknownQuality	invalid quality selector (returned by driver)
--231	siUnknownInfoType	invalid info type selector (returned by driver)
--230	siInputDeviceErr	input device hardware failure
--229	siBadRefNum	invalid input device reference number
--228	siBadDeviceName	input device could not be opened
--227	siDeviceBusyErr	input device already in use
--226	siInvalidSampleSize	invalid sample size
--225	siInvalidSampleRate	invalid sample rate
--224	siHardDriveTooSlow	hard drive too slow to record to disk
--223	siInvalidCompression	invalid compression type
--222	siNoBufferSpecified	returned by synchronous SPBRecord if nil buffer passed
--221	siBadSoundInDevice	invalid index passed to SoundInGetIndexedDevice
--220	siNoSoundInHardware	no Sound Input hardware
--213	siVBRCompressionNotSupported	vbr audio compression not supported for this operation
--212	noMoreRealTime	not enough CPU cycles left to add another task
--211	channelNotBusy	channelNotBusy
--210	buffersTooSmall	can not operate in the memory allowed
--209	channelBusy	the Channel is being used for a PFD already
--208	badFileFormat	was not type AIFF or was of bad format,corrupt
--207	notEnoughBufferSpace	could not allocate enough memory
--206	badFormat	Sound Manager Error Returns
--205	badChannel	Sound Manager Error Returns
--204	resProblem	Sound Manager Error Returns
--203	queueFull	Sound Manager Error Returns
--201	notEnoughHardwareErr	Sound Manager Error Returns
--200	noHardwareErr	Sound Manager Error Returns
--199	mapReadErr	map inconsistent with operation
--198	resAttrErr	attribute inconsistent with operation
--197	rmvRefFailed	RmveReference failed
--196	rmvResFailed	RmveResource failed
--195	addRefFailed	AddReference failed
--194	addResFailed	AddResource failed
--193	resFNotFound	Resource file not found
--192	resNotFound	Resource not found
--190	inputOutOfBounds	Offset of Count out of bounds
--189	writingPastEnd	Writing past end of file
--188	resourceInMemory	Resource already in memory
--186	CantDecompress	resource bent ("the bends") - can't decompress a compressed resource
--185	badExtResource	extended resource has a bad format.
--182	cmNoCurrentProfile	Responder error
--181	cmUnsupportedDataType	Responder error
--180	cmCantDeleteProfile	Responder error
--179	cmCantXYZ	CMM cant handle XYZ space
--178	cmCantConcatenateError	Profile can't be concatenated
--177	cmProfilesIdentical	Profiles the same
--176	cmProfileNotFound	Responder error
--175	cmMethodNotFound	CMM not present
--171	cmMethodError	cmMethodError
--170	cmProfileError	cmProfileError
--157	cDepthErr	invalid pixel depth
--156	cResErr	invalid resolution for MakeITable
--155	cDevErr	invalid type of graphics device
--154	cProtectErr	colorTable entry protection violation
--153	cRangeErr	range error on colorTable request
--152	cNoMemErr	failed to allocate memory for structure
--151	cTempMemErr	failed to allocate memory for temporary structures
--150	cMatchErr	Color2Index failed to find an index
--149	insufficientStackErr	insufficientStackErr
--148	pixMapTooDeepErr	pixMapTooDeepErr
--147	rgnOverflowErr	rgnOverflowErr
--145	noMemForPictPlaybackErr	noMemForPictPlaybackErr
--128	userCanceledErr	userCanceledErr
--127	hMenuFindErr	could not find HMenu's parent in MenuKey (wrong error code - obsolete)
--126	mBarNFnd	system error code for MBDF not found
--125	updPixMemErr	insufficient memory to update a pixmap
--124	volGoneErr	Server volume has been disconnected.
--123	wrgVolTypErr	Wrong volume type error [operation not supported for MFS]
--122	badMovErr	Move into offspring error
--121	tmwdoErr	No free WDCB available
--120	dirNFErr	Directory not found
--117	memLockedErr	trying to move a locked block (MoveHHi)
--116	memSCErr	Size Check failed
--115	memBCErr	Block Check failed
--114	memPCErr	Pointer Check failed
--113	memAZErr	Address in zone check failed
--112	memPurErr	trying to purge a locked or non-purgeable block
--111	memWZErr	WhichZone failed (applied to free block)
--110	memAdrErr	address was odd; or out of range
--109	nilHandleErr	Master Pointer was NIL in HandleZone or other
--108	memFullErr	Not enough room in heap zone
--102	noTypeErr	No object of that type in scrap
--100	noScrapErr	No scrap exists error
--99	memROZWarn	soft error in ROZ
--98	portNotCf	driver Open error code (parameter RAM not configured for this connection)
--97	portInUse	driver Open error code (port is in use)
--96	portNotPwr	serial port not currently powered
--95	excessCollsns	excessive collisions on write
--94	lapProtErr	error in attaching/detaching protocol
--93	noBridgeErr	no network bridge for non-local send
--92	eLenErr	Length error ddpLenErr
--91	eMultiErr	Multicast address error ddpSktErr
--90	breakRecd	Break received (SCC)
--89	rcvrErr	SCC receiver error (framing; parity; OR)
--88	prInitErr	InitUtil found the parameter ram uninitialized
--87	prWrErr	parameter ram written didn't read-verify
--86	clkWrErr	time written did not verify
--85	clkRdErr	unable to read same clock value twice
--84	verErr	track failed to verify
--83	fmt2Err	can't get enough sync
--82	fmt1Err	can't find sector 0 after track format
--81	sectNFErr	sector number never found on a track
--80	seekErr	track number wrong on address mark
--79	spdAdjErr	unable to correctly adjust disk speed
--78	twoSideErr	tried to read 2nd side on a 1-sided drive
--77	initIWMErr	unable to initialize IWM
--76	tk0BadErr	track 0 detect doesn't change
--75	cantStepErr	step handshake failed
--74	wrUnderrun	write underrun occurred
--73	badDBtSlp	bad data mark bit slip nibbles
--72	badDCksum	bad data mark checksum
--71	noDtaMkErr	couldn't find a data mark header
--70	badBtSlpErr	bad addr mark bit slip nibbles
--69	badCksmErr	addr mark checksum didn't check
--68	dataVerErr	read verify compare failed
--67	noAdrMkErr	couldn't find valid addr mark
--66	noNybErr	couldn't find 5 nybbles in 200 tries
--65	offLinErr	r/w requested for an off-line drive
--64	fontDecError	error during font declaration
--61	wrPermErr	write permissions error
--60	badMDBErr	bad master directory block
--59	fsRnErr	file system internal error:during rename the old entry was deleted but could not be restored.
--58	extFSErr	volume in question belongs to an external fs
--57	noMacDskErr	not a mac diskette (sig bytes are wrong)
--56	nsDrvErr	no such drive (tried to mount a bad drive num)
--55	volOnLinErr	drive volume already on-line at MountVol
--54	permErr	permissions error (on file open)
--53	volOffLinErr	volume not on line error (was Ejected)
--52	gfpErr	get file position error
--51	rfNumErr	refnum error
--50	paramErr	error in user parameter list
--49	opWrErr	file already open with with write permission
--48	dupFNErr	duplicate filename (rename)
--47	fBsyErr	File is busy (delete)
--46	vLckdErr	volume is locked
--45	fLckdErr	file is locked
--44	wPrErr	diskette is write protected.
--43	fnfErr	File not found
--42	tmfoErr	too many files open
--41	mFulErr	memory full (open) or file won't fit (load)
--40	posErr	tried to position to before start of file (r/w)
--39	eofErr	End of file
--38	fnOpnErr	File not open
--37	bdNamErr	there may be no bad names in the final system!
--36	ioErr	I/O error (bummers)
--35	nsvErr	no such volume
--34	dskFulErr	disk full
--33	dirFulErr	Directory full
--30	dceExtErr	dce extension error
--29	unitTblFullErr	unit table has no more entries
--28	notOpenErr	Couldn't rd/wr/ctl/sts cause driver not opened
--27	iIOAbortErr	IO abort error (Printing Manager)
--26	dInstErr	DrvrInstall couldn't find driver in resources
--25	dRemovErr	tried to remove an open driver
--24	closErr	I/O System Errors
--23	openErr	I/O System Errors
--22	unitEmptyErr	I/O System Errors
--21	badUnitErr	I/O System Errors
--20	writErr	I/O System Errors
--19	readErr	I/O System Errors
--18	statusErr	I/O System Errors
--17	controlErr	I/O System Errors
--13	dsExtensionsDisabled	say –Extensions Disabled”
--12	dsHD20Installed	say –HD20 Startup”
--11	dsDisassemblerInstalled	say –Disassembler Installed”
--10	dsMacsBugInstalled	say –MacsBug Installed”
--8	seNoDB	no debugger installed to handle debugger command
--5	SlpTypeErr	invalid queue element
--4	unimpErr	unimplemented core routine
--3	corErr	core routine number out of range
--2	dsNoExtsDisassembler	not a SysErr, just a placeholder
--1	qErr	queue element not found during deletion
-0	tsmComponentNoErr	component result = no error
-1	EPERM	Operation not permitted
-2	ENOENT	No such file or directory
-3	ESRCH	No such process
-4	EINTR	Interrupted system call
-5	EIO	Input/output error
-6	ENXIO	Device not configured
-7	E2BIG	Argument list too long
-8	ENOEXEC	Exec format error
-9	EBADF	Bad file descriptor
-10	ECHILD	No child processes
-11	EDEADLK	Resource deadlock avoided
-12	ENOMEM	Cannot allocate memory
-13	EACCES	Permission denied
-14	EFAULT	Bad address
-15	ECANCELED	Operation cancelled
-16	EBUSY	Device busy
-17	EEXIST	File exists
-18	EXDEV	Cross-device link
-19	ENODEV	Operation not supported by device
-20	ENOTDIR	Not a directory
-21	EISDIR	Is a directory
-22	EINVAL	Invalid argument
-23	ENFILE	Too many open files in system
-24	EMFILE	Too many open files
-25	ENOTTY	Inappropriate ioctl for device
-26	ESIGPARM	Signal error
-27	EFBIG	File too large
-28	ENOSPC	No space left on device
-29	ESPIPE	Illegal seek
-30	EROFS	Read-only file system
-31	EMLINK	Too many links
-32	EPIPE	Broken pipe
-33	EDOM	Numerical argument out of domain
-34	ERANGE	Result too large
-35	EAGAIN	Resource temporarily unavailable
-36	EINPROGRESS	Operation now in progress
-37	EALREADY	Operation already in progress
-38	ENOTSOCK	Socket operation on non-socket
-39	EDESTADDRREQ	Destination address required
-40	EMSGSIZE	Message too long
-41	EPROTOTYPE	Protocol wrong type for socket
-42	ENOPROTOOPT	Protocol not available
-43	EPROTONOSUPPORT	Protocol not supported
-44	ESOCKTNOSUPPORT	Socket type not supported
-45	EOPNOTSUPP	Operation not supported
-46	EPFNOSUPPORT	Protocol family not supported
-47	EAFNOSUPPORT	Address family not supported by protocol family
-48	EADDRINUSE	Address already in use
-49	EADDRNOTAVAIL	Can't assign requested address
-50	ENETDOWN	Network is down
-51	ENETUNREACH	Network is unreachable
-52	ENETRESET	Network dropped connection on reset
-53	ECONNABORTED	Software caused connection abort
-54	ECONNRESET	Connection reset by peer
-55	ENOBUFS	No buffer space available
-56	EISCONN	Socket is already connected
-57	ENOTCONN	Socket is not connected
-58	ESHUTDOWN	Can't send after socket shutdown
-59	ETOOMANYREFS	Too many references: can't splice
-60	ETIMEDOUT	Operation timed out
-61	ECONNREFUSED	Connection refused
-62	ELOOP	Too many levels of symbolic links
-63	ENAMETOOLONG	File name too long
-64	EHOSTDOWN	Host is down
-65	EHOSTUNREACH	No route to host
-66	ENOTEMPTY	Directory not empty
-67	ELOOK	Internal mapping for kOTLookErr, don't return to client
-77	ENOLCK	No locks available
-78	ENOSYS	Function not implemented
-88	EILSEQ	Wide character encoding error
-99	EUNKNOWN	Unknown error
diff --git a/Mac/scripts/genallsuites.py b/Mac/scripts/genallsuites.py
deleted file mode 100644
index a556847..0000000
--- a/Mac/scripts/genallsuites.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# Generate all the standard scripting suite packages.
-# Note that this module needs *serious* hand-crafting because of all the
-# absolute paths. It is, however, a great leap forward compared to the time
-# when this information was only stored in Jack's brain:-)
-
-import sys
-import os
-import gensuitemodule
-
-verbose=sys.stdout
-
-DSTDIR="/Users/jack/src/python/Lib/plat-mac/lib-scriptpackages"
-OS9DISK="/Volumes/Moes"
-
-APPLESCRIPT=OS9DISK + "/Systeemmap/Extensies/AppleScript"
-SYSTEMEVENTS="/System/Library/CoreServices/System Events.app"
-
-CODEWARRIOR=OS9DISK + "/Applications (Mac OS 9)/Metrowerks CodeWarrior 7.0/Metrowerks CodeWarrior/CodeWarrior IDE 4.2.6"
-EXPLORER="/Applications/Internet Explorer.app"
-FINDER="/System/Library/CoreServices/Finder.app"
-NETSCAPE=OS9DISK + "/Applications (Mac OS 9)/Netscape Communicator\xe2\x84\xa2 Folder/Netscape Communicator\xe2\x84\xa2"
-TERMINAL="/Applications/Utilities/Terminal.app"
-
-gensuitemodule.processfile_fromresource(APPLESCRIPT,
-        output=os.path.join(DSTDIR, 'StdSuites'),
-        basepkgname='_builtinSuites',
-        edit_modnames=[], verbose=verbose)
-gensuitemodule.processfile(SYSTEMEVENTS,
-        output=os.path.join(DSTDIR, 'SystemEvents'),
-        basepkgname='StdSuites',
-        edit_modnames=[('Disk_2d_Folder_2d_File_Suite', 'Disk_Folder_File_Suite')],
-        verbose=verbose)
-gensuitemodule.processfile(CODEWARRIOR,
-        output=os.path.join(DSTDIR, 'CodeWarrior'),
-        basepkgname='StdSuites',
-        edit_modnames=[], verbose=verbose)
-gensuitemodule.processfile(EXPLORER,
-        output=os.path.join(DSTDIR, 'Explorer'),
-        basepkgname='StdSuites',
-        edit_modnames=[], verbose=verbose)
-gensuitemodule.processfile(FINDER,
-        output=os.path.join(DSTDIR, 'Finder'),
-        basepkgname='StdSuites',
-        edit_modnames=[], verbose=verbose)
-gensuitemodule.processfile(NETSCAPE,
-        output=os.path.join(DSTDIR, 'Netscape'),
-        basepkgname='StdSuites',
-        edit_modnames=[('WorldWideWeb_suite_2c__as_d', 'WorldWideWeb_suite')], verbose=verbose)
-gensuitemodule.processfile(TERMINAL,
-        output=os.path.join(DSTDIR, 'Terminal'),
-        basepkgname='StdSuites',
-        edit_modnames=[], verbose=verbose)
diff --git a/Mac/scripts/mkestrres-errno.h b/Mac/scripts/mkestrres-errno.h
deleted file mode 100644
index 702901b..0000000
--- a/Mac/scripts/mkestrres-errno.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/* These are defined in MSL errno.h, but unfortunately not documented */
-#define EFPOS		35		/* File positioning error */
-#define	ESIGPARM	36		/* Signal argument error */
-#define	ENOMEM		37		/* Cannot allocate memory */
-#define	EACCES		38		/* Permission denied */
-#define	ENOENT		39		/* No such file or directory */
-#define	ENOSYS		40		/* Function not implemented */
diff --git a/Mac/scripts/mkestrres-macerrors.h b/Mac/scripts/mkestrres-macerrors.h
deleted file mode 100755
index 26c583d..0000000
--- a/Mac/scripts/mkestrres-macerrors.h
+++ /dev/null
@@ -1,13 +0,0 @@
- /* Errors from InternetConfig.h */
-  icPrefNotFoundErr             = -666, /* Internet preference not found */
-  icPermErr                     = -667, /* cannot set preference  */
-  icPrefDataErr                 = -668, /* problem with preference data  */
-  icInternalErr                 = -669, /* Internet Config internal error  */
-  icTruncatedErr                = -670, /* more data was present than was returned  */
-  icNoMoreWritersErr            = -671, /* you cannot begin a write session because someone else is already doing it  */
-  icNothingToOverrideErr        = -672, /* no component for the override component to capture  */
-  icNoURLErr                    = -673, /* no URL found  */
-  icConfigNotFoundErr           = -674, /* no internet configuration was found  */
-  icConfigInappropriateErr      = -675, /* incorrect manufacturer code  */
-  icProfileNotFoundErr          = -676, /* profile not found  */
-  icTooManyProfilesErr          = -677  /* too many profiles in database  */
diff --git a/Mac/scripts/mkestrres.py b/Mac/scripts/mkestrres.py
deleted file mode 100644
index 93af56e..0000000
--- a/Mac/scripts/mkestrres.py
+++ /dev/null
@@ -1,157 +0,0 @@
-"""Parse sys/errno.h and Errors.h and create Estr resource"""
-
-import re
-import string
-from Carbon import Res
-import os
-
-READ = 1
-WRITE = 2
-smAllScripts = -3
-
-ERRNO_PROG="#define[ \t]+" \
-                   "([A-Z0-9a-z_]+)" \
-                   "[ \t]+" \
-                   "([0-9]+)" \
-                   "[ \t]*/\*[ \t]*" \
-                   "(.*)" \
-                   "[ \t]*\*/"
-
-ERRORS_PROG="[ \t]*" \
-                        "([A-Z0-9a-z_]+)" \
-                        "[ \t]*=[ \t]*" \
-                        "([-0-9]+)" \
-                        "[, \t]*/\*[ \t]*" \
-                        "(.*)" \
-                        "[ \t]*\*/"
-
-ERRORS_PROG_2="[ \t]*" \
-                        "([A-Z0-9a-z_]+)" \
-                        "[ \t]*=[ \t]*" \
-                        "([-0-9]+)" \
-                        "[, \t]*"
-
-def Pstring(str):
-    if len(str) > 255:
-        raise ValueError('String too large')
-    return chr(len(str))+str
-
-def writeestr(dst, edict):
-    """Create Estr resource file given a dictionary of errors."""
-
-    os.unlink(dst.as_pathname())
-    Res.FSpCreateResFile(dst, 'RSED', 'rsrc', smAllScripts)
-    output = Res.FSpOpenResFile(dst, WRITE)
-    Res.UseResFile(output)
-    for num in edict.keys():
-        res = Res.Resource(Pstring(edict[num][0]))
-        res.AddResource('Estr', num, '')
-        res.WriteResource()
-    Res.CloseResFile(output)
-
-def writepython(fp, dict):
-    k = dict.keys()
-    k.sort()
-    for i in k:
-        fp.write("%s\t=\t%d\t#%s\n"%(dict[i][1], i, dict[i][0]))
-
-
-def parse_errno_h(fp, dict):
-    errno_prog = re.compile(ERRNO_PROG)
-    for line in fp.readlines():
-        m = errno_prog.match(line)
-        if m:
-            number = string.atoi(m.group(2))
-            name = m.group(1)
-            desc = string.strip(m.group(3))
-
-            if not dict.has_key(number):
-                dict[number] = desc, name
-            else:
-                print('DUPLICATE', number)
-                print('\t', dict[number])
-                print('\t', (desc, name))
-
-def parse_errors_h(fp, dict):
-    errno_prog = re.compile(ERRORS_PROG)
-    errno_prog_2 = re.compile(ERRORS_PROG_2)
-    for line in fp.readlines():
-        match = 0
-        m = errno_prog.match(line)
-        m2 = errno_prog_2.match(line)
-        if m:
-            number = string.atoi(m.group(2))
-            name = m.group(1)
-            desc = string.strip(m.group(3))
-            match=1
-        elif m2:
-            number = string.atoi(m2.group(2))
-            name = m2.group(1)
-            desc = name
-            match=1
-        if match:
-            if number > 0: continue
-
-            if not dict.has_key(number):
-                dict[number] = desc, name
-            else:
-                print('DUPLICATE', number)
-                print('\t', dict[number])
-                print('\t', (desc, name))
-                if len(desc) > len(dict[number][0]):
-                    print('Pick second one')
-                    dict[number] = desc, name
-
-def main():
-    dict = {}
-    pathname = EasyDialogs.AskFileForOpen(message="Where is GUSI sys/errno.h?")
-    if pathname:
-        fp = open(pathname)
-        parse_errno_h(fp, dict)
-        fp.close()
-
-    pathname = EasyDialogs.AskFileForOpen(message="Select cerrno (MSL) or cancel")
-    if pathname:
-        fp = open(pathname)
-        parse_errno_h(fp, dict)
-        fp.close()
-
-    pathname = EasyDialogs.AskFileForOpen(message="Where is MacErrors.h?")
-    if pathname:
-        fp = open(pathname)
-        parse_errors_h(fp, dict)
-        fp.close()
-
-    pathname = EasyDialogs.AskFileForOpen(message="Where is mkestrres-MacErrors.h?")
-    if pathname:
-        fp = open(pathname)
-        parse_errors_h(fp, dict)
-        fp.close()
-
-    if not dict:
-        return
-
-    pathname = EasyDialogs.AskFileForSave(message="Resource output file?", savedFileName="errors.rsrc")
-    if pathname:
-        writeestr(fss, dict)
-
-    pathname = EasyDialogs.AskFileForSave(message="Python output file?", savedFileName="macerrors.py")
-    if pathname:
-        fp = open(pathname, "w")
-        writepython(fp, dict)
-        fp.close()
-        fss.SetCreatorType('Pyth', 'TEXT')
-
-    pathname = EasyDialogs.AskFileForSave(message="Text output file?", savedFileName="errors.txt")
-    if pathname:
-        fp = open(pathname, "w")
-
-        k = dict.keys()
-        k.sort()
-        for i in k:
-            fp.write("%d\t%s\t%s\n"%(i, dict[i][1], dict[i][0]))
-        fp.close()
-
-
-if __name__ == '__main__':
-    main()
diff --git a/Tools/bgen/README b/Tools/bgen/README
deleted file mode 100644
index 70700c6..0000000
--- a/Tools/bgen/README
+++ /dev/null
@@ -1,7 +0,0 @@
-BGEN -- Automatic Generation of Extension Modules
-=================================================
-
-This directory contains BGEN -- a package that helps in generating
-complete source code for Python extension module.  For examples of its
-use, see the Mac Python source distribution (available separately
-from the Python ftp archives).  Note that BGEN is not Mac specific!
diff --git a/Tools/bgen/bgen/bgen.py b/Tools/bgen/bgen/bgen.py
deleted file mode 100644
index db28b0a..0000000
--- a/Tools/bgen/bgen/bgen.py
+++ /dev/null
@@ -1,12 +0,0 @@
-"Export everything in the various bgen submodules."
-
-from bgenType import *
-from bgenVariable import *
-from bgenBuffer import *
-from bgenStackBuffer import *
-from bgenHeapBuffer import *
-from bgenStringBuffer import *
-from bgenOutput import *
-from bgenGenerator import *
-from bgenModule import *
-from bgenObjectDefinition import *
diff --git a/Tools/bgen/bgen/bgenBuffer.py b/Tools/bgen/bgen/bgenBuffer.py
deleted file mode 100644
index 98bbfe2..0000000
--- a/Tools/bgen/bgen/bgenBuffer.py
+++ /dev/null
@@ -1,301 +0,0 @@
-"""Buffers are character arrays that may contain null bytes.
-
-There are a number of variants depending on:
-- how the buffer is allocated (for output buffers), and
-- whether and how the size is passed into and/or out of the called function.
-"""
-
-
-from bgenType import Type, InputOnlyMixIn, OutputOnlyMixIn, InputOnlyType, OutputOnlyType
-from bgenOutput import *
-
-
-# Map common types to their format characters
-type2format = {
-    'long': 'l',
-    'int': 'i',
-    'short': 'h',
-    'char': 'b',
-    'unsigned long': 'l',
-    'unsigned int': 'i',
-    'unsigned short': 'h',
-    'unsigned char': 'b',
-}
-
-
-# ----- PART 1: Fixed character buffers -----
-
-
-class FixedInputOutputBufferType(InputOnlyType):
-
-    """Fixed buffer -- passed as (inbuffer, outbuffer)."""
-
-    def __init__(self, size, datatype = 'char', sizetype = 'int', sizeformat = None):
-        self.typeName = "Buffer"
-        self.size = str(size)
-        self.datatype = datatype
-        self.sizetype = sizetype
-        self.sizeformat = sizeformat or type2format[sizetype]
-        self.label_needed = 0
-
-    def getArgDeclarations(self, name, reference=False, constmode=False, outmode=False):
-        if reference:
-            raise RuntimeError("Cannot pass buffer types by reference")
-        return (self.getBufferDeclarations(name, constmode, outmode) +
-                self.getSizeDeclarations(name, outmode))
-
-    def getBufferDeclarations(self, name, constmode=False, outmode=False):
-        return self.getInputBufferDeclarations(name, constmode) + \
-                self.getOutputBufferDeclarations(name, constmode, outmode)
-
-    def getInputBufferDeclarations(self, name, constmode=False):
-        if constmode:
-            const = "const "
-        else:
-            const = ""
-        return ["%s%s *%s__in__" % (const, self.datatype, name)]
-
-    def getOutputBufferDeclarations(self, name, constmode=False, outmode=False):
-        if constmode:
-            raise RuntimeError("Cannot use const output buffer")
-        if outmode:
-            out = "*"
-        else:
-            out = ""
-        return ["%s%s %s__out__[%s]" % (self.datatype, out, name, self.size)]
-
-    def getSizeDeclarations(self, name, outmode=False):
-        if outmode:
-            out = "*"
-        else:
-            out = ""
-        return ["%s%s %s__len__" %(self.sizetype, out, name)]
-
-    def getAuxDeclarations(self, name):
-        return ["int %s__in_len__" %(name)]
-
-    def getargsFormat(self):
-        return "s#"
-
-    def getargsArgs(self, name):
-        return "&%s__in__, &%s__in_len__" % (name, name)
-
-    def getargsCheck(self, name):
-        Output("if (%s__in_len__ != %s)", name, self.size)
-        OutLbrace()
-        Output('PyErr_SetString(PyExc_TypeError, "buffer length should be %s");',
-               self.size)
-        Output("goto %s__error__;", name)
-        self.label_needed = 1
-        OutRbrace()
-        self.transferSize(name)
-
-    def transferSize(self, name):
-        Output("%s__len__ = %s__in_len__;", name, name)
-
-    def passOutput(self, name):
-        return "%s__in__, %s__out__" % (name, name)
-
-    def mkvalueFormat(self):
-        return "s#"
-
-    def mkvalueArgs(self, name):
-        return "%s__out__, (int)%s" % (name, self.size)
-
-    def cleanup(self, name):
-        if self.label_needed:
-            DedentLevel()
-            Output(" %s__error__: ;", name)
-            IndentLevel()
-
-
-class FixedCombinedInputOutputBufferType(FixedInputOutputBufferType):
-
-    """Like fixed buffer -- but same parameter is input and output."""
-
-    def passOutput(self, name):
-        return "(%s *)memcpy(%s__out__, %s__in__, %s)" % \
-            (self.datatype, name,   name,     self.size)
-
-
-class InputOnlyBufferMixIn(InputOnlyMixIn):
-
-    def getOutputBufferDeclarations(self, name, constmode=False, outmode=False):
-        return []
-
-
-class OutputOnlyBufferMixIn(OutputOnlyMixIn):
-
-    def getInputBufferDeclarations(self, name, constmode=False):
-        return []
-
-class OptionalInputBufferMixIn:
-
-    """Add to input buffers if the buffer may be omitted: pass None in Python
-    and the C code will get a NULL pointer and zero size"""
-
-    def getargsFormat(self):
-        return "z#"
-
-
-class FixedInputBufferType(InputOnlyBufferMixIn, FixedInputOutputBufferType):
-
-    """Fixed size input buffer -- passed without size information.
-
-    Instantiate with the size as parameter.
-    """
-
-    def passInput(self, name):
-        return "%s__in__" % name
-
-class OptionalFixedInputBufferType(OptionalInputBufferMixIn, FixedInputBufferType):
-    pass
-
-class FixedOutputBufferType(OutputOnlyBufferMixIn, FixedInputOutputBufferType):
-
-    """Fixed size output buffer -- passed without size information.
-
-    Instantiate with the size as parameter.
-    """
-
-    def passOutput(self, name):
-        return "%s__out__" % name
-
-
-class VarInputBufferType(FixedInputBufferType):
-
-    """Variable size input buffer -- passed as (buffer, size).
-
-    Instantiate without size parameter.
-    """
-
-    def __init__(self, datatype = 'char', sizetype = 'int', sizeformat = None):
-        FixedInputBufferType.__init__(self, "0", datatype, sizetype, sizeformat)
-
-    def getargsCheck(self, name):
-        Output("%s__len__ = %s__in_len__;", name, name)
-
-    def passInput(self, name):
-        return "%s__in__, %s__len__" % (name, name)
-
-class ReverseInputBufferMixin:
-    """ Mixin for input buffers that are passed as (size, buffer) """
-
-    def passInput(self, name):
-        return "%s__len__, %s__in__" % (name, name)
-
-class OptionalVarInputBufferType(OptionalInputBufferMixIn, VarInputBufferType):
-    pass
-
-# ----- PART 2: Structure buffers -----
-
-
-class StructInputOutputBufferType(FixedInputOutputBufferType):
-
-    """Structure buffer -- passed as a structure pointer.
-
-    Instantiate with the struct type as parameter.
-    """
-
-    def __init__(self, type):
-        FixedInputOutputBufferType.__init__(self, "sizeof(%s)" % type)
-        self.typeName = self.type = type
-
-    def getInputBufferDeclarations(self, name, constmode=False):
-        if constmode:
-            const = "const "
-        else:
-            const = ""
-        return ["%s%s *%s__in__" % (const, self.type, name)]
-
-    def getSizeDeclarations(self, name, outmode=False):
-        return []
-
-    def getAuxDeclarations(self, name):
-        return ["int %s__in_len__" % (name)]
-
-    def getOutputBufferDeclarations(self, name, constmode=False, outmode=False):
-        if constmode:
-            raise RuntimeError("Cannot use const output buffer")
-        if outmode:
-            out = "*"
-        else:
-            out = ""
-        return ["%s%s %s__out__" % (self.type, out, name)]
-
-    def getargsArgs(self, name):
-        return "(char **)&%s__in__, &%s__in_len__" % (name, name)
-
-    def transferSize(self, name):
-        pass
-
-    def passInput(self, name):
-        return "%s__in__" % name
-
-    def passOutput(self, name):
-        return "%s__in__, &%s__out__" % (name, name)
-
-    def mkvalueArgs(self, name):
-        return "(char *)&%s__out__, (int)%s" % (name, self.size)
-
-
-class StructCombinedInputOutputBufferType(StructInputOutputBufferType):
-
-    """Like structure buffer -- but same parameter is input and output."""
-
-    def passOutput(self, name):
-        return "(%s *)memcpy((char *)%s__out__, (char *)%s__in__, %s)" % \
-            (self.type,          name,              name,     self.size)
-
-
-class StructInputBufferType(InputOnlyBufferMixIn, StructInputOutputBufferType):
-
-    """Fixed size input buffer -- passed as a pointer to a structure.
-
-    Instantiate with the struct type as parameter.
-    """
-
-
-class StructByValueBufferType(StructInputBufferType):
-
-    """Fixed size input buffer -- passed as a structure BY VALUE.
-
-    Instantiate with the struct type as parameter.
-    """
-
-    def passInput(self, name):
-        return "*%s__in__" % name
-
-
-class StructOutputBufferType(OutputOnlyBufferMixIn, StructInputOutputBufferType):
-
-    """Fixed size output buffer -- passed as a pointer to a structure.
-
-    Instantiate with the struct type as parameter.
-    """
-
-    def getSizeDeclarations(self, name, outmode=False):
-        return []
-
-    def getAuxDeclarations(self, name):
-        return []
-
-    def passOutput(self, name):
-        return "&%s__out__" % name
-
-
-class ArrayOutputBufferType(OutputOnlyBufferMixIn, StructInputOutputBufferType):
-
-    """Fixed size output buffer -- declared as a typedef, passed as an array.
-
-    Instantiate with the struct type as parameter.
-    """
-
-    def getSizeDeclarations(self, name, outmode=False):
-        return []
-
-    def getAuxDeclarations(self, name):
-        return []
-
-    def passOutput(self, name):
-        return "%s__out__" % name
diff --git a/Tools/bgen/bgen/bgenGenerator.py b/Tools/bgen/bgen/bgenGenerator.py
deleted file mode 100644
index bf00516..0000000
--- a/Tools/bgen/bgen/bgenGenerator.py
+++ /dev/null
@@ -1,302 +0,0 @@
-from bgenOutput import *
-from bgenType import *
-from bgenVariable import *
-
-
-Error = "bgenGenerator.Error"
-
-DEBUG=0
-
-# Strings to specify argument transfer modes in generator calls
-IN = "in"
-OUT = "out"
-INOUT = IN_OUT = "in-out"
-
-
-class BaseFunctionGenerator:
-
-    def __init__(self, name, condition=None, callname=None, modifiers=None):
-        if DEBUG: print("<--", name)
-        self.name = name
-        if callname:
-            self.callname = callname
-        else:
-            self.callname = name
-        self.prefix = name
-        self.objecttype = "PyObject" # Type of _self argument to function
-        self.condition = condition
-        self.modifiers = modifiers
-
-    def setprefix(self, prefix):
-        self.prefix = prefix
-
-    def checkgenerate(self):
-        return True
-
-    def generate(self):
-        if not self.checkgenerate():
-            return
-        if DEBUG: print("-->", self.name)
-        if self.condition:
-            Output()
-            Output(self.condition)
-        self.functionheader()
-        self.functionbody()
-        self.functiontrailer()
-        if self.condition:
-            Output("#endif")
-
-    def functionheader(self):
-        Output()
-        Output("static PyObject *%s_%s(%s *_self, PyObject *_args)",
-               self.prefix, self.name, self.objecttype)
-        OutLbrace()
-        Output("PyObject *_res = NULL;")
-
-    def functionbody(self):
-        Output("/* XXX To be provided */")
-
-    def functiontrailer(self):
-        OutRbrace()
-
-    def reference(self, name = None):
-        if not self.checkgenerate():
-            return
-        if name is None:
-            name = self.name
-        docstring = self.docstring()
-        if self.condition:
-            Output()
-            Output(self.condition)
-        Output("{\"%s\", (PyCFunction)%s_%s, METH_VARARGS,", name, self.prefix, self.name)
-        Output(" PyDoc_STR(%s)},", stringify(docstring))
-        if self.condition:
-            Output("#endif")
-
-    def docstring(self):
-        return None
-
-    def __cmp__(self, other):
-        if not hasattr(other, 'name'):
-            return cmp(id(self), id(other))
-        return cmp(self.name, other.name)
-
-_stringify_map = {'\n': '\\n', '\t': '\\t', '\r': '\\r', '\b': '\\b',
-                  '\e': '\\e', '\a': '\\a', '\f': '\\f', '"': '\\"'}
-def stringify(str):
-    if str is None: return "NULL"
-    res = '"'
-    map = _stringify_map
-    for c in str:
-        if c in map: res = res + map[c]
-        elif ' ' <= c <= '~': res = res + c
-        else: res = res + '\\%03o' % ord(c)
-    res = res + '"'
-    return res
-
-
-class ManualGenerator(BaseFunctionGenerator):
-
-    def __init__(self, name, body, condition=None):
-        BaseFunctionGenerator.__init__(self, name, condition=condition)
-        self.body = body
-
-    def functionbody(self):
-        Output("%s", self.body)
-
-    def setselftype(self, selftype, itselftype):
-        self.objecttype = selftype
-        self.itselftype = itselftype
-
-
-class FunctionGenerator(BaseFunctionGenerator):
-
-    def __init__(self, returntype, name, *argumentList, **conditionlist):
-        BaseFunctionGenerator.__init__(self, name, **conditionlist)
-        self.returntype = returntype
-        self.argumentList = []
-        self.setreturnvar()
-        self.parseArgumentList(argumentList)
-        self.prefix     = "XXX"    # Will be changed by setprefix() call
-        self.itselftype = None     # Type of _self->ob_itself, if defined
-
-    def setreturnvar(self):
-        if self.returntype:
-            self.rv = self.makereturnvar()
-            self.argumentList.append(self.rv)
-        else:
-            self.rv = None
-
-    def makereturnvar(self):
-        return Variable(self.returntype, "_rv", OutMode)
-
-    def setselftype(self, selftype, itselftype):
-        self.objecttype = selftype
-        self.itselftype = itselftype
-
-    def parseArgumentList(self, argumentList):
-        iarg = 0
-        for type, name, mode in argumentList:
-            iarg = iarg + 1
-            if name is None: name = "_arg%d" % iarg
-            arg = Variable(type, name, mode)
-            self.argumentList.append(arg)
-
-    def docstring(self):
-        input = []
-        output = []
-        for arg in self.argumentList:
-            if arg.flags == ErrorMode or arg.flags == SelfMode:
-                continue
-            if arg.type is None:
-                str = 'void'
-            else:
-                if hasattr(arg.type, 'typeName'):
-                    typeName = arg.type.typeName
-                    if typeName is None: # Suppressed type
-                        continue
-                else:
-                    typeName = "?"
-                    print("Nameless type", arg.type)
-
-                str = typeName + ' ' + arg.name
-            if arg.mode in (InMode, InOutMode):
-                input.append(str)
-            if arg.mode in (InOutMode, OutMode):
-                output.append(str)
-        if not input:
-            instr = "()"
-        else:
-            instr = "(%s)" % ", ".join(input)
-        if not output or output == ["void"]:
-            outstr = "None"
-        else:
-            outstr = "(%s)" % ", ".join(output)
-        return instr + " -> " + outstr
-
-    def functionbody(self):
-        self.declarations()
-        self.precheck()
-        self.getargs()
-        self.callit()
-        self.checkit()
-        self.returnvalue()
-
-    def declarations(self):
-        for arg in self.argumentList:
-            arg.declare()
-
-    def getargs(self):
-        sep = ",\n" + ' '*len("if (!PyArg_ParseTuple(")
-        fmt, lst = self.getargsFormatArgs(sep)
-        Output("if (!PyArg_ParseTuple(_args, \"%s\"%s))", fmt, lst)
-        IndentLevel()
-        Output("return NULL;")
-        DedentLevel()
-        for arg in self.argumentList:
-            if arg.flags == SelfMode:
-                continue
-            if arg.mode in (InMode, InOutMode):
-                arg.getargsCheck()
-
-    def getargsFormatArgs(self, sep):
-        fmt = ""
-        lst = ""
-        for arg in self.argumentList:
-            if arg.flags == SelfMode:
-                continue
-            if arg.mode in (InMode, InOutMode):
-                arg.getargsPreCheck()
-                fmt = fmt + arg.getargsFormat()
-                args = arg.getargsArgs()
-                if args:
-                    lst = lst + sep + args
-        return fmt, lst
-
-    def precheck(self):
-        pass
-
-    def beginallowthreads(self):
-        pass
-
-    def endallowthreads(self):
-        pass
-
-    def callit(self):
-        args = ""
-        s = "%s%s(" % (self.getrvforcallit(), self.callname)
-        sep = ",\n" + ' '*len(s)
-        for arg in self.argumentList:
-            if arg is self.rv:
-                continue
-            s = arg.passArgument()
-            if args: s = sep + s
-            args = args + s
-        self.beginallowthreads()
-        Output("%s%s(%s);",
-               self.getrvforcallit(), self.callname, args)
-        self.endallowthreads()
-
-    def getrvforcallit(self):
-        if self.rv:
-            return "%s = " % self.rv.name
-        else:
-            return ""
-
-    def checkit(self):
-        for arg in self.argumentList:
-            arg.errorCheck()
-
-    def returnvalue(self):
-        sep = ",\n" + ' '*len("return Py_BuildValue(")
-        fmt, lst = self.mkvalueFormatArgs(sep)
-        if fmt == "":
-            Output("Py_INCREF(Py_None);")
-            Output("_res = Py_None;");
-        else:
-            Output("_res = Py_BuildValue(\"%s\"%s);", fmt, lst)
-        tmp = self.argumentList[:]
-        tmp.reverse()
-        for arg in tmp:
-            if not arg: continue
-            arg.cleanup()
-        Output("return _res;")
-
-    def mkvalueFormatArgs(self, sep):
-        fmt = ""
-        lst = ""
-        for arg in self.argumentList:
-            if not arg: continue
-            if arg.flags == ErrorMode: continue
-            if arg.mode in (OutMode, InOutMode):
-                arg.mkvaluePreCheck()
-                fmt = fmt + arg.mkvalueFormat()
-                lst = lst + sep + arg.mkvalueArgs()
-        return fmt, lst
-
-class MethodGenerator(FunctionGenerator):
-
-    def parseArgumentList(self, args):
-        a0, args = args[0], args[1:]
-        t0, n0, m0 = a0
-        if m0 != InMode:
-            raise ValueError("method's 'self' must be 'InMode'")
-        self.itself = Variable(t0, "_self->ob_itself", SelfMode)
-        self.argumentList.append(self.itself)
-        FunctionGenerator.parseArgumentList(self, args)
-
-def _test():
-    void = None
-    eggs = FunctionGenerator(void, "eggs",
-                 (stringptr, 'cmd', InMode),
-                 (int, 'x', InMode),
-                 (double, 'y', InOutMode),
-                 (int, 'status', ErrorMode),
-                 )
-    eggs.setprefix("spam")
-    print("/* START */")
-    eggs.generate()
-
-
-if __name__ == "__main__":
-    _test()
diff --git a/Tools/bgen/bgen/bgenGeneratorGroup.py b/Tools/bgen/bgen/bgenGeneratorGroup.py
deleted file mode 100644
index fd0a2c2..0000000
--- a/Tools/bgen/bgen/bgenGeneratorGroup.py
+++ /dev/null
@@ -1,40 +0,0 @@
-from bgenOutput import *
-
-class GeneratorGroup:
-
-    def __init__(self, prefix):
-        self.prefix = prefix
-        self.generators = []
-
-    def add(self, g, dupcheck=0):
-        if dupcheck:
-            if g in self.generators:
-                print('DUP', g.name)
-                return
-        g.setprefix(self.prefix)
-        self.generators.append(g)
-
-    def generate(self):
-        for g in self.generators:
-            g.generate()
-        Output()
-        Output("static PyMethodDef %s_methods[] = {", self.prefix)
-        IndentLevel()
-        for g in self.generators:
-            g.reference()
-        Output("{NULL, NULL, 0}")
-        DedentLevel()
-        Output("};")
-
-
-def _test():
-    void = None
-    from bgenGenerator import FunctionGenerator
-    group = GeneratorGroup("spam")
-    eggs = FunctionGenerator(void, "eggs")
-    group.add(eggs)
-    print("/* START */")
-    group.generate()
-
-if __name__ == "__main__":
-    _test()
diff --git a/Tools/bgen/bgen/bgenHeapBuffer.py b/Tools/bgen/bgen/bgenHeapBuffer.py
deleted file mode 100644
index fda8d30..0000000
--- a/Tools/bgen/bgen/bgenHeapBuffer.py
+++ /dev/null
@@ -1,145 +0,0 @@
-# Buffers allocated on the heap
-
-from bgenOutput import *
-from bgenType import OutputOnlyMixIn
-from bgenBuffer import FixedInputOutputBufferType
-
-
-class HeapInputOutputBufferType(FixedInputOutputBufferType):
-
-    """Input-output buffer allocated on the heap -- passed as (inbuffer, outbuffer, size).
-
-    Instantiate without parameters.
-    Call from Python with input buffer.
-    """
-
-    def __init__(self, datatype = 'char', sizetype = 'int', sizeformat = None):
-        FixedInputOutputBufferType.__init__(self, "0", datatype, sizetype, sizeformat)
-
-    def getOutputBufferDeclarations(self, name, constmode=False, outmode=False):
-        if constmode:
-            raise RuntimeError("Cannot use const output buffer")
-        if outmode:
-            out = "*"
-        else:
-            out = ""
-        return ["%s%s *%s__out__" % (self.datatype, out, name)]
-
-    def getargsCheck(self, name):
-        Output("if ((%s__out__ = malloc(%s__in_len__)) == NULL)", name, name)
-        OutLbrace()
-        Output('PyErr_NoMemory();')
-        Output("goto %s__error__;", name)
-        self.label_needed = 1
-        OutRbrace()
-        Output("%s__len__ = %s__in_len__;", name, name)
-
-    def passOutput(self, name):
-        return "%s__in__, %s__out__, (%s)%s__len__" % \
-            (name, name, self.sizetype, name)
-
-    def mkvalueArgs(self, name):
-        return "%s__out__, (int)%s__len__" % (name, name)
-
-    def cleanup(self, name):
-        Output("free(%s__out__);", name)
-        FixedInputOutputBufferType.cleanup(self, name)
-
-
-class VarHeapInputOutputBufferType(HeapInputOutputBufferType):
-
-    """same as base class, but passed as (inbuffer, outbuffer, &size)"""
-
-    def passOutput(self, name):
-        return "%s__in__, %s__out__, &%s__len__" % (name, name, name)
-
-
-class HeapCombinedInputOutputBufferType(HeapInputOutputBufferType):
-
-    """same as base class, but passed as (inoutbuffer, size)"""
-
-    def passOutput(self, name):
-        return "(%s *)memcpy(%s__out__, %s__in__, %s__len__)" % \
-            (self.datatype, name,   name,     name)
-
-
-class VarHeapCombinedInputOutputBufferType(HeapInputOutputBufferType):
-
-    """same as base class, but passed as (inoutbuffer, &size)"""
-
-    def passOutput(self, name):
-        return "(%s *)memcpy(%s__out__, %s__in__, &%s__len__)" % \
-            (self.datatype, name,   name,      name)
-
-
-class HeapOutputBufferType(OutputOnlyMixIn, HeapInputOutputBufferType):
-
-    """Output buffer allocated on the heap -- passed as (buffer, size).
-
-    Instantiate without parameters.
-    Call from Python with buffer size.
-    """
-
-    def getInputBufferDeclarations(self, name, constmode=False):
-        return []
-
-    def getargsFormat(self):
-        return "i"
-
-    def getargsArgs(self, name):
-        return "&%s__in_len__" % name
-
-    def passOutput(self, name):
-        return "%s__out__, %s__len__" % (name, name)
-
-
-class VarHeapOutputBufferType(HeapOutputBufferType):
-
-    """Output buffer allocated on the heap -- passed as (buffer, &size).
-
-    Instantiate without parameters.
-    Call from Python with buffer size.
-    """
-
-    def passOutput(self, name):
-        return "%s__out__, &%s__len__" % (name, name)
-
-
-class VarVarHeapOutputBufferType(VarHeapOutputBufferType):
-
-    """Output buffer allocated on the heap -- passed as (buffer, size, &size).
-
-    Instantiate without parameters.
-    Call from Python with buffer size.
-    """
-
-    def passOutput(self, name):
-        return "%s__out__, %s__len__, &%s__len__" % (name, name, name)
-
-class MallocHeapOutputBufferType(HeapOutputBufferType):
-    """Output buffer allocated by the called function -- passed as (&buffer, &size).
-
-    Instantiate without parameters.
-    Call from Python without parameters.
-    """
-
-    def getargsCheck(self, name):
-        Output("%s__out__ = NULL;", name)
-
-    def getAuxDeclarations(self, name):
-        return []
-
-    def passOutput(self, name):
-        return "&%s__out__, &%s__len__" % (name, name)
-
-    def getargsFormat(self):
-        return ""
-
-    def getargsArgs(self, name):
-        return None
-
-    def mkvalueFormat(self):
-        return "z#"
-
-    def cleanup(self, name):
-        Output("if( %s__out__ ) free(%s__out__);", name, name)
diff --git a/Tools/bgen/bgen/bgenModule.py b/Tools/bgen/bgen/bgenModule.py
deleted file mode 100644
index d41aa05..0000000
--- a/Tools/bgen/bgen/bgenModule.py
+++ /dev/null
@@ -1,94 +0,0 @@
-from bgenOutput import *
-from bgenGeneratorGroup import GeneratorGroup
-
-class Module(GeneratorGroup):
-
-    def __init__(self, name, prefix = None,
-             includestuff = None,
-             finalstuff = None,
-             initstuff = None,
-             variablestuff = None,
-             longname = None):
-        GeneratorGroup.__init__(self, prefix or name)
-        self.name = name
-        if longname:
-            self.longname = longname
-        else:
-            self.longname = name
-        self.includestuff = includestuff
-        self.initstuff = initstuff
-        self.finalstuff = finalstuff
-        self.variablestuff = variablestuff
-        self.typeobjects = []
-
-    def addobject(self, od):
-        self.generators.append(od)
-        self.typeobjects.append(od)
-        od.setmodulename(self.longname)
-
-    def generate(self):
-        OutHeader1("Module " + self.name)
-        Output("#include \"Python.h\"")
-        Output()
-
-        if self.includestuff:
-            Output()
-            Output("%s", self.includestuff)
-
-        self.declareModuleVariables()
-
-        GeneratorGroup.generate(self)
-
-        if self.finalstuff:
-            Output()
-            Output("%s", self.finalstuff)
-
-        Output()
-        Output("void init%s(void)", self.name)
-        OutLbrace()
-        Output("PyObject *m;")
-        Output("PyObject *d;")
-        Output()
-
-        if self.initstuff:
-            Output("%s", self.initstuff)
-            Output()
-
-        Output("m = Py_InitModule(\"%s\", %s_methods);",
-               self.name, self.prefix)
-        Output("d = PyModule_GetDict(m);")
-        self.createModuleVariables()
-        OutRbrace()
-        OutHeader1("End module " + self.name)
-
-    def declareModuleVariables(self):
-        self.errorname = self.prefix + "_Error"
-        Output("static PyObject *%s;", self.errorname)
-
-    def createModuleVariables(self):
-        Output("""%s = %s;""", self.errorname, self.exceptionInitializer())
-        Output("""if (%s == NULL ||""", self.errorname)
-        Output("""    PyDict_SetItemString(d, "Error", %s) != 0)""",
-                                                       self.errorname)
-        IndentLevel()
-        Output("""return;""")
-        DedentLevel()
-        for tp in self.typeobjects:
-            tp.outputTypeObjectInitializer()
-        if self.variablestuff:
-            Output("%s", self.variablestuff)
-            Output()
-
-    def exceptionInitializer(self):
-        return """PyErr_NewException("%s.Error", NULL, NULL)""" % self.name
-
-
-def _test():
-    from bgenGenerator import FunctionGenerator
-    m = Module("spam", "", "#include <stdio.h>")
-    g = FunctionGenerator(None, "bacon")
-    m.add(g)
-    m.generate()
-
-if __name__ == "__main__":
-    _test()
diff --git a/Tools/bgen/bgen/bgenObjectDefinition.py b/Tools/bgen/bgen/bgenObjectDefinition.py
deleted file mode 100644
index d926283..0000000
--- a/Tools/bgen/bgen/bgenObjectDefinition.py
+++ /dev/null
@@ -1,512 +0,0 @@
-from bgenOutput import *
-from bgenGeneratorGroup import GeneratorGroup
-
-class ObjectDefinition(GeneratorGroup):
-    "Spit out code that together defines a new Python object type"
-    basechain = "NULL"
-    tp_flags = "Py_TPFLAGS_DEFAULT"
-    basetype = None
-    argref = ""    # set to "*" if arg to <type>_New should be pointer
-    argconst = ""   # set to "const " if arg to <type>_New should be const
-
-    def __init__(self, name, prefix, itselftype):
-        """ObjectDefinition constructor.  May be extended, but do not override.
-
-        - name: the object's official name, e.g. 'SndChannel'.
-        - prefix: the prefix used for the object's functions and data, e.g. 'SndCh'.
-        - itselftype: the C type actually contained in the object, e.g. 'SndChannelPtr'.
-
-        XXX For official Python data types, rules for the 'Py' prefix are a problem.
-        """
-
-        GeneratorGroup.__init__(self, prefix or name)
-        self.name = name
-        self.itselftype = itselftype
-        self.objecttype = name + 'Object'
-        self.typename = name + '_Type'
-        self.static = "static " # set to "" to make <type>_New and <type>_Convert public
-        self.modulename = None
-        if hasattr(self, "assertions"):
-            self.assertions()
-
-    def add(self, g, dupcheck=0):
-        g.setselftype(self.objecttype, self.itselftype)
-        GeneratorGroup.add(self, g, dupcheck)
-
-    def reference(self):
-        # In case we are referenced from a module
-        pass
-
-    def setmodulename(self, name):
-        self.modulename = name
-
-    def generate(self):
-        # XXX This should use long strings and %(varname)s substitution!
-
-        OutHeader2("Object type " + self.name)
-
-        self.outputCheck()
-
-        Output("typedef struct %s {", self.objecttype)
-        IndentLevel()
-        Output("PyObject_HEAD")
-        self.outputStructMembers()
-        DedentLevel()
-        Output("} %s;", self.objecttype)
-
-        self.outputNew()
-
-        self.outputConvert()
-
-        self.outputDealloc()
-
-        GeneratorGroup.generate(self)
-
-        Output()
-        self.outputMethodChain()
-
-        self.outputGetattr()
-
-        self.outputSetattr()
-
-        self.outputCompare()
-
-        self.outputRepr()
-
-        self.outputHash()
-
-        self.outputPEP253Hooks()
-
-        self.outputTypeObject()
-
-        OutHeader2("End object type " + self.name)
-
-    def outputCheck(self):
-        sf = self.static and "static "
-        Output("%sPyTypeObject %s;", sf, self.typename)
-        Output()
-        Output("#define %s_Check(x) ((x)->ob_type == &%s || PyObject_TypeCheck((x), &%s))",
-               self.prefix, self.typename, self.typename)
-        Output()
-
-    def outputMethodChain(self):
-        Output("%sPyMethodChain %s_chain = { %s_methods, %s };",
-                self.static,    self.prefix, self.prefix, self.basechain)
-
-    def outputStructMembers(self):
-        Output("%s ob_itself;", self.itselftype)
-
-    def outputNew(self):
-        Output()
-        Output("%sPyObject *%s_New(%s%s %sitself)", self.static, self.prefix,
-                self.argconst, self.itselftype, self.argref)
-        OutLbrace()
-        Output("%s *it;", self.objecttype)
-        self.outputCheckNewArg()
-        Output("it = PyObject_NEW(%s, &%s);", self.objecttype, self.typename)
-        Output("if (it == NULL) return NULL;")
-        if self.basetype:
-            Output("/* XXXX Should we tp_init or tp_new our basetype? */")
-        self.outputInitStructMembers()
-        Output("return (PyObject *)it;")
-        OutRbrace()
-
-    def outputInitStructMembers(self):
-        Output("it->ob_itself = %sitself;", self.argref)
-
-    def outputCheckNewArg(self):
-        "Override this method to apply additional checks/conversions"
-
-    def outputConvert(self):
-        Output()
-        Output("%sint %s_Convert(PyObject *v, %s *p_itself)", self.static, self.prefix,
-                self.itselftype)
-        OutLbrace()
-        self.outputCheckConvertArg()
-        Output("if (!%s_Check(v))", self.prefix)
-        OutLbrace()
-        Output('PyErr_SetString(PyExc_TypeError, "%s required");', self.name)
-        Output("return 0;")
-        OutRbrace()
-        Output("*p_itself = ((%s *)v)->ob_itself;", self.objecttype)
-        Output("return 1;")
-        OutRbrace()
-
-    def outputCheckConvertArg(self):
-        "Override this method to apply additional conversions"
-
-    def outputDealloc(self):
-        Output()
-        Output("static void %s_dealloc(%s *self)", self.prefix, self.objecttype)
-        OutLbrace()
-        self.outputCleanupStructMembers()
-        if self.basetype:
-            Output("%s.tp_dealloc((PyObject *)self);", self.basetype)
-        elif hasattr(self, 'output_tp_free'):
-            # This is a new-style object with tp_free slot
-            Output("self->ob_type->tp_free((PyObject *)self);")
-        else:
-            Output("PyObject_Free((PyObject *)self);")
-        OutRbrace()
-
-    def outputCleanupStructMembers(self):
-        self.outputFreeIt("self->ob_itself")
-
-    def outputFreeIt(self, name):
-        Output("/* Cleanup of %s goes here */", name)
-
-    def outputGetattr(self):
-        Output()
-        Output("static PyObject *%s_getattr(%s *self, char *name)", self.prefix, self.objecttype)
-        OutLbrace()
-        self.outputGetattrBody()
-        OutRbrace()
-
-    def outputGetattrBody(self):
-        self.outputGetattrHook()
-        Output("return Py_FindMethodInChain(&%s_chain, (PyObject *)self, name);",
-               self.prefix)
-
-    def outputGetattrHook(self):
-        pass
-
-    def outputSetattr(self):
-        Output()
-        Output("#define %s_setattr NULL", self.prefix)
-
-    def outputCompare(self):
-        Output()
-        Output("#define %s_compare NULL", self.prefix)
-
-    def outputRepr(self):
-        Output()
-        Output("#define %s_repr NULL", self.prefix)
-
-    def outputHash(self):
-        Output()
-        Output("#define %s_hash NULL", self.prefix)
-
-    def outputTypeObject(self):
-        sf = self.static and "static "
-        Output()
-        Output("%sPyTypeObject %s = {", sf, self.typename)
-        IndentLevel()
-        Output("PyObject_HEAD_INIT(NULL)")
-        Output("0, /*ob_size*/")
-        if self.modulename:
-            Output("\"%s.%s\", /*tp_name*/", self.modulename, self.name)
-        else:
-            Output("\"%s\", /*tp_name*/", self.name)
-        Output("sizeof(%s), /*tp_basicsize*/", self.objecttype)
-        Output("0, /*tp_itemsize*/")
-        Output("/* methods */")
-        Output("(destructor) %s_dealloc, /*tp_dealloc*/", self.prefix)
-        Output("0, /*tp_print*/")
-        Output("(getattrfunc) %s_getattr, /*tp_getattr*/", self.prefix)
-        Output("(setattrfunc) %s_setattr, /*tp_setattr*/", self.prefix)
-        Output("(cmpfunc) %s_compare, /*tp_compare*/", self.prefix)
-        Output("(reprfunc) %s_repr, /*tp_repr*/", self.prefix)
-        Output("(PyNumberMethods *)0, /* tp_as_number */")
-        Output("(PySequenceMethods *)0, /* tp_as_sequence */")
-        Output("(PyMappingMethods *)0, /* tp_as_mapping */")
-        Output("(hashfunc) %s_hash, /*tp_hash*/", self.prefix)
-        DedentLevel()
-        Output("};")
-
-    def outputTypeObjectInitializer(self):
-        Output("""%s.ob_type = &PyType_Type;""", self.typename)
-        if self.basetype:
-            Output("%s.tp_base = &%s;", self.typename, self.basetype)
-        Output("if (PyType_Ready(&%s) < 0) return;", self.typename)
-        Output("""Py_INCREF(&%s);""", self.typename)
-        Output("PyModule_AddObject(m, \"%s\", (PyObject *)&%s);", self.name, self.typename);
-        self.outputTypeObjectInitializerCompat()
-
-    def outputTypeObjectInitializerCompat(self):
-        Output("/* Backward-compatible name */")
-        Output("""Py_INCREF(&%s);""", self.typename);
-        Output("PyModule_AddObject(m, \"%sType\", (PyObject *)&%s);", self.name, self.typename);
-
-    def outputPEP253Hooks(self):
-        pass
-
-class PEP252Mixin:
-    getsetlist = []
-
-    def assertions(self):
-        # Check that various things aren't overridden. If they are it could
-        # signify a bgen-client that has been partially converted to PEP252.
-        assert self.outputGetattr.__func__ == PEP252Mixin.outputGetattr.__func__
-        assert self.outputSetattr.__func__ == PEP252Mixin.outputSetattr.__func__
-        assert self.outputGetattrBody == None
-        assert self.outputGetattrHook == None
-        assert self.basechain == "NULL"
-
-    def outputGetattr(self):
-        pass
-
-    outputGetattrBody = None
-
-    outputGetattrHook = None
-
-    def outputSetattr(self):
-        pass
-
-    def outputMethodChain(self):
-        # This is a good place to output the getters and setters
-        self.outputGetSetList()
-
-    def outputHook(self, name):
-        methodname = "outputHook_" + name
-        if hasattr(self, methodname):
-            func = getattr(self, methodname)
-            func()
-        else:
-            Output("0, /*%s*/", name)
-
-    def outputTypeObject(self):
-        sf = self.static and "static "
-        Output()
-        Output("%sPyTypeObject %s = {", sf, self.typename)
-        IndentLevel()
-        Output("PyObject_HEAD_INIT(NULL)")
-        Output("0, /*ob_size*/")
-        if self.modulename:
-            Output("\"%s.%s\", /*tp_name*/", self.modulename, self.name)
-        else:
-            Output("\"%s\", /*tp_name*/", self.name)
-        Output("sizeof(%s), /*tp_basicsize*/", self.objecttype)
-        Output("0, /*tp_itemsize*/")
-
-        Output("/* methods */")
-        Output("(destructor) %s_dealloc, /*tp_dealloc*/", self.prefix)
-        Output("0, /*tp_print*/")
-        Output("(getattrfunc)0, /*tp_getattr*/")
-        Output("(setattrfunc)0, /*tp_setattr*/")
-        Output("(cmpfunc) %s_compare, /*tp_compare*/", self.prefix)
-        Output("(reprfunc) %s_repr, /*tp_repr*/", self.prefix)
-
-        Output("(PyNumberMethods *)0, /* tp_as_number */")
-        Output("(PySequenceMethods *)0, /* tp_as_sequence */")
-        Output("(PyMappingMethods *)0, /* tp_as_mapping */")
-
-        Output("(hashfunc) %s_hash, /*tp_hash*/", self.prefix)
-        self.outputHook("tp_call")
-        Output("0, /*tp_str*/")
-        Output("PyObject_GenericGetAttr, /*tp_getattro*/")
-        Output("PyObject_GenericSetAttr, /*tp_setattro */")
-
-        self.outputHook("tp_as_buffer")
-        Output("%s, /* tp_flags */", self.tp_flags)
-        self.outputHook("tp_doc")
-        self.outputHook("tp_traverse")
-        self.outputHook("tp_clear")
-        self.outputHook("tp_richcompare")
-        self.outputHook("tp_weaklistoffset")
-        self.outputHook("tp_iter")
-        self.outputHook("tp_iternext")
-        Output("%s_methods, /* tp_methods */", self.prefix)
-        self.outputHook("tp_members")
-        Output("%s_getsetlist, /*tp_getset*/", self.prefix)
-        self.outputHook("tp_base")
-        self.outputHook("tp_dict")
-        self.outputHook("tp_descr_get")
-        self.outputHook("tp_descr_set")
-        self.outputHook("tp_dictoffset")
-        self.outputHook("tp_init")
-        self.outputHook("tp_alloc")
-        self.outputHook("tp_new")
-        self.outputHook("tp_free")
-        DedentLevel()
-        Output("};")
-
-    def outputGetSetList(self):
-        if self.getsetlist:
-            for name, get, set, doc in self.getsetlist:
-                if get:
-                    self.outputGetter(name, get)
-                else:
-                    Output("#define %s_get_%s NULL", self.prefix, name)
-                    Output()
-                if set:
-                    self.outputSetter(name, set)
-                else:
-                    Output("#define %s_set_%s NULL", self.prefix, name)
-                    Output()
-
-            Output("static PyGetSetDef %s_getsetlist[] = {", self.prefix)
-            IndentLevel()
-            for name, get, set, doc in self.getsetlist:
-                if doc:
-                    doc = '"' + doc + '"'
-                else:
-                    doc = "NULL"
-                Output("{\"%s\", (getter)%s_get_%s, (setter)%s_set_%s, %s},",
-                    name, self.prefix, name, self.prefix, name, doc)
-            Output("{NULL, NULL, NULL, NULL},")
-            DedentLevel()
-            Output("};")
-        else:
-            Output("#define %s_getsetlist NULL", self.prefix)
-        Output()
-
-    def outputGetter(self, name, code):
-        Output("static PyObject *%s_get_%s(%s *self, void *closure)",
-            self.prefix, name, self.objecttype)
-        OutLbrace()
-        Output(code)
-        OutRbrace()
-        Output()
-
-    def outputSetter(self, name, code):
-        Output("static int %s_set_%s(%s *self, PyObject *v, void *closure)",
-            self.prefix, name, self.objecttype)
-        OutLbrace()
-        Output(code)
-        Output("return 0;")
-        OutRbrace()
-        Output()
-
-class PEP253Mixin(PEP252Mixin):
-    tp_flags = "Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE"
-
-    def outputHook_tp_init(self):
-        Output("%s_tp_init, /* tp_init */", self.prefix)
-
-    def outputHook_tp_alloc(self):
-        Output("%s_tp_alloc, /* tp_alloc */", self.prefix)
-
-    def outputHook_tp_new(self):
-        Output("%s_tp_new, /* tp_new */", self.prefix)
-
-    def outputHook_tp_free(self):
-        Output("%s_tp_free, /* tp_free */", self.prefix)
-
-    def output_tp_initBody_basecall(self):
-        """If a type shares its init call with its base type set output_tp_initBody
-        to output_tp_initBody_basecall"""
-        if self.basetype:
-            Output("if (%s.tp_init)", self.basetype)
-            OutLbrace()
-            Output("if ( (*%s.tp_init)(_self, _args, _kwds) < 0) return -1;", self.basetype)
-            OutRbrace()
-
-    output_tp_initBody = None
-
-    def output_tp_init(self):
-        if self.output_tp_initBody:
-            Output("static int %s_tp_init(PyObject *_self, PyObject *_args, PyObject *_kwds)", self.prefix)
-            OutLbrace()
-            self.output_tp_initBody()
-            OutRbrace()
-        else:
-            Output("#define %s_tp_init 0", self.prefix)
-        Output()
-
-    output_tp_allocBody = None
-
-    def output_tp_alloc(self):
-        if self.output_tp_allocBody:
-            Output("static PyObject *%s_tp_alloc(PyTypeObject *type, int nitems)",
-                self.prefix)
-            OutLbrace()
-            self.output_tp_allocBody()
-            OutRbrace()
-        else:
-            Output("#define %s_tp_alloc PyType_GenericAlloc", self.prefix)
-        Output()
-
-    def output_tp_newBody(self):
-        Output("PyObject *_self;");
-        Output("%s itself;", self.itselftype);
-        Output("char *kw[] = {\"itself\", 0};")
-        Output()
-        Output("if (!PyArg_ParseTupleAndKeywords(_args, _kwds, \"O&\", kw, %s_Convert, &itself)) return NULL;",
-            self.prefix);
-        if self.basetype:
-            Output("if (%s.tp_new)", self.basetype)
-            OutLbrace()
-            Output("if ( (*%s.tp_new)(type, _args, _kwds) == NULL) return NULL;", self.basetype)
-            Dedent()
-            Output("} else {")
-            Indent()
-            Output("if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;")
-            OutRbrace()
-        else:
-            Output("if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;")
-        Output("((%s *)_self)->ob_itself = itself;", self.objecttype)
-        Output("return _self;")
-
-    def output_tp_new(self):
-        if self.output_tp_newBody:
-            Output("static PyObject *%s_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)", self.prefix)
-            OutLbrace()
-            self.output_tp_newBody()
-            OutRbrace()
-        else:
-            Output("#define %s_tp_new PyType_GenericNew", self.prefix)
-        Output()
-
-    output_tp_freeBody = None
-
-    def output_tp_free(self):
-        if self.output_tp_freeBody:
-            Output("static void %s_tp_free(PyObject *self)", self.prefix)
-            OutLbrace()
-            self.output_tp_freeBody()
-            OutRbrace()
-        else:
-            Output("#define %s_tp_free PyObject_Del", self.prefix)
-        Output()
-
-    def outputPEP253Hooks(self):
-        self.output_tp_init()
-        self.output_tp_alloc()
-        self.output_tp_new()
-        self.output_tp_free()
-
-class GlobalObjectDefinition(ObjectDefinition):
-    """Like ObjectDefinition but exports some parts.
-
-    XXX Should also somehow generate a .h file for them.
-    """
-
-    def __init__(self, name, prefix = None, itselftype = None):
-        ObjectDefinition.__init__(self, name, prefix or name, itselftype or name)
-        self.static = ""
-
-class ObjectIdentityMixin:
-    """A mixin class for objects that makes the identity of ob_itself
-    govern comparisons and dictionary lookups. Useful if the C object can
-    be returned by library calls and it is difficult (or impossible) to find
-    the corresponding Python objects. With this you can create Python object
-    wrappers on the fly"""
-
-    def outputCompare(self):
-        Output()
-        Output("static int %s_compare(%s *self, %s *other)", self.prefix, self.objecttype,
-                self.objecttype)
-        OutLbrace()
-        Output("unsigned long v, w;")
-        Output()
-        Output("if (!%s_Check((PyObject *)other))", self.prefix)
-        OutLbrace()
-        Output("v=(unsigned long)self;")
-        Output("w=(unsigned long)other;")
-        OutRbrace()
-        Output("else")
-        OutLbrace()
-        Output("v=(unsigned long)self->ob_itself;")
-        Output("w=(unsigned long)other->ob_itself;")
-        OutRbrace()
-        Output("if( v < w ) return -1;")
-        Output("if( v > w ) return 1;")
-        Output("return 0;")
-        OutRbrace()
-
-    def outputHash(self):
-        Output()
-        Output("static long %s_hash(%s *self)", self.prefix, self.objecttype)
-        OutLbrace()
-        Output("return (long)self->ob_itself;")
-        OutRbrace()
diff --git a/Tools/bgen/bgen/bgenOutput.py b/Tools/bgen/bgen/bgenOutput.py
deleted file mode 100644
index d84e50e..0000000
--- a/Tools/bgen/bgen/bgenOutput.py
+++ /dev/null
@@ -1,219 +0,0 @@
-"""Output primitives for the binding generator classes.
-
-This should really be a class, but then everybody would be passing
-the output object to each other.  I chose for the simpler approach
-of a module with a global variable.  Use SetOutputFile() or
-SetOutputFileName() to change the output file.
-"""
-
-_NeedClose = 0
-
-def SetOutputFile(file = None, needclose = 0):
-    """Call this with an open file object to make it the output file.
-
-    Call it without arguments to close the current file (if necessary)
-    and reset it to sys.stdout.
-    If the second argument is true, the new file will be explicitly closed
-    on a subsequence call.
-    """
-    global _File, _NeedClose
-    if _NeedClose:
-        tmp = _File
-        _NeedClose = 0
-        _File = None
-        tmp.close()
-    if file is None:
-        import sys
-        file = sys.stdout
-    _File = file
-    _NeedClose = file and needclose
-
-def SetOutputFileName(filename = None):
-    """Call this with a filename to make it the output file.
-
-    Call it without arguments to close the current file (if necessary)
-    and reset it to sys.stdout.
-    """
-    SetOutputFile()
-    if filename:
-        SetOutputFile(open(filename, 'w'), 1)
-
-SetOutputFile() # Initialize _File
-
-_Level = 0      # Indentation level
-
-def GetLevel():
-    """Return the current indentation level."""
-    return _Level
-
-def SetLevel(level):
-    """Set the current indentation level.
-
-    This does no type or range checking -- use at own risk.
-    """
-    global _Level
-    _Level = level
-
-def Output(format = "", *args):
-    VaOutput(format, args)
-
-def VaOutput(format, args):
-    """Call this with a format string and argument tuple for the format.
-
-    A newline is always added.  Each line in the output is indented
-    to the proper indentation level -- even if the result of the
-    format expansion contains embedded newlines.  Exception: lines
-    beginning with '#' are not indented -- these are assumed to be
-    C preprprocessor lines.
-    """
-    text = format % args
-    if _Level > 0:
-        indent = '\t' * _Level
-        lines = text.split('\n')
-        for i in range(len(lines)):
-            if lines[i] and lines[i][0] != '#':
-                lines[i] = indent + lines[i]
-        text = '\n'.join(lines)
-    _File.write(text + '\n')
-
-def IndentLevel(by = 1):
-    """Increment the indentation level by one.
-
-    When called with an argument, adds it to the indentation level.
-    """
-    global _Level
-    if _Level+by < 0:
-        raise Error("indentation underflow (internal error)")
-    _Level = _Level + by
-
-def DedentLevel(by = 1):
-    """Decrement the indentation level by one.
-
-    When called with an argument, subtracts it from the indentation level.
-    """
-    IndentLevel(-by)
-
-def OutIndent(format = "", *args):
-    """Combine Output() followed by IndentLevel().
-
-    If no text is given, acts like lone IndentLevel().
-    """
-    if format: VaOutput(format, args)
-    IndentLevel()
-
-def OutDedent(format = "", *args):
-    """Combine Output() followed by DedentLevel().
-
-    If no text is given, acts like loneDedentLevel().
-    """
-    if format: VaOutput(format, args)
-    DedentLevel()
-
-def OutLbrace(format = "", *args):
-    """Like Output, but add a '{' and increase the indentation level.
-
-    If no text is given a lone '{' is output.
-    """
-    if format:
-        format = format + " {"
-    else:
-        format = "{"
-    VaOutput(format, args)
-    IndentLevel()
-
-def OutRbrace():
-    """Decrease the indentation level and output a '}' on a line by itself."""
-    DedentLevel()
-    Output("}")
-
-def OutHeader(text, dash):
-    """Output a header comment using a given dash character."""
-    n = 64 - len(text)
-    Output()
-    Output("/* %s %s %s */", dash * (n/2), text, dash * (n - n/2))
-    Output()
-
-def OutHeader1(text):
-    """Output a level 1 header comment (uses '=' dashes)."""
-    OutHeader(text, "=")
-
-def OutHeader2(text):
-    """Output a level 2 header comment (uses '-' dashes)."""
-    OutHeader(text, "-")
-
-def Out(text):
-    """Output multiline text that's internally indented.
-
-    Pass this a multiline character string.  The whitespace before the
-    first nonblank line of the string will be subtracted from all lines.
-    The lines are then output using Output(), but without interpretation
-    of formatting (if you need formatting you can do it before the call).
-    Recommended use:
-
-        Out('''
-            int main(argc, argv)
-                int argc;
-                char *argv;
-            {
-                printf("Hello, world\\n");
-                exit(0);
-            }
-        ''')
-
-    Caveat: the indentation must be consistent -- if you use three tabs
-    in the first line, (up to) three tabs are removed from following lines,
-    but a line beginning with 24 spaces is not trimmed at all.  Don't use
-    this as a feature.
-    """
-    # (Don't you love using triple quotes *inside* triple quotes? :-)
-
-    lines = text.split('\n')
-    indent = ""
-    for line in lines:
-        if line.strip():
-            for c in line:
-                if not c.isspace():
-                    break
-                indent = indent + c
-            break
-    n = len(indent)
-    for line in lines:
-        if line[:n] == indent:
-            line = line[n:]
-        else:
-            for c in indent:
-                if line[:1] != c: break
-                line = line[1:]
-        VaOutput("%s", line)
-
-
-def _test():
-    """Test program.  Run when the module is run as a script."""
-    OutHeader1("test bgenOutput")
-    Out("""
-        #include <Python.h>
-        #include <stdio.h>
-
-        main(argc, argv)
-            int argc;
-            char **argv;
-        {
-            int i;
-    """)
-    IndentLevel()
-    Output("""\
-/* Here are a few comment lines.
-   Just to test indenting multiple lines.
-
-   End of the comment lines. */
-""")
-    Output("for (i = 0; i < argc; i++)")
-    OutLbrace()
-    Output('printf("argv[%%d] = %%s\\n", i, argv[i]);')
-    OutRbrace()
-    Output("exit(0)")
-    OutRbrace()
-    OutHeader2("end test")
-
-if __name__ == '__main__':
-    _test()
diff --git a/Tools/bgen/bgen/bgenStackBuffer.py b/Tools/bgen/bgen/bgenStackBuffer.py
deleted file mode 100644
index 431bb73..0000000
--- a/Tools/bgen/bgen/bgenStackBuffer.py
+++ /dev/null
@@ -1,62 +0,0 @@
-"""Buffers allocated on the stack."""
-
-
-from bgenBuffer import FixedInputBufferType, FixedOutputBufferType
-
-
-class StackOutputBufferType(FixedOutputBufferType):
-
-    """Fixed output buffer allocated on the stack -- passed as (buffer, size).
-
-    Instantiate with the buffer size as parameter.
-    """
-
-    def passOutput(self, name):
-        return "%s__out__, %s" % (name, self.size)
-
-
-class VarStackOutputBufferType(StackOutputBufferType):
-
-    """Output buffer allocated on the stack -- passed as (buffer, &size).
-
-    Instantiate with the buffer size as parameter.
-    """
-
-    def getSizeDeclarations(self, name):
-        return []
-
-    def getAuxDeclarations(self, name):
-        return ["int %s__len__ = %s" % (name, self.size)]
-
-    def passOutput(self, name):
-        return "%s__out__, &%s__len__" % (name, name)
-
-    def mkvalueArgs(self, name):
-        return "%s__out__, (int)%s__len__" % (name, name)
-
-
-class VarVarStackOutputBufferType(VarStackOutputBufferType):
-
-    """Output buffer allocated on the stack -- passed as (buffer, size, &size).
-
-    Instantiate with the buffer size as parameter.
-    """
-
-    def passOutput(self, name):
-        return "%s__out__, %s__len__, &%s__len__" % (name, name, name)
-
-
-class ReturnVarStackOutputBufferType(VarStackOutputBufferType):
-
-    """Output buffer allocated on the stack -- passed as (buffer, size) -> size.
-
-    Instantiate with the buffer size as parameter.
-    The function's return value is the size.
-    (XXX Should have a way to suppress returning it separately, too.)
-    """
-
-    def passOutput(self, name):
-        return "%s__out__, %s__len__" % (name, name)
-
-    def mkvalueArgs(self, name):
-        return "%s__out__, (int)_rv" % name
diff --git a/Tools/bgen/bgen/bgenStringBuffer.py b/Tools/bgen/bgen/bgenStringBuffer.py
deleted file mode 100644
index a232f83..0000000
--- a/Tools/bgen/bgen/bgenStringBuffer.py
+++ /dev/null
@@ -1,67 +0,0 @@
-"""Buffers used to hold null-terminated strings."""
-
-
-from bgenBuffer import FixedOutputBufferType
-from bgenStackBuffer import StackOutputBufferType
-from bgenHeapBuffer import HeapOutputBufferType
-
-
-class StringBufferMixIn:
-
-    """Mix-in class to create various string buffer types.
-
-    Strings are character arrays terminated by a null byte.
-    (For input, this is also covered by stringptr.)
-    For output, there are again three variants:
-    - Fixed: size is a constant given in the documentation; or
-    - Stack: size is passed to the C function but we decide on a size at
-      code generation time so we can still allocate on the heap); or
-    - Heap: size is passed to the C function and we let the Python caller
-      pass a size.
-    (Note that this doesn't cover output parameters in which a string
-    pointer is returned.  These are actually easier (no allocation) but far
-    less common.  I'll write the classes when there is demand.)
-    """
-
-    def getSizeDeclarations(self, name):
-        return []
-
-    def getAuxDeclarations(self, name):
-        return []
-
-    def getargsFormat(self):
-        return "s"
-
-    def getargsArgs(self, name):
-        return "&%s__in__" % name
-
-    def mkvalueFormat(self):
-        return "s"
-
-    def mkvalueArgs(self, name):
-        return "%s__out__" % name
-
-
-class FixedOutputStringType(StringBufferMixIn, FixedOutputBufferType):
-
-    """Null-terminated output string -- passed without size.
-
-    Instantiate with buffer size as parameter.
-    """
-
-
-class StackOutputStringType(StringBufferMixIn, StackOutputBufferType):
-
-    """Null-terminated output string -- passed as (buffer, size).
-
-    Instantiate with buffer size as parameter.
-    """
-
-
-class HeapOutputStringType(StringBufferMixIn, HeapOutputBufferType):
-
-    """Null-terminated output string -- passed as (buffer, size).
-
-    Instantiate without parameters.
-    Call from Python with buffer size.
-    """
diff --git a/Tools/bgen/bgen/bgenType.py b/Tools/bgen/bgen/bgenType.py
deleted file mode 100644
index dcb0f08..0000000
--- a/Tools/bgen/bgen/bgenType.py
+++ /dev/null
@@ -1,328 +0,0 @@
-"""Type classes and a modest collection of standard types."""
-
-
-from bgenOutput import *
-
-
-class Type:
-
-    """Define the various things you can do with a C type.
-
-    Most methods are intended to be extended or overridden.
-    """
-
-    def __init__(self, typeName, fmt):
-        """Call with the C name and getargs format for the type.
-
-        Example: int = Type("int", "i")
-        """
-        self.typeName = typeName
-        self.fmt = fmt
-
-    def declare(self, name, reference=False):
-        """Declare a variable of the type with a given name.
-
-        Example: int.declare('spam') prints "int spam;"
-        """
-        for decl in self.getArgDeclarations(name, reference):
-            Output("%s;", decl)
-        for decl in self.getAuxDeclarations(name):
-            Output("%s;", decl)
-
-    def getArgDeclarations(self, name, reference=False, constmode=False, outmode=False):
-        """Return the main part of the declarations for this type: the items
-        that will be passed as arguments in the C/C++ function call."""
-        if reference:
-            ref = "&"
-        else:
-            ref = ""
-        if constmode:
-            const = "const "
-        else:
-            const = ""
-        if outmode:
-            out = "*"
-        else:
-            out = ""
-        return ["%s%s%s%s %s" % (const, self.typeName, ref, out, name)]
-
-    def getAuxDeclarations(self, name):
-        """Return any auxiliary declarations needed for implementing this
-        type, such as helper variables used to hold sizes, etc. These declarations
-        are not part of the C/C++ function call interface."""
-        return []
-
-    def getargs(self):
-        return self.getargsFormat(), self.getargsArgs()
-
-    def getargsFormat(self):
-        """Return the format for this type for use with PyArg_Parse().
-
-        Example: int.getargsFormat() returns the string "i".
-        (getargs is a very old name for PyArg_Parse, hence the name of this method).
-        """
-        return self.fmt
-
-    def getargsArgs(self, name):
-        """Return an argument for use with PyArg_Parse().
-
-        Example: int.getargsArgs("spam") returns the string "&spam".
-        """
-        return "&" + name
-
-    def getargsPreCheck(self, name):
-        """Perform any actions needed before calling getargs().
-
-        This could include declaring temporary variables and such.
-        """
-
-    def getargsCheck(self, name):
-        """Perform any needed post-[new]getargs() checks.
-
-        This is type-dependent; the default does not check for errors.
-        An example would be a check for a maximum string length, or it
-        could do post-getargs() copying or conversion."""
-
-    def passInput(self, name):
-        """Return an argument for passing a variable into a call.
-
-        Example: int.passInput("spam") returns the string "spam".
-        """
-        return name
-
-    def passOutput(self, name):
-        """Return an argument for returning a variable out of a call.
-
-        Example: int.passOutput("spam") returns the string "&spam".
-        """
-        return "&" + name
-
-    def passReference(self, name):
-        """Return an argument for C++ pass-by-reference.
-        Default is to call passInput().
-        """
-        return self.passInput(name)
-
-    def errorCheck(self, name):
-        """Check for an error returned in the variable.
-
-        This is type-dependent; the default does not check for errors.
-        An example would be a check for a NULL pointer.
-        If an error is found, the generated routine should
-        raise an exception and return NULL.
-
-        XXX There should be a way to add error clean-up code.
-        """
-        Output("/* XXX no err check for %s %s */", self.typeName, name)
-
-    def mkvalue(self):
-        return self.mkvalueFormat(), self.mkvalueArgs()
-
-    def mkvalueFormat(self):
-        """Return the format for this type for use with Py_BuildValue().
-
-        This is normally the same as getargsFormat() but it is
-        a separate function to allow future divergence.
-        (mkvalue is a very old name for Py_BuildValue, hence the name of this
-        method).
-        """
-        return self.getargsFormat()
-
-    def mkvalueArgs(self, name):
-        """Return an argument for use with Py_BuildValue().
-
-        Example: int.mkvalueArgs("spam") returns the string "spam".
-        """
-        return name
-
-    def mkvaluePreCheck(self, name):
-        """Perform any actions needed before calling mkvalue().
-
-        This could include declaring temporary variables and such.
-        """
-
-    def cleanup(self, name):
-        """Clean up if necessary.
-
-        This is normally empty; it may deallocate buffers etc.
-        """
-        pass
-
-class ByAddressType(Type):
-    "Simple type that is also passed by address for input"
-
-    def passInput(self, name):
-        return "&%s" % name
-
-
-
-# Sometimes it's useful to define a type that's only usable as input or output parameter
-
-class InputOnlyMixIn:
-
-    "Mix-in class to boobytrap passOutput"
-
-    def passOutput(self, name):
-        raise RuntimeError("Type '%s' can only be used for input parameters" % self.typeName)
-
-class InputOnlyType(InputOnlyMixIn, Type):
-
-    "Same as Type, but only usable for input parameters -- passOutput is boobytrapped"
-
-class OutputOnlyMixIn:
-
-    "Mix-in class to boobytrap passInput"
-
-    def passInput(self, name):
-        raise RuntimeError("Type '%s' can only be used for output parameters" % self.typeName)
-
-class OutputOnlyType(OutputOnlyMixIn, Type):
-
-    "Same as Type, but only usable for output parameters -- passInput is boobytrapped"
-
-
-# A modest collection of standard C types.
-void = None
-char = Type("char", "c")
-short = Type("short", "h")
-unsigned_short = Type("unsigned short", "H")
-int = Type("int", "i")
-long = Type("long", "l")
-unsigned_long = Type("unsigned long", "l")
-float = Type("float", "f")
-double = Type("double", "d")
-
-
-# The most common use of character pointers is a null-terminated string.
-# For input, this is easy.  For output, and for other uses of char *,
-# see the module bgenBuffer.
-stringptr = InputOnlyType("char*", "s")
-unicodestringptr = InputOnlyType("wchar_t *", "u")
-
-
-# Some Python related types.
-objectptr = Type("PyObject*", "O")
-stringobjectptr = Type("PyStringObject*", "S")
-# Etc.
-
-
-class FakeType(InputOnlyType):
-
-    """A type that is not represented in the Python version of the interface.
-
-    Instantiate with a value to pass in the call.
-    """
-
-    def __init__(self, substitute):
-        self.substitute = substitute
-        self.typeName = None    # Don't show this argument in __doc__ string
-
-    def getArgDeclarations(self, name, reference=False, constmode=False, outmode=False):
-        return []
-
-    def getAuxDeclarations(self, name, reference=False):
-        return []
-
-    def getargsFormat(self):
-        return ""
-
-    def getargsArgs(self, name):
-        return None
-
-    def passInput(self, name):
-        return self.substitute
-
-
-class OpaqueType(Type):
-
-    """A type represented by an opaque object type, always passed by address.
-
-    Instantiate with the type name and the names of the new and convert procs.
-    If fewer than three arguments are passed, the second argument is used
-    to derive the new and convert procs by appending _New and _Convert; it
-    defaults to the first argument.
-    """
-
-    def __init__(self, name, arg = None, extra = None):
-        self.typeName = name
-        if extra is None:
-             # Two arguments (name, usetype) or one (name)
-            arg = arg or name
-            self.new = arg + '_New'
-            self.convert = arg + '_Convert'
-        else:
-            # Three arguments (name, new, convert)
-            self.new = arg
-            self.convert = extra
-
-    def getargsFormat(self):
-        return "O&"
-
-    def getargsArgs(self, name):
-        return "%s, &%s" % (self.convert, name)
-
-    def passInput(self, name):
-        return "&%s" % name
-
-    def mkvalueFormat(self):
-        return "O&"
-
-    def mkvalueArgs(self, name):
-        return "%s, &%s" % (self.new, name)
-
-
-class OpaqueByValueType(OpaqueType):
-
-    """A type represented by an opaque object type, on input passed BY VALUE.
-
-    Instantiate with the type name, and optionally an object type name whose
-    New/Convert functions will be used.
-    """
-
-    def passInput(self, name):
-        return name
-
-    def mkvalueArgs(self, name):
-        return "%s, %s" % (self.new, name)
-
-class OpaqueByRefType(OpaqueType):
-    """An opaque object type, passed by reference.
-
-    Instantiate with the type name, and optionally an object type name whose
-    New/Convert functions will be used.
-    """
-
-    def passInput(self, name):
-        return name
-
-#    def passOutput(self, name):
-#        return name
-
-    def mkvalueFormat(self):
-        return "O"
-
-    def mkvalueArgs(self, name):
-        return "%s(%s)" % (self.new, name)
-
-class OpaqueByValueStructType(OpaqueByValueType):
-    """Similar to OpaqueByValueType, but we also pass this to mkvalue by
-    address, in stead of by value.
-    """
-
-    def mkvalueArgs(self, name):
-        return "%s, &%s" % (self.new, name)
-
-
-class OpaqueArrayType(OpaqueByValueType):
-
-    """A type represented by an opaque object type, with ARRAY passing semantics.
-
-    Instantiate with the type name, and optional an object type name whose
-    New/Convert functions will be used.
-    """
-
-    def getargsArgs(self, name):
-        return "%s, %s" % (self.convert, name)
-
-    def passOutput(self, name):
-        return name
diff --git a/Tools/bgen/bgen/bgenVariable.py b/Tools/bgen/bgen/bgenVariable.py
deleted file mode 100644
index 0ad24b3..0000000
--- a/Tools/bgen/bgen/bgenVariable.py
+++ /dev/null
@@ -1,112 +0,0 @@
-"""Variables, arguments and argument transfer modes etc."""
-
-
-# Values to represent argument transfer modes
-InMode    = 1 # input-only argument
-OutMode   = 2 # output-only argument
-InOutMode = 3 # input-output argument
-ModeMask  = 3 # bits to keep for mode
-
-
-# Special cases for mode/flags argument
-# XXX This is still a mess!
-SelfMode   =  4+InMode  # this is 'self' -- don't declare it
-ReturnMode =  8+OutMode # this is the function return value
-ErrorMode  = 16+OutMode # this is an error status -- turn it into an exception
-RefMode    = 32
-ConstMode  = 64
-
-class Variable:
-
-    """A Variable holds a type, a name, a transfer mode and flags.
-
-    Most of its methods call the correponding type method with the
-    variable name.
-    """
-
-    def __init__(self, type, name = None, flags = InMode):
-        """Call with a type, a name and flags.
-
-        If name is None, it muse be set later.
-        flags defaults to InMode.
-        """
-        self.type = type
-        self.name = name
-        self.flags = flags
-        self.mode = flags & ModeMask
-
-    def declare(self):
-        """Declare the variable if necessary.
-
-        If it is "self", it is not declared.
-        """
-        if self.flags == ReturnMode+RefMode:
-            self.type.declare(self.name, reference=True)
-        elif self.flags != SelfMode:
-            self.type.declare(self.name)
-
-    def getArgDeclarations(self, fullmodes=False):
-        refmode = (self.flags & RefMode)
-        constmode = False
-        outmode = False
-        if fullmodes:
-            constmode = (self.flags & ConstMode)
-            outmode = (self.flags & OutMode)
-        return self.type.getArgDeclarations(self.name,
-                reference=refmode, constmode=constmode, outmode=outmode)
-
-    def getAuxDeclarations(self):
-        return self.type.getAuxDeclarations(self.name)
-
-    def getargsFormat(self):
-        """Call the type's getargsFormatmethod."""
-        return self.type.getargsFormat()
-
-    def getargsArgs(self):
-        """Call the type's getargsArgsmethod."""
-        return self.type.getargsArgs(self.name)
-
-    def getargsCheck(self):
-        return self.type.getargsCheck(self.name)
-
-    def getargsPreCheck(self):
-        return self.type.getargsPreCheck(self.name)
-
-    def passArgument(self):
-        """Return the string required to pass the variable as argument.
-
-        For "in" arguments, return the variable name.
-        For "out" and "in out" arguments,
-        return its name prefixed with "&".
-        """
-        if self.mode == InMode:
-            return self.type.passInput(self.name)
-        if self.mode & RefMode:
-            return self.type.passReference(self.name)
-        if self.mode in (OutMode, InOutMode):
-            return self.type.passOutput(self.name)
-        # XXX Shouldn't get here
-        return "/*mode?*/" + self.type.passInput(self.name)
-
-    def errorCheck(self):
-        """Check for an error if necessary.
-
-        This only generates code if the variable's mode is ErrorMode.
-        """
-        if self.flags == ErrorMode:
-            self.type.errorCheck(self.name)
-
-    def mkvalueFormat (self):
-        """Call the type's mkvalueFormat method."""
-        return self.type.mkvalueFormat()
-
-    def mkvalueArgs(self):
-        """Call the type's mkvalueArgs method."""
-        return self.type.mkvalueArgs(self.name)
-
-    def mkvaluePreCheck(self):
-        return self.type.mkvaluePreCheck(self.name)
-
-    def cleanup(self):
-        """Call the type's cleanup method."""
-        return self.type.cleanup(self.name)
diff --git a/Tools/bgen/bgen/macsupport.py b/Tools/bgen/bgen/macsupport.py
deleted file mode 100644
index 7cd2b81..0000000
--- a/Tools/bgen/bgen/macsupport.py
+++ /dev/null
@@ -1,197 +0,0 @@
-"""\
-Augment the "bgen" package with definitions that are useful on the Apple Macintosh.
-
-Intended usage is "from macsupport import *" -- this implies all bgen's goodies.
-"""
-
-
-# Import everything from bgen (for ourselves as well as for re-export)
-from bgen import *
-
-
-# Simple types
-Boolean = Type("Boolean", "b")
-SignedByte = Type("SignedByte", "b")
-Size = Type("Size", "l")
-Style = Type("Style", "b")
-StyleParameter = Type("StyleParameter", "h")
-CharParameter = Type("CharParameter", "h")
-TextEncoding = Type("TextEncoding", "l")
-ByteCount = Type("ByteCount", "l")
-Duration = Type("Duration", "l")
-ByteOffset = Type("ByteOffset", "l")
-OptionBits = Type("OptionBits", "l")
-ItemCount = Type("ItemCount", "l")
-PBVersion = Type("PBVersion", "l")
-ScriptCode = Type("ScriptCode", "h")
-LangCode = Type("LangCode", "h")
-RegionCode = Type("RegionCode", "h")
-
-UInt8 = Type("UInt8", "b")
-SInt8 = Type("SInt8", "b")
-UInt16 = Type("UInt16", "H")
-SInt16 = Type("SInt16", "h")
-UInt32 = Type("UInt32", "l")
-SInt32 = Type("SInt32", "l")
-Float32 = Type("Float32", "f")
-
-wide = OpaqueByValueType("wide", "PyMac_Buildwide", "PyMac_Getwide")
-wide_ptr = OpaqueType("wide", "PyMac_Buildwide", "PyMac_Getwide")
-
-# Pascal strings
-ConstStr255Param = OpaqueArrayType("Str255", "PyMac_BuildStr255", "PyMac_GetStr255")
-Str255 = OpaqueArrayType("Str255", "PyMac_BuildStr255", "PyMac_GetStr255")
-StringPtr = OpaqueByValueType("StringPtr", "PyMac_BuildStr255", "PyMac_GetStr255")
-ConstStringPtr = StringPtr
-
-# File System Specifications
-FSSpec_ptr = OpaqueType("FSSpec", "PyMac_BuildFSSpec", "PyMac_GetFSSpec")
-FSSpec = OpaqueByValueStructType("FSSpec", "PyMac_BuildFSSpec", "PyMac_GetFSSpec")
-FSRef_ptr = OpaqueType("FSRef", "PyMac_BuildFSRef", "PyMac_GetFSRef")
-FSRef = OpaqueByValueStructType("FSRef", "PyMac_BuildFSRef", "PyMac_GetFSRef")
-
-# OSType and ResType: 4-byte character strings
-def OSTypeType(typename):
-    return OpaqueByValueType(typename, "PyMac_BuildOSType", "PyMac_GetOSType")
-OSType = OSTypeType("OSType")
-ResType = OSTypeType("ResType")
-FourCharCode = OSTypeType("FourCharCode")
-
-# Version numbers
-NumVersion = OpaqueByValueType("NumVersion", "PyMac_BuildNumVersion", "BUG")
-
-# Handles (always resources in our case)
-Handle = OpaqueByValueType("Handle", "ResObj")
-MenuHandle = OpaqueByValueType("MenuHandle", "MenuObj")
-MenuRef = MenuHandle
-ControlHandle = OpaqueByValueType("ControlHandle", "CtlObj")
-ControlRef = ControlHandle
-
-# Windows and Dialogs
-WindowPtr = OpaqueByValueType("WindowPtr", "WinObj")
-WindowRef = WindowPtr
-DialogPtr = OpaqueByValueType("DialogPtr", "DlgObj")
-DialogRef = DialogPtr
-ExistingWindowPtr = OpaqueByValueType("WindowPtr", "WinObj_WhichWindow", "BUG")
-ExistingDialogPtr = OpaqueByValueType("DialogPtr", "DlgObj_WhichDialog", "BUG")
-
-# NULL pointer passed in as optional storage -- not present in Python version
-NullStorage = FakeType("(void *)0")
-
-# More standard datatypes
-Fixed = OpaqueByValueType("Fixed", "PyMac_BuildFixed", "PyMac_GetFixed")
-
-# Quickdraw data types
-Rect = Rect_ptr = OpaqueType("Rect", "PyMac_BuildRect", "PyMac_GetRect")
-Point = OpaqueByValueType("Point", "PyMac_BuildPoint", "PyMac_GetPoint")
-Point_ptr = OpaqueType("Point", "PyMac_BuildPoint", "PyMac_GetPoint")
-
-# Event records
-EventRecord = OpaqueType("EventRecord", "PyMac_BuildEventRecord", "PyMac_GetEventRecord")
-EventRecord_ptr = EventRecord
-
-# CoreFoundation datatypes
-CFTypeRef = OpaqueByValueType("CFTypeRef", "CFTypeRefObj")
-CFStringRef = OpaqueByValueType("CFStringRef", "CFStringRefObj")
-CFMutableStringRef = OpaqueByValueType("CFMutableStringRef", "CFMutableStringRefObj")
-CFArrayRef = OpaqueByValueType("CFArrayRef", "CFArrayRefObj")
-CFMutableArrayRef = OpaqueByValueType("CFMutableArrayRef", "CFMutableArrayRefObj")
-CFDictionaryRef = OpaqueByValueType("CFDictionaryRef", "CFDictionaryRefObj")
-CFMutableDictionaryRef = OpaqueByValueType("CFMutableDictionaryRef", "CFMutableDictionaryRefObj")
-CFURLRef = OpaqueByValueType("CFURLRef", "CFURLRefObj")
-OptionalCFURLRef = OpaqueByValueType("CFURLRef", "OptionalCFURLRefObj")
-
-# OSErr is special because it is turned into an exception
-# (Could do this with less code using a variant of mkvalue("O&")?)
-class OSErrType(Type):
-    def errorCheck(self, name):
-        Output("if (%s != noErr) return PyMac_Error(%s);", name, name)
-        self.used = 1
-OSErr = OSErrType("OSErr", 'h')
-OSStatus = OSErrType("OSStatus", 'l')
-
-
-# Various buffer types
-
-InBuffer = VarInputBufferType('char', 'long', 'l')      # (buf, len)
-UcharInBuffer  = VarInputBufferType('unsigned char', 'long', 'l')       # (buf, len)
-OptionalInBuffer = OptionalVarInputBufferType('char', 'long', 'l')      # (buf, len)
-
-InOutBuffer = HeapInputOutputBufferType('char', 'long', 'l')    # (inbuf, outbuf, len)
-VarInOutBuffer = VarHeapInputOutputBufferType('char', 'long', 'l') # (inbuf, outbuf, &len)
-
-OutBuffer = HeapOutputBufferType('char', 'long', 'l')       # (buf, len)
-VarOutBuffer = VarHeapOutputBufferType('char', 'long', 'l') # (buf, &len)
-VarVarOutBuffer = VarVarHeapOutputBufferType('char', 'long', 'l') # (buf, len, &len)
-
-# Unicode arguments sometimes have reversed len, buffer (don't understand why Apple did this...)
-class VarUnicodeInputBufferType(VarInputBufferType):
-
-    def getargsFormat(self):
-        return "u#"
-
-class VarUnicodeReverseInputBufferType(ReverseInputBufferMixin, VarUnicodeInputBufferType):
-    pass
-
-UnicodeInBuffer = VarUnicodeInputBufferType('UniChar', 'UniCharCount', 'l')
-UnicodeReverseInBuffer = VarUnicodeReverseInputBufferType('UniChar', 'UniCharCount', 'l')
-UniChar_ptr = InputOnlyType("UniCharPtr", "u")
-
-
-# Predefine various pieces of program text to be passed to Module() later:
-
-# Stuff added immediately after the system include files
-includestuff = """
-#include "pymactoolbox.h"
-
-/* Macro to test whether a weak-loaded CFM function exists */
-#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL )  {\\
-        PyErr_SetString(PyExc_NotImplementedError, \\
-        "Not available in this shared library/OS version"); \\
-        return NULL; \\
-    }} while(0)
-
-"""
-
-# Stuff added just before the module's init function
-finalstuff = """
-"""
-
-# Stuff added inside the module's init function
-initstuff = """
-"""
-
-
-# Generator classes with a twist -- if the function returns OSErr,
-# its mode is manipulated so that it turns into an exception or disappears
-# (and its name is changed to _err, for documentation purposes).
-# This requires that the OSErr type (defined above) has a non-trivial
-# errorCheck method.
-class OSErrMixIn:
-    "Mix-in class to treat OSErr/OSStatus return values special"
-    def makereturnvar(self):
-        if self.returntype.__class__ == OSErrType:
-            return Variable(self.returntype, "_err", ErrorMode)
-        else:
-            return Variable(self.returntype, "_rv", OutMode)
-
-class OSErrFunctionGenerator(OSErrMixIn, FunctionGenerator): pass
-class OSErrMethodGenerator(OSErrMixIn, MethodGenerator): pass
-
-class WeakLinkMixIn:
-    "Mix-in to test the function actually exists (!= NULL) before calling"
-
-    def precheck(self):
-        Output('#ifndef %s', self.name)
-        Output('PyMac_PRECHECK(%s);', self.name)
-        Output('#endif')
-
-class WeakLinkFunctionGenerator(WeakLinkMixIn, FunctionGenerator): pass
-class WeakLinkMethodGenerator(WeakLinkMixIn, MethodGenerator): pass
-class OSErrWeakLinkFunctionGenerator(OSErrMixIn, WeakLinkMixIn, FunctionGenerator): pass
-class OSErrWeakLinkMethodGenerator(OSErrMixIn, WeakLinkMixIn, MethodGenerator): pass
-
-class MacModule(Module):
-    "Subclass which gets the exception initializer from macglue.c"
-    def exceptionInitializer(self):
-        return "PyMac_GetOSErrException()"
diff --git a/Tools/bgen/bgen/scantools.py b/Tools/bgen/bgen/scantools.py
deleted file mode 100644
index 96f375d..0000000
--- a/Tools/bgen/bgen/scantools.py
+++ /dev/null
@@ -1,846 +0,0 @@
-"""\
-
-Tools for scanning header files in search of function prototypes.
-
-Often, the function prototypes in header files contain enough information
-to automatically generate (or reverse-engineer) interface specifications
-from them.  The conventions used are very vendor specific, but once you've
-figured out what they are they are often a great help, and it sure beats
-manually entering the interface specifications.  (These are needed to generate
-the glue used to access the functions from Python.)
-
-In order to make this class useful, almost every component can be overridden.
-The defaults are (currently) tuned to scanning Apple Macintosh header files,
-although most Mac specific details are contained in header-specific subclasses.
-"""
-
-import re
-import sys
-import os
-import fnmatch
-from types import *
-try:
-    import MacOS
-except ImportError:
-    MacOS = None
-
-try:
-    from bgenlocations import CREATOR, INCLUDEDIR
-except ImportError:
-    CREATOR = None
-    INCLUDEDIR = os.curdir
-
-Error = "scantools.Error"
-
-BEGINHTMLREPORT="""<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<style type="text/css">
-.unmatched {  }
-.commentstripping { color: grey; text-decoration: line-through }
-.comment { text-decoration: line-through }
-.notcomment { color: black }
-.incomplete { color: maroon }
-.constant { color: green }
-.pyconstant { background-color: yellow }
-.blconstant { background-color: yellow; color: red }
-.declaration { color: blue }
-.pydeclaration { background-color: yellow }
-.type { font-style: italic }
-.name { font-weight: bold }
-.value { font-style: italic }
-.arglist { text-decoration: underline }
-.blacklisted { background-color: yellow; color: red }
-</style>
-<title>Bgen scan report</title>
-</head>
-<body>
-<h1>Bgen scan report</h1>
-<h2>Legend</h2>
-<p>This scan report is intended to help you debug the regular expressions
-used by the bgen scanner. It consists of the original ".h" header file(s)
-marked up to show you what the regular expressions in the bgen parser matched
-for each line. NOTE: comments in the original source files may or may not be
-shown.</p>
-<p>The typographic conventions of this file are as follows:</p>
-<dl>
-<dt>comment stripping</dt>
-<dd><pre><span class="commentstripping"><span class="notcomment">comment stripping is </span><span class="comment">/* marked up */</span><span class="notcomment"> and the line is repeated if needed</span></span></pre>
-<p>If anything here does not appear to happen correctly look at
-<tt>comment1_pat</tt> and <tt>comment2_pat</tt>.</p>
-</dd>
-<dt>constant definitions</dt>
-<dd><pre><span class="constant">#define <span class="name">name</span> <span class="value">value</span></pre>
-<p>Highlights name and value of the constant. Governed by <tt>sym_pat</tt>.</p>
-</dd>
-<dt>function declaration</dt>
-<dd><pre><span class="declaration"><span class="type">char *</span><span class="name">rindex</span><span class="arglist">(<span class="type">const char *</span><span class="name">s</span>, <span class="type">int </span><span class="name">c</span>)</span>;</span></pre>
-<p>Highlights type, name and argument list. <tt>type_pat</tt>,
-<tt>name_pat</tt> and <tt>args_pat</tt> are combined into <tt>whole_pat</tt>, which
-is what is used here.</p></dd>
-</dd>
-<dt>incomplete match for function declaration</dt>
-<dd><pre><span class="incomplete"><span class="type">char *</span>foo;</span></pre>
-<p>The beginning of this looked promising, but it did not match a function declaration.
-In other words, it matched <tt>head_pat</tt> but not <tt>whole_pat</tt>. If the next
-declaration has also been gobbled up you need to look at <tt>end_pat</tt>.</p>
-</dd>
-<dt>unrecognized input</dt>
-<dd><pre><span class="unmatched">#include "type.h"</span></pre>
-<p>If there are function declarations the scanner has missed (i.e. things
-are in this class but you want them to be declarations) you need to adapt
-<tt>head_pat</tt>.
-</dd>
-</dl>
-<h2>Output</h2>
-<pre>
-<span class="unmatched">
-"""
-ENDHTMLREPORT="""</span>
-</pre>
-</body>
-</html>
-"""
-
-class Scanner:
-
-    # Set to 1 in subclass to debug your scanner patterns.
-    debug = 0
-
-    def __init__(self, input = None, output = None, defsoutput = None):
-        self.initsilent()
-        self.initblacklists()
-        self.initrepairinstructions()
-        self.initpaths()
-        self.initfiles()
-        self.initpatterns()
-        self.compilepatterns()
-        self.initosspecifics()
-        self.initusedtypes()
-        if output:
-            self.setoutput(output, defsoutput)
-        if input:
-            self.setinput(input)
-
-    def initusedtypes(self):
-        self.usedtypes = {}
-
-    def typeused(self, type, mode):
-        if type not in self.usedtypes:
-            self.usedtypes[type] = {}
-        self.usedtypes[type][mode] = None
-
-    def reportusedtypes(self):
-        types = sorted(self.usedtypes.keys())
-        for type in types:
-            modes = sorted(self.usedtypes[type].keys())
-            self.report("%s %s", type, " ".join(modes))
-
-    def gentypetest(self, file):
-        fp = open(file, "w")
-        fp.write("types=[\n")
-        types = sorted(self.usedtypes.keys())
-        for type in types:
-            fp.write("\t'%s',\n"%type)
-        fp.write("]\n")
-        fp.write("""missing=0
-for t in types:
-    try:
-        tt = eval(t)
-    except NameError:
-        print "** Missing type:", t
-        missing = 1
-if missing: raise "Missing Types"
-""")
-        fp.close()
-
-    def initsilent(self):
-        self.silent = 1
-
-    def error(self, format, *args):
-        if self.silent >= 0:
-            print(format%args)
-
-    def report(self, format, *args):
-        if not self.silent:
-            print(format%args)
-
-    def writeinitialdefs(self):
-        pass
-
-    def initblacklists(self):
-        self.blacklistnames = self.makeblacklistnames()
-        self.blacklisttypes = ["unknown", "-"] + self.makeblacklisttypes()
-        self.greydictnames = self.greylist2dict(self.makegreylist())
-
-    def greylist2dict(self, list):
-        rv = {}
-        for define, namelist in list:
-            for name in namelist:
-                rv[name] = define
-        return rv
-
-    def makeblacklistnames(self):
-        return []
-
-    def makeblacklisttypes(self):
-        return []
-
-    def makegreylist(self):
-        return []
-
-    def initrepairinstructions(self):
-        self.repairinstructions = self.makerepairinstructions()
-        self.inherentpointertypes = self.makeinherentpointertypes()
-
-    def makerepairinstructions(self):
-        """Parse the repair file into repair instructions.
-
-        The file format is simple:
-        1) use \ to split a long logical line in multiple physical lines
-        2) everything after the first # on a line is ignored (as comment)
-        3) empty lines are ignored
-        4) remaining lines must have exactly 3 colon-separated fields:
-           functionpattern : argumentspattern : argumentsreplacement
-        5) all patterns use shell style pattern matching
-        6) an empty functionpattern means the same as *
-        7) the other two fields are each comma-separated lists of triples
-        8) a triple is a space-separated list of 1-3 words
-        9) a triple with less than 3 words is padded at the end with "*" words
-        10) when used as a pattern, a triple matches the type, name, and mode
-            of an argument, respectively
-        11) when used as a replacement, the words of a triple specify
-            replacements for the corresponding words of the argument,
-            with "*" as a word by itself meaning leave the original word
-            (no other uses of "*" is allowed)
-        12) the replacement need not have the same number of triples
-            as the pattern
-        """
-        f = self.openrepairfile()
-        if not f: return []
-        print("Reading repair file", repr(f.name), "...")
-        list = []
-        lineno = 0
-        while 1:
-            line = f.readline()
-            if not line: break
-            lineno = lineno + 1
-            startlineno = lineno
-            while line[-2:] == '\\\n':
-                line = line[:-2] + ' ' + f.readline()
-                lineno = lineno + 1
-            i = line.find('#')
-            if i >= 0: line = line[:i]
-            words = [s.strip() for s in line.split(':')]
-            if words == ['']: continue
-            if len(words) != 3:
-                print("Line", startlineno, end=' ')
-                print(": bad line (not 3 colon-separated fields)")
-                print(repr(line))
-                continue
-            [fpat, pat, rep] = words
-            if not fpat: fpat = "*"
-            if not pat:
-                print("Line", startlineno, end=' ')
-                print("Empty pattern")
-                print(repr(line))
-                continue
-            patparts = [s.strip() for s in pat.split(',')]
-            repparts = [s.strip() for s in rep.split(',')]
-            patterns = []
-            for p in patparts:
-                if not p:
-                    print("Line", startlineno, end=' ')
-                    print("Empty pattern part")
-                    print(repr(line))
-                    continue
-                pattern = p.split()
-                if len(pattern) > 3:
-                    print("Line", startlineno, end=' ')
-                    print("Pattern part has > 3 words")
-                    print(repr(line))
-                    pattern = pattern[:3]
-                else:
-                    while len(pattern) < 3:
-                        pattern.append("*")
-                patterns.append(pattern)
-            replacements = []
-            for p in repparts:
-                if not p:
-                    print("Line", startlineno, end=' ')
-                    print("Empty replacement part")
-                    print(repr(line))
-                    continue
-                replacement = p.split()
-                if len(replacement) > 3:
-                    print("Line", startlineno, end=' ')
-                    print("Pattern part has > 3 words")
-                    print(repr(line))
-                    replacement = replacement[:3]
-                else:
-                    while len(replacement) < 3:
-                        replacement.append("*")
-                replacements.append(replacement)
-            list.append((fpat, patterns, replacements))
-        return list
-
-    def makeinherentpointertypes(self):
-        return []
-
-    def openrepairfile(self, filename = "REPAIR"):
-        try:
-            return open(filename, "rU")
-        except IOError as msg:
-            print(repr(filename), ":", msg)
-            print("Cannot open repair file -- assume no repair needed")
-            return None
-
-    def initfiles(self):
-        self.specmine = 0
-        self.defsmine = 0
-        self.scanmine = 0
-        self.htmlmine = 0
-        self.specfile = sys.stdout
-        self.defsfile = None
-        self.scanfile = sys.stdin
-        self.htmlfile = None
-        self.lineno = 0
-        self.line = ""
-
-    def initpaths(self):
-        self.includepath = [os.curdir, INCLUDEDIR]
-
-    def initpatterns(self):
-        self.head_pat = r"^EXTERN_API[^_]"
-        self.tail_pat = r"[;={}]"
-        self.type_pat = r"EXTERN_API" + \
-                        r"[ \t\n]*\([ \t\n]*" + \
-                        r"(?P<type>[a-zA-Z0-9_* \t]*[a-zA-Z0-9_*])" + \
-                        r"[ \t\n]*\)[ \t\n]*"
-        self.name_pat = r"(?P<name>[a-zA-Z0-9_]+)[ \t\n]*"
-        self.args_pat = r"\((?P<args>([^\(;=\)]+|\([^\(;=\)]*\))*)\)"
-        self.whole_pat = self.type_pat + self.name_pat + self.args_pat
-        self.sym_pat = r"^[ \t]*(?P<name>[a-zA-Z0-9_]+)[ \t]*=" + \
-                       r"[ \t]*(?P<defn>[-0-9_a-zA-Z'\"\(][^\t\n,;}]*),?"
-        self.asplit_pat = r"^(?P<type>.*[^a-zA-Z0-9_])(?P<name>[a-zA-Z0-9_]+)(?P<array>\[\])?$"
-        self.comment1_pat = r"(?P<rest>.*)//.*"
-        # note that the next pattern only removes comments that are wholly within one line
-        self.comment2_pat = r"(?P<rest1>.*)/\*.*\*/(?P<rest2>.*)"
-
-    def compilepatterns(self):
-        for name in dir(self):
-            if name[-4:] == "_pat":
-                pat = getattr(self, name)
-                prog = re.compile(pat)
-                setattr(self, name[:-4], prog)
-
-    def initosspecifics(self):
-        if MacOS and CREATOR:
-            self.filetype = 'TEXT'
-            self.filecreator = CREATOR
-        else:
-            self.filetype = self.filecreator = None
-
-    def setfiletype(self, filename):
-        if MacOS and (self.filecreator or self.filetype):
-            creator, type = MacOS.GetCreatorAndType(filename)
-            if self.filecreator: creator = self.filecreator
-            if self.filetype: type = self.filetype
-            MacOS.SetCreatorAndType(filename, creator, type)
-
-    def close(self):
-        self.closefiles()
-
-    def closefiles(self):
-        self.closespec()
-        self.closedefs()
-        self.closescan()
-        self.closehtml()
-
-    def closespec(self):
-        tmp = self.specmine and self.specfile
-        self.specfile = None
-        if tmp: tmp.close()
-
-    def closedefs(self):
-        tmp = self.defsmine and self.defsfile
-        self.defsfile = None
-        if tmp: tmp.close()
-
-    def closescan(self):
-        tmp = self.scanmine and self.scanfile
-        self.scanfile = None
-        if tmp: tmp.close()
-
-    def closehtml(self):
-        if self.htmlfile: self.htmlfile.write(ENDHTMLREPORT)
-        tmp = self.htmlmine and self.htmlfile
-        self.htmlfile = None
-        if tmp: tmp.close()
-
-    def setoutput(self, spec, defs = None):
-        self.closespec()
-        self.closedefs()
-        if spec:
-            if type(spec) == StringType:
-                file = self.openoutput(spec)
-                mine = 1
-            else:
-                file = spec
-                mine = 0
-            self.specfile = file
-            self.specmine = mine
-        if defs:
-            if type(defs) == StringType:
-                file = self.openoutput(defs)
-                mine = 1
-            else:
-                file = defs
-                mine = 0
-            self.defsfile = file
-            self.defsmine = mine
-
-    def sethtmloutput(self, htmlfile):
-        self.closehtml()
-        if htmlfile:
-            if type(htmlfile) == StringType:
-                file = self.openoutput(htmlfile)
-                mine = 1
-            else:
-                file = htmlfile
-                mine = 0
-            self.htmlfile = file
-            self.htmlmine = mine
-            self.htmlfile.write(BEGINHTMLREPORT)
-
-    def openoutput(self, filename):
-        try:
-            file = open(filename, 'w')
-        except IOError as arg:
-            raise IOError(filename, arg)
-        self.setfiletype(filename)
-        return file
-
-    def setinput(self, scan = sys.stdin):
-        if not type(scan) in (TupleType, ListType):
-            scan = [scan]
-        self.allscaninputs = scan
-        self._nextinput()
-
-    def _nextinput(self):
-        if not self.allscaninputs:
-            return 0
-        scan = self.allscaninputs[0]
-        self.allscaninputs = self.allscaninputs[1:]
-        self.closescan()
-        if scan:
-            if type(scan) == StringType:
-                file = self.openinput(scan)
-                mine = 1
-            else:
-                file = scan
-                mine = 0
-            self.scanfile = file
-            self.scanmine = mine
-        self.lineno = 0
-        return 1
-
-    def openinput(self, filename):
-        if not os.path.isabs(filename):
-            for dir in self.includepath:
-                fullname = os.path.join(dir, filename)
-                #self.report("trying full name %r", fullname)
-                try:
-                    return open(fullname, 'rU')
-                except IOError:
-                    pass
-        # If not on the path, or absolute, try default open()
-        try:
-            return open(filename, 'rU')
-        except IOError as arg:
-            raise IOError(arg, filename)
-
-    def getline(self):
-        if not self.scanfile:
-            raise Error("input file not set")
-        self.line = self.scanfile.readline()
-        if not self.line:
-            if self._nextinput():
-                return self.getline()
-            raise EOFError
-        self.lineno = self.lineno + 1
-        return self.line
-
-    def scan(self):
-        if not self.scanfile:
-            self.error("No input file has been specified")
-            return
-        inputname = self.scanfile.name
-        self.report("scanfile = %r", inputname)
-        if not self.specfile:
-            self.report("(No interface specifications will be written)")
-        else:
-            self.report("specfile = %r", self.specfile.name)
-            self.specfile.write("# Generated from %r\n\n" % (inputname,))
-        if not self.defsfile:
-            self.report("(No symbol definitions will be written)")
-        else:
-            self.report("defsfile = %r", (self.defsfile.name,))
-            self.defsfile.write("# Generated from %r\n\n" % (os.path.split(inputname)[1],))
-            self.writeinitialdefs()
-        self.alreadydone = []
-        try:
-            while 1:
-                try: line = self.getline()
-                except EOFError: break
-                if self.debug:
-                    self.report("LINE: %r" % (line,))
-                match = self.comment1.match(line)
-                if match:
-                    self.htmlreport(line, klass='commentstripping', ranges=[(
-                        match.start('rest'), match.end('rest'), 'notcomment')])
-                    line = match.group('rest')
-                    if self.debug:
-                        self.report("\tafter comment1: %r" % (line,))
-                match = self.comment2.match(line)
-                while match:
-                    if match:
-                        self.htmlreport(line, klass='commentstripping', ranges=[
-                            (match.start('rest1'), match.end('rest1'), 'notcomment'),
-                            (match.start('rest2'), match.end('rest2'), 'notcomment')])
-                    line = match.group('rest1')+match.group('rest2')
-                    if self.debug:
-                        self.report("\tafter comment2: %r" % (line,))
-                    match = self.comment2.match(line)
-                if self.defsfile:
-                    match = self.sym.match(line)
-                    if match:
-                        if self.debug:
-                            self.report("\tmatches sym.")
-                        self.dosymdef(match, line)
-                        continue
-                match = self.head.match(line)
-                if match:
-                    if self.debug:
-                        self.report("\tmatches head.")
-                    self.dofuncspec()
-                    continue
-                self.htmlreport(line, klass='unmatched')
-        except EOFError:
-            self.error("Uncaught EOF error")
-        self.reportusedtypes()
-
-    def dosymdef(self, match, line):
-        name, defn = match.group('name', 'defn')
-        self.htmlreport(line, klass='constant', ranges=[
-            (match.start('name'), match.end('name'), 'name'),
-            (match.start('defn'), match.end('defn'), 'value')])
-        defn = escape8bit(defn)
-        if self.debug:
-            self.report("\tsym: name=%r, defn=%r" % (name, defn))
-        if not name in self.blacklistnames:
-            oline = "%s = %s\n" % (name, defn)
-            self.defsfile.write(oline)
-            self.htmlreport(oline, klass="pyconstant")
-        else:
-            self.defsfile.write("# %s = %s\n" % (name, defn))
-            self.htmlreport("** no output: name is blacklisted", klass="blconstant")
-        # XXXX No way to handle greylisted names
-
-    def dofuncspec(self):
-        raw = self.line
-        while not self.tail.search(raw):
-            line = self.getline()
-            if self.debug:
-                self.report("* CONTINUATION LINE: %r" % (line,))
-            match = self.comment1.match(line)
-            if match:
-                line = match.group('rest')
-                if self.debug:
-                    self.report("\tafter comment1: %r" % (line,))
-            match = self.comment2.match(line)
-            while match:
-                line = match.group('rest1')+match.group('rest2')
-                if self.debug:
-                    self.report("\tafter comment1: %r" % (line,))
-                match = self.comment2.match(line)
-            raw = raw + line
-        if self.debug:
-            self.report("* WHOLE LINE: %r" % (raw,))
-        self.processrawspec(raw)
-        return raw
-
-    def processrawspec(self, raw):
-        match = self.whole.search(raw)
-        if not match:
-            self.report("Bad raw spec: %r", raw)
-            if self.debug:
-                match = self.type.search(raw)
-                if not match:
-                    self.report("(Type already doesn't match)")
-                    self.htmlreport(raw, klass='incomplete', ranges=[(
-                        match.start('type'), match.end('type'), 'type')])
-                else:
-                    self.report("(but type matched)")
-                    self.htmlreport(raw, klass='incomplete')
-            return
-        type, name, args = match.group('type', 'name', 'args')
-        ranges=[
-                (match.start('type'), match.end('type'), 'type'),
-                (match.start('name'), match.end('name'), 'name'),
-                (match.start('args'), match.end('args'), 'arglist')]
-        self.htmlreport(raw, klass='declaration', ranges=ranges)
-        modifiers = self.getmodifiers(match)
-        type = self.pythonizename(type)
-        name = self.pythonizename(name)
-        if self.checkduplicate(name):
-            self.htmlreport("*** no output generated: duplicate name", klass="blacklisted")
-            return
-        self.report("==> %s %s <==", type, name)
-        if self.blacklisted(type, name):
-            self.htmlreport("*** no output generated: function name or return type blacklisted", klass="blacklisted")
-            self.report("*** %s %s blacklisted", type, name)
-            return
-        returnlist = [(type, name, 'ReturnMode')]
-        returnlist = self.repairarglist(name, returnlist)
-        [(type, name, returnmode)] = returnlist
-        arglist = self.extractarglist(args)
-        arglist = self.repairarglist(name, arglist)
-        if self.unmanageable(type, name, arglist):
-            self.htmlreport("*** no output generated: some argument blacklisted", klass="blacklisted")
-            ##for arg in arglist:
-            ##  self.report("    %r", arg)
-            self.report("*** %s %s unmanageable", type, name)
-            return
-        if modifiers:
-            self.generate(type, name, arglist, modifiers)
-        else:
-            self.generate(type, name, arglist)
-
-    def getmodifiers(self, match):
-        return []
-
-    def checkduplicate(self, name):
-        if name in self.alreadydone:
-            self.report("Name has already been defined: %r", name)
-            return True
-        self.alreadydone.append(name)
-        return False
-
-    def pythonizename(self, name):
-        name = re.sub("\*", " ptr", name)
-        name = name.strip()
-        name = re.sub("[ \t]+", "_", name)
-        return name
-
-    def extractarglist(self, args):
-        args = args.strip()
-        if not args or args == "void":
-            return []
-        parts = [s.strip() for s in args.split(",")]
-        arglist = []
-        for part in parts:
-            arg = self.extractarg(part)
-            arglist.append(arg)
-        return arglist
-
-    def extractarg(self, part):
-        mode = "InMode"
-        part = part.strip()
-        match = self.asplit.match(part)
-        if not match:
-            self.error("Indecipherable argument: %r", part)
-            return ("unknown", part, mode)
-        type, name, array = match.group('type', 'name', 'array')
-        if array:
-            # array matches an optional [] after the argument name
-            type = type + " ptr "
-        type = self.pythonizename(type)
-        return self.modifyarg(type, name, mode)
-
-    def modifyarg(self, type, name, mode):
-        if type[:6] == "const_":
-            type = type[6:]
-        elif type[-4:] == "_ptr":
-            type = type[:-4]
-            mode = "OutMode"
-        elif type in self.inherentpointertypes:
-            mode = "OutMode"
-        if type[-4:] == "_far":
-            type = type[:-4]
-        return type, name, mode
-
-    def repairarglist(self, functionname, arglist):
-        arglist = arglist[:]
-        i = 0
-        while i < len(arglist):
-            for item in self.repairinstructions:
-                if len(item) == 2:
-                    pattern, replacement = item
-                    functionpat = "*"
-                else:
-                    functionpat, pattern, replacement = item
-                if not fnmatch.fnmatchcase(functionname, functionpat):
-                    continue
-                n = len(pattern)
-                if i+n > len(arglist): continue
-                current = arglist[i:i+n]
-                for j in range(n):
-                    if not self.matcharg(pattern[j], current[j]):
-                        break
-                else: # All items of the pattern match
-                    new = self.substituteargs(
-                            pattern, replacement, current)
-                    if new is not None:
-                        arglist[i:i+n] = new
-                        i = i+len(new) # No recursive substitutions
-                        break
-            else: # No patterns match
-                i = i+1
-        return arglist
-
-    def matcharg(self, patarg, arg):
-        return len(f for f in map(fnmatch.fnmatchcase, arg, patarg) if f) == 3
-
-    def substituteargs(self, pattern, replacement, old):
-        new = []
-        for k in range(len(replacement)):
-            item = replacement[k]
-            newitem = [item[0], item[1], item[2]]
-            for i in range(3):
-                if item[i] == '*':
-                    newitem[i] = old[k][i]
-                elif item[i][:1] == '$':
-                    index = int(item[i][1:]) - 1
-                    newitem[i] = old[index][i]
-            new.append(tuple(newitem))
-        ##self.report("old: %r", old)
-        ##self.report("new: %r", new)
-        return new
-
-    def generate(self, tp, name, arglist, modifiers=[]):
-
-        self.typeused(tp, 'return')
-        if modifiers:
-            classname, listname = self.destination(tp, name, arglist, modifiers)
-        else:
-            classname, listname = self.destination(tp, name, arglist)
-        if not classname or not listname:
-            self.htmlreport("*** no output generated: self.destination() returned None", klass="blacklisted")
-            return
-        if not self.specfile:
-            self.htmlreport("*** no output generated: no output file specified", klass="blacklisted")
-            return
-        self.specfile.write("f = %s(%s, %r,\n" % (classname, tp, name))
-        for atype, aname, amode in arglist:
-            self.typeused(atype, amode)
-            self.specfile.write("    (%s, %r, %s),\n" %
-                                (atype, aname, amode))
-        if name in self.greydictnames:
-            self.specfile.write("    condition=%r,\n"%(self.greydictnames[name],))
-        self.generatemodifiers(classname, name, modifiers)
-        self.specfile.write(")\n")
-        self.specfile.write("%s.append(f)\n\n" % listname)
-        if self.htmlfile:
-            oline = "Adding to %s:\n%s(returntype=%s, name=%r" % (listname, classname, tp, name)
-            for atype, aname, amode in arglist:
-                oline += ",\n    (%s, %r, %s)" % (atype, aname, amode)
-            oline += ")\n"
-            self.htmlreport(oline, klass="pydeclaration")
-
-    def destination(self, type, name, arglist):
-        return "FunctionGenerator", "functions"
-
-    def generatemodifiers(self, classname, name, modifiers):
-        pass
-
-    def blacklisted(self, type, name):
-        if type in self.blacklisttypes:
-            ##self.report("return type %s is blacklisted", type)
-            return 1
-        if name in self.blacklistnames:
-            ##self.report("function name %s is blacklisted", name)
-            return 1
-        return 0
-
-    def unmanageable(self, type, name, arglist):
-        for atype, aname, amode in arglist:
-            if atype in self.blacklisttypes:
-                self.report("argument type %s is blacklisted", atype)
-                return 1
-        return 0
-
-    def htmlreport(self, line, klass=None, ranges=None):
-        if not self.htmlfile: return
-        if ranges is None:
-            ranges = []
-        if klass:
-            ranges.insert(0, (0, len(line), klass))
-        oline = ''
-        i = 0
-        for c in line:
-            for b, e, name in ranges:
-                if b == i:
-                    oline += '<span class="%s">' % name
-                if e == i:
-                    oline += '</span>'
-            i += 1
-
-            if c == '<': oline += '&lt;'
-            elif c == '>': oline += '&gt;'
-            else: oline += c
-        for b, e, name in ranges:
-            if b >= i:
-                oline += '<span class="%s">' % name
-            if e >= i:
-                oline += '</span>'
-        if not line or line[-1] != '\n':
-            oline += '\n'
-        self.htmlfile.write(oline)
-
-class Scanner_PreUH3(Scanner):
-    """Scanner for Universal Headers before release 3"""
-    def initpatterns(self):
-        Scanner.initpatterns(self)
-        self.head_pat = "^extern pascal[ \t]+" # XXX Mac specific!
-        self.type_pat = "pascal[ \t\n]+(?P<type>[a-zA-Z0-9_ \t]*[a-zA-Z0-9_])[ \t\n]+"
-        self.whole_pat = self.type_pat + self.name_pat + self.args_pat
-        self.sym_pat = "^[ \t]*(?P<name>[a-zA-Z0-9_]+)[ \t]*=" + \
-                       "[ \t]*(?P<defn>[-0-9'\"][^\t\n,;}]*),?"
-
-class Scanner_OSX(Scanner):
-    """Scanner for modern (post UH3.3) Universal Headers """
-    def initpatterns(self):
-        Scanner.initpatterns(self)
-        self.head_pat = "^EXTERN_API(_C)?"
-        self.type_pat = "EXTERN_API(_C)?" + \
-                        "[ \t\n]*\([ \t\n]*" + \
-                        "(?P<type>[a-zA-Z0-9_* \t]*[a-zA-Z0-9_*])" + \
-                        "[ \t\n]*\)[ \t\n]*"
-        self.whole_pat = self.type_pat + self.name_pat + self.args_pat
-        self.sym_pat = "^[ \t]*(?P<name>[a-zA-Z0-9_]+)[ \t]*=" + \
-                       "[ \t]*(?P<defn>[-0-9_a-zA-Z'\"\(][^\t\n,;}]*),?"
-
-_8bit = re.compile(r"[\200-\377]")
-
-def escape8bit(s):
-    if _8bit.search(s) is not None:
-        out = []
-        for c in s:
-            o = ord(c)
-            if o >= 128:
-                out.append("\\" + hex(o)[1:])
-            else:
-                out.append(c)
-        s = "".join(out)
-    return s
-
-def test():
-    input = "D:Development:THINK C:Mac #includes:Apple #includes:AppleEvents.h"
-    output = "@aespecs.py"
-    defsoutput = "@aedefs.py"
-    s = Scanner(input, output, defsoutput)
-    s.scan()
-
-if __name__ == '__main__':
-    test()