Index: openafs/src/WINNT/afsadmsvr/.cvsignore
diff -c /dev/null openafs/src/WINNT/afsadmsvr/.cvsignore:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:18 2005
--- openafs/src/WINNT/afsadmsvr/.cvsignore	Fri Mar 11 02:22:37 2005
***************
*** 0 ****
--- 1,5 ----
+ iTaAfsAdmSvr.h
+ iTaAfsAdmSvrTypes.h
+ iTaAfsAdmSvr_c.c
+ iTaAfsAdmSvr_s.c
+ 
Index: openafs/src/WINNT/afsapplib/NTMakefile
diff -c openafs/src/WINNT/afsapplib/NTMakefile:1.5.2.3 openafs/src/WINNT/afsapplib/NTMakefile:1.5.2.4
*** openafs/src/WINNT/afsapplib/NTMakefile:1.5.2.3	Tue Dec  7 01:00:54 2004
--- openafs/src/WINNT/afsapplib/NTMakefile	Fri Mar 11 01:58:36 2005
***************
*** 127,132 ****
--- 127,133 ----
  
  clean::
  	$(CD) lang
+         @if exist AFS_component_version_number.h del AFS_component_version_number.h
  	for /f %l in ('dir /B ??_??') do ( if exist @$(NTLANG) do @$(NTLANG) %l $(MAKECMD) /nologo /f NTMakefile clean )
  	$(CD) ..
  
Index: openafs/src/WINNT/afsd/NTMakefile
diff -c openafs/src/WINNT/afsd/NTMakefile:1.27.2.6 openafs/src/WINNT/afsd/NTMakefile:1.27.2.7
*** openafs/src/WINNT/afsd/NTMakefile:1.27.2.6	Tue Dec  7 01:02:22 2004
--- openafs/src/WINNT/afsd/NTMakefile	Fri Mar 11 01:58:37 2005
***************
*** 62,71 ****
  	$(INCFILEDIR)\cm_dnlc.h \
  	$(INCFILEDIR)\cm_buf.h \
  	$(INCFILEDIR)\cm_freelance.h \
!     $(INCFILEDIR)\afsd_eventlog.h \
!     $(INCFILEDIR)\afsd_eventmessages.h \
!     $(INCFILEDIR)\afskfw.h \
!     $(INCFILEDIR)\afsicf.h
  
  IDLFILES =\
  	afsrpc.h $(OUT)\afsrpc_c.obj
--- 62,72 ----
  	$(INCFILEDIR)\cm_dnlc.h \
  	$(INCFILEDIR)\cm_buf.h \
  	$(INCFILEDIR)\cm_freelance.h \
!         $(INCFILEDIR)\cm_memmap.h \
!         $(INCFILEDIR)\afsd_eventlog.h \
!         $(INCFILEDIR)\afsd_eventmessages.h \
!         $(INCFILEDIR)\afskfw.h \
!         $(INCFILEDIR)\afsicf.h
  
  IDLFILES =\
  	afsrpc.h $(OUT)\afsrpc_c.obj
***************
*** 111,124 ****
  	$(OUT)\cm_aclent.obj \
  	$(OUT)\cm_dnlc.obj \
  	$(OUT)\cm_rpc.obj \
  	$(OUT)\afsrpc_s.obj \
  !IFDEF OSICRASH
  	$(OUT)\afsdcrash.obj \
  !ENDIF
!     $(OUT)\cm_freelance.obj \
!     $(OUT)\afsd_eventlog.obj \
!     $(OUT)\afsd_flushvol.obj \
!     $(OUT)\afsicf.obj
  
  $(AFSDOBJS):
  
--- 112,126 ----
  	$(OUT)\cm_aclent.obj \
  	$(OUT)\cm_dnlc.obj \
  	$(OUT)\cm_rpc.obj \
+         $(OUT)\cm_memmap.obj \
  	$(OUT)\afsrpc_s.obj \
  !IFDEF OSICRASH
  	$(OUT)\afsdcrash.obj \
  !ENDIF
!         $(OUT)\cm_freelance.obj \
!         $(OUT)\afsd_eventlog.obj \
!         $(OUT)\afsd_flushvol.obj \
!         $(OUT)\afsicf.obj
  
  $(AFSDOBJS):
  
***************
*** 127,132 ****
--- 129,136 ----
  
  FSOBJS=$(OUT)\fs.obj $(OUT)\fs_utils.obj
  
+ CMDBGOBJS=$(OUT)\cmdebug.obj
+ 
  SLOBJS=$(OUT)\symlink.obj $(OUT)\fs_utils.obj
  
  ILIBDIR = $(DESTDIR)\lib
***************
*** 272,281 ****
  	$(EXEDIR)\klog.exe \
  	$(EXEDIR)\tokens.exe \
  	$(EXEDIR)\unlog.exe $(EXEDIR)\afsd.exe $(EXEDIR)\afsd_service.exe \
! 	$(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
  	$(LOGON_DLLFILE) \
  	$(EXEDIR)\afsshare.exe \
! 	$(DESTDIR)\bin\kpasswd.exe
  
  install9X: install_headers $(CONF_DLLFILE) \
  	$(EXEDIR)\klog.exe \
--- 276,287 ----
  	$(EXEDIR)\klog.exe \
  	$(EXEDIR)\tokens.exe \
  	$(EXEDIR)\unlog.exe $(EXEDIR)\afsd.exe $(EXEDIR)\afsd_service.exe \
! 	$(EXEDIR)\fs.exe \
!         $(EXEDIR)\symlink.exe \
!         $(EXEDIR)\afsdacl.exe \
  	$(LOGON_DLLFILE) \
  	$(EXEDIR)\afsshare.exe \
! 	$(DESTDIR)\bin\kpasswd.exe $(EXEDIR)\cmdebug.exe
  
  install9X: install_headers $(CONF_DLLFILE) \
  	$(EXEDIR)\klog.exe \
***************
*** 292,298 ****
  	$(EXEDIR)\unlog.exe \
  	$(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
  	$(EXEDIR)\afsshare.exe \
! 	$(DESTDIR)\bin\kpasswd.exe
  
  ############################################################################
  # Local clean target; augments predefined clean target
--- 298,304 ----
  	$(EXEDIR)\unlog.exe \
  	$(EXEDIR)\fs.exe $(EXEDIR)\symlink.exe \
  	$(EXEDIR)\afsshare.exe \
! 	$(DESTDIR)\bin\kpasswd.exe $(EXEDIR)\cmdebug.exe
  
  ############################################################################
  # Local clean target; augments predefined clean target
***************
*** 318,336 ****
  	$(DESTDIR)\lib\libosi.lib \
  	$(DESTDIR)\lib\libafsconf.lib
  
  # klog.exe
  $(EXEDIR)\klog.exe: $(OUT)\cklog.obj $(OUT)\klog.res $(EXELIBS)
! 	$(EXECONLINK) dnsapi.lib mpr.lib
  	$(EXEPREP)
  
  # tokens.exe
  $(EXEDIR)\tokens.exe: $(OUT)\ctokens.obj $(OUT)\tokens.res $(EXELIBS)
! 	$(EXECONLINK) dnsapi.lib mpr.lib
  	$(EXEPREP)
  
  # unlog.exe
  $(EXEDIR)\unlog.exe: $(OUT)\cunlog.obj $(OUT)\unlog.res $(EXELIBS)
! 	$(EXECONLINK) dnsapi.lib mpr.lib
  	$(EXEPREP)
  
  # afsd.exe
--- 324,356 ----
  	$(DESTDIR)\lib\libosi.lib \
  	$(DESTDIR)\lib\libafsconf.lib
  
+ EXELIBS2 = \
+         $(DESTDIR)\lib\afsrpc.lib \
+ 	$(DESTDIR)\lib\afs\afsprot.lib \
+ 	$(DESTDIR)\lib\afs\afspioctl.lib \
+ 	$(DESTDIR)\lib\afs\afscom_err.lib \
+ 	$(DESTDIR)\lib\afs\afscmd.lib \
+ 	$(DESTDIR)\lib\afs\afsutil.lib \
+ 	$(DESTDIR)\lib\afsubik.lib \
+ 	$(DESTDIR)\lib\afsrxkad.lib \
+ 	$(DESTDIR)\lib\afsdes.lib \
+ 	$(DESTDIR)\lib\afslwp.lib \
+ 	$(DESTDIR)\lib\libosi.lib \
+ 	$(DESTDIR)\lib\libafsconf.lib
+ 
  # klog.exe
  $(EXEDIR)\klog.exe: $(OUT)\cklog.obj $(OUT)\klog.res $(EXELIBS)
! 	$(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
  	$(EXEPREP)
  
  # tokens.exe
  $(EXEDIR)\tokens.exe: $(OUT)\ctokens.obj $(OUT)\tokens.res $(EXELIBS)
! 	$(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
  	$(EXEPREP)
  
  # unlog.exe
  $(EXEDIR)\unlog.exe: $(OUT)\cunlog.obj $(OUT)\unlog.res $(EXELIBS)
! 	$(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
  	$(EXEPREP)
  
  # afsd.exe
***************
*** 347,353 ****
          mpr.lib \
          secur32.lib \
          ole32.lib \
!         oleaut32.lib
  
  AFSD_EXELIBS =\
  	$(DESTDIR)\lib\libosi.lib \
--- 367,374 ----
          mpr.lib \
          secur32.lib \
          ole32.lib \
!         oleaut32.lib \
!         iphlpapi.lib
  
  AFSD_EXELIBS =\
  	$(DESTDIR)\lib\libosi.lib \
***************
*** 371,382 ****
  
  # fs.exe
  $(EXEDIR)\fs.exe: $(FSOBJS) $(OUT)\fs.res $(EXELIBS)
! 	$(EXECONLINK) dnsapi.lib mpr.lib
  	$(EXEPREP)
  
  # symlink.exe
  $(EXEDIR)\symlink.exe: $(SLOBJS) $(OUT)\symlink.res  $(EXELIBS)
! 	$(EXECONLINK) dnsapi.lib mpr.lib
  	$(EXEPREP)
  
  # afsshare.exe
--- 392,408 ----
  
  # fs.exe
  $(EXEDIR)\fs.exe: $(FSOBJS) $(OUT)\fs.res $(EXELIBS)
! 	$(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
! 	$(EXEPREP)
! 
! # cmdebug.exe
! $(EXEDIR)\cmdebug.exe: $(CMDBGOBJS) $(OUT)\cmdebug.res $(EXELIBS2)
! 	$(EXECONLINK) $(EXELIBS2) dnsapi.lib mpr.lib iphlpapi.lib rpcrt4.lib
  	$(EXEPREP)
  
  # symlink.exe
  $(EXEDIR)\symlink.exe: $(SLOBJS) $(OUT)\symlink.res  $(EXELIBS)
! 	$(EXECONLINK) dnsapi.lib mpr.lib iphlpapi.lib
  	$(EXEPREP)
  
  # afsshare.exe
***************
*** 384,389 ****
--- 410,420 ----
  	$(EXECONLINK)
  	$(EXEPREP)
  
+ # afsdacl.exe
+ $(EXEDIR)\afsdacl.exe: $(OUT)\afsdacl.obj $(OUT)\afsdacl.res
+ 	$(EXECONLINK)
+ 	$(EXEPREP)
+ 
  # kpasswd.exe - built in kauth, but rebuild here to make pthread-based,
  #    which is required for Windows 95.  At some point it would be nice
  #    for all commands to be pthread based, in which case they should
***************
*** 402,408 ****
  KPASSWD_LIBS =\
  	$(DESTDIR)\lib\afsauthent.lib \
  	$(DESTDIR)\lib\afsrpc.lib \
!     $(DESTDIR)\lib\afsrx.lib \
  	$(DESTDIR)\lib\afs\afscmd.lib \
  	$(DESTDIR)\lib\afsdes.lib \
  	$(DESTDIR)\lib\afs\afsutil.lib
--- 433,439 ----
  KPASSWD_LIBS =\
  	$(DESTDIR)\lib\afsauthent.lib \
  	$(DESTDIR)\lib\afsrpc.lib \
!         $(DESTDIR)\lib\afsrx.lib \
  	$(DESTDIR)\lib\afs\afscmd.lib \
  	$(DESTDIR)\lib\afsdes.lib \
  	$(DESTDIR)\lib\afs\afsutil.lib
***************
*** 455,461 ****
  	$(DEL) $(OUT)\*.res
  	$(DEL) afsrpc.h
  	$(DEL) afsrpc_?.*
!     $(DEL) afsd_eventmessages.h
  	$(DEL) $(CONF_DLLFILE)
  	$(DEL) $(LOGON_DLLFILE)
  	$(DEL) $(LOG95_DLLFILE)
--- 486,492 ----
  	$(DEL) $(OUT)\*.res
  	$(DEL) afsrpc.h
  	$(DEL) afsrpc_?.*
!         $(DEL) afsd_eventmessages.h
  	$(DEL) $(CONF_DLLFILE)
  	$(DEL) $(LOGON_DLLFILE)
  	$(DEL) $(LOG95_DLLFILE)
Index: openafs/src/WINNT/afsd/afsd.h
diff -c openafs/src/WINNT/afsd/afsd.h:1.5.2.1 openafs/src/WINNT/afsd/afsd.h:1.5.2.2
*** openafs/src/WINNT/afsd/afsd.h:1.5.2.1	Tue Dec  7 01:01:41 2004
--- openafs/src/WINNT/afsd/afsd.h	Fri Mar 11 01:58:37 2005
***************
*** 39,44 ****
--- 39,45 ----
  #include <afs/prs_fs.h>
  
  #include <osi.h>
+ #include "cm_config.h"
  #include "cm_user.h"
  #include "cm_callback.h"
  #ifdef DISKCACHE95
***************
*** 47,65 ****
  #include "cm_conn.h"
  #include "cm_aclent.h"
  #include "cm_cell.h"
- #include "cm_config.h"
  #include "cm_server.h"
- #include "cm_volume.h"
  #include "cm_scache.h"
  #include "cm_dcache.h"
  #include "cm_access.h"
  #include "cm_vnodeops.h"
  #include "cm_dir.h"
- #include "cm_utils.h"
  #include "cm_daemon.h"
  #include "cm_ioctl.h"
  #include "cm_dnlc.h"
  #include "cm_buf.h"
  #include "cm_freelance.h"
  #include "smb_ioctl.h"
  #include "afsd_init.h"
--- 48,66 ----
  #include "cm_conn.h"
  #include "cm_aclent.h"
  #include "cm_cell.h"
  #include "cm_server.h"
  #include "cm_scache.h"
+ #include "cm_volume.h"
  #include "cm_dcache.h"
  #include "cm_access.h"
+ #include "cm_utils.h"
  #include "cm_vnodeops.h"
  #include "cm_dir.h"
  #include "cm_daemon.h"
  #include "cm_ioctl.h"
  #include "cm_dnlc.h"
  #include "cm_buf.h"
+ #include "cm_memmap.h"
  #include "cm_freelance.h"
  #include "smb_ioctl.h"
  #include "afsd_init.h"
***************
*** 100,128 ****
  extern BOOL reportSessionStartups;
  
  #ifdef AFS_FREELANCE_CLIENT
  
! // yj: Variables used by Freelance Client
! extern char *cm_FakeRootDir;						// the fake root.afs directory
! 
! extern int cm_noLocalMountPoints;					// no. of fake mountpoints
  
  extern cm_localMountPoint_t* cm_localMountPoints;	// array of fake mountpoints
  
! extern int cm_fakeDirSize;							// size (in bytes) of fake root.afs directory
  
! extern int cm_fakeDirCallback;						// state of the fake root.afs directory. indicates
  													// if it needs to be refreshed
  
! extern int cm_fakeGettingCallback;					// 1 if currently updating the fake root.afs directory,
  													// 0 otherwise
  
! extern int cm_fakeDirVersion;						// the version number of the root.afs directory. used 
! 													// invalidate all the buffers containing root.afs data
! 													// after reinitialization
! // ------------------------------------------
  #endif /* AFS_FREELANCE_CLIENT */
  
  extern int cm_dnsEnabled;
  extern int cm_freelanceEnabled;
  
  #endif /* AFSD_H_ENV */
--- 101,131 ----
  extern BOOL reportSessionStartups;
  
  #ifdef AFS_FREELANCE_CLIENT
+ extern char *cm_FakeRootDir;				// the fake root.afs directory
  
! extern int cm_noLocalMountPoints;			// no. of fake mountpoints
  
  extern cm_localMountPoint_t* cm_localMountPoints;	// array of fake mountpoints
  
! extern int cm_fakeDirSize;				// size (in bytes) of fake root.afs directory
  
! extern int cm_fakeDirCallback;				// state of the fake root.afs directory. indicates
  													// if it needs to be refreshed
  
! extern int cm_fakeGettingCallback;			// 1 if currently updating the fake root.afs directory,
  													// 0 otherwise
  
! extern int cm_fakeDirVersion;				// the version number of the root.afs directory. used 
  #endif /* AFS_FREELANCE_CLIENT */
  
  extern int cm_dnsEnabled;
  extern int cm_freelanceEnabled;
  
+ #define CAPABILITY_ERRORTRANS (1<<0)
+ #define CAPABILITY_BITS 1
+ 
+ #define DFS_SUPPORT 1
+ #define LOG_PACKET 1
+ #undef  NOTSERVICE
+ 
  #endif /* AFSD_H_ENV */
Index: openafs/src/WINNT/afsd/afsd_eventlog.c
diff -c openafs/src/WINNT/afsd/afsd_eventlog.c:1.1 openafs/src/WINNT/afsd/afsd_eventlog.c:1.1.2.1
*** openafs/src/WINNT/afsd/afsd_eventlog.c:1.1	Thu Feb 26 14:22:44 2004
--- openafs/src/WINNT/afsd/afsd_eventlog.c	Fri Mar 11 01:58:37 2005
***************
*** 10,21 ****
  #include <windows.h>
  #include <stdarg.h>
  #include <string.h>
  #include "afsd_eventlog.h"
  
! #define SZSERVICEPATH 		"System\\CurrentControlSet\\Services\\"
! #define SZSERVICENAME		"TransarcAFSDaemon"
! 
! static CHAR	szKeyName[] = "System\\CurrentControlSet\\Services\\EventLog\\Application\\TransarcAFSDaemon";
  
  static BOOL	GetServicePath(LPTSTR lpPathBuf, PDWORD pdwPathBufSize);
  static BOOL	AddEventSource(void);
--- 10,19 ----
  #include <windows.h>
  #include <stdarg.h>
  #include <string.h>
+ #include <WINNT/afsreg.h>
  #include "afsd_eventlog.h"
  
! static CHAR	szKeyName[] = AFSREG_APPLOG_SUBKEY "\\" AFSREG_CLT_SVC_NAME;
  
  static BOOL	GetServicePath(LPTSTR lpPathBuf, PDWORD pdwPathBufSize);
  static BOOL	AddEventSource(void);
***************
*** 24,41 ****
  GetServicePath(LPTSTR lpPathBuf, PDWORD pdwPathBufSize)
  {
  	HKEY	hKey = NULL; 
- 	UCHAR	szBuf[MAX_PATH]; 
  	DWORD	dwData = 0;
  	BOOL	bRet = TRUE;
  
  	do {
- 		// Prepare path in Registry
- 		memset(szBuf, '\0', MAX_PATH);
- 		strcpy(szBuf, SZSERVICEPATH);
- 		strcat(szBuf, "TransarcAFSDaemon");
  		
  		// Open key
! 		if ( RegOpenKeyEx( HKEY_LOCAL_MACHINE, szBuf, 0, KEY_QUERY_VALUE, &hKey ) )
  		{		
  			bRet = FALSE;
  			break;
--- 22,34 ----
  GetServicePath(LPTSTR lpPathBuf, PDWORD pdwPathBufSize)
  {
  	HKEY	hKey = NULL; 
  	DWORD	dwData = 0;
  	BOOL	bRet = TRUE;
  
  	do {
  		
  		// Open key
! 		if ( RegOpenKeyEx( HKEY_LOCAL_MACHINE, AFSREG_SVR_SVC_SUBKEY, 0, KEY_QUERY_VALUE, &hKey ) )
  		{		
  			bRet = FALSE;
  			break;
***************
*** 103,109 ****
  			// Add the name to the EventMessageFile subkey. 
  			if ( RegSetValueEx(
  					hKey,			// subkey handle 
! 					"EventMessageFile",	// value name 
  					0,			// must be zero 
  					REG_EXPAND_SZ,		// value type 
  					(LPBYTE) szBuf,		// pointer to value data 
--- 96,102 ----
  			// Add the name to the EventMessageFile subkey. 
  			if ( RegSetValueEx(
  					hKey,			// subkey handle 
! 					AFSREG_SVR_APPLOG_MSGFILE_VALUE,	// value name 
  					0,			// must be zero 
  					REG_EXPAND_SZ,		// value type 
  					(LPBYTE) szBuf,		// pointer to value data 
***************
*** 119,125 ****
   
  			if ( RegSetValueEx(
  					hKey,			// subkey handle 
! 					"TypesSupported",	// value name 
  					0,			// must be zero 
  					REG_DWORD,		// value type 
  					(LPBYTE) &dwData,	// pointer to value data 
--- 112,118 ----
   
  			if ( RegSetValueEx(
  					hKey,			// subkey handle 
! 					AFSREG_SVR_APPLOG_MSGTYPE_VALUE,	// value name 
  					0,			// must be zero 
  					REG_DWORD,		// value type 
  					(LPBYTE) &dwData,	// pointer to value data 
***************
*** 137,143 ****
  			dwData = MAX_PATH;
  			if ( RegQueryValueEx( 
  					hKey,			// handle to key
! 					"EventMessageFile",	// value name
  					NULL,			// reserved
  					NULL,			// type buffer
  					(LPBYTE) szBuf,		// data buffer
--- 130,136 ----
  			dwData = MAX_PATH;
  			if ( RegQueryValueEx( 
  					hKey,			// handle to key
! 					AFSREG_SVR_APPLOG_MSGFILE_VALUE,	// value name
  					NULL,			// reserved
  					NULL,			// type buffer
  					(LPBYTE) szBuf,		// data buffer
***************
*** 187,193 ****
  		return;
  
  	// Get a handle to the event log.
! 	hEventSource = RegisterEventSource(NULL, SZSERVICENAME);
  	if (hEventSource == NULL)
  		return;
  
--- 180,186 ----
  		return;
  
  	// Get a handle to the event log.
! 	hEventSource = RegisterEventSource(NULL, AFSREG_CLT_SVC_PARAM_KEY);
  	if (hEventSource == NULL)
  		return;
  
Index: openafs/src/WINNT/afsd/afsd_init.c
diff -c openafs/src/WINNT/afsd/afsd_init.c:1.40.2.15 openafs/src/WINNT/afsd/afsd_init.c:1.40.2.17
*** openafs/src/WINNT/afsd/afsd_init.c:1.40.2.15	Sun Jan 30 23:23:57 2005
--- openafs/src/WINNT/afsd/afsd_init.c	Mon Mar 14 19:43:54 2005
***************
*** 25,55 ****
  #include <rx\rx.h>
  #include <rx\rx_null.h>
  #include <WINNT/syscfg.h>
  
  #include "smb.h"
  #include "cm_rpc.h"
  #include "lanahelper.h"
  #include <strsafe.h>
  #include "afsicf.h"
  
  extern int RXAFSCB_ExecuteRequest(struct rx_call *z_call);
  extern int RXSTATS_ExecuteRequest(struct rx_call *z_call);
  
  extern afs_int32 cryptall;
  
- char AFSConfigKeyName[] =
- 	"SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters";
- char OpenAFSConfigKeyName[] =
- 	"SOFTWARE\\OpenAFS\\Client";
- 
  osi_log_t *afsd_logp;
  
! char cm_rootVolumeName[64];
  DWORD cm_rootVolumeNameLen;
- cm_volume_t *cm_rootVolumep = NULL;
- cm_cell_t *cm_rootCellp = NULL;
- cm_fid_t cm_rootFid;
- cm_scache_t *cm_rootSCachep = NULL;
  char cm_mountRoot[1024];
  DWORD cm_mountRootLen;
  int cm_logChunkSize;
--- 25,50 ----
  #include <rx\rx.h>
  #include <rx\rx_null.h>
  #include <WINNT/syscfg.h>
+ #include <WINNT/afsreg.h>
  
  #include "smb.h"
  #include "cm_rpc.h"
  #include "lanahelper.h"
  #include <strsafe.h>
  #include "afsicf.h"
+ #include "cm_memmap.h"
  
  extern int RXAFSCB_ExecuteRequest(struct rx_call *z_call);
  extern int RXSTATS_ExecuteRequest(struct rx_call *z_call);
  
  extern afs_int32 cryptall;
  
  osi_log_t *afsd_logp;
  
! cm_config_data_t        cm_data;
! 
! char cm_rootVolumeName[VL_MAXNAMELEN];
  DWORD cm_rootVolumeNameLen;
  char cm_mountRoot[1024];
  DWORD cm_mountRootLen;
  int cm_logChunkSize;
***************
*** 58,64 ****
  char *cm_FakeRootDir;
  #endif /* freelance */
  
! int smb_UseV3;
  
  int LANadapter;
  
--- 53,59 ----
  char *cm_FakeRootDir;
  #endif /* freelance */
  
! int smb_UseV3 = 1;
  
  int LANadapter;
  
***************
*** 76,81 ****
--- 71,77 ----
  
  char cm_CachePath[MAX_PATH];
  DWORD cm_CachePathLen;
+ DWORD cm_ValidateCache = 1;
  
  BOOL isGateway = FALSE;
  
***************
*** 164,170 ****
      afsi_file = CreateFile(wd, GENERIC_WRITE, FILE_SHARE_READ, NULL,
                             OPEN_ALWAYS, FILE_FLAG_WRITE_THROUGH, NULL);
  
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSConfigKeyName,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          dummyLen = sizeof(maxLogSize);
--- 160,166 ----
      afsi_file = CreateFile(wd, GENERIC_WRITE, FILE_SHARE_READ, NULL,
                             OPEN_ALWAYS, FILE_FLAG_WRITE_THROUGH, NULL);
  
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          dummyLen = sizeof(maxLogSize);
***************
*** 263,268 ****
--- 259,268 ----
       *             check for the UnsetDisableLoopbackCheck value.  
       *             If set, set the DisableLoopbackCheck flag to 0x0 
       *             and delete the UnsetDisableLoopbackCheck value
+      *
+      * Starting in Longhorn Beta 1, an entry in the BackConnectionHostNames value will
+      * force Windows to use the loopback authentication mechanism for the specified 
+      * services.
       */
      HKEY hkLsa;
      HKEY hkMSV10;
***************
*** 314,328 ****
                                 &hkLsa) == ERROR_SUCCESS )
              {
                  dwSize = sizeof(DWORD);
!                 if ( RegQueryValueEx( hkLsa, "DisableLoopbackCheck", 0, &dwType, &dwValue, &dwSize) != ERROR_SUCCESS ||
                       dwValue == 0 ) {
                      dwType = REG_DWORD;
                      dwSize = sizeof(DWORD);
                      dwValue = 1;
!                     RegSetValueEx( hkLsa, "DisableLoopbackCheck", 0, dwType, &dwValue, dwSize);
  
                      if (RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                                         "SOFTWARE\\OpenAFS\\Client",
                                          0,
                                          NULL,
                                          REG_OPTION_NON_VOLATILE,
--- 314,328 ----
                                 &hkLsa) == ERROR_SUCCESS )
              {
                  dwSize = sizeof(DWORD);
!                 if ( RegQueryValueEx( hkLsa, "DisableLoopbackCheck", 0, &dwType, (LPBYTE)&dwValue, &dwSize) != ERROR_SUCCESS ||
                       dwValue == 0 ) {
                      dwType = REG_DWORD;
                      dwSize = sizeof(DWORD);
                      dwValue = 1;
!                     RegSetValueEx( hkLsa, "DisableLoopbackCheck", 0, dwType, (LPBYTE)&dwValue, dwSize);
  
                      if (RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                                         AFSREG_CLT_OPENAFS_SUBKEY,
                                          0,
                                          NULL,
                                          REG_OPTION_NON_VOLATILE,
***************
*** 334,340 ****
                          dwType = REG_DWORD;
                          dwSize = sizeof(DWORD);
                          dwValue = 1;
!                         RegSetValueEx( hkClient, "RemoveDisableLoopbackCheck", 0, dwType, &dwValue, dwSize);
                          RegCloseKey(hkClient);
                      }
                      RegCloseKey(hkLsa);
--- 334,340 ----
                          dwType = REG_DWORD;
                          dwSize = sizeof(DWORD);
                          dwValue = 1;
!                         RegSetValueEx( hkClient, "RemoveDisableLoopbackCheck", 0, dwType, (LPBYTE)&dwValue, dwSize);
                          RegCloseKey(hkClient);
                      }
                      RegCloseKey(hkLsa);
***************
*** 342,348 ****
              }
          } else {
              if (RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                                 "SOFTWARE\\OpenAFS\\Client",
                                  0,
                                  NULL,
                                  REG_OPTION_NON_VOLATILE,
--- 342,348 ----
              }
          } else {
              if (RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                                 AFSREG_CLT_OPENAFS_SUBKEY,
                                  0,
                                  NULL,
                                  REG_OPTION_NON_VOLATILE,
***************
*** 352,358 ****
                                  NULL) == ERROR_SUCCESS) {
  
                  dwSize = sizeof(DWORD);
!                 if ( RegQueryValueEx( hkClient, "RemoveDisableLoopbackCheck", 0, &dwType, &dwValue, &dwSize) == ERROR_SUCCESS &&
                       dwValue == 1 ) {
                      if ( RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
                                         "SYSTEM\\CurrentControlSet\\Control\\Lsa",
--- 352,358 ----
                                  NULL) == ERROR_SUCCESS) {
  
                  dwSize = sizeof(DWORD);
!                 if ( RegQueryValueEx( hkClient, "RemoveDisableLoopbackCheck", 0, &dwType, (LPBYTE)&dwValue, &dwSize) == ERROR_SUCCESS &&
                       dwValue == 1 ) {
                      if ( RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
                                         "SYSTEM\\CurrentControlSet\\Control\\Lsa",
***************
*** 372,377 ****
--- 372,528 ----
      }
  }
  
+ #if !defined(DJGPP)
+ static void afsd_InitServerPreferences(void)
+ {
+     HKEY hkPrefs = 0;
+     DWORD dwType, dwSize;
+     DWORD dwPrefs = 0;
+     DWORD dwIndex;
+     TCHAR szHost[256];
+     DWORD dwHostSize = 256;
+     DWORD dwRank;
+     struct sockaddr_in	saddr;
+     cm_server_t       *tsp;
+ 
+     if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
+                       AFSREG_CLT_OPENAFS_SUBKEY "\\Server Preferences\\VLDB",
+                       0,
+                       KEY_READ|KEY_QUERY_VALUE,
+                       &hkPrefs) == ERROR_SUCCESS) {
+ 
+         RegQueryInfoKey( hkPrefs,
+                          NULL,  /* lpClass */
+                          NULL,  /* lpcClass */
+                          NULL,  /* lpReserved */
+                          NULL,  /* lpcSubKeys */
+                          NULL,  /* lpcMaxSubKeyLen */
+                          NULL,  /* lpcMaxClassLen */
+                          &dwPrefs, /* lpcValues */
+                          NULL,  /* lpcMaxValueNameLen */
+                          NULL,  /* lpcMaxValueLen */
+                          NULL,  /* lpcbSecurityDescriptor */
+                          NULL   /* lpftLastWriteTime */
+                          );
+ 
+         for ( dwIndex = 0 ; dwIndex < dwPrefs; dwIndex++ ) {
+ 
+             dwSize = sizeof(DWORD);
+             dwHostSize = 256;
+ 
+             if (RegEnumValue( hkPrefs, dwIndex, szHost, &dwHostSize, NULL,
+                               &dwType, (LPBYTE)&dwRank, &dwSize))
+             {
+                 afsi_log("RegEnumValue(hkPrefs) failed");
+                 continue;
+             }
+ 
+             afsi_log("VLDB Server Preference: %s = %d",szHost, dwRank);
+ 
+             if (isdigit(szHost[0]))
+             {
+                 if ((saddr.sin_addr.S_un.S_addr = inet_addr (szHost)) == INADDR_NONE)
+                     continue;
+             } else {
+                 HOSTENT *pEntry;
+                 if ((pEntry = gethostbyname (szHost)) == NULL)
+                     continue;
+ 
+                 saddr.sin_addr.S_un.S_addr = *(unsigned long *)pEntry->h_addr;
+             }
+             saddr.sin_family = AF_INET;
+             dwRank += (rand() & 0x000f);
+ 
+             tsp = cm_FindServer(&saddr, CM_SERVER_VLDB);
+             if ( tsp )		/* an existing server - ref count increased */
+             {
+                 tsp->ipRank = (USHORT)dwRank; /* no need to protect by mutex*/
+ 
+                 /* set preferences for an existing vlserver */
+                 cm_ChangeRankCellVLServer(tsp);
+                 cm_PutServer(tsp);  /* decrease refcount */
+             }
+             else	/* add a new server without a cell */
+             {
+                 tsp = cm_NewServer(&saddr, CM_SERVER_VLDB, NULL); /* refcount = 1 */
+                 tsp->ipRank = (USHORT)dwRank;
+             }
+         }
+ 
+         RegCloseKey(hkPrefs);
+     }
+ 
+     if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
+                       AFSREG_CLT_OPENAFS_SUBKEY "\\Server Preferences\\File",
+                       0,
+                       KEY_READ|KEY_QUERY_VALUE,
+                       &hkPrefs) == ERROR_SUCCESS) {
+ 
+         RegQueryInfoKey( hkPrefs,
+                          NULL,  /* lpClass */
+                          NULL,  /* lpcClass */
+                          NULL,  /* lpReserved */
+                          NULL,  /* lpcSubKeys */
+                          NULL,  /* lpcMaxSubKeyLen */
+                          NULL,  /* lpcMaxClassLen */
+                          &dwPrefs, /* lpcValues */
+                          NULL,  /* lpcMaxValueNameLen */
+                          NULL,  /* lpcMaxValueLen */
+                          NULL,  /* lpcbSecurityDescriptor */
+                          NULL   /* lpftLastWriteTime */
+                          );
+ 
+         for ( dwIndex = 0 ; dwIndex < dwPrefs; dwIndex++ ) {
+ 
+             dwSize = sizeof(DWORD);
+             dwHostSize = 256;
+ 
+             if (RegEnumValue( hkPrefs, dwIndex, szHost, &dwHostSize, NULL,
+                               &dwType, (LPBYTE)&dwRank, &dwSize))
+             {
+                 afsi_log("RegEnumValue(hkPrefs) failed");
+                 continue;
+             }
+ 
+             afsi_log("File Server Preference: %s = %d",szHost, dwRank);
+ 
+             if (isdigit(szHost[0]))
+             {
+                 if ((saddr.sin_addr.S_un.S_addr = inet_addr (szHost)) == INADDR_NONE)
+                     continue;
+             } else {
+                 HOSTENT *pEntry;
+                 if ((pEntry = gethostbyname (szHost)) == NULL)
+                     continue;
+ 
+                 saddr.sin_addr.S_un.S_addr = *(unsigned long *)pEntry->h_addr;
+             }
+             saddr.sin_family = AF_INET;
+             dwRank += (rand() & 0x000f);
+ 
+             tsp = cm_FindServer(&saddr, CM_SERVER_FILE);
+             if ( tsp )		/* an existing server - ref count increased */
+             {
+                 tsp->ipRank = (USHORT)dwRank; /* no need to protect by mutex*/
+ 
+                 /* find volumes which might have RO copy 
+                 /* on server and change the ordering of 
+                  * their RO list 
+                  */
+                 cm_ChangeRankVolume(tsp);
+                 cm_PutServer(tsp);  /* decrease refcount */
+             }
+             else	/* add a new server without a cell */
+             {
+                 tsp = cm_NewServer(&saddr, CM_SERVER_FILE, NULL); /* refcount = 1 */
+                 tsp->ipRank = (USHORT)dwRank;
+             }
+         }
+ 
+         RegCloseKey(hkPrefs);
+     }
+ }
+ #endif /* DJGPP */
  
  /*
   * AFSD Initialization
***************
*** 380,389 ****
  int afsd_InitCM(char **reasonP)
  {
      osi_uid_t debugID;
!     long cacheBlocks;
!     long cacheSize;
      long logChunkSize;
!     long stats;
      long traceBufSize;
      long maxcpus;
      long ltt, ltto;
--- 531,540 ----
  int afsd_InitCM(char **reasonP)
  {
      osi_uid_t debugID;
!     DWORD cacheBlocks;
!     DWORD cacheSize;
      long logChunkSize;
!     DWORD stats;
      long traceBufSize;
      long maxcpus;
      long ltt, ltto;
***************
*** 394,400 ****
      static struct rx_securityClass *nullServerSecurityClassp;
      struct hostent *thp;
      char *msgBuf;
!     char buf[1024], *p, *q;
      HKEY parmKey;
      DWORD dummyLen;
      DWORD regType;
--- 545,551 ----
      static struct rx_securityClass *nullServerSecurityClassp;
      struct hostent *thp;
      char *msgBuf;
!     char buf[1024];
      HKEY parmKey;
      DWORD dummyLen;
      DWORD regType;
***************
*** 403,408 ****
--- 554,565 ----
      WSADATA WSAjunk;
      lana_number_t lanaNum;
      int i;
+     char *p, *q; 
+     int cm_noIPAddr;         /* number of client network interfaces */
+     int cm_IPAddr[CM_MAXINTERFACE_ADDR];    /* client's IP address in host order */
+     int cm_SubnetMask[CM_MAXINTERFACE_ADDR];/* client's subnet mask in host order*/
+     int cm_NetMtu[CM_MAXINTERFACE_ADDR];    /* client's MTU sizes */
+     int cm_NetFlags[CM_MAXINTERFACE_ADDR];  /* network flags */
  
      WSAStartup(0x0101, &WSAjunk);
  
***************
*** 429,435 ****
      srand(ntohl(cm_HostAddr));
  
      /* Look up configuration parameters in Registry */
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSConfigKeyName,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code != ERROR_SUCCESS) {
          FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM
--- 586,592 ----
      srand(ntohl(cm_HostAddr));
  
      /* Look up configuration parameters in Registry */
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code != ERROR_SUCCESS) {
          FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM
***************
*** 613,619 ****
      if (code == ERROR_SUCCESS && buf[0]) {
          if (regType == REG_EXPAND_SZ) {
              dummyLen = ExpandEnvironmentStrings(buf, cm_CachePath, sizeof(cm_CachePath));
!             if(dummyLen > sizeof(cm_CachePath)) {
                  afsi_log("Cache path [%s] longer than %d after expanding env strings", buf, sizeof(cm_CachePath));
                  osi_panic("CachePath too long", __FILE__, __LINE__);
              }
--- 770,776 ----
      if (code == ERROR_SUCCESS && buf[0]) {
          if (regType == REG_EXPAND_SZ) {
              dummyLen = ExpandEnvironmentStrings(buf, cm_CachePath, sizeof(cm_CachePath));
!             if (dummyLen > sizeof(cm_CachePath)) {
                  afsi_log("Cache path [%s] longer than %d after expanding env strings", buf, sizeof(cm_CachePath));
                  osi_panic("CachePath too long", __FILE__, __LINE__);
              }
***************
*** 633,645 ****
  
      dummyLen = sizeof(virtualCache);
      code = RegQueryValueEx(parmKey, "NonPersistentCaching", NULL, NULL,
!                             &virtualCache, &dummyLen);
!     if (code == ERROR_SUCCESS && virtualCache) {
!         buf_cacheType = CM_BUF_CACHETYPE_VIRTUAL;
!     } else {
!         buf_cacheType = CM_BUF_CACHETYPE_FILE;
      }
-     afsi_log("Cache type is %s", ((buf_cacheType == CM_BUF_CACHETYPE_FILE)?"FILE":"VIRTUAL"));
  
      dummyLen = sizeof(traceOnPanic);
      code = RegQueryValueEx(parmKey, "TrapOnPanic", NULL, NULL,
--- 790,816 ----
  
      dummyLen = sizeof(virtualCache);
      code = RegQueryValueEx(parmKey, "NonPersistentCaching", NULL, NULL,
!                             (LPBYTE)&virtualCache, &dummyLen);
!     afsi_log("Cache type is %s", (virtualCache?"VIRTUAL":"FILE"));
! 
!     if (!virtualCache) {
!         dummyLen = sizeof(cm_ValidateCache);
!         code = RegQueryValueEx(parmKey, "ValidateCache", NULL, NULL,
!                                (LPBYTE)&cm_ValidateCache, &dummyLen);
!         if ( cm_ValidateCache < 0 || cm_ValidateCache > 2 )
!             cm_ValidateCache = 1;
!         switch (cm_ValidateCache) {
!         case 0:
!             afsi_log("Cache Validation disabled");
!             break;
!         case 1:
!             afsi_log("Cache Validation on Startup");
!             break;
!         case 2:
!             afsi_log("Cache Validation on Startup and Shutdown");
!             break;
!         }
      }
  
      dummyLen = sizeof(traceOnPanic);
      code = RegQueryValueEx(parmKey, "TrapOnPanic", NULL, NULL,
***************
*** 826,832 ****
      RegCloseKey (parmKey);
  
      /* Call lanahelper to get Netbios name, lan adapter number and gateway flag */
!     if(SUCCEEDED(code = lana_GetUncServerNameEx(cm_NetbiosName, &lanaNum, &isGateway, LANA_NETBIOS_NAME_FULL))) {
          LANadapter = (lanaNum == LANA_INVALID)? -1: lanaNum;
  
          if (LANadapter != -1)
--- 997,1003 ----
      RegCloseKey (parmKey);
  
      /* Call lanahelper to get Netbios name, lan adapter number and gateway flag */
!     if (SUCCEEDED(code = lana_GetUncServerNameEx(cm_NetbiosName, &lanaNum, &isGateway, LANA_NETBIOS_NAME_FULL))) {
          LANadapter = (lanaNum == LANA_INVALID)? -1: lanaNum;
  
          if (LANadapter != -1)
***************
*** 844,856 ****
          osi_panic(buf, __FILE__, __LINE__);
      }
  
!     /* setup early variables */
!     /* These both used to be configurable. */
!     smb_UseV3 = 1;
!     buf_bufferSize = CM_CONFIGDEFAULT_BLOCKSIZE;
! 
!     /* turn from 1024 byte units into memory blocks */
!     cacheBlocks = (cacheSize * 1024) / buf_bufferSize;
          
      /* get network related info */
      cm_noIPAddr = CM_MAXINTERFACE_ADDR;
--- 1015,1021 ----
          osi_panic(buf, __FILE__, __LINE__);
      }
  
!     cacheBlocks = (cacheSize * 1024) / CM_CONFIGDEFAULT_BLOCKSIZE;
          
      /* get network related info */
      cm_noIPAddr = CM_MAXINTERFACE_ADDR;
***************
*** 869,881 ****
       */
      cm_initParams.nChunkFiles = 0;
      cm_initParams.nStatCaches = stats;
!     cm_initParams.nDataCaches = 0;
!     cm_initParams.nVolumeCaches = 0;
      cm_initParams.firstChunkSize = cm_chunkSize;
      cm_initParams.otherChunkSize = cm_chunkSize;
      cm_initParams.cacheSize = cacheSize;
      cm_initParams.setTime = 0;
!     cm_initParams.memCache = 0;
  
      /* Set RX parameters before initializing RX */
      if ( rx_nojumbo ) {
--- 1034,1046 ----
       */
      cm_initParams.nChunkFiles = 0;
      cm_initParams.nStatCaches = stats;
!     cm_initParams.nDataCaches = cacheBlocks;
!     cm_initParams.nVolumeCaches = stats/2;
      cm_initParams.firstChunkSize = cm_chunkSize;
      cm_initParams.otherChunkSize = cm_chunkSize;
      cm_initParams.cacheSize = cacheSize;
      cm_initParams.setTime = 0;
!     cm_initParams.memCache = 1;
  
      /* Set RX parameters before initializing RX */
      if ( rx_nojumbo ) {
***************
*** 897,924 ****
      /* init user daemon, and other packages */
      cm_InitUser();
  
-     cm_InitACLCache(2*stats);
- 
      cm_InitConn();
  
-     cm_InitCell();
-         
      cm_InitServer();
          
-     cm_InitVolume();
- 
      cm_InitIoctl();
          
      smb_InitIoctl();
          
      cm_InitCallback();
          
!     cm_InitSCache(stats);
!         
!     code = cm_InitDCache(0, cacheBlocks);
!     afsi_log("cm_InitDCache code %x", code);
      if (code != 0) {
!         *reasonP = "error initializing cache";
          return -1;
      }
  
--- 1062,1081 ----
      /* init user daemon, and other packages */
      cm_InitUser();
  
      cm_InitConn();
  
      cm_InitServer();
          
      cm_InitIoctl();
          
      smb_InitIoctl();
          
      cm_InitCallback();
          
!     code = cm_InitMappedMemory(virtualCache, cm_CachePath, stats, cm_chunkSize, cacheBlocks);
!     afsi_log("cm_InitMappedMemory code %x", code);
      if (code != 0) {
!         *reasonP = "error initializing cache file";
          return -1;
      }
  
***************
*** 972,984 ****
          return -1;
      }   
      else if (cm_freelanceEnabled)
!         cm_rootCellp = NULL;
  
      if (code == 0 && !cm_freelanceEnabled) 
      {
!         cm_rootCellp = cm_GetCell(rootCellName, CM_FLAG_CREATE);
!         afsi_log("cm_GetCell addr %x", (int)cm_rootCellp);
!         if (cm_rootCellp == NULL) 
          {
              *reasonP = "can't find root cell in afsdcell.ini";
              return -1;
--- 1129,1141 ----
          return -1;
      }   
      else if (cm_freelanceEnabled)
!         cm_data.rootCellp = NULL;
  
      if (code == 0 && !cm_freelanceEnabled) 
      {
!         cm_data.rootCellp = cm_GetCell(rootCellName, CM_FLAG_CREATE);
!         afsi_log("cm_GetCell addr %x", (int)cm_data.rootCellp);
!         if (cm_data.rootCellp == NULL) 
          {
              *reasonP = "can't find root cell in afsdcell.ini";
              return -1;
***************
*** 993,998 ****
--- 1150,1158 ----
      /* Initialize the RPC server for session keys */
      RpcInit();
  
+ #if !defined(DJGPP)
+     afsd_InitServerPreferences();
+ #endif
      return 0;
  }
  
***************
*** 1006,1016 ****
      /* this should really be in an init daemon from here on down */
  
      if (!cm_freelanceEnabled) {
! 		osi_Log0(afsd_logp, "Loading Root Volume from cell");
!         code = cm_GetVolumeByName(cm_rootCellp, cm_rootVolumeName, cm_rootUserp,
!                                   &req, CM_FLAG_CREATE, &cm_rootVolumep);
          afsi_log("cm_GetVolumeByName code %x root vol %x", code,
!                  (code ? (cm_volume_t *)-1 : cm_rootVolumep));
          if (code != 0) {
              *reasonP = "can't find root volume in root cell";
              return -1;
--- 1166,1176 ----
      /* this should really be in an init daemon from here on down */
  
      if (!cm_freelanceEnabled) {
!         osi_Log0(afsd_logp, "Loading Root Volume from cell");
!         code = cm_GetVolumeByName(cm_data.rootCellp, cm_rootVolumeName, cm_rootUserp,
!                                   &req, CM_FLAG_CREATE, &cm_data.rootVolumep);
          afsi_log("cm_GetVolumeByName code %x root vol %x", code,
!                  (code ? (cm_volume_t *)-1 : cm_data.rootVolumep));
          if (code != 0) {
              *reasonP = "can't find root volume in root cell";
              return -1;
***************
*** 1019,1042 ****
  
      /* compute the root fid */
      if (!cm_freelanceEnabled) {
!         cm_rootFid.cell = cm_rootCellp->cellID;
!         cm_rootFid.volume = cm_GetROVolumeID(cm_rootVolumep);
!         cm_rootFid.vnode = 1;
!         cm_rootFid.unique = 1;
      }
      else
!         cm_FakeRootFid(&cm_rootFid);
          
!     code = cm_GetSCache(&cm_rootFid, &cm_rootSCachep, cm_rootUserp, &req);
      afsi_log("cm_GetSCache code %x scache %x", code,
!              (code ? (cm_scache_t *)-1 : cm_rootSCachep));
      if (code != 0) {
          *reasonP = "unknown error";
          return -1;
      }
  
      cm_InitDaemon(numBkgD);
!     afsi_log("cm_InitDaemon");
  
      return 0;
  }
--- 1179,1202 ----
  
      /* compute the root fid */
      if (!cm_freelanceEnabled) {
!         cm_data.rootFid.cell = cm_data.rootCellp->cellID;
!         cm_data.rootFid.volume = cm_GetROVolumeID(cm_data.rootVolumep);
!         cm_data.rootFid.vnode = 1;
!         cm_data.rootFid.unique = 1;
      }
      else
!         cm_FakeRootFid(&cm_data.rootFid);
          
!     code = cm_GetSCache(&cm_data.rootFid, &cm_data.rootSCachep, cm_rootUserp, &req);
      afsi_log("cm_GetSCache code %x scache %x", code,
!              (code ? (cm_scache_t *)-1 : cm_data.rootSCachep));
      if (code != 0) {
          *reasonP = "unknown error";
          return -1;
      }
  
      cm_InitDaemon(numBkgD);
!     afsi_log("cm_InitDaemon complete");
  
      return 0;
  }
***************
*** 1048,1054 ****
      DWORD dwValue;
      DWORD code;
  
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, OpenAFSConfigKeyName,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          dummyLen = sizeof(DWORD);
--- 1208,1214 ----
      DWORD dwValue;
      DWORD code;
  
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_OPENAFS_SUBKEY,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          dummyLen = sizeof(DWORD);
Index: openafs/src/WINNT/afsd/afsd_init95.c
diff -c openafs/src/WINNT/afsd/afsd_init95.c:1.3 openafs/src/WINNT/afsd/afsd_init95.c:1.3.8.1
*** openafs/src/WINNT/afsd/afsd_init95.c:1.3	Fri Oct  5 17:40:47 2001
--- openafs/src/WINNT/afsd/afsd_init95.c	Fri Mar 11 01:58:38 2005
***************
*** 581,591 ****
  	/* setup early variables */
  	/* These both used to be configurable. */
  	smb_UseV3 = 1;
!         buf_bufferSize = CM_CONFIGDEFAULT_BLOCKSIZE;
  
  	/* turn from 1024 byte units into memory blocks */
!         cacheBlocks = (cacheSize * 1024) / buf_bufferSize;
!         afs_diskCacheChunks = (diskCacheSize * 1024) / buf_bufferSize;
          /*printf("afs_diskCacheChunks=%d\n", afs_diskCacheChunks);*/
  
          /*
--- 581,591 ----
  	/* setup early variables */
  	/* These both used to be configurable. */
  	smb_UseV3 = 1;
!         buf_blockSize = CM_CONFIGDEFAULT_BLOCKSIZE;
  
  	/* turn from 1024 byte units into memory blocks */
!         cacheBlocks = (cacheSize * 1024) / buf_blockSize;
!         afs_diskCacheChunks = (diskCacheSize * 1024) / buf_blockSize;
          /*printf("afs_diskCacheChunks=%d\n", afs_diskCacheChunks);*/
  
          /*
Index: openafs/src/WINNT/afsd/afsd_service.c
diff -c openafs/src/WINNT/afsd/afsd_service.c:1.28.2.12 openafs/src/WINNT/afsd/afsd_service.c:1.28.2.13
*** openafs/src/WINNT/afsd/afsd_service.c:1.28.2.12	Sun Jan 30 23:09:28 2005
--- openafs/src/WINNT/afsd/afsd_service.c	Fri Mar 11 01:58:38 2005
***************
*** 21,26 ****
--- 21,27 ----
  #include <stdio.h>
  #include <stdlib.h>
  #include <winsock2.h>
+ #include <WINNT\afsreg.h>
  
  #include <osi.h>
  
***************
*** 31,45 ****
  #include <crtdbg.h>
  #endif
  
! /*
! // The following is defined if you want to receive Power notifications,
! // including Hibernation, and also subsequent flushing of AFS volumes
! //
! #define REGISTER_POWER_NOTIFICATIONS 1
! #define FLUSH_VOLUME                 1
! //
! // Check
! */
  #include "afsd_flushvol.h"
  
  extern void afsi_log(char *pattern, ...);
--- 32,38 ----
  #include <crtdbg.h>
  #endif
  
! //#define REGISTER_POWER_NOTIFICATIONS 1
  #include "afsd_flushvol.h"
  
  extern void afsi_log(char *pattern, ...);
***************
*** 91,102 ****
      buf_ForceTrace(TRUE);
  
      afsi_log("--- begin dump ---");
!     cm_DumpSCache(afsi_file, "a");
  #ifdef keisa
      cm_dnlcDump(afsi_file, "a");
  #endif
!     cm_DumpBufHashTable(afsi_file, "a");
!     smb_DumpVCP(afsi_file, "a");			
      afsi_log("--- end   dump ---");
      
  #ifdef DEBUG
--- 84,95 ----
      buf_ForceTrace(TRUE);
  
      afsi_log("--- begin dump ---");
!     cm_DumpSCache(afsi_file, "a", 0);
  #ifdef keisa
      cm_dnlcDump(afsi_file, "a");
  #endif
!     cm_DumpBufHashTable(afsi_file, "a", 0);
!     smb_DumpVCP(afsi_file, "a", 0);			
      afsi_log("--- end   dump ---");
      
  #ifdef DEBUG
***************
*** 180,191 ****
          ServiceStatus.dwControlsAccepted = 0;
          SetServiceStatus(StatusHandle, &ServiceStatus);
  
! #ifdef	FLUSH_VOLUME
!         afsd_ServiceFlushVolume((DWORD) lpEventData);                         
! #endif                                                                                      
          /* Force trace if requested */
          code = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
!                              AFSConfigKeyName,
                               0, KEY_QUERY_VALUE, &parmKey);
          if (code != ERROR_SUCCESS)
              goto doneTrace;
--- 173,189 ----
          ServiceStatus.dwControlsAccepted = 0;
          SetServiceStatus(StatusHandle, &ServiceStatus);
  
!         if (ctrlCode == SERVICE_CONTROL_STOP)
!             afsi_log("SERVICE_CONTROL_STOP");
!         else
!             afsi_log("SERVICE_CONTROL_SHUTDOWN");
! 
!         /* Write all dirty buffers back to server */
!         buf_CleanAndReset();
! 
          /* Force trace if requested */
          code = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
!                              AFSREG_CLT_SVC_PARAM_SUBKEY,
                               0, KEY_QUERY_VALUE, &parmKey);
          if (code != ERROR_SUCCESS)
              goto doneTrace;
***************
*** 248,260 ****
          ServiceStatus.dwControlsAccepted = 0;
          SetServiceStatus(StatusHandle, &ServiceStatus);
  
! #ifdef	FLUSH_VOLUME
!         afsd_ServiceFlushVolume((DWORD) lpEventData);                         
! #endif                                                                                      
  
          /* Force trace if requested */
          code = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
!                             AFSConfigKeyName,
                              0, KEY_QUERY_VALUE, &parmKey);
          if (code != ERROR_SUCCESS)
              goto doneTrace;
--- 246,257 ----
          ServiceStatus.dwControlsAccepted = 0;
          SetServiceStatus(StatusHandle, &ServiceStatus);
  
!         /* Write all dirty buffers back to server */
!         buf_CleanAndReset();
  
          /* Force trace if requested */
          code = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
!                             AFSREG_CLT_SVC_PARAM_SUBKEY,
                              0, KEY_QUERY_VALUE, &parmKey);
          if (code != ERROR_SUCCESS)
              goto doneTrace;
***************
*** 283,295 ****
          ServiceStatus.dwWaitHint = 0;
          ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN | SERVICE_ACCEPT_POWEREVENT;
          SetServiceStatus(StatusHandle, &ServiceStatus);
          dwRet = NO_ERROR;
          break;
  
          /* XXX handle system shutdown */
          /* XXX handle pause & continue */
      case SERVICE_CONTROL_POWEREVENT:                                              
!         {                                                                                     
              /*                                                                                
              **	dwEventType of this notification == WPARAM of WM_POWERBROADCAST               
              **	Return NO_ERROR == return TRUE for that message, i.e. accept request          
--- 280,294 ----
          ServiceStatus.dwWaitHint = 0;
          ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN | SERVICE_ACCEPT_POWEREVENT;
          SetServiceStatus(StatusHandle, &ServiceStatus);
+         afsi_log("SERVICE_CONTROL_INTERROGATE");
          dwRet = NO_ERROR;
          break;
  
          /* XXX handle system shutdown */
          /* XXX handle pause & continue */
      case SERVICE_CONTROL_POWEREVENT:                                              
!         { 
!             afsi_log("SERVICE_CONTROL_POWEREVENT");
              /*                                                                                
              **	dwEventType of this notification == WPARAM of WM_POWERBROADCAST               
              **	Return NO_ERROR == return TRUE for that message, i.e. accept request          
***************
*** 299,327 ****
              if (powerEventsRegistered) {
                  switch((int) dwEventType)                                                         
                  {                                                                               
!                 case PBT_APMQUERYSUSPEND:                                                         
                  case PBT_APMQUERYSTANDBY:                                                         
! 
! #ifdef	FLUSH_VOLUME
!                     /* handle event */                                                            
!                     dwRet = afsd_ServiceFlushVolume((DWORD) lpEventData);                         
! #else                                                                                       
                      dwRet = NO_ERROR;                                                             
- #endif                                                                                      
                      break;                                                                        
  							                                                                  
                      /* allow remaining case PBT_WhatEver */                                           
!                 case PBT_APMSUSPEND:                                                              
!                 case PBT_APMSTANDBY:                                                              
!                 case PBT_APMRESUMECRITICAL:                                                       
                  case PBT_APMRESUMESUSPEND:                                                        
                  case PBT_APMRESUMESTANDBY:                                                        
                  case PBT_APMBATTERYLOW:                                                           
                  case PBT_APMPOWERSTATUSCHANGE:                                                    
                  case PBT_APMOEMEVENT:                                                             
                  case PBT_APMRESUMEAUTOMATIC:                                                      
                  default:                                                                          
!                     dwRet = NO_ERROR;                                                             
                  }   
              }
          }
--- 298,356 ----
              if (powerEventsRegistered) {
                  switch((int) dwEventType)                                                         
                  {                                                                               
!                 case PBT_APMQUERYSUSPEND:       
!                     afsi_log("SERVICE_CONTROL_APMQUERYSUSPEND"); 
!                     /* Write all dirty buffers back to server */
!                     buf_CleanAndReset();
!                     dwRet = NO_ERROR;                       
!                     break;                                  
                  case PBT_APMQUERYSTANDBY:                                                         
!                     afsi_log("SERVICE_CONTROL_APMQUERYSTANDBY"); 
!                     /* Write all dirty buffers back to server */
!                     buf_CleanAndReset();
                      dwRet = NO_ERROR;                                                             
                      break;                                                                        
  							                                                                  
                      /* allow remaining case PBT_WhatEver */                                           
!                 case PBT_APMSUSPEND:                         
!                     afsi_log("SERVICE_CONTROL_APMSUSPEND"); 
!                     dwRet = NO_ERROR;                       
!                     break;                                  
!                 case PBT_APMSTANDBY:                  
!                     afsi_log("SERVICE_CONTROL_APMSTANDBY"); 
!                     dwRet = NO_ERROR;                       
!                     break;                                  
!                 case PBT_APMRESUMECRITICAL:             
!                     afsi_log("SERVICE_CONTROL_APMRESUMECRITICAL"); 
!                     dwRet = NO_ERROR;                       
!                     break;                                  
                  case PBT_APMRESUMESUSPEND:                                                        
+                     afsi_log("SERVICE_CONTROL_APMRESUMESUSPEND"); 
+                     dwRet = NO_ERROR;                       
+                     break;                                  
                  case PBT_APMRESUMESTANDBY:                                                        
+                     afsi_log("SERVICE_CONTROL_APMRESUMESTANDBY"); 
+                     dwRet = NO_ERROR;                       
+                     break;                                  
                  case PBT_APMBATTERYLOW:                                                           
+                     afsi_log("SERVICE_CONTROL_APMBATTERYLOW"); 
+                     dwRet = NO_ERROR;                       
+                     break;                                  
                  case PBT_APMPOWERSTATUSCHANGE:                                                    
+                     afsi_log("SERVICE_CONTROL_APMPOWERSTATUSCHANGE"); 
+                     dwRet = NO_ERROR;                       
+                     break;                                  
                  case PBT_APMOEMEVENT:                                                             
+                     afsi_log("SERVICE_CONTROL_APMOEMEVENT"); 
+                     dwRet = NO_ERROR;                       
+                     break;                                  
                  case PBT_APMRESUMEAUTOMATIC:                                                      
+                     afsi_log("SERVICE_CONTROL_APMRESUMEAUTOMATIC"); 
+                     dwRet = NO_ERROR;                       
+                     break;                                  
                  default:                                                                          
!                     afsi_log("SERVICE_CONTROL_unknown"); 
!                     dwRet = NO_ERROR;                       
                  }   
              }
          }
***************
*** 348,354 ****
      char szSubMount[256];
      DWORD dwType;
  
!     sprintf(szKeyName, "%s\\GlobalAutoMapper", AFSConfigKeyName);
  
      dwResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKeyName, 0, KEY_QUERY_VALUE, &hKey);
      if (dwResult != ERROR_SUCCESS)
--- 377,383 ----
      char szSubMount[256];
      DWORD dwType;
  
!     sprintf(szKeyName, "%s\\GlobalAutoMapper", AFSREG_CLT_SVC_PARAM_SUBKEY);
  
      dwResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKeyName, 0, KEY_QUERY_VALUE, &hKey);
      if (dwResult != ERROR_SUCCESS)
***************
*** 410,416 ****
      char szSubMount[256];
      DWORD dwType;
  
!     sprintf(szKeyName, "%s\\GlobalAutoMapper", AFSConfigKeyName);
  
      dwResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKeyName, 0, KEY_QUERY_VALUE, &hKey);
      if (dwResult != ERROR_SUCCESS)
--- 439,445 ----
      char szSubMount[256];
      DWORD dwType;
  
!     sprintf(szKeyName, "%s\\GlobalAutoMapper", AFSREG_CLT_SVC_PARAM_SUBKEY);
  
      dwResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKeyName, 0, KEY_QUERY_VALUE, &hKey);
      if (dwResult != ERROR_SUCCESS)
***************
*** 853,859 ****
  
  
      code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, 
!                         "SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters",
                          0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          dummyLen = sizeof(cacheSize);
--- 882,888 ----
  
  
      code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, 
!                         AFSREG_CLT_SVC_PARAM_SUBKEY,
                          0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          dummyLen = sizeof(cacheSize);
***************
*** 862,868 ****
          RegCloseKey (parmKey);
      }
  
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\OpenAFS\\Client",
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          dummyLen = sizeof(verifyServiceSig);
--- 891,897 ----
          RegCloseKey (parmKey);
      }
  
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_OPENAFS_SUBKEY,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          dummyLen = sizeof(verifyServiceSig);
***************
*** 972,978 ****
  RegisterServiceCtrlHandlerExFunc pRegisterServiceCtrlHandlerEx = NULL;
  RegisterServiceCtrlHandlerFunc   pRegisterServiceCtrlHandler   = NULL; 
  
! VOID WINAPI afsd_Main(DWORD argc, LPTSTR *argv)
  {
      long code;
      char *reason;
--- 1001,1008 ----
  RegisterServiceCtrlHandlerExFunc pRegisterServiceCtrlHandlerEx = NULL;
  RegisterServiceCtrlHandlerFunc   pRegisterServiceCtrlHandler   = NULL; 
  
! VOID WINAPI
! afsd_Main(DWORD argc, LPTSTR *argv)
  {
      long code;
      char *reason;
***************
*** 1025,1031 ****
      ServiceStatus.dwCheckPoint = 1;
      ServiceStatus.dwWaitHint = 30000;
      /* accept Power Events */
!     ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_POWEREVENT;
      SetServiceStatus(StatusHandle, &ServiceStatus);
  #endif
  
--- 1055,1061 ----
      ServiceStatus.dwCheckPoint = 1;
      ServiceStatus.dwWaitHint = 30000;
      /* accept Power Events */
!     ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN | SERVICE_ACCEPT_POWEREVENT;
      SetServiceStatus(StatusHandle, &ServiceStatus);
  #endif
  
***************
*** 1045,1051 ****
          int bpower = TRUE;
  
          /* see if we should handle power notifications */
!         code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSConfigKeyName, 0, KEY_QUERY_VALUE, &hkParm);
          if (code == ERROR_SUCCESS) {
              dummyLen = sizeof(bpower);
              code = RegQueryValueEx(hkParm, "FlushOnHibernate", NULL, NULL,
--- 1075,1082 ----
          int bpower = TRUE;
  
          /* see if we should handle power notifications */
!         code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY, 
!                             0, KEY_QUERY_VALUE, &hkParm);
          if (code == ERROR_SUCCESS) {
              dummyLen = sizeof(bpower);
              code = RegQueryValueEx(hkParm, "FlushOnHibernate", NULL, NULL,
***************
*** 1112,1118 ****
              ServiceStatus.dwCheckPoint = 2;
              ServiceStatus.dwWaitHint = 20000;
              /* accept Power Events */
!             ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_POWEREVENT;
              SetServiceStatus(StatusHandle, &ServiceStatus);
          }
      }
--- 1143,1149 ----
              ServiceStatus.dwCheckPoint = 2;
              ServiceStatus.dwWaitHint = 20000;
              /* accept Power Events */
!             ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN | SERVICE_ACCEPT_POWEREVENT;
              SetServiceStatus(StatusHandle, &ServiceStatus);
          }
      }
***************
*** 1175,1180 ****
--- 1206,1213 ----
  
      WaitForSingleObject(WaitToTerminate, INFINITE);
  
+     afsi_log("Received Termination Signal, Stopping Service");
+ 
      {   
          HANDLE h; char *ptbuf[1];
  	h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
***************
*** 1184,1194 ****
          DeregisterEventSource(h);
      }
  
      DismountGlobalDrives();
!     smb_Shutdown();
!     rx_Finalize();
!     RpcShutdown();
!     buf_Shutdown();
  
  #ifdef	REGISTER_POWER_NOTIFICATIONS
      /* terminate thread used to flush cache */
--- 1217,1245 ----
          DeregisterEventSource(h);
      }
  
+ #ifdef AFS_FREELANCE_CLIENT
+     cm_FreelanceShutdown();
+     afsi_log("Freelance Shutdown complete");
+ #endif
+ 
      DismountGlobalDrives();
!     afsi_log("Global Drives dismounted");
!                                          
!     cm_DaemonShutdown();                 
!     afsi_log("Daemon shutdown complete");
!                                          
!     buf_Shutdown();                      
!     afsi_log("Buffer shutdown complete");
!                                          
!     rx_Finalize();                       
!     afsi_log("rx finalization complete");
!                                          
!     smb_Shutdown();                      
!     afsi_log("smb shutdown complete");   
!                                          
!     RpcShutdown();                       
! 
!     cm_ShutdownMappedMemory();           
  
  #ifdef	REGISTER_POWER_NOTIFICATIONS
      /* terminate thread used to flush cache */
***************
*** 1214,1226 ****
      return(0);
  }
  
  int
! main(void)
  {
      static SERVICE_TABLE_ENTRY dispatchTable[] = {
          {AFS_DAEMON_SERVICE_NAME, (LPSERVICE_MAIN_FUNCTION) afsd_Main},
          {NULL, NULL}
      };
  
      if (!StartServiceCtrlDispatcher(dispatchTable))
      {
--- 1265,1297 ----
      return(0);
  }
  
+ void usage(void)
+ {
+     fprintf(stderr, "afsd_service.exe [--validate-cache <cache-path>]");
+ }
+ 
  int
! main(int argc, char * argv[])
  {
      static SERVICE_TABLE_ENTRY dispatchTable[] = {
          {AFS_DAEMON_SERVICE_NAME, (LPSERVICE_MAIN_FUNCTION) afsd_Main},
          {NULL, NULL}
      };
+     int i;
+ 
+     for (i = 1; i < argc; i++) {
+         if (!stricmp(argv[i],"--validate-cache")) {
+             if (++i != argc - 1) {
+                 usage();
+                 return(1);
+             }
+ 
+             return cm_ValidateMappedMemory(argv[i]);
+         } else {
+             usage();
+             return(1);
+         }
+     }
  
      if (!StartServiceCtrlDispatcher(dispatchTable))
      {
Index: openafs/src/WINNT/afsd/afsd_service.rc
diff -c openafs/src/WINNT/afsd/afsd_service.rc:1.3.2.1 openafs/src/WINNT/afsd/afsd_service.rc:1.3.2.2
*** openafs/src/WINNT/afsd/afsd_service.rc:1.3.2.1	Sun Jan 30 23:09:28 2005
--- openafs/src/WINNT/afsd/afsd_service.rc	Fri Mar 11 01:58:38 2005
***************
*** 13,20 ****
  #define AFS_VERINFO_NAME "afsd_service"
  #define AFS_VERINFO_FILENAME "afsd_service.exe"
  
- 1	ICON	afsd.ico
- 
  #include "AFS_component_version_number.h"
  #include "..\..\config\NTVersioninfo.rc"
  
--- 13,20 ----
  #define AFS_VERINFO_NAME "afsd_service"
  #define AFS_VERINFO_FILENAME "afsd_service.exe"
  
  #include "AFS_component_version_number.h"
  #include "..\..\config\NTVersioninfo.rc"
  
+ 1       ICON    afsd.ico
+ 
Index: openafs/src/WINNT/afsd/afsdacl.c
diff -c /dev/null openafs/src/WINNT/afsd/afsdacl.c:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:19 2005
--- openafs/src/WINNT/afsd/afsdacl.c	Fri Mar 11 02:22:40 2005
***************
*** 0 ****
--- 1,279 ----
+ /*
+ 
+ Copyright 2004 by the Massachusetts Institute of Technology
+ 
+ All rights reserved.
+ 
+ Permission to use, copy, modify, and distribute this software and its
+ documentation for any purpose and without fee is hereby granted,
+ provided that the above copyright notice appear in all copies and that
+ both that copyright notice and this permission notice appear in
+ supporting documentation, and that the name of the Massachusetts
+ Institute of Technology (M.I.T.) not be used in advertising or publicity
+ pertaining to distribution of the software without specific, written
+ prior permission.
+ 
+ M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+ M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ SOFTWARE.
+ 
+ */
+ 
+ /* $Id */
+ 
+ #include<windows.h>
+ #include<aclapi.h>
+ #include<sddl.h>
+ #include<stdio.h>
+ #include<string.h>
+ 
+ #define SETDACL     1
+ #define RESETDACL   2
+ 
+ #define AFSSERVICE                  "TransarcAFSDaemon"
+ #define AFSCLIENT_ADMIN_GROUPNAME   "AFS Client Admins"
+ #define EVERYONE_GROUPNAME          "Everyone"
+ 
+ char * progname = NULL;
+ 
+ void show_usage(void) {
+     fprintf(stderr,
+         "%s : Set or reset the DACL to allow starting or stopping\n"
+         "     the afsd service by any ordinary user.\n"
+         "\n"
+         "Usage : %s [-set | -reset] [-show]\n"
+         "      -set   : Sets the DACL\n"
+         "      -reset : Reset the DACL\n"
+         "      -show  : Show current DACL (SDSF)\n"
+         , progname, progname);
+ }
+ 
+ void show_last_error(DWORD code) {
+    LPVOID lpvMessageBuffer;
+ 
+    if(!code)
+         code = GetLastError();
+ 
+    FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
+                  FORMAT_MESSAGE_FROM_SYSTEM,
+                  NULL, code,
+                  MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+                 (LPTSTR)&lpvMessageBuffer, 0, NULL);
+ 
+    fprintf(stderr,
+        "%s: Error %d : %s\n",
+        progname,
+        code,
+        (LPSTR) lpvMessageBuffer);
+ 
+    LocalFree(lpvMessageBuffer);
+ }
+ 
+ int set_dacl(int action) {
+     int             rv = 1;
+     BOOL            bDaclPresent = FALSE;
+     BOOL            bDaclDefaulted = FALSE;
+     SC_HANDLE       scm = NULL;
+     SC_HANDLE       s_afs = NULL;
+     PSECURITY_DESCRIPTOR psdesc = NULL;
+     PACL            pacl = NULL;
+     PACL            pnewacl = NULL;
+     EXPLICIT_ACCESS exa[2];
+     DWORD           dwSize = 0;
+     DWORD           code = ERROR_SUCCESS;
+     SECURITY_DESCRIPTOR sd;
+ 
+     scm = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
+     if(!scm) {
+         show_last_error(0);
+         goto exit0;
+     }
+ 
+     s_afs = OpenService(scm, AFSSERVICE, READ_CONTROL | WRITE_DAC);
+     if(!s_afs) {
+         show_last_error(0);
+         goto exit0;
+     }
+ 
+     if (!QueryServiceObjectSecurity(s_afs, DACL_SECURITY_INFORMATION, 
+         &sd, 0, &dwSize))
+     {
+         if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
+         {
+             psdesc = (PSECURITY_DESCRIPTOR)HeapAlloc(GetProcessHeap(),
+                 HEAP_ZERO_MEMORY, dwSize);
+             if (psdesc == NULL)
+             {
+                 show_last_error(0);
+                 goto exit0;
+             }
+ 
+             if (!QueryServiceObjectSecurity(s_afs,
+                 DACL_SECURITY_INFORMATION, psdesc, dwSize, &dwSize)) {
+                 show_last_error(0);
+                 goto exit0;
+                 }
+         }
+         else {
+             show_last_error(0);
+             goto exit0;
+         }
+     }
+     /* else : shouldn't happen. */
+ 
+     if (!GetSecurityDescriptorDacl(psdesc, &bDaclPresent, &pacl, &bDaclDefaulted))
+         show_last_error(0);
+ 
+     BuildExplicitAccessWithName(&exa[0], AFSCLIENT_ADMIN_GROUPNAME,
+         SPECIFIC_RIGHTS_ALL | STANDARD_RIGHTS_ALL, 
+         SET_ACCESS,
+         NO_INHERITANCE);
+ 
+     BuildExplicitAccessWithName(&exa[1], EVERYONE_GROUPNAME,
+         SERVICE_START | SERVICE_STOP | READ_CONTROL,
+         ((action==RESETDACL)?REVOKE_ACCESS:SET_ACCESS),
+         NO_INHERITANCE);
+ 
+     code = SetEntriesInAcl(2, exa, pacl, &pnewacl);
+     if(code != ERROR_SUCCESS) {
+         show_last_error(code);
+     }
+ 
+     if(!InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION))
+         show_last_error(0);
+ 
+     if(!SetSecurityDescriptorDacl(&sd, TRUE, pnewacl, FALSE))
+         show_last_error(0);
+ 
+     if (!SetServiceObjectSecurity(s_afs, DACL_SECURITY_INFORMATION, &sd))
+         show_last_error(0);
+ 
+ exit0:
+     if(pnewacl)
+         LocalFree(pnewacl);
+     if(psdesc)
+         HeapFree(GetProcessHeap(), 0, psdesc);
+     if(s_afs)
+         CloseServiceHandle(s_afs);
+     if(scm)
+         CloseServiceHandle(scm);
+ 
+     return rv;
+ }
+ 
+ int show_dacl(void) {
+     int             rv = 1;
+     BOOL            bDaclPresent = FALSE;
+     BOOL            bDaclDefaulted = FALSE;
+     SC_HANDLE       scm = NULL;
+     SC_HANDLE       s_afs = NULL;
+     PSECURITY_DESCRIPTOR psdesc = NULL;
+     DWORD           dwSize = 0;
+     DWORD           code = ERROR_SUCCESS;
+     SECURITY_DESCRIPTOR sd;
+     LPSTR           pstr = NULL;
+ 
+     scm = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
+     if(!scm) {
+         show_last_error(0);
+         goto exit0;
+     }
+ 
+     s_afs = OpenService(scm, AFSSERVICE, READ_CONTROL);
+     if(!s_afs) {
+         show_last_error(0);
+         goto exit0;
+     }
+ 
+     if (!QueryServiceObjectSecurity(s_afs, DACL_SECURITY_INFORMATION,
+         &sd, 0, &dwSize))
+     {
+         if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
+         {
+             psdesc = (PSECURITY_DESCRIPTOR)HeapAlloc(GetProcessHeap(),
+                 HEAP_ZERO_MEMORY, dwSize);
+             if (psdesc == NULL)
+             {
+                 show_last_error(0);
+                 goto exit0;
+             }
+ 
+             if (!QueryServiceObjectSecurity(s_afs,
+                 DACL_SECURITY_INFORMATION, psdesc, dwSize, &dwSize)) {
+                 show_last_error(0);
+                 goto exit0;
+                 }
+         }
+         else {
+             show_last_error(0);
+             goto exit0;
+         }
+     }
+     /* else : shouldn't happen. */
+ 
+     if(!ConvertSecurityDescriptorToStringSecurityDescriptor(
+         psdesc,
+         SDDL_REVISION_1,
+         DACL_SECURITY_INFORMATION,
+         &pstr,
+         NULL)) 
+     {
+         show_last_error(0);
+         goto exit0;
+     }
+ 
+     printf("DACL for AFSD service is : [%s]\n",pstr);
+ 
+ exit0:
+     if(pstr)
+         LocalFree(pstr);
+     if(psdesc)
+         HeapFree(GetProcessHeap(), 0, psdesc);
+     if(s_afs)
+         CloseServiceHandle(s_afs);
+     if(scm)
+         CloseServiceHandle(scm);
+ 
+     return rv;
+ }
+ 
+ int main(int argc, char ** argv) {
+     int showdacl = FALSE;
+     int action = 0;
+     int i;
+     int rv;
+ 
+     progname = argv[0];
+ 
+     for(i=1; i<argc; i++) {
+         if(!strcmp(argv[i],"-set") && !action)
+             action = SETDACL;
+         else if(!strcmp(argv[i], "-reset") && !action)
+             action = RESETDACL;
+         else if(!strcmp(argv[i], "-show"))
+             showdacl = TRUE;
+         else {
+             show_usage();
+             return 1;
+         }
+     }
+ 
+     if(!showdacl && action == 0) {
+         show_usage();
+         return 1;
+     }
+ 
+     if(action) {
+         rv = set_dacl(action);
+     }
+     
+     if(showdacl) {
+         rv = show_dacl();
+     }
+ 
+     return rv;
+ }
Index: openafs/src/WINNT/afsd/afsdacl.rc
diff -c /dev/null openafs/src/WINNT/afsd/afsdacl.rc:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:19 2005
--- openafs/src/WINNT/afsd/afsdacl.rc	Fri Mar 11 02:22:40 2005
***************
*** 0 ****
--- 1,17 ----
+ /*
+  * Copyright 2000, International Business Machines Corporation and others.
+  * All Rights Reserved.
+  * 
+  * This software has been released under the terms of the IBM Public
+  * License.  For details, see the LICENSE file in the top-level source
+  * directory or online at http://www.openafs.org/dl/license10.html
+  */
+ 
+ /* Define VERSIONINFO resource */
+ 
+ #define  AFS_VERINFO_FILE_DESCRIPTION "AFS Service DACL Admin Tool"
+ #define AFS_VERINFO_NAME "afsdacl"
+ #define AFS_VERINFO_FILENAME "afsdacl.exe"
+ 
+ #include "AFS_component_version_number.h"
+ #include "..\..\config\NTVersioninfo.rc"
Index: openafs/src/WINNT/afsd/afskfw.c
diff -c openafs/src/WINNT/afsd/afskfw.c:1.8.2.9 openafs/src/WINNT/afsd/afskfw.c:1.8.2.10
*** openafs/src/WINNT/afsd/afskfw.c:1.8.2.9	Sun Feb 20 20:16:39 2005
--- openafs/src/WINNT/afsd/afskfw.c	Fri Mar 11 01:58:38 2005
***************
*** 65,70 ****
--- 65,72 ----
  #include <afs/ptserver.h>
  #include <afs/ptuser.h>
  
+ #include <WINNT\afsreg.h>
+ 
  /*
   * TIMING _____________________________________________________________________
   *
***************
*** 228,233 ****
--- 230,240 ----
      END_FUNC_INFO
  };
  
+ FUNC_INFO leash_opt_fi[] = {
+     MAKE_FUNC_INFO(Leash_get_default_mslsa_import),
+     END_FUNC_INFO
+ };
+ 
  FUNC_INFO k5_fi[] = {
      MAKE_FUNC_INFO(krb5_change_password),
      MAKE_FUNC_INFO(krb5_get_init_creds_opt_init),
***************
*** 282,287 ****
--- 289,295 ----
      MAKE_FUNC_INFO(krb5_get_default_config_files),
      MAKE_FUNC_INFO(krb5_free_config_files),
      MAKE_FUNC_INFO(krb5_get_default_realm),
+     MAKE_FUNC_INFO(krb5_free_default_realm),
      MAKE_FUNC_INFO(krb5_free_ticket),
      MAKE_FUNC_INFO(krb5_decode_ticket),
      MAKE_FUNC_INFO(krb5_get_host_realm),
***************
*** 371,376 ****
--- 379,385 ----
  static HINSTANCE hService = 0;
  static HINSTANCE hProfile = 0;
  static HINSTANCE hLeash = 0;
+ static HINSTANCE hLeashOpt = 0;
  static HINSTANCE hCCAPI = 0;
  static struct principal_ccache_data * princ_cc_data = NULL;
  static struct cell_principal_map    * cell_princ_map = NULL;
***************
*** 407,412 ****
--- 416,422 ----
              LoadFuncs(PROFILE_DLL, profile_fi, &hProfile, 0, 1, 0, 0);
              LoadFuncs(LEASH_DLL, leash_fi, &hLeash, 0, 1, 0, 0);
              LoadFuncs(CCAPI_DLL, ccapi_fi, &hCCAPI, 0, 1, 0, 0);
+             LoadFuncs(LEASH_DLL, leash_opt_fi, &hLeashOpt, 0, 1, 0, 0);
  
              if ( KFW_is_available() ) {
                  char rootcell[MAXCELLCHARS+1];
***************
*** 429,460 ****
  void
  KFW_cleanup(void)
  {
!     if (hKrb5)
!         FreeLibrary(hKrb5);
! #ifdef USE_KRB4
!     if (hKrb4)
!         FreeLibrary(hKrb4);
! #endif /* USE_KRB4 */
!     if (hProfile)
!         FreeLibrary(hProfile);
!     if (hComErr)
!         FreeLibrary(hComErr);
!     if (hService)
!         FreeLibrary(hService);
  #ifdef USE_MS2MIT
      if (hSecur32)
          FreeLibrary(hSecur32);
  #endif /* USE_MS2MIT */
!     if (hKrb524)
!         FreeLibrary(hKrb524);
!     if (hLeash)
!         FreeLibrary(hLeash);
!     if (hCCAPI)
!         FreeLibrary(hCCAPI);
  }
  
- static char OpenAFSConfigKeyName[] = "SOFTWARE\\OpenAFS\\Client";
- 
  int
  KFW_use_krb524(void)
  {
--- 439,470 ----
  void
  KFW_cleanup(void)
  {
!     if (hLeashOpt)
!         FreeLibrary(hLeashOpt);
!     if (hCCAPI)
!         FreeLibrary(hCCAPI);
!     if (hLeash)
!         FreeLibrary(hLeash);
!     if (hKrb524)
!         FreeLibrary(hKrb524);
  #ifdef USE_MS2MIT
      if (hSecur32)
          FreeLibrary(hSecur32);
  #endif /* USE_MS2MIT */
!     if (hService)
!         FreeLibrary(hService);
!     if (hComErr)
!         FreeLibrary(hComErr);
!     if (hProfile)
!         FreeLibrary(hProfile);
! #ifdef USE_KRB4
!     if (hKrb4)
!         FreeLibrary(hKrb4);
! #endif /* USE_KRB4 */
!     if (hKrb5)
!         FreeLibrary(hKrb5);
  }
  
  int
  KFW_use_krb524(void)
  {
***************
*** 462,468 ****
      DWORD code, len;
      DWORD use524 = 0;
  
!     code = RegOpenKeyEx(HKEY_CURRENT_USER, OpenAFSConfigKeyName,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          len = sizeof(use524);
--- 472,478 ----
      DWORD code, len;
      DWORD use524 = 0;
  
!     code = RegOpenKeyEx(HKEY_CURRENT_USER, AFSREG_USER_OPENAFS_SUBKEY,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          len = sizeof(use524);
***************
*** 471,477 ****
          RegCloseKey(parmKey);
      }
      if (code != ERROR_SUCCESS) {
!         code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, OpenAFSConfigKeyName,
                               0, KEY_QUERY_VALUE, &parmKey);
          if (code == ERROR_SUCCESS) {
              len = sizeof(use524);
--- 481,487 ----
          RegCloseKey(parmKey);
      }
      if (code != ERROR_SUCCESS) {
!         code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_OPENAFS_SUBKEY,
                               0, KEY_QUERY_VALUE, &parmKey);
          if (code == ERROR_SUCCESS) {
              len = sizeof(use524);
***************
*** 490,496 ****
      DWORD code, len;
      DWORD enableKFW = 1;
  
!     code = RegOpenKeyEx(HKEY_CURRENT_USER, OpenAFSConfigKeyName,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          len = sizeof(enableKFW);
--- 500,506 ----
      DWORD code, len;
      DWORD enableKFW = 1;
  
!     code = RegOpenKeyEx(HKEY_CURRENT_USER, AFSREG_USER_OPENAFS_SUBKEY,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          len = sizeof(enableKFW);
***************
*** 500,506 ****
      }
      
      if (code != ERROR_SUCCESS) {
!         code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, OpenAFSConfigKeyName,
                               0, KEY_QUERY_VALUE, &parmKey);
          if (code == ERROR_SUCCESS) {
              len = sizeof(enableKFW);
--- 510,516 ----
      }
      
      if (code != ERROR_SUCCESS) {
!         code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_OPENAFS_SUBKEY,
                               0, KEY_QUERY_VALUE, &parmKey);
          if (code == ERROR_SUCCESS) {
              len = sizeof(enableKFW);
***************
*** 930,936 ****
      code = pkrb5_cc_get_principal(ctx, cc, &princ);
      if ( code ) goto cleanup;
  
!     dwMsLsaImport = pLeash_get_default_mslsa_import();
      switch ( dwMsLsaImport ) {
      case 0: /* do not import */
          goto cleanup;
--- 940,946 ----
      code = pkrb5_cc_get_principal(ctx, cc, &princ);
      if ( code ) goto cleanup;
  
!     dwMsLsaImport = pLeash_get_default_mslsa_import ? pLeash_get_default_mslsa_import() : 1;
      switch ( dwMsLsaImport ) {
      case 0: /* do not import */
          goto cleanup;
***************
*** 1230,1237 ****
      if ( code ) goto cleanup;
  
      realm = afs_realm_of_cell(ctx, &cellconfig);  // do not free
      userrealm = strchr(username,'@');
!     if (userrealm) {
          pname = strdup(username);
          userrealm = strchr(pname, '@');
          *userrealm = '\0';
--- 1240,1248 ----
      if ( code ) goto cleanup;
  
      realm = afs_realm_of_cell(ctx, &cellconfig);  // do not free
+ 
      userrealm = strchr(username,'@');
!     if ( userrealm ) {
          pname = strdup(username);
          userrealm = strchr(pname, '@');
          *userrealm = '\0';
***************
*** 1254,1260 ****
          strcat(pname,"@");
          strcat(pname,realm);
      }
- 
      if ( IsDebuggerPresent() ) {
          OutputDebugString("Realm: ");
          OutputDebugString(realm);
--- 1265,1270 ----
***************
*** 2660,2666 ****
          goto skip_krb5_init;
      }
  
!     /* lookfor client principals which cannot be distinguished 
       * from Kerberos 4 multi-component principal names
       */
      k5data = krb5_princ_component(ctx,client_principal,0);
--- 2670,2676 ----
          goto skip_krb5_init;
      }
  
!     /* look for client principals which cannot be distinguished 
       * from Kerberos 4 multi-component principal names
       */
      k5data = krb5_princ_component(ctx,client_principal,0);
Index: openafs/src/WINNT/afsd/afslogon.c
diff -c openafs/src/WINNT/afsd/afslogon.c:1.24.2.6 openafs/src/WINNT/afsd/afslogon.c:1.24.2.7
*** openafs/src/WINNT/afsd/afslogon.c:1.24.2.6	Sun Feb 20 20:16:39 2005
--- openafs/src/WINNT/afsd/afslogon.c	Fri Mar 11 01:58:38 2005
***************
*** 27,32 ****
--- 27,34 ----
  #include "krb.h"
  #include "afskfw.h"
  
+ #include <WINNT\afsreg.h>
+ 
  DWORD TraceOption = 0;
  
  HANDLE hDLL;
***************
*** 339,351 ****
      } else
          effDomain = NULL;
  
!     rv = RegOpenKeyEx( HKEY_LOCAL_MACHINE, REG_CLIENT_PARMS_KEY, 0, KEY_READ, &hkParm );
      if(rv != ERROR_SUCCESS) {
          hkParm = NULL;
          DebugEvent("GetDomainLogonOption: Can't open parms key [%d]", rv);
      }
  
!     rv = RegOpenKeyEx( HKEY_LOCAL_MACHINE, REG_CLIENT_PROVIDER_KEY, 0, KEY_READ, &hkNp );
      if(rv != ERROR_SUCCESS) {
          hkNp = NULL;
          DebugEvent("GetDomainLogonOptions: Can't open NP key [%d]", rv);
--- 341,353 ----
      } else
          effDomain = NULL;
  
!     rv = RegOpenKeyEx( HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY, 0, KEY_READ, &hkParm );
      if(rv != ERROR_SUCCESS) {
          hkParm = NULL;
          DebugEvent("GetDomainLogonOption: Can't open parms key [%d]", rv);
      }
  
!     rv = RegOpenKeyEx( HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PROVIDER_SUBKEY, 0, KEY_READ, &hkNp );
      if(rv != ERROR_SUCCESS) {
          hkNp = NULL;
          DebugEvent("GetDomainLogonOptions: Can't open NP key [%d]", rv);
***************
*** 533,538 ****
--- 535,582 ----
          if(regexscript) free(regexscript);
      }
  
+     DebugEvent("Looking up TheseCells");
+     /* Logon script */
+     /* First find out where the key is */
+     hkTemp = NULL;
+     rv = ~ERROR_SUCCESS;
+     dwType = 0;
+     if (hkDom)
+         rv = RegQueryValueEx(hkDom, REG_CLIENT_THESE_CELLS_PARM, 0, &dwType, NULL, &dwSize);
+     if (rv == ERROR_SUCCESS && dwType == REG_MULTI_SZ) {
+         hkTemp = hkDom;
+         DebugEvent("Located TheseCells in hkDom");
+     } else if (hkDoms)
+         rv = RegQueryValueEx(hkDoms, REG_CLIENT_THESE_CELLS_PARM, 0, &dwType, NULL, &dwSize);
+     if (rv == ERROR_SUCCESS && !hkTemp && dwType == REG_MULTI_SZ) {
+         hkTemp = hkDoms;
+         DebugEvent("Located TheseCells in hkDoms");
+     } else if (hkNp)
+         rv = RegQueryValueEx(hkNp, REG_CLIENT_THESE_CELLS_PARM, 0, &dwType, NULL, &dwSize);
+     if (rv == ERROR_SUCCESS && !hkTemp && dwType == REG_MULTI_SZ) {
+         hkTemp = hkNp;
+         DebugEvent("Located TheseCells in hkNp");
+     }
+ 
+     if (hkTemp) {
+         HRESULT hr;
+         size_t len;
+         CHAR * thesecells;
+ 
+         /* dwSize still has the size of the required buffer in bytes. */
+         thesecells = malloc(dwSize);
+         rv = RegQueryValueEx(hkTemp, REG_CLIENT_THESE_CELLS_PARM, 0, &dwType, (LPBYTE) thesecells, &dwSize);
+         if(rv != ERROR_SUCCESS) {/* what the ..? */
+             DebugEvent("Can't look up TheseCells [%d]",rv);
+             goto doneTheseCells;
+         }
+ 
+         DebugEvent("Found TheseCells [%s]", thesecells);
+         opt->theseCells = thesecells;
+ 
+       doneTheseCells:;
+     }
+ 
    cleanup:
      if(hkNp) RegCloseKey(hkNp);
      if(hkDom) RegCloseKey(hkDom);
***************
*** 611,617 ****
      DWORD code;
  
      int pw_exp;
!     char *reason = 0;
      char *ctemp;
  
      BOOLEAN interactive;
--- 655,661 ----
      DWORD code;
  
      int pw_exp;
!     char *reason;
      char *ctemp;
  
      BOOLEAN interactive;
***************
*** 662,668 ****
          }
      }
  
!     (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_CLIENT_PARMS_KEY,
                           0, KEY_QUERY_VALUE, &NPKey);
      LSPsize=sizeof(TraceOption);
      RegQueryValueEx(NPKey, REG_CLIENT_TRACE_OPTION_PARM, NULL,
--- 706,712 ----
          }
      }
  
!     (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY,
                           0, KEY_QUERY_VALUE, &NPKey);
      LSPsize=sizeof(TraceOption);
      RegQueryValueEx(NPKey, REG_CLIENT_TRACE_OPTION_PARM, NULL,
***************
*** 739,765 ****
  		
          /* if Integrated Logon  */
          if (ISLOGONINTEGRATED(opt.LogonOption))
!         {	
              if ( KFW_is_available() ) {
                  code = KFW_AFS_get_cred(uname, cell, password, 0, opt.smbName, &reason);
!                 DebugEvent("KFW_AFS_get_cred  uname=[%s] smbname=[%s] cell=[%s] code=[%d]",
!                            uname,opt.smbName,cell,code);
              } else {
                  code = ka_UserAuthenticateGeneral2(KA_USERAUTH_VERSION+KA_USERAUTH_AUTHENT_LOGON,
                                                      uname, "", cell, password, opt.smbName, 0, &pw_exp, 0,
                                                      &reason);
! 
!                 DebugEvent("AFS AfsLogon - ka_UserAuthenticateGeneral2","Code[%x] uname[%s] Cell[%s] Reason[%s]",
!                             code,uname,cell,reason ? reason : "<none>");
!                 {
!                     char msg[2048];
!                     sprintf(msg, "Code[%x] uname[%s] Cell[%s] Reason[%s]",
!                             code,uname,cell,reason ? reason : "<none>");
!                     MessageBox(hwndOwner,
!                                 msg,
!                                 "AFS Logon",
!                                 MB_ICONINFORMATION | MB_OK);
!                 }
              }       
              if ( code && code != KTC_NOCM && code != KTC_NOCMRPC && !lowercased_name ) {
                  for ( ctemp = uname; *ctemp ; ctemp++) {
--- 783,822 ----
  		
          /* if Integrated Logon  */
          if (ISLOGONINTEGRATED(opt.LogonOption))
!         {			
              if ( KFW_is_available() ) {
                  code = KFW_AFS_get_cred(uname, cell, password, 0, opt.smbName, &reason);
!                 DebugEvent("KFW_AFS_get_cred  uname=[%s] smbname=[%s] cell=[%s] code=[%d]",uname,opt.smbName,cell,code);
!                 if (code == 0 && opt.theseCells) { 
!                     char * principal, *p;
! 
!                     principal = (char *)malloc(strlen(uname) + strlen(cell) + 2);
!                     if ( principal ) {
!                         strcpy(principal, uname);
!                         p = principal + strlen(uname);
!                         *p++ = '@';
!                         strcpy(p, cell);
!                         for ( ;*p; p++) {
!                             *p = toupper(*p);
!                         }
! 
!                         p = opt.theseCells;
!                         while ( *p ) {
!                             code = KFW_AFS_get_cred(principal, p, 0, 0, opt.smbName, &reason);
!                             DebugEvent("KFW_AFS_get_cred  uname=[%s] smbname=[%s] cell=[%s] code=[%d]",
!                                         principal,opt.smbName,p,code);
!                             p += strlen(p) + 1;
!                         }
!                         
!                         free(principal);
!                     }
!                 }
              } else {
                  code = ka_UserAuthenticateGeneral2(KA_USERAUTH_VERSION+KA_USERAUTH_AUTHENT_LOGON,
                                                      uname, "", cell, password, opt.smbName, 0, &pw_exp, 0,
                                                      &reason);
!                 DebugEvent("AFS AfsLogon - (INTEGRATED only)ka_UserAuthenticateGeneral2","Code[%x] uname[%s] Cell[%s]",
!                             code,uname,cell);
              }       
              if ( code && code != KTC_NOCM && code != KTC_NOCMRPC && !lowercased_name ) {
                  for ( ctemp = uname; *ctemp ; ctemp++) {
***************
*** 770,782 ****
              }
  
              /* is service started yet?*/
              /* If we've failed because the client isn't running yet and the
              * client is set to autostart (and therefore it makes sense for
              * us to wait for it to start) then sleep a while and try again. 
              * If the error was something else, then give up. */
              if (code != KTC_NOCM && code != KTC_NOCMRPC || !afsWillAutoStart)
                  break;
!         } else {  
              /*JUST check to see if its running*/
              if (IsServiceRunning())
                  break;
--- 827,841 ----
              }
  
              /* is service started yet?*/
+ 
              /* If we've failed because the client isn't running yet and the
              * client is set to autostart (and therefore it makes sense for
              * us to wait for it to start) then sleep a while and try again. 
              * If the error was something else, then give up. */
              if (code != KTC_NOCM && code != KTC_NOCMRPC || !afsWillAutoStart)
                  break;
!         }
!         else {  
              /*JUST check to see if its running*/
              if (IsServiceRunning())
                  break;
***************
*** 845,851 ****
          }
      }
  
!     if(opt.smbName) free(opt.smbName);
  
      DebugEvent("AFS AfsLogon - Exit","Return Code[%x]",code);
      return code;
--- 904,911 ----
          }
      }
  
!     if (opt.theseCells) free(opt.theseCells);
!     if (opt.smbName) free(opt.smbName);
  
      DebugEvent("AFS AfsLogon - Exit","Return Code[%x]",code);
      return code;
***************
*** 909,915 ****
      /* Make sure the AFS Libraries are initialized */
      AfsLogonInit();
  
!     (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_CLIENT_PARMS_KEY,
                          0, KEY_QUERY_VALUE, &NPKey);
      LSPsize=sizeof(TraceOption);
      RegQueryValueEx(NPKey, REG_CLIENT_TRACE_OPTION_PARM, NULL,
--- 969,975 ----
      /* Make sure the AFS Libraries are initialized */
      AfsLogonInit();
  
!     (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY,
                          0, KEY_QUERY_VALUE, &NPKey);
      LSPsize=sizeof(TraceOption);
      RegQueryValueEx(NPKey, REG_CLIENT_TRACE_OPTION_PARM, NULL,
Index: openafs/src/WINNT/afsd/afslogon.h
diff -c openafs/src/WINNT/afsd/afslogon.h:1.5.2.1 openafs/src/WINNT/afsd/afslogon.h:1.5.2.2
*** openafs/src/WINNT/afsd/afslogon.h:1.5.2.1	Sun Jan 30 23:05:01 2005
--- openafs/src/WINNT/afsd/afslogon.h	Fri Mar 11 01:58:39 2005
***************
*** 32,46 ****
  #include <strsafe.h>
  
  
! #define REG_CLIENT_PARMS_KEY            "SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters"
! #define REG_CLIENT_PROVIDER_KEY			"SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\NetworkProvider"
! #define REG_CLIENT_DOMAINS_SUBKEY		"Domain"
  #define REG_CLIENT_RETRY_INTERVAL_PARM  "LoginRetryInterval"
  #define REG_CLIENT_SLEEP_INTERVAL_PARM	"LoginSleepInterval"
  #define REG_CLIENT_FAIL_SILENTLY_PARM   "FailLoginsSilently"
  #define REG_CLIENT_TRACE_OPTION_PARM	"TraceOption"
  #define REG_CLIENT_LOGON_OPTION_PARM	"LogonOptions"
  #define REG_CLIENT_LOGON_SCRIPT_PARMW	L"LogonScript"
  #define DEFAULT_RETRY_INTERVAL          60                        /* seconds*/
  #define DEFAULT_FAIL_SILENTLY           FALSE
  #define DEFAULT_SLEEP_INTERVAL          5                         /* seconds*/
--- 32,45 ----
  #include <strsafe.h>
  
  
! #define REG_CLIENT_DOMAINS_SUBKEY	"Domain"
  #define REG_CLIENT_RETRY_INTERVAL_PARM  "LoginRetryInterval"
  #define REG_CLIENT_SLEEP_INTERVAL_PARM	"LoginSleepInterval"
  #define REG_CLIENT_FAIL_SILENTLY_PARM   "FailLoginsSilently"
  #define REG_CLIENT_TRACE_OPTION_PARM	"TraceOption"
  #define REG_CLIENT_LOGON_OPTION_PARM	"LogonOptions"
  #define REG_CLIENT_LOGON_SCRIPT_PARMW	L"LogonScript"
+ #define REG_CLIENT_THESE_CELLS_PARM     "TheseCells"
  #define DEFAULT_RETRY_INTERVAL          60                        /* seconds*/
  #define DEFAULT_FAIL_SILENTLY           FALSE
  #define DEFAULT_SLEEP_INTERVAL          5                         /* seconds*/
***************
*** 64,74 ****
  typedef struct LogonOptions_type {
  	DWORD	LogonOption;
  	BOOLEAN	failSilently;
! 	int		retryInterval;
! 	int		sleepInterval;
  	char *	smbName;
  	LPWSTR	logonScript;
  	DWORD	flags; /* LOGON_FLAG_* */
  } LogonOptions_t;
  
  /* */
--- 63,74 ----
  typedef struct LogonOptions_type {
  	DWORD	LogonOption;
  	BOOLEAN	failSilently;
! 	int	retryInterval;
! 	int	sleepInterval;
  	char *	smbName;
  	LPWSTR	logonScript;
  	DWORD	flags; /* LOGON_FLAG_* */
+         char *  theseCells;
  } LogonOptions_t;
  
  /* */
Index: openafs/src/WINNT/afsd/afsshare.c
diff -c openafs/src/WINNT/afsd/afsshare.c:1.5.2.1 openafs/src/WINNT/afsd/afsshare.c:1.5.2.2
*** openafs/src/WINNT/afsd/afsshare.c:1.5.2.1	Wed Sep  8 01:58:33 2004
--- openafs/src/WINNT/afsd/afsshare.c	Fri Mar 11 01:58:39 2005
***************
*** 13,18 ****
--- 13,20 ----
  #include <windows.h>
  #include <stdio.h>
  
+ #include <WINNT\afsreg.h>
+ 
  int
  main(int argc, char **argv) {
      BOOL res;
***************
*** 27,33 ****
      }
  
      if (RegCreateKeyEx( HKEY_LOCAL_MACHINE,
!                         "SOFTWARE\\OpenAFS\\Client\\Submounts",
                          0,
                          NULL,
                          REG_OPTION_NON_VOLATILE,
--- 29,35 ----
      }
  
      if (RegCreateKeyEx( HKEY_LOCAL_MACHINE,
!                         AFSREG_CLT_OPENAFS_SUBKEY "\\Submounts",
                          0,
                          NULL,
                          REG_OPTION_NON_VOLATILE,
***************
*** 45,51 ****
              }
          } else {
              if (RegCreateKeyEx( HKEY_LOCAL_MACHINE,
!                                 "SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters",
                                  0,
                                  NULL,
                                  REG_OPTION_NON_VOLATILE,
--- 47,53 ----
              }
          } else {
              if (RegCreateKeyEx( HKEY_LOCAL_MACHINE,
!                                 AFSREG_CLT_SVC_PARAM_SUBKEY,
                                  0,
                                  NULL,
                                  REG_OPTION_NON_VOLATILE,
Index: openafs/src/WINNT/afsd/cm.h
diff -c openafs/src/WINNT/afsd/cm.h:1.9.2.1 openafs/src/WINNT/afsd/cm.h:1.9.2.2
*** openafs/src/WINNT/afsd/cm.h:1.9.2.1	Fri Nov  5 14:21:42 2004
--- openafs/src/WINNT/afsd/cm.h	Fri Mar 11 01:58:39 2005
***************
*** 219,225 ****
  #define CM_ERROR_EXISTS			(CM_ERROR_BASE+11)
  #define CM_ERROR_CROSSDEVLINK		(CM_ERROR_BASE+12)
  #define CM_ERROR_BADOP			(CM_ERROR_BASE+13)
! #define CM_ERROR_BADPASSWORD    (CM_ERROR_BASE+14)
  #define CM_ERROR_NOTDIR			(CM_ERROR_BASE+15)
  #define CM_ERROR_ISDIR			(CM_ERROR_BASE+16)
  #define CM_ERROR_READONLY		(CM_ERROR_BASE+17)
--- 219,225 ----
  #define CM_ERROR_EXISTS			(CM_ERROR_BASE+11)
  #define CM_ERROR_CROSSDEVLINK		(CM_ERROR_BASE+12)
  #define CM_ERROR_BADOP			(CM_ERROR_BASE+13)
! #define CM_ERROR_BADPASSWORD            (CM_ERROR_BASE+14)
  #define CM_ERROR_NOTDIR			(CM_ERROR_BASE+15)
  #define CM_ERROR_ISDIR			(CM_ERROR_BASE+16)
  #define CM_ERROR_READONLY		(CM_ERROR_BASE+17)
***************
*** 250,253 ****
--- 250,254 ----
  #define CM_ERROR_GSSCONTINUE            (CM_ERROR_BASE+43)
  #define CM_ERROR_TIDIPC                 (CM_ERROR_BASE+44)
  #define CM_ERROR_TOO_MANY_SYMLINKS      (CM_ERROR_BASE+45)
+ #define CM_ERROR_PATH_NOT_COVERED       (CM_ERROR_BASE+46)
  #endif /*  __CM_H_ENV__ */
Index: openafs/src/WINNT/afsd/cm_access.c
diff -c openafs/src/WINNT/afsd/cm_access.c:1.4.2.1 openafs/src/WINNT/afsd/cm_access.c:1.4.2.2
*** openafs/src/WINNT/afsd/cm_access.c:1.4.2.1	Tue Aug 17 00:28:38 2004
--- openafs/src/WINNT/afsd/cm_access.c	Fri Mar 11 01:58:39 2005
***************
*** 33,110 ****
   * things, since we can always lose the race condition getting to the parent vnode.
   */
  int cm_HaveAccessRights(struct cm_scache *scp, struct cm_user *up, long rights,
! 	long *outRightsp)
  {
! 	cm_scache_t *aclScp;
!         long code;
!         cm_fid_t tfid;
!         int didLock;
!         long trights;
  	
! 	didLock = 0;
! 	if (scp->fileType == CM_SCACHETYPE_DIRECTORY) {
!         	aclScp = scp;
!                 cm_HoldSCache(scp);
! 	}
!         else {
! 		tfid.cell = scp->fid.cell;
! 		tfid.volume = scp->fid.volume;
!                 tfid.vnode = scp->parentVnode;
!                 tfid.unique = scp->parentUnique;
! 		aclScp = cm_FindSCache(&tfid);
!                 if (!aclScp) return 0;
!                 if (aclScp != scp) {
! 	                code = lock_TryMutex(&aclScp->mx);
! 	                if (code == 0) {
! 				/* can't get lock safely and easily */
! 				cm_ReleaseSCache(aclScp);
! 	                        return 0;
!         	        }
! 
! 			/* check that we have a callback, too */
!                         if (!cm_HaveCallback(aclScp)) {
! 				/* can't use it */
!                                 lock_ReleaseMutex(&aclScp->mx);
!                                 cm_ReleaseSCache(aclScp);
!                                 return 0;
!                         }
!                         didLock = 1;
! 		}
! 	}
  
! 	lock_AssertMutex(&aclScp->mx);
          
!         /* now if rights is a subset of the public rights, we're done.
! 	 * Otherwise, if we an explicit acl entry, we're also in good shape,
! 	 * and can definitively answer.
!          */
! 	if ((~aclScp->anyAccess & rights) == 0) {
! 		*outRightsp = rights;
!         }
!         else {
! 		/* we have to check the specific rights info */
!                 code = cm_FindACLCache(aclScp, up, &trights);
!                 if (code) {
! 			code = 0;
!                         goto done;
!                 }
!                 *outRightsp = trights;
          }
  
! 	/* check mode bits */
! 	if (!(scp->unixModeBits & 0400))
! 		*outRightsp &= ~PRSFS_READ;
! 	if (!(scp->unixModeBits & 0200))
! 		*outRightsp &= ~PRSFS_WRITE;
  
!         code = 1;
!         /* fall through */
!         
! done:
      if (didLock) 
          lock_ReleaseMutex(&aclScp->mx);
!         cm_ReleaseSCache(aclScp);
!         return code;
  }
  
  /* called with locked scp; ensures that we have an ACL cache entry for the
--- 33,109 ----
   * things, since we can always lose the race condition getting to the parent vnode.
   */
  int cm_HaveAccessRights(struct cm_scache *scp, struct cm_user *up, long rights,
!                         long *outRightsp)
  {
!     cm_scache_t *aclScp;
!     long code;
!     cm_fid_t tfid;
!     int didLock;
!     long trights;
  	
!     didLock = 0;
!     if (scp->fileType == CM_SCACHETYPE_DIRECTORY) {
!         aclScp = scp;
!         cm_HoldSCache(scp);
!     } else {
!         tfid.cell = scp->fid.cell;
!         tfid.volume = scp->fid.volume;
!         tfid.vnode = scp->parentVnode;
!         tfid.unique = scp->parentUnique;
!         aclScp = cm_FindSCache(&tfid);
!         if (!aclScp) 
!             return 0;
!         if (aclScp != scp) {
!             code = lock_TryMutex(&aclScp->mx);
!             if (code == 0) {
!                 /* can't get lock safely and easily */
!                 cm_ReleaseSCache(aclScp);
!                 return 0;
!             }
! 
!             /* check that we have a callback, too */
!             if (!cm_HaveCallback(aclScp)) {
!                 /* can't use it */
!                 lock_ReleaseMutex(&aclScp->mx);
!                 cm_ReleaseSCache(aclScp);
!                 return 0;
!             }
!             didLock = 1;
!         }
!     }
  
!     lock_AssertMutex(&aclScp->mx);
          
!     /* now if rights is a subset of the public rights, we're done.
!      * Otherwise, if we an explicit acl entry, we're also in good shape,
!      * and can definitively answer.
!      */
!     if ((~aclScp->anyAccess & rights) == 0) {
!         *outRightsp = rights;
!     } else {
!         /* we have to check the specific rights info */
!         code = cm_FindACLCache(aclScp, up, &trights);
!         if (code) {
!             code = 0;
!             goto done;
          }
+         *outRightsp = trights;
+     }
  
!     /* check mode bits */
!     if (!(scp->unixModeBits & 0400))
!         *outRightsp &= ~PRSFS_READ;
!     if (!(scp->unixModeBits & 0200))
!         *outRightsp &= ~PRSFS_WRITE;
  
!     code = 1;
!     /* fall through */
! 
!   done:
      if (didLock) 
          lock_ReleaseMutex(&aclScp->mx);
!     cm_ReleaseSCache(aclScp);
!     return code;
  }
  
  /* called with locked scp; ensures that we have an ACL cache entry for the
***************
*** 115,161 ****
   * succeed.
   */
  long cm_GetAccessRights(struct cm_scache *scp, struct cm_user *up,
! 	struct cm_req *reqp)
  {
! 	long code;
! 	cm_fid_t tfid;
      cm_scache_t *aclScp;
  
! 	/* pretty easy: just force a pass through the fetch status code */
          
! 	osi_Log2(afsd_logp, "GetAccess scp %x user %x", scp, up);
  
      /* first, start by finding out whether we have a directory or something
! 	 * else, so we can find what object's ACL we need.
       */
      code = cm_SyncOp(scp, NULL, up, reqp, 0, CM_SCACHESYNC_GETSTATUS
                        | CM_SCACHESYNC_NEEDCALLBACK);
!                         
!     if (code) return code;
          
      if (scp->fileType != CM_SCACHETYPE_DIRECTORY) {
! 		/* not a dir, use parent dir's acl */
! 		tfid.cell = scp->fid.cell;
          tfid.volume = scp->fid.volume;
          tfid.vnode = scp->parentVnode;
          tfid.unique = scp->parentUnique;
! 		lock_ReleaseMutex(&scp->mx);
! 		code = cm_GetSCache(&tfid, &aclScp, up, reqp);
          if (code) {
! 			lock_ObtainMutex(&scp->mx);
              return code;
!         }
                  
! 		osi_Log1(afsd_logp, "GetAccess parent %x", aclScp);
! 		lock_ObtainMutex(&aclScp->mx);
          code = cm_GetCallback(aclScp, up, reqp, 1);
          lock_ReleaseMutex(&aclScp->mx);
          cm_ReleaseSCache(aclScp);
          lock_ObtainMutex(&scp->mx);
!     } 
!     else {
! 		code = cm_GetCallback(scp, up, reqp, 1);
      }
  
! 	return code;
  }
--- 114,159 ----
   * succeed.
   */
  long cm_GetAccessRights(struct cm_scache *scp, struct cm_user *up,
!                         struct cm_req *reqp)
  {
!     long code;
!     cm_fid_t tfid;
      cm_scache_t *aclScp;
  
!     /* pretty easy: just force a pass through the fetch status code */
          
!     osi_Log2(afsd_logp, "GetAccess scp %x user %x", scp, up);
  
      /* first, start by finding out whether we have a directory or something
!      * else, so we can find what object's ACL we need.
       */
      code = cm_SyncOp(scp, NULL, up, reqp, 0, CM_SCACHESYNC_GETSTATUS
                        | CM_SCACHESYNC_NEEDCALLBACK);
!     if (code) 
!         return code;
          
      if (scp->fileType != CM_SCACHETYPE_DIRECTORY) {
!         /* not a dir, use parent dir's acl */
!         tfid.cell = scp->fid.cell;
          tfid.volume = scp->fid.volume;
          tfid.vnode = scp->parentVnode;
          tfid.unique = scp->parentUnique;
!         lock_ReleaseMutex(&scp->mx);
!         code = cm_GetSCache(&tfid, &aclScp, up, reqp);
          if (code) {
!             lock_ObtainMutex(&scp->mx);
              return code;
!         }       
                  
!         osi_Log1(afsd_logp, "GetAccess parent %x", aclScp);
!         lock_ObtainMutex(&aclScp->mx);
          code = cm_GetCallback(aclScp, up, reqp, 1);
          lock_ReleaseMutex(&aclScp->mx);
          cm_ReleaseSCache(aclScp);
          lock_ObtainMutex(&scp->mx);
!     } else {
!         code = cm_GetCallback(scp, up, reqp, 1);
      }
  
!     return code;
  }
Index: openafs/src/WINNT/afsd/cm_aclent.c
diff -c openafs/src/WINNT/afsd/cm_aclent.c:1.4.2.4 openafs/src/WINNT/afsd/cm_aclent.c:1.4.2.5
*** openafs/src/WINNT/afsd/cm_aclent.c:1.4.2.4	Sun Feb 20 20:16:20 2005
--- openafs/src/WINNT/afsd/cm_aclent.c	Fri Mar 11 01:58:39 2005
***************
*** 18,23 ****
--- 18,24 ----
  #include <malloc.h>
  
  #include "afsd.h"
+ #include <osisleep.h>
  
  /* 
   * This next lock controls access to all cm_aclent structures in the system,
***************
*** 28,54 ****
   * An aclent structure is free if it has no back vnode pointer.
   */
  osi_rwlock_t cm_aclLock;		/* lock for system's aclents */
- cm_aclent_t *cm_aclLRUp;                /* LRUQ for dudes in vnode's lists */
- cm_aclent_t *cm_aclLRUEndp;             /* ditto */
  
! /* This function must be called with cm_aclLock and the aclp->back_mx held */
  static void CleanupACLEnt(cm_aclent_t * aclp)
  {
      cm_aclent_t *taclp;
      cm_aclent_t **laclpp;
! 
      if (aclp->backp) {
          /* 
!          * Remove the entry from the vnode's list
           */
          laclpp = &aclp->backp->randomACLp;
!         for ( taclp = *laclpp; taclp; laclpp = &taclp->nextp, taclp = *laclpp ) {
!             if (taclp == aclp)
                  break;
          }
!         if (!taclp)
!             osi_panic("CleanupACLEnt race",__FILE__,__LINE__);
!         *laclpp = aclp->nextp;                  /* remove from the vnode's list */
          aclp->backp = NULL;
      }
  
--- 29,53 ----
   * An aclent structure is free if it has no back vnode pointer.
   */
  osi_rwlock_t cm_aclLock;		/* lock for system's aclents */
  
! /* This must be called with cm_aclLock and the aclp->back->mx held */
  static void CleanupACLEnt(cm_aclent_t * aclp)
  {
      cm_aclent_t *taclp;
      cm_aclent_t **laclpp;
!         
      if (aclp->backp) {
          /* 
!          * Remove the entry from the vnode's list 
           */
          laclpp = &aclp->backp->randomACLp;
!         for (taclp = *laclpp; taclp; laclpp = &taclp->nextp, taclp = *laclpp) {
!             if (taclp == aclp) 
                  break;
          }
!         if (!taclp) 
!             osi_panic("CleanupACLEnt race", __FILE__, __LINE__);
!         *laclpp = aclp->nextp;			/* remove from vnode list */
          aclp->backp = NULL;
      }
  
***************
*** 72,98 ****
      long retval = -1;
  
      lock_ObtainWrite(&cm_aclLock);
!     *rightsp = 0;       /* get a new acl from server if we don't find a 
!                          * current entry
!                          */
      for (aclp = scp->randomACLp; aclp; aclp = aclp->nextp) {
          if (aclp->userp == userp) {
              if (aclp->tgtLifetime && aclp->tgtLifetime <= osi_Time()) {
                  /* ticket expired */
!                 osi_QRemove((osi_queue_t **) &cm_aclLRUp, &aclp->q);
                  CleanupACLEnt(aclp);
!                 osi_QAddT((osi_queue_t **) &cm_aclLRUp,
!                            (osi_queue_t **) &cm_aclLRUEndp,
                             &aclp->q);
              } else {
                  *rightsp = aclp->randomAccess;
!                 if (cm_aclLRUEndp == aclp)
!                     cm_aclLRUEndp = (cm_aclent_t *) osi_QPrev(&aclp->q);
  
                  /* move to the head of the LRU queue */
!                 osi_QRemove((osi_queue_t **) &cm_aclLRUp, &aclp->q);
!                 osi_QAddH((osi_queue_t **) &cm_aclLRUp,
!                            (osi_queue_t **) &cm_aclLRUEndp,
                             &aclp->q);
                  retval = 0;     /* success */
              }               
--- 71,100 ----
      long retval = -1;
  
      lock_ObtainWrite(&cm_aclLock);
!     *rightsp = 0;   /* get a new acl from server if we don't find a
!                      * current entry 
!                      */
! 
      for (aclp = scp->randomACLp; aclp; aclp = aclp->nextp) {
          if (aclp->userp == userp) {
              if (aclp->tgtLifetime && aclp->tgtLifetime <= osi_Time()) {
                  /* ticket expired */
!                 osi_QRemove((osi_queue_t **) &cm_data.aclLRUp, &aclp->q);
                  CleanupACLEnt(aclp);
! 
!                 /* move to the tail of the LRU queue */
!                 osi_QAddT((osi_queue_t **) &cm_data.aclLRUp,
!                            (osi_queue_t **) &cm_data.aclLRUEndp,
                             &aclp->q);
              } else {
                  *rightsp = aclp->randomAccess;
!                 if (cm_data.aclLRUEndp == aclp)
!                     cm_data.aclLRUEndp = (cm_aclent_t *) osi_QPrev(&aclp->q);
  
                  /* move to the head of the LRU queue */
!                 osi_QRemove((osi_queue_t **) &cm_data.aclLRUp, &aclp->q);
!                 osi_QAddH((osi_queue_t **) &cm_data.aclLRUp,
!                            (osi_queue_t **) &cm_data.aclLRUEndp,
                             &aclp->q);
                  retval = 0;     /* success */
              }               
***************
*** 104,125 ****
      return retval;
  }       
  
- 
  /* 
   * This function returns a free (not in the LRU queue) acl cache entry.
!  * It must be called with the cm_aclLock lock held.
   */
  static cm_aclent_t *GetFreeACLEnt(void)
  {
      cm_aclent_t *aclp;
  
!     if (cm_aclLRUp == NULL)
          osi_panic("empty aclent LRU", __FILE__, __LINE__);
  
!     aclp = cm_aclLRUEndp;
!     cm_aclLRUEndp = (cm_aclent_t *) osi_QPrev(&aclp->q);
!     osi_QRemove((osi_queue_t **) &cm_aclLRUp, &aclp->q);
      CleanupACLEnt(aclp);
      return aclp;
  }
  
--- 106,128 ----
      return retval;
  }       
  
  /* 
   * This function returns a free (not in the LRU queue) acl cache entry.
!  * It must be called with the cm_aclLock lock held
   */
  static cm_aclent_t *GetFreeACLEnt(void)
  {
      cm_aclent_t *aclp;
  
!     if (cm_data.aclLRUp == NULL)
          osi_panic("empty aclent LRU", __FILE__, __LINE__);
  
!     aclp = cm_data.aclLRUEndp;
!     cm_data.aclLRUEndp = (cm_aclent_t *) osi_QPrev(&aclp->q);
!     osi_QRemove((osi_queue_t **) &cm_data.aclLRUp, &aclp->q);
! 
      CleanupACLEnt(aclp);
+ 
      return aclp;
  }
  
***************
*** 151,157 ****
       * someone there.
       */
      aclp = GetFreeACLEnt();		 /* can't fail, panics instead */
!     osi_QAddH((osi_queue_t **) &cm_aclLRUp, (osi_queue_t **) &cm_aclLRUEndp, &aclp->q);
      aclp->backp = scp;
      aclp->nextp = scp->randomACLp;
      scp->randomACLp = aclp;
--- 154,160 ----
       * someone there.
       */
      aclp = GetFreeACLEnt();		 /* can't fail, panics instead */
!     osi_QAddH((osi_queue_t **) &cm_data.aclLRUp, (osi_queue_t **) &cm_data.aclLRUEndp, &aclp->q);
      aclp->backp = scp;
      aclp->nextp = scp->randomACLp;
      scp->randomACLp = aclp;
***************
*** 164,173 ****
      return 0;
  }
  
  /* 
   * Initialize the cache to have an entries.  Called during system startup.
   */
! long cm_InitACLCache(long size)
  {
      cm_aclent_t *aclp;
      long i;
--- 167,239 ----
      return 0;
  }
  
+ long cm_ShutdownACLCache(void)
+ {
+     return 0;
+ }
+ 
+ long cm_ValidateACLCache(void)
+ {
+     long size = cm_data.stats * 2;
+     long count;
+     cm_aclent_t * aclp;
+ 
+     for ( aclp = cm_data.aclLRUp, count = 0; aclp;
+           aclp = (cm_aclent_t *) osi_QNext(&aclp->q), count++ ) {
+         if (aclp->magic != CM_ACLENT_MAGIC) {
+             afsi_log("cm_ValidateACLCache failure: acpl->magic != CM_ACLENT_MAGIC");
+             fprintf(stderr, "cm_ValidateACLCache failure: acpl->magic != CM_ACLENT_MAGIC\n");
+             return -1;
+         }
+         if (aclp->nextp && aclp->nextp->magic != CM_ACLENT_MAGIC) {
+             afsi_log("cm_ValidateACLCache failure: acpl->nextp->magic != CM_ACLENT_MAGIC");
+             fprintf(stderr,"cm_ValidateACLCache failure: acpl->nextp->magic != CM_ACLENT_MAGIC\n");
+             return -2;
+         }
+         if (aclp->backp && aclp->backp->magic != CM_SCACHE_MAGIC) {
+             afsi_log("cm_ValidateACLCache failure: acpl->backp->magic != CM_SCACHE_MAGIC");
+             fprintf(stderr,"cm_ValidateACLCache failure: acpl->backp->magic != CM_SCACHE_MAGIC\n");
+             return -3;
+         }
+         if (count != 0 && aclp == cm_data.aclLRUp || count > size) {
+             afsi_log("cm_ValidateACLCache failure: loop in cm_data.aclLRUp list");
+             fprintf(stderr, "cm_ValidateACLCache failure: loop in cm_data.aclLRUp list\n");
+             return -4;
+         }
+     }
+ 
+     for ( aclp = cm_data.aclLRUEndp, count = 0; aclp;
+           aclp = (cm_aclent_t *) osi_QPrev(&aclp->q), count++ ) {
+         if (aclp->magic != CM_ACLENT_MAGIC) {
+             afsi_log("cm_ValidateACLCache failure: aclp->magic != CM_ACLENT_MAGIC");
+             fprintf(stderr, "cm_ValidateACLCache failure: aclp->magic != CM_ACLENT_MAGIC\n");
+             return -5;
+         }
+         if (aclp->nextp && aclp->nextp->magic != CM_ACLENT_MAGIC) {
+             afsi_log("cm_ValidateACLCache failure: aclp->nextp->magic != CM_ACLENT_MAGIC");
+             fprintf(stderr, "cm_ValidateACLCache failure: aclp->nextp->magic != CM_ACLENT_MAGIC\n");
+             return -6;
+         }
+         if (aclp->backp && aclp->backp->magic != CM_SCACHE_MAGIC) {
+             afsi_log("cm_ValidateACLCache failure: aclp->backp->magic != CM_SCACHE_MAGIC");
+             fprintf(stderr, "cm_ValidateACLCache failure: aclp->backp->magic != CM_SCACHE_MAGIC\n");
+             return -7;
+         }
+ 
+         if (count != 0 && aclp == cm_data.aclLRUEndp || count > size) {
+             afsi_log("cm_ValidateACLCache failure: loop in cm_data.aclLRUEndp list");
+             fprintf(stderr, "cm_ValidateACLCache failure: loop in cm_data.aclLRUEndp list\n");
+             return -8;
+         }
+     }
+ 
+     return 0;
+ }
+ 
  /* 
   * Initialize the cache to have an entries.  Called during system startup.
   */
! long cm_InitACLCache(int newFile, long size)
  {
      cm_aclent_t *aclp;
      long i;
***************
*** 179,194 ****
      }
  
      lock_ObtainWrite(&cm_aclLock);
!     cm_aclLRUp = cm_aclLRUEndp = NULL;
!     aclp = (cm_aclent_t *) malloc(size * sizeof(cm_aclent_t));
!     memset(aclp, 0, size * sizeof(cm_aclent_t));
  
!     /* 
!      * Put all of these guys on the LRU queue 
!      */
!     for (i = 0; i < size; i++) {
!         osi_QAddH((osi_queue_t **) &cm_aclLRUp, (osi_queue_t **) &cm_aclLRUEndp, &aclp->q);
!         aclp++;
      }
      lock_ReleaseWrite(&cm_aclLock);
      return 0;
--- 245,270 ----
      }
  
      lock_ObtainWrite(&cm_aclLock);
!     if ( newFile ) {
!         cm_data.aclLRUp = cm_data.aclLRUEndp = NULL;
!         aclp = (cm_aclent_t *) cm_data.aclBaseAddress;
!         memset(aclp, 0, size * sizeof(cm_aclent_t));
  
!         /* 
!          * Put all of these guys on the LRU queue 
!          */
!         for (i = 0; i < size; i++) {
!             aclp->magic = CM_ACLENT_MAGIC;
!             osi_QAddH((osi_queue_t **) &cm_data.aclLRUp, (osi_queue_t **) &cm_data.aclLRUEndp, &aclp->q);
!             aclp++;
!         }
!     } else {
!         aclp = (cm_aclent_t *) cm_data.aclBaseAddress;
!         for (i = 0; i < size; i++) {
!             aclp->userp = NULL;
!             aclp->tgtLifetime = 0;
!             aclp++;
!         }
      }
      lock_ReleaseWrite(&cm_aclLock);
      return 0;
Index: openafs/src/WINNT/afsd/cm_aclent.h
diff -c openafs/src/WINNT/afsd/cm_aclent.h:1.2.20.1 openafs/src/WINNT/afsd/cm_aclent.h:1.2.20.2
*** openafs/src/WINNT/afsd/cm_aclent.h:1.2.20.1	Sun Feb 20 20:16:20 2005
--- openafs/src/WINNT/afsd/cm_aclent.h	Fri Mar 11 01:58:39 2005
***************
*** 14,24 ****
--- 14,27 ----
  
  #define cm_TGTLifeTime(x)	(0x7fffffff)
  
+ #define CM_ACLENT_MAGIC    ('A' | 'C' <<8 | 'L'<<16 | 'E'<<24)
+ 
  /*
   * Structure to hold an acl entry for a cached file
   */
  typedef struct cm_aclent {
      osi_queue_t q;		/* for quick removal from LRUQ */
+     afs_uint32 magic;           
      struct cm_aclent *nextp;	/* next guy same vnode */
      struct cm_scache *backp;	/* back ptr to vnode */
      struct cm_user *userp;	/* user whose access is cached */
***************
*** 28,34 ****
  
  extern osi_rwlock_t cm_aclLock;
  
! extern long cm_InitACLCache(long size);
  
  extern long cm_FindACLCache(struct cm_scache *scp, struct cm_user *userp, long *rightsp);
  
--- 31,37 ----
  
  extern osi_rwlock_t cm_aclLock;
  
! extern long cm_InitACLCache(int newFile, long size);
  
  extern long cm_FindACLCache(struct cm_scache *scp, struct cm_user *userp, long *rightsp);
  
***************
*** 40,43 ****
--- 43,50 ----
  
  extern void cm_InvalidateACLUser(struct cm_scache *scp, struct cm_user *userp);
  
+ extern long cm_ValidateACLCache(void);
+ 
+ extern long cm_ShutdownACLCache(void);
+ 
  #endif  /* _CM_ACLENT_H_ */
Index: openafs/src/WINNT/afsd/cm_buf.c
diff -c openafs/src/WINNT/afsd/cm_buf.c:1.13.2.7 openafs/src/WINNT/afsd/cm_buf.c:1.13.2.8
*** openafs/src/WINNT/afsd/cm_buf.c:1.13.2.7	Sun Jan 30 23:08:57 2005
--- openafs/src/WINNT/afsd/cm_buf.c	Fri Mar 11 01:58:39 2005
***************
*** 16,27 ****
  #include <windows.h>
  #endif
  #include <osi.h>
- #include <malloc.h>
  #include <stdio.h>
  #include <assert.h>
  #include <strsafe.h>
  
  #include "afsd.h"
  
  #ifdef DEBUG
  #define TRACE_BUFFER 1
--- 16,27 ----
  #include <windows.h>
  #endif
  #include <osi.h>
  #include <stdio.h>
  #include <assert.h>
  #include <strsafe.h>
  
  #include "afsd.h"
+ #include "cm_memmap.h"
  
  #ifdef DEBUG
  #define TRACE_BUFFER 1
***************
*** 64,112 ****
   * to put stuff in buf_freeListp, and maintain the end
   * pointer manually
   */
- cm_buf_t *buf_freeListp;
- cm_buf_t *buf_freeListEndp;
  
  /* a pointer to a list of all buffers, just so that we can find them
   * easily for debugging, and for the incr syncer.  Locked under
   * the global lock.
   */
- cm_buf_t *buf_allp;
  
  /* defaults setup; these variables may be manually assigned into
   * before calling cm_Init, as a way of changing these defaults.
   */
- long buf_nbuffers = CM_BUF_BUFFERS;
- long buf_nOrigBuffers;
- long buf_bufferSize = CM_BUF_SIZE;
- long buf_hashSize = CM_BUF_HASHSIZE;
- int buf_cacheType = CM_BUF_CACHETYPE_FILE;
- 
- #ifndef DJGPP
- static
- HANDLE CacheHandle;
- 
- static 
- VOID * ViewOfFile;
- 
- static
- SYSTEM_INFO sysInfo;
- #endif /* !DJGPP */
- 
- /* buffer reservation variables */
- long buf_reservedBufs;
- long buf_maxReservedBufs;
- int buf_reserveWaiting;
  
  /* callouts for reading and writing data, etc */
  cm_buf_ops_t *cm_buf_opsp;
  
- /* pointer to hash table; size computed dynamically */
- cm_buf_t **buf_hashTablepp;
- 
- /* another hash table */
- cm_buf_t **buf_fileHashTablepp;
- 
  #ifdef DISKCACHE95
  /* for experimental disk caching support in Win95 client */
  cm_buf_t *buf_diskFreeListp;
--- 64,82 ----
***************
*** 115,123 ****
--- 85,97 ----
  extern int cm_diskCacheEnabled;
  #endif /* DISKCACHE95 */
  
+ /* set this to 1 when we are terminating to prevent access attempts */
+ static int buf_ShutdownFlag = 0;
+ 
  /* hold a reference to an already held buffer */
  void buf_Hold(cm_buf_t *bp)
  {
+     osi_assert(bp->magic == CM_BUF_MAGIC);
      lock_ObtainWrite(&buf_globalLock);
      bp->refCount++;
      lock_ReleaseWrite(&buf_globalLock);
***************
*** 132,151 ****
      cm_req_t req;
  
      lock_ObtainWrite(&buf_globalLock);
!     bp = buf_allp;
      bp->refCount++;
      lock_ReleaseWrite(&buf_globalLock);
!     nAtOnce = buf_nbuffers / 10;
!     while (1) {
  #ifndef DJGPP
          i = SleepEx(5000, 1);
          if (i != 0) continue;
  #else
          thrd_Sleep(5000);
  #endif /* DJGPP */
!                 
          /* now go through our percentage of the buffers */
!         for(i=0; i<nAtOnce; i++) {
              /* don't want its identity changing while we're
               * messing with it, so must do all of this with
               * bp held.
--- 106,128 ----
      cm_req_t req;
  
      lock_ObtainWrite(&buf_globalLock);
!     bp = cm_data.buf_allp;
      bp->refCount++;
      lock_ReleaseWrite(&buf_globalLock);
!     nAtOnce = cm_data.buf_nbuffers / 10;
!     while (buf_ShutdownFlag == 0) {
  #ifndef DJGPP
          i = SleepEx(5000, 1);
          if (i != 0) continue;
  #else
          thrd_Sleep(5000);
  #endif /* DJGPP */
!             
!         if (buf_ShutdownFlag == 1)
!             return;
! 
          /* now go through our percentage of the buffers */
!         for (i=0; i<nAtOnce; i++) {
              /* don't want its identity changing while we're
               * messing with it, so must do all of this with
               * bp held.
***************
*** 165,265 ****
              lock_ObtainWrite(&buf_globalLock);
              buf_LockedRelease(bp);
              bp = bp->allp;
!             if (!bp) bp = buf_allp;
              bp->refCount++;
              lock_ReleaseWrite(&buf_globalLock);
          }	/* for loop over a bunch of buffers */
      }		/* whole daemon's while loop */
  }
  
! #ifndef DJGPP
! /* Create a security attribute structure suitable for use when the cache file
!  * is created.  What we mainly want is that only the administrator should be
!  * able to do anything with the file.  We create an ACL with only one entry,
!  * an entry that grants all rights to the administrator.
!  */
! PSECURITY_ATTRIBUTES CreateCacheFileSA()
  {
!     PSECURITY_ATTRIBUTES psa;
!     PSECURITY_DESCRIPTOR psd;
!     SID_IDENTIFIER_AUTHORITY authority = SECURITY_NT_AUTHORITY;
!     PSID AdminSID;
!     DWORD AdminSIDlength;
!     PACL AdminOnlyACL;
!     DWORD ACLlength;
! 
!     /* Get Administrator SID */
!     AllocateAndInitializeSid(&authority, 2,
!                               SECURITY_BUILTIN_DOMAIN_RID,
!                               DOMAIN_ALIAS_RID_ADMINS,
!                               0, 0, 0, 0, 0, 0,
!                               &AdminSID);
! 
!     /* Create Administrator-only ACL */
!     AdminSIDlength = GetLengthSid(AdminSID);
!     ACLlength = sizeof(ACL) + sizeof(ACCESS_ALLOWED_ACE)
!         + AdminSIDlength - sizeof(DWORD);
!     AdminOnlyACL = GlobalAlloc(GMEM_FIXED, ACLlength);
!     InitializeAcl(AdminOnlyACL, ACLlength, ACL_REVISION);
!     AddAccessAllowedAce(AdminOnlyACL, ACL_REVISION,
!                          STANDARD_RIGHTS_ALL | SPECIFIC_RIGHTS_ALL,
!                          AdminSID);
! 
!     /* Create security descriptor */
!     psd = GlobalAlloc(GMEM_FIXED, sizeof(SECURITY_DESCRIPTOR));
!     InitializeSecurityDescriptor(psd, SECURITY_DESCRIPTOR_REVISION);
!     SetSecurityDescriptorDacl(psd, TRUE, AdminOnlyACL, FALSE);
! 
!     /* Create security attributes structure */
!     psa = GlobalAlloc(GMEM_FIXED, sizeof(SECURITY_ATTRIBUTES));
!     psa->nLength = sizeof(SECURITY_ATTRIBUTES);
!     psa->lpSecurityDescriptor = psd;
!     psa->bInheritHandle = TRUE;
  
!     return psa;
! }       
! #endif /* !DJGPP */
  
! #ifndef DJGPP
! /* Free a security attribute structure created by CreateCacheFileSA() */
! VOID FreeCacheFileSA(PSECURITY_ATTRIBUTES psa)
! {
!     BOOL b1, b2;
!     PACL pAcl;
  
-     GetSecurityDescriptorDacl(psa->lpSecurityDescriptor, &b1, &pAcl, &b2);
-     GlobalFree(pAcl);
-     GlobalFree(psa->lpSecurityDescriptor);
-     GlobalFree(psa);
- }       
- #endif /* !DJGPP */
- 	
  /* initialize the buffer package; called with no locks
   * held during the initialization phase.
   */
! long buf_Init(cm_buf_ops_t *opsp)
  {
      static osi_once_t once;
      cm_buf_t *bp;
-     long sectorSize;
      thread_t phandle;
- #ifndef DJGPP
-     HANDLE hf, hm;
-     PSECURITY_ATTRIBUTES psa;
- #endif /* !DJGPP */
      long i;
      unsigned long pid;
      char *data;
-     long cs;
  
! #ifndef DJGPP
!     /* Get system info; all we really want is the allocation granularity */ 
!     GetSystemInfo(&sysInfo);
! #endif /* !DJGPP */
! 
!     /* Have to be able to reserve a whole chunk */
!     if (((buf_nbuffers - 3) * buf_bufferSize) < cm_chunkSize)
!         return CM_ERROR_TOOFEWBUFS;
  
      /* recall for callouts */
      cm_buf_opsp = opsp;
--- 142,249 ----
              lock_ObtainWrite(&buf_globalLock);
              buf_LockedRelease(bp);
              bp = bp->allp;
!             if (!bp) 
!                 bp = cm_data.buf_allp;
              bp->refCount++;
              lock_ReleaseWrite(&buf_globalLock);
          }	/* for loop over a bunch of buffers */
      }		/* whole daemon's while loop */
  }
  
! long
! buf_ValidateBuffers(void)
  {
!     cm_buf_t * bp, *bpf, *bpa, *bpb;
!     afs_uint32 countb = 0, countf = 0, counta = 0;
  
!     for (bp = cm_data.buf_freeListEndp; bp; bp=(cm_buf_t *) osi_QPrev(&bp->q)) { 
!         if (bp->magic != CM_BUF_MAGIC) {
!             afsi_log("cm_ValidateBuffers failure: bp->magic != CM_BUF_MAGIC");
!             fprintf(stderr, "cm_ValidateBuffers failure: bp->magic != CM_BUF_MAGIC\n");
!             return -1;                  
!         }
!         countb++;                                                                
!         bpb = bp;     
! 
!         if (countb > cm_data.buf_nbuffers) {
!             afsi_log("cm_ValidateBuffers failure: countb > cm_data.buf_nbuffers");
!             fprintf(stderr, "cm_ValidateBuffers failure: countb > cm_data.buf_nbuffers\n");
!             return -6;	                 
!         }
!     }
! 
!     for (bp = cm_data.buf_freeListp; bp; bp=(cm_buf_t *) osi_QNext(&bp->q)) { 
!         if (bp->magic != CM_BUF_MAGIC) {
!             afsi_log("cm_ValidateBuffers failure: bp->magic != CM_BUF_MAGIC");
!             fprintf(stderr, "cm_ValidateBuffers failure: bp->magic != CM_BUF_MAGIC\n");
!             return -2;                  
!         }
!         countf++;                                                             
!         bpf = bp;    
! 
!         if (countf > cm_data.buf_nbuffers) {
!             afsi_log("cm_ValidateBuffers failure: countf > cm_data.buf_nbuffers");
!             fprintf(stderr, "cm_ValidateBuffers failure: countf > cm_data.buf_nbuffers\n");
!             return -7;
!         }
!     }                                                                         
!                                                                               
!     for (bp = cm_data.buf_allp; bp; bp=bp->allp) {                            
!         if (bp->magic != CM_BUF_MAGIC) {
!             afsi_log("cm_ValidateBuffers failure: bp->magic != CM_BUF_MAGIC");
!             fprintf(stderr, "cm_ValidateBuffers failure: bp->magic != CM_BUF_MAGIC\n");
!             return -3;                  
!         }
!         counta++;                                                             
!         bpa = bp;                                                             
! 
!         if (counta > cm_data.buf_nbuffers) {
!             afsi_log("cm_ValidateBuffers failure: counta > cm_data.buf_nbuffers");
!             fprintf(stderr, "cm_ValidateBuffers failure: counta > cm_data.buf_nbuffers\n");
!             return -8;	                 
!         }
!     }                                                                         
!                                                                               
!     if (countb != countf) {
!         afsi_log("cm_ValidateBuffers failure: countb != countf");
!         fprintf(stderr, "cm_ValidateBuffers failure: countb != countf\n");
!         return -4;         
!     }
!                                                                               
!     if (counta != cm_data.buf_nbuffers) {
!         afsi_log("cm_ValidateBuffers failure: counta != cm_data.buf_nbuffers");
!         fprintf(stderr, "cm_ValidateBuffers failure: counta != cm_data.buf_nbuffers\n");
!         return -5;	                 
!     }
!                                                                               
!     return 0;                                                                 
! }
  
! void buf_Shutdown(void)  
! {                        
!     buf_ShutdownFlag = 1;
! }                        
  
  /* initialize the buffer package; called with no locks
   * held during the initialization phase.
   */
! long buf_Init(int newFile, cm_buf_ops_t *opsp, long nbuffers)
  {
      static osi_once_t once;
      cm_buf_t *bp;
      thread_t phandle;
      long i;
      unsigned long pid;
      char *data;
  
!     if ( newFile ) {
!         if (nbuffers) 
!             cm_data.buf_nbuffers = nbuffers;
! 
!         /* Have to be able to reserve a whole chunk */
!         if (((cm_data.buf_nbuffers - 3) * cm_data.buf_blockSize) < cm_chunkSize)
!             return CM_ERROR_TOOFEWBUFS;
!     }
  
      /* recall for callouts */
      cm_buf_opsp = opsp;
***************
*** 268,402 ****
          /* initialize global locks */
          lock_InitializeRWLock(&buf_globalLock, "Global buffer lock");
  
! #ifndef DJGPP
!         /*
!         * Cache file mapping constrained by
!          * system allocation granularity;
!          * round up, assuming granularity is a power of two
!          */
!         cs = buf_nbuffers * buf_bufferSize;
!         cs = (cs + (sysInfo.dwAllocationGranularity - 1))
!             & ~(sysInfo.dwAllocationGranularity - 1);
!         if (cs != buf_nbuffers * buf_bufferSize) {
!             buf_nbuffers = cs / buf_bufferSize;
!             afsi_log("Cache size rounded up to %d buffers",
!                       buf_nbuffers);
!         }
! #endif /* !DJGPP */
! 
!         /* remember this for those who want to reset it */
!         buf_nOrigBuffers = buf_nbuffers;
! 
!         /* lower hash size to a prime number */
!         buf_hashSize = osi_PrimeLessThan(buf_hashSize);
! 
!         /* create hash table */
!         buf_hashTablepp = malloc(buf_hashSize * sizeof(cm_buf_t *));
!         memset((void *)buf_hashTablepp, 0,
!                 buf_hashSize * sizeof(cm_buf_t *));
! 
!         /* another hash table */
!         buf_fileHashTablepp = malloc(buf_hashSize * sizeof(cm_buf_t *));
!         memset((void *)buf_fileHashTablepp, 0,
!                 buf_hashSize * sizeof(cm_buf_t *));
                  
!         /* min value for which this works */
!         sectorSize = 1;
! 
! #ifndef DJGPP
!         if (buf_cacheType == CM_BUF_CACHETYPE_FILE) {
!             /* Reserve buffer space by mapping cache file */
!             psa = CreateCacheFileSA();
!             hf = CreateFile(cm_CachePath,
!                              GENERIC_READ | GENERIC_WRITE,
!                              FILE_SHARE_READ | FILE_SHARE_WRITE,
!                              psa,
!                              OPEN_ALWAYS,
!                              FILE_ATTRIBUTE_NORMAL,
!                              NULL);
!             FreeCacheFileSA(psa);
!             if (hf == INVALID_HANDLE_VALUE) {
!                 afsi_log("Error creating cache file \"%s\" error %d", 
!                           cm_CachePath, GetLastError());
!                 return CM_ERROR_INVAL;
!             } else if (GetLastError() == ERROR_ALREADY_EXISTS) {
!                 BY_HANDLE_FILE_INFORMATION fileInfo;
! 
!                 afsi_log("Cache File \"%s\" already exists", cm_CachePath);
!                 if ( GetFileInformationByHandle(hf, &fileInfo) )
!                     afsi_log("Existing File Size: %08X:%08X",
!                               fileInfo.nFileSizeHigh,
!                               fileInfo.nFileSizeLow);
!             }
!         } else { /* buf_cacheType == CM_BUF_CACHETYPE_VIRTUAL */
!             hf = INVALID_HANDLE_VALUE;
!         }
!         afsi_log("File Mapping Size: %08X", buf_nbuffers * buf_bufferSize);
! 
!         CacheHandle = hf;
!         hm = CreateFileMapping(hf,
!                                 NULL,
!                                 PAGE_READWRITE,
!                                 0, buf_nbuffers * buf_bufferSize,
!                                 NULL);
!         if (hm == NULL) {
!             if (GetLastError() == ERROR_DISK_FULL) {
!                 afsi_log("Error creating cache file mapping: disk full");
!                 return CM_ERROR_TOOMANYBUFS;
!             }
!             return CM_ERROR_INVAL;
!         }
!         ViewOfFile = MapViewOfFile(hm,
!                                    FILE_MAP_ALL_ACCESS,
!                                    0, 0,   
!                                    buf_nbuffers * buf_bufferSize);
!         if (ViewOfFile == NULL) {
!             afsi_log("Error mapping view of file: 0x%X", GetLastError());
!             if (hf != INVALID_HANDLE_VALUE)
!                 CloseHandle(hf);
!             CloseHandle(hm);
!             return CM_ERROR_INVAL;
!         }
!         CloseHandle(hm);
! 
!         data = ViewOfFile;
! #else   
!         /* djgpp doesn't support memory mapped files */
!         data = malloc(buf_nbuffers * buf_bufferSize);
! #endif /* !DJGPP */
! 
!         /* create buffer headers and put in free list */
!         bp = malloc(buf_nbuffers * sizeof(cm_buf_t));
!         buf_allp = NULL;
!         for(i=0; i<buf_nbuffers; i++) {
!             /* allocate and zero some storage */
!             memset(bp, 0, sizeof(cm_buf_t));
! 
!             /* thread on list of all buffers */
!             bp->allp = buf_allp;
!             buf_allp = bp;
! 
!             osi_QAdd((osi_queue_t **)&buf_freeListp, &bp->q);
!             bp->flags |= CM_BUF_INLRU;
!             lock_InitializeMutex(&bp->mx, "Buffer mutex");
! 
!             /* grab appropriate number of bytes from aligned zone */
!             bp->datap = data;
! 
!             /* setup last buffer pointer */
!             if (i == 0)
!                 buf_freeListEndp = bp;
! 
!             /* next */
!             bp++;
!             data += buf_bufferSize;
!         }
! 
!         /* none reserved at first */
!         buf_reservedBufs = 0;
! 
!         /* just for safety's sake */
!         buf_maxReservedBufs = buf_nbuffers - 3;
  
  #ifdef TRACE_BUFFER
          /* init the buffer trace log */
--- 252,321 ----
          /* initialize global locks */
          lock_InitializeRWLock(&buf_globalLock, "Global buffer lock");
  
!         if ( newFile ) {
!             /* remember this for those who want to reset it */
!             cm_data.buf_nOrigBuffers = cm_data.buf_nbuffers;
!  
!             /* lower hash size to a prime number */
!             cm_data.buf_hashSize = osi_PrimeLessThan(CM_BUF_HASHSIZE);
!  
!             /* create hash table */
!             memset((void *)cm_data.buf_hashTablepp, 0, cm_data.buf_hashSize * sizeof(cm_buf_t *));
!             
!             /* another hash table */
!             memset((void *)cm_data.buf_fileHashTablepp, 0, cm_data.buf_hashSize * sizeof(cm_buf_t *));
! 
!             /* create buffer headers and put in free list */
!             bp = cm_data.bufHeaderBaseAddress;
!             data = cm_data.bufDataBaseAddress;
!             cm_data.buf_allp = NULL;
!             
!             for (i=0; i<cm_data.buf_nbuffers; i++) {
!                 osi_assert(bp >= cm_data.bufHeaderBaseAddress && bp < (cm_buf_t *)cm_data.bufDataBaseAddress);
!                 osi_assert(data >= cm_data.bufDataBaseAddress && data < cm_data.bufEndOfData);
                  
!                 /* allocate and zero some storage */
!                 memset(bp, 0, sizeof(cm_buf_t));
!                 bp->magic = CM_BUF_MAGIC;
!                 /* thread on list of all buffers */
!                 bp->allp = cm_data.buf_allp;
!                 cm_data.buf_allp = bp;
!                 
!                 osi_QAdd((osi_queue_t **)&cm_data.buf_freeListp, &bp->q);
!                 bp->flags |= CM_BUF_INLRU;
!                 lock_InitializeMutex(&bp->mx, "Buffer mutex");
!                 
!                 /* grab appropriate number of bytes from aligned zone */
!                 bp->datap = data;
!                 
!                 /* setup last buffer pointer */
!                 if (i == 0)
!                     cm_data.buf_freeListEndp = bp;
!                     
!                 /* next */
!                 bp++;
!                 data += cm_data.buf_blockSize;
!             }       
!  
!             /* none reserved at first */
!             cm_data.buf_reservedBufs = 0;
!  
!             /* just for safety's sake */
!             cm_data.buf_maxReservedBufs = cm_data.buf_nbuffers - 3;
!         } else {
!             bp = cm_data.bufHeaderBaseAddress;
!             data = cm_data.bufDataBaseAddress;
!             
!             for (i=0; i<cm_data.buf_nbuffers; i++) {
!                 lock_InitializeMutex(&bp->mx, "Buffer mutex");
!                 bp->userp = NULL;
!                 bp++;
!             }       
!         }
!  
! #ifdef TESTING
!         buf_ValidateBufQueues();
! #endif /* TESTING */
  
  #ifdef TRACE_BUFFER
          /* init the buffer trace log */
***************
*** 417,498 ****
  #endif /* !DJGPP */
      }
  
      return 0;
  }
  
- void
- buf_Shutdown(void)
- {
-     UnmapViewOfFile(ViewOfFile);
-     CloseHandle(CacheHandle);
- }
- 
  /* add nbuffers to the buffer pool, if possible.
   * Called with no locks held.
   */
  long buf_AddBuffers(long nbuffers)
  {
      cm_buf_t *bp;
      int i;
      char *data;
- #ifndef DJGPP
-     HANDLE hm;
-     long cs;
  
!     afsi_log("%d buffers being added to the existing cache of size %d",
!               nbuffers, buf_nbuffers);
! 
!     if (buf_cacheType == CM_BUF_CACHETYPE_VIRTUAL) {
!         /* The size of a virtual cache cannot be changed after it has
!          * been created.  Subsequent calls to MapViewofFile() with
!          * an existing mapping object name would not allow the 
!          * object to be resized.  Return failure immediately.
! 	 */
!         return CM_ERROR_INVAL;
!     }
! 
!     /*
!      * Cache file mapping constrained by
!      * system allocation granularity;
!      * round up, assuming granularity is a power of two;
!      * assume existing cache size is already rounded
!      */
!     cs = nbuffers * buf_bufferSize;
!     cs = (cs + (sysInfo.dwAllocationGranularity - 1))
!         & ~(sysInfo.dwAllocationGranularity - 1);
!     if (cs != nbuffers * buf_bufferSize) {
!         nbuffers = cs / buf_bufferSize;
!     }
! 
!     /* Reserve additional buffer space by remapping cache file */
!     hm = CreateFileMapping(CacheHandle,
!                             NULL,
!                             PAGE_READWRITE,
!                             0, (buf_nbuffers + nbuffers) * buf_bufferSize,
!                             NULL);
!     if (hm == NULL) {
!         if (GetLastError() == ERROR_DISK_FULL)
!             return CM_ERROR_TOOMANYBUFS;
!         else
!             return CM_ERROR_INVAL;
!     }
!     data = MapViewOfFile(hm,
!                           FILE_MAP_ALL_ACCESS,
!                           0, buf_nbuffers * buf_bufferSize,
!                           nbuffers * buf_bufferSize);
!     if (data == NULL) {
!         CloseHandle(hm);
!         return CM_ERROR_INVAL;
!     }
!     CloseHandle(hm);
! #else
!     data = malloc(buf_nbuffers * buf_bufferSize);
! #endif /* DJGPP */
  
      /* Create buffer headers and put in free list */
      bp = malloc(nbuffers * sizeof(*bp));
  
!     for(i=0; i<nbuffers; i++) {
          memset(bp, 0, sizeof(*bp));
          
          lock_InitializeMutex(&bp->mx, "cm_buf_t");
--- 336,377 ----
  #endif /* !DJGPP */
      }
  
+ #ifdef TESTING
+     buf_ValidateBufQueues();
+ #endif /* TESTING */
      return 0;
  }
  
  /* add nbuffers to the buffer pool, if possible.
   * Called with no locks held.
   */
  long buf_AddBuffers(long nbuffers)
  {
+ #ifndef DJGPP
+     /* The size of a virtual cache cannot be changed after it has
+      * been created.  Subsequent calls to MapViewofFile() with
+      * an existing mapping object name would not allow the 
+      * object to be resized.  Return failure immediately.
+      *
+      * A similar problem now occurs with the persistent cache
+      * given that the memory mapped file now contains a complex
+      * data structure.
+      */
+     afsi_log("request to add %d buffers to the existing cache of size %d denied",
+               nbuffers, cm_data.buf_nbuffers);
+ 
+     return CM_ERROR_INVAL;
+ #else
      cm_buf_t *bp;
      int i;
      char *data;
  
!     data = malloc(buf_nbuffers * cm_data.buf_blockSize);
  
      /* Create buffer headers and put in free list */
      bp = malloc(nbuffers * sizeof(*bp));
  
!     for (i=0; i<nbuffers; i++) {
          memset(bp, 0, sizeof(*bp));
          
          lock_InitializeMutex(&bp->mx, "cm_buf_t");
***************
*** 504,522 ****
  
          lock_ObtainWrite(&buf_globalLock);
          /* note that buf_allp chain is covered by buf_globalLock now */
!         bp->allp = buf_allp;
!         buf_allp = bp;
!         osi_QAdd((osi_queue_t **) &buf_freeListp, &bp->q);
!         if (!buf_freeListEndp) buf_freeListEndp = bp;
!         buf_nbuffers++;
          lock_ReleaseWrite(&buf_globalLock);
  
          bp++;
!         data += buf_bufferSize;
  	
      }	 /* for loop over all buffers */
  
      return 0;
  }       
  
  /* interface to set the number of buffers to an exact figure.
--- 383,403 ----
  
          lock_ObtainWrite(&buf_globalLock);
          /* note that buf_allp chain is covered by buf_globalLock now */
!         bp->allp = cm_data.buf_allp;
!         cm_data.buf_allp = bp;
!         osi_QAdd((osi_queue_t **) &cm_data.buf_freeListp, &bp->q);
!         if (!cm_data.buf_freeListEndp) 
!             cm_data.buf_freeListEndp = bp;
!         cm_data.buf_nbuffers++;
          lock_ReleaseWrite(&buf_globalLock);
  
          bp++;
!         data += cm_data.buf_blockSize;
  	
      }	 /* for loop over all buffers */
  
      return 0;
+ #endif /* DJGPP */
  }       
  
  /* interface to set the number of buffers to an exact figure.
***************
*** 526,535 ****
  {
      if (nbuffers < 10) 
          return CM_ERROR_INVAL;
!     if (nbuffers == buf_nbuffers) 
          return 0;
!     else if (nbuffers > buf_nbuffers)
!         return buf_AddBuffers(nbuffers - buf_nbuffers);
      else 
          return CM_ERROR_INVAL;
  }
--- 407,416 ----
  {
      if (nbuffers < 10) 
          return CM_ERROR_INVAL;
!     if (nbuffers == cm_data.buf_nbuffers) 
          return 0;
!     else if (nbuffers > cm_data.buf_nbuffers)
!         return buf_AddBuffers(nbuffers - cm_data.buf_nbuffers);
      else 
          return CM_ERROR_INVAL;
  }
***************
*** 547,552 ****
--- 428,435 ----
   */
  void buf_WaitIO(cm_buf_t *bp)
  {
+     osi_assert(bp->magic == CM_BUF_MAGIC);
+ 
      while (1) {
          /* if no IO is happening, we're done */
          if (!(bp->flags & (CM_BUF_READING | CM_BUF_WRITING)))
***************
*** 582,592 ****
      osi_assert(bp->refCount > 0);
      if (--bp->refCount == 0) {
          if (!(bp->flags & CM_BUF_INLRU)) {
!             osi_QAdd((osi_queue_t **) &buf_freeListp, &bp->q);
  
              /* watch for transition from empty to one element */
!             if (!buf_freeListEndp)
!                 buf_freeListEndp = buf_freeListp;
              bp->flags |= CM_BUF_INLRU;
          }
      }
--- 465,475 ----
      osi_assert(bp->refCount > 0);
      if (--bp->refCount == 0) {
          if (!(bp->flags & CM_BUF_INLRU)) {
!             osi_QAdd((osi_queue_t **) &cm_data.buf_freeListp, &bp->q);
  
              /* watch for transition from empty to one element */
!             if (!cm_data.buf_freeListEndp)
!                 cm_data.buf_freeListEndp = cm_data.buf_freeListp;
              bp->flags |= CM_BUF_INLRU;
          }
      }
***************
*** 601,607 ****
      cm_buf_t *bp;
  
      i = BUF_HASH(&scp->fid, offsetp);
!     for(bp = buf_hashTablepp[i]; bp; bp=bp->hashp) {
          if (cm_FidCmp(&scp->fid, &bp->fid) == 0
               && offsetp->LowPart == bp->offset.LowPart
               && offsetp->HighPart == bp->offset.HighPart) {
--- 484,490 ----
      cm_buf_t *bp;
  
      i = BUF_HASH(&scp->fid, offsetp);
!     for(bp = cm_data.buf_hashTablepp[i]; bp; bp=bp->hashp) {
          if (cm_FidCmp(&scp->fid, &bp->fid) == 0
               && offsetp->LowPart == bp->offset.LowPart
               && offsetp->HighPart == bp->offset.HighPart) {
***************
*** 637,650 ****
   */
  void buf_LockedCleanAsync(cm_buf_t *bp, cm_req_t *reqp)
  {
!     long code;
  
!     code = 0;
!     while ((bp->flags & (CM_BUF_WRITING | CM_BUF_DIRTY)) == CM_BUF_DIRTY) {
          lock_ReleaseMutex(&bp->mx);
  
          code = (*cm_buf_opsp->Writep)(&bp->fid, &bp->offset,
!                                        buf_bufferSize, 0, bp->userp,
                                         reqp);
                  
          lock_ObtainMutex(&bp->mx);
--- 520,534 ----
   */
  void buf_LockedCleanAsync(cm_buf_t *bp, cm_req_t *reqp)
  {
!     long code = 0;
  
!     osi_assert(bp->magic == CM_BUF_MAGIC);
! 
!     while ((bp->flags & CM_BUF_DIRTY) == CM_BUF_DIRTY) {
          lock_ReleaseMutex(&bp->mx);
  
          code = (*cm_buf_opsp->Writep)(&bp->fid, &bp->offset,
!                                        cm_data.buf_blockSize, 0, bp->userp,
                                         reqp);
                  
          lock_ObtainMutex(&bp->mx);
***************
*** 654,660 ****
  #ifdef DISKCACHE95
          /* Disk cache support */
          /* write buffer to disk cache (synchronous for now) */
!         diskcache_Update(bp->dcp, bp->datap, buf_bufferSize, bp->dataVersion);
  #endif /* DISKCACHE95 */
      };
  
--- 538,544 ----
  #ifdef DISKCACHE95
          /* Disk cache support */
          /* write buffer to disk cache (synchronous for now) */
!         diskcache_Update(bp->dcp, bp->datap, cm_data.buf_blockSize, bp->dataVersion);
  #endif /* DISKCACHE95 */
      };
  
***************
*** 682,687 ****
--- 566,573 ----
      cm_buf_t *tbp;
      cm_buf_t *prevBp, *nextBp;
  
+     osi_assert(bp->magic == CM_BUF_MAGIC);
+ 
      /* if we get here, we know that the buffer still has a 0 ref count,
       * and that it is clean and has no currently pending I/O.  This is
       * the dude to return.
***************
*** 700,706 ****
          /* Remove from hash */
  
          i = BUF_HASH(&bp->fid, &bp->offset);
!         lbpp = &(buf_hashTablepp[i]);
          for(tbp = *lbpp; tbp; lbpp = &tbp->hashp, tbp = *lbpp) {
              if (tbp == bp) break;
          }
--- 586,592 ----
          /* Remove from hash */
  
          i = BUF_HASH(&bp->fid, &bp->offset);
!         lbpp = &(cm_data.buf_hashTablepp[i]);
          for(tbp = *lbpp; tbp; lbpp = &tbp->hashp, tbp = *lbpp) {
              if (tbp == bp) break;
          }
***************
*** 718,724 ****
          if (prevBp)
              prevBp->fileHashp = nextBp;
          else
!             buf_fileHashTablepp[i] = nextBp;
          if (nextBp)
              nextBp->fileHashBackp = prevBp;
  
--- 604,610 ----
          if (prevBp)
              prevBp->fileHashp = nextBp;
          else
!             cm_data.buf_fileHashTablepp[i] = nextBp;
          if (nextBp)
              nextBp->fileHashBackp = prevBp;
  
***************
*** 732,738 ****
      bp->idCounter++;
  
      /* make the fid unrecognizable */
!     memset(&bp->fid, 0, sizeof(bp->fid));
  }       
  
  /* recycle a buffer, removing it from the free list, hashing in its new identity
--- 618,624 ----
      bp->idCounter++;
  
      /* make the fid unrecognizable */
!     memset(&bp->fid, 0, sizeof(cm_fid_t));
  }       
  
  /* recycle a buffer, removing it from the free list, hashing in its new identity
***************
*** 755,760 ****
--- 641,650 ----
  
      cm_InitReq(&req);	/* just in case */
  
+ #ifdef TESTING
+     buf_ValidateBufQueues();
+ #endif /* TESTING */
+ 
      while(1) {
        retry:
          lock_ObtainWrite(&buf_globalLock);
***************
*** 772,785 ****
           * instead of this; or better, we should have a transaction
           * throttler prevent us from entering this situation.
           */
!         osi_assertx(buf_freeListEndp != NULL, "buf_GetNewLocked: no free buffers");
  
          /* look at all buffers in free list, some of which may temp.
           * have high refcounts and which then should be skipped,
           * starting cleaning I/O for those which are dirty.  If we find
           * a clean buffer, we rehash it, lock it and return it.
           */
!         for(bp = buf_freeListEndp; bp; bp=(cm_buf_t *) osi_QPrev(&bp->q)) {
              /* check to see if it really has zero ref count.  This
               * code can bump refcounts, at least, so it may not be
               * zero.
--- 662,675 ----
           * instead of this; or better, we should have a transaction
           * throttler prevent us from entering this situation.
           */
!         osi_assertx(cm_data.buf_freeListEndp != NULL, "buf_GetNewLocked: no free buffers");
  
          /* look at all buffers in free list, some of which may temp.
           * have high refcounts and which then should be skipped,
           * starting cleaning I/O for those which are dirty.  If we find
           * a clean buffer, we rehash it, lock it and return it.
           */
!         for(bp = cm_data.buf_freeListEndp; bp; bp=(cm_buf_t *) osi_QPrev(&bp->q)) {
              /* check to see if it really has zero ref count.  This
               * code can bump refcounts, at least, so it may not be
               * zero.
***************
*** 853,867 ****
                  bp->fid = scp->fid;
                  bp->offset = *offsetp;
                  i = BUF_HASH(&scp->fid, offsetp);
!                 bp->hashp = buf_hashTablepp[i];
!                 buf_hashTablepp[i] = bp;
                  i = BUF_FILEHASH(&scp->fid);
!                 nextBp = buf_fileHashTablepp[i];
                  bp->fileHashp = nextBp;
                  bp->fileHashBackp = NULL;
                  if (nextBp)
                      nextBp->fileHashBackp = bp;
!                 buf_fileHashTablepp[i] = bp;
              }
  
              /* prepare to return it.  Start by giving it a good
--- 743,757 ----
                  bp->fid = scp->fid;
                  bp->offset = *offsetp;
                  i = BUF_HASH(&scp->fid, offsetp);
!                 bp->hashp = cm_data.buf_hashTablepp[i];
!                 cm_data.buf_hashTablepp[i] = bp;
                  i = BUF_FILEHASH(&scp->fid);
!                 nextBp = cm_data.buf_fileHashTablepp[i];
                  bp->fileHashp = nextBp;
                  bp->fileHashBackp = NULL;
                  if (nextBp)
                      nextBp->fileHashBackp = bp;
!                 cm_data.buf_fileHashTablepp[i] = bp;
              }
  
              /* prepare to return it.  Start by giving it a good
***************
*** 875,885 ****
               */
              osi_assertx(bp->flags & CM_BUF_INLRU,
                           "buf_GetNewLocked: LRU screwup");
!             if (buf_freeListEndp == bp) {
                  /* we're the last guy in this queue, so maintain it */
!                 buf_freeListEndp = (cm_buf_t *) osi_QPrev(&bp->q);
              }
!             osi_QRemove((osi_queue_t **) &buf_freeListp, &bp->q);
              bp->flags &= ~CM_BUF_INLRU;
  
              /* finally, grab the mutex so that people don't use it
--- 765,775 ----
               */
              osi_assertx(bp->flags & CM_BUF_INLRU,
                           "buf_GetNewLocked: LRU screwup");
!             if (cm_data.buf_freeListEndp == bp) {
                  /* we're the last guy in this queue, so maintain it */
!                 cm_data.buf_freeListEndp = (cm_buf_t *) osi_QPrev(&bp->q);
              }
!             osi_QRemove((osi_queue_t **) &cm_data.buf_freeListp, &bp->q);
              bp->flags &= ~CM_BUF_INLRU;
  
              /* finally, grab the mutex so that people don't use it
***************
*** 891,896 ****
--- 781,790 ----
  
              lock_ReleaseWrite(&buf_globalLock);
              *bufpp = bp;
+ 
+ #ifdef TESTING
+             buf_ValidateBufQueues();
+ #endif /* TESTING */
              return 0;
          } /* for all buffers in lru queue */
          lock_ReleaseWrite(&buf_globalLock);
***************
*** 910,916 ****
  
      created = 0;
      pageOffset.HighPart = offsetp->HighPart;
!     pageOffset.LowPart = offsetp->LowPart & ~(buf_bufferSize-1);
      while (1) {
          lock_ObtainWrite(&buf_globalLock);
          bp = buf_LockedFind(scp, &pageOffset);
--- 804,810 ----
  
      created = 0;
      pageOffset.HighPart = offsetp->HighPart;
!     pageOffset.LowPart = offsetp->LowPart & ~(cm_data.buf_blockSize-1);
      while (1) {
          lock_ObtainWrite(&buf_globalLock);
          bp = buf_LockedFind(scp, &pageOffset);
***************
*** 961,974 ****
      osi_hyper_t pageOffset;
      unsigned long tcount;
      int created;
  #ifdef DISKCACHE95
      cm_diskcache_t *dcp;
  #endif /* DISKCACHE95 */
  
      created = 0;
      pageOffset.HighPart = offsetp->HighPart;
!     pageOffset.LowPart = offsetp->LowPart & ~(buf_bufferSize-1);
      while (1) {
          lock_ObtainWrite(&buf_globalLock);
          bp = buf_LockedFind(scp, &pageOffset);
          lock_ReleaseWrite(&buf_globalLock);
--- 855,874 ----
      osi_hyper_t pageOffset;
      unsigned long tcount;
      int created;
+     long lcount = 0;
  #ifdef DISKCACHE95
      cm_diskcache_t *dcp;
  #endif /* DISKCACHE95 */
  
      created = 0;
      pageOffset.HighPart = offsetp->HighPart;
!     pageOffset.LowPart = offsetp->LowPart & ~(cm_data.buf_blockSize-1);
      while (1) {
+         lcount++;
+ #ifdef TESTING
+         buf_ValidateBufQueues();
+ #endif /* TESTING */
+ 
          lock_ObtainWrite(&buf_globalLock);
          bp = buf_LockedFind(scp, &pageOffset);
          lock_ReleaseWrite(&buf_globalLock);
***************
*** 993,1000 ****
              continue;
  
          /* something else went wrong */
!         if (code != 0) 
              return code;
                  
          /* otherwise, we have a locked buffer that we just created */
          created = 1;
--- 893,904 ----
              continue;
  
          /* something else went wrong */
!         if (code != 0) { 
! #ifdef TESTING
!             buf_ValidateBufQueues();
! #endif /* TESTING */
              return code;
+         }
                  
          /* otherwise, we have a locked buffer that we just created */
          created = 1;
***************
*** 1016,1025 ****
  
          /* start the I/O; may drop lock */
          bp->flags |= CM_BUF_READING;
!         code = (*cm_buf_opsp->Readp)(bp, buf_bufferSize, &tcount, NULL);
  
  #ifdef DISKCACHE95
!         code = diskcache_Get(&bp->fid, &bp->offset, bp->datap, buf_bufferSize, &bp->dataVersion, &tcount, &dcp);
          bp->dcp = dcp;    /* pointer to disk cache struct. */
  #endif /* DISKCACHE95 */
  
--- 920,929 ----
  
          /* start the I/O; may drop lock */
          bp->flags |= CM_BUF_READING;
!         code = (*cm_buf_opsp->Readp)(bp, cm_data.buf_blockSize, &tcount, NULL);
  
  #ifdef DISKCACHE95
!         code = diskcache_Get(&bp->fid, &bp->offset, bp->datap, cm_data.buf_blockSize, &bp->dataVersion, &tcount, &dcp);
          bp->dcp = dcp;    /* pointer to disk cache struct. */
  #endif /* DISKCACHE95 */
  
***************
*** 1037,1042 ****
--- 941,949 ----
                  }
                  lock_ReleaseMutex(&bp->mx);
                  buf_Release(bp);
+ #ifdef TESTING
+                 buf_ValidateBufQueues();
+ #endif /* TESTING */
                  return code;
  #ifndef DJGPP
              }
***************
*** 1045,1052 ****
              /* otherwise, I/O completed instantly and we're done, except
               * for padding the xfr out with 0s and checking for EOF
               */
!             if (tcount < (unsigned long) buf_bufferSize) {
!                 memset(bp->datap+tcount, 0, buf_bufferSize - tcount);
                  if (tcount == 0)
                      bp->flags |= CM_BUF_EOF;
              }
--- 952,959 ----
              /* otherwise, I/O completed instantly and we're done, except
               * for padding the xfr out with 0s and checking for EOF
               */
!             if (tcount < (unsigned long) cm_data.buf_blockSize) {
!                 memset(bp->datap+tcount, 0, cm_data.buf_blockSize - tcount);
                  if (tcount == 0)
                      bp->flags |= CM_BUF_EOF;
              }
***************
*** 1076,1090 ****
       */
      lock_ObtainWrite(&buf_globalLock);
      if (bp->flags & CM_BUF_INLRU) {
!         if (buf_freeListEndp == bp)
!             buf_freeListEndp = (cm_buf_t *) osi_QPrev(&bp->q);
!         osi_QRemove((osi_queue_t **) &buf_freeListp, &bp->q);
          bp->flags &= ~CM_BUF_INLRU;
      }
      lock_ReleaseWrite(&buf_globalLock);
  
      osi_Log3(buf_logp, "buf_Get returning bp 0x%x for file 0x%x, offset 0x%x",
                bp, (long) scp, offsetp->LowPart);
      return 0;
  }
  
--- 983,1000 ----
       */
      lock_ObtainWrite(&buf_globalLock);
      if (bp->flags & CM_BUF_INLRU) {
!         if (cm_data.buf_freeListEndp == bp)
!             cm_data.buf_freeListEndp = (cm_buf_t *) osi_QPrev(&bp->q);
!         osi_QRemove((osi_queue_t **) &cm_data.buf_freeListp, &bp->q);
          bp->flags &= ~CM_BUF_INLRU;
      }
      lock_ReleaseWrite(&buf_globalLock);
  
      osi_Log3(buf_logp, "buf_Get returning bp 0x%x for file 0x%x, offset 0x%x",
                bp, (long) scp, offsetp->LowPart);
+ #ifdef TESTING
+     buf_ValidateBufQueues();
+ #endif /* TESTING */
      return 0;
  }
  
***************
*** 1100,1106 ****
  
      count = 0;
      lock_ObtainRead(&buf_globalLock);
!     for(bufp = buf_freeListp; bufp; bufp = (cm_buf_t *) osi_QNext(&bufp->q)) {
          /* if the buffer doesn't have an identity, or if the buffer
           * has been invalidate (by having its DV stomped upon), then
           * count it as free, since it isn't really being utilized.
--- 1010,1016 ----
  
      count = 0;
      lock_ObtainRead(&buf_globalLock);
!     for(bufp = cm_data.buf_freeListp; bufp; bufp = (cm_buf_t *) osi_QNext(&bufp->q)) {
          /* if the buffer doesn't have an identity, or if the buffer
           * has been invalidate (by having its DV stomped upon), then
           * count it as free, since it isn't really being utilized.
***************
*** 1115,1120 ****
--- 1025,1032 ----
  /* clean a buffer synchronously */
  void buf_CleanAsync(cm_buf_t *bp, cm_req_t *reqp)
  {
+     osi_assert(bp->magic == CM_BUF_MAGIC);
+ 
      lock_ObtainMutex(&bp->mx);
      buf_LockedCleanAsync(bp, reqp);
      lock_ReleaseMutex(&bp->mx);
***************
*** 1123,1128 ****
--- 1035,1042 ----
  /* wait for a buffer's cleaning to finish */
  void buf_CleanWait(cm_buf_t *bp)
  {
+     osi_assert(bp->magic == CM_BUF_MAGIC);
+ 
      lock_ObtainMutex(&bp->mx);
      if (bp->flags & CM_BUF_WRITING) {
          buf_WaitIO(bp);
***************
*** 1137,1142 ****
--- 1051,1057 ----
   */
  void buf_SetDirty(cm_buf_t *bp)
  {
+     osi_assert(bp->magic == CM_BUF_MAGIC);
      osi_assert(bp->refCount > 0);
  	
      osi_Log1(buf_logp, "buf_SetDirty 0x%x", bp);
***************
*** 1175,1199 ****
      cm_req_t req;
  
      lock_ObtainWrite(&buf_globalLock);
!     for(i=0; i<buf_hashSize; i++) {
!         for(bp = buf_hashTablepp[i]; bp; bp = bp->hashp) {
!             bp->refCount++;
!             lock_ReleaseWrite(&buf_globalLock);
  
!             /* now no locks are held; clean buffer and go on */
!             cm_InitReq(&req);
!             buf_CleanAsync(bp, &req);
!             buf_CleanWait(bp);
  
!             /* relock and release buffer */
!             lock_ObtainWrite(&buf_globalLock);
!             buf_LockedRelease(bp);
          } /* over one bucket */
      }	/* for loop over all hash buckets */
  
      /* release locks */
      lock_ReleaseWrite(&buf_globalLock);
  
      /* and we're done */
      return 0;
  }       
--- 1090,1120 ----
      cm_req_t req;
  
      lock_ObtainWrite(&buf_globalLock);
!     for(i=0; i<cm_data.buf_hashSize; i++) {
!         for(bp = cm_data.buf_hashTablepp[i]; bp; bp = bp->hashp) {
!             if ((bp->flags & CM_BUF_DIRTY) == CM_BUF_DIRTY) {
!                 bp->refCount++;
!                 lock_ReleaseWrite(&buf_globalLock);
  
!                 /* now no locks are held; clean buffer and go on */
!                 cm_InitReq(&req);
!                 buf_CleanAsync(bp, &req);
!                 buf_CleanWait(bp);
  
!                 /* relock and release buffer */
!                 lock_ObtainWrite(&buf_globalLock);
!                 buf_LockedRelease(bp);
!             } /* dirty */
          } /* over one bucket */
      }	/* for loop over all hash buckets */
  
      /* release locks */
      lock_ReleaseWrite(&buf_globalLock);
  
+ #ifdef TESTING
+     buf_ValidateBufQueues();
+ #endif /* TESTING */
+     
      /* and we're done */
      return 0;
  }       
***************
*** 1205,1218 ****
  {
      lock_ObtainWrite(&buf_globalLock);
      while (1) {
!         if (buf_reservedBufs + nbuffers > buf_maxReservedBufs) {
!             buf_reserveWaiting = 1;
              osi_Log1(buf_logp, "buf_ReserveBuffers waiting for %d bufs", nbuffers);
!             osi_SleepW((long) &buf_reservedBufs, &buf_globalLock);
              lock_ObtainWrite(&buf_globalLock);
          }
          else {
!             buf_reservedBufs += nbuffers;
              break;
          }
      }
--- 1126,1139 ----
  {
      lock_ObtainWrite(&buf_globalLock);
      while (1) {
!         if (cm_data.buf_reservedBufs + nbuffers > cm_data.buf_maxReservedBufs) {
!             cm_data.buf_reserveWaiting = 1;
              osi_Log1(buf_logp, "buf_ReserveBuffers waiting for %d bufs", nbuffers);
!             osi_SleepW((long) &cm_data.buf_reservedBufs, &buf_globalLock);
              lock_ObtainWrite(&buf_globalLock);
          }
          else {
!             cm_data.buf_reservedBufs += nbuffers;
              break;
          }
      }
***************
*** 1224,1234 ****
      int code;
  
      lock_ObtainWrite(&buf_globalLock);
!     if (buf_reservedBufs + nbuffers > buf_maxReservedBufs) {
          code = 0;
      }
      else {
!         buf_reservedBufs += nbuffers;
          code = 1;
      }
      lock_ReleaseWrite(&buf_globalLock);
--- 1145,1155 ----
      int code;
  
      lock_ObtainWrite(&buf_globalLock);
!     if (cm_data.buf_reservedBufs + nbuffers > cm_data.buf_maxReservedBufs) {
          code = 0;
      }
      else {
!         cm_data.buf_reservedBufs += nbuffers;
          code = 1;
      }
      lock_ReleaseWrite(&buf_globalLock);
***************
*** 1241,1250 ****
  void buf_UnreserveBuffers(long nbuffers)
  {
      lock_ObtainWrite(&buf_globalLock);
!     buf_reservedBufs -= nbuffers;
!     if (buf_reserveWaiting) {
!         buf_reserveWaiting = 0;
!         osi_Wakeup((long) &buf_reservedBufs);
      }
      lock_ReleaseWrite(&buf_globalLock);
  }       
--- 1162,1171 ----
  void buf_UnreserveBuffers(long nbuffers)
  {
      lock_ObtainWrite(&buf_globalLock);
!     cm_data.buf_reservedBufs -= nbuffers;
!     if (cm_data.buf_reserveWaiting) {
!         cm_data.buf_reserveWaiting = 0;
!         osi_Wakeup((long) &cm_data.buf_reservedBufs);
      }
      lock_ReleaseWrite(&buf_globalLock);
  }       
***************
*** 1271,1277 ****
      i = BUF_FILEHASH(&scp->fid);
  
      lock_ObtainWrite(&buf_globalLock);
!     bufp = buf_fileHashTablepp[i];
      if (bufp == NULL) {
          lock_ReleaseWrite(&buf_globalLock);
          return 0;
--- 1192,1198 ----
      i = BUF_FILEHASH(&scp->fid);
  
      lock_ObtainWrite(&buf_globalLock);
!     bufp = cm_data.buf_fileHashTablepp[i];
      if (bufp == NULL) {
          lock_ReleaseWrite(&buf_globalLock);
          return 0;
***************
*** 1284,1290 ****
          lock_ObtainMutex(&bufp->mx);
  
          bufEnd.HighPart = 0;
!         bufEnd.LowPart = buf_bufferSize;
          bufEnd = LargeIntegerAdd(bufEnd, bufp->offset);
  
          if (cm_FidCmp(&bufp->fid, &scp->fid) == 0 &&
--- 1205,1211 ----
          lock_ObtainMutex(&bufp->mx);
  
          bufEnd.HighPart = 0;
!         bufEnd.LowPart = cm_data.buf_blockSize;
          bufEnd = LargeIntegerAdd(bufEnd, bufp->offset);
  
          if (cm_FidCmp(&bufp->fid, &scp->fid) == 0 &&
***************
*** 1330,1339 ****
                   * seek and write past EOF, and make this data
                   * visible again.
                   */
!                 bufferPos = sizep->LowPart & (buf_bufferSize - 1);
                  osi_assert(bufferPos != 0);
                  memset(bufp->datap + bufferPos, 0,
!                         buf_bufferSize - bufferPos);
              }
  
              lock_ReleaseWrite(&buf_globalLock);
--- 1251,1260 ----
                   * seek and write past EOF, and make this data
                   * visible again.
                   */
!                 bufferPos = sizep->LowPart & (cm_data.buf_blockSize - 1);
                  osi_assert(bufferPos != 0);
                  memset(bufp->datap + bufferPos, 0,
!                         cm_data.buf_blockSize - bufferPos);
              }
  
              lock_ReleaseWrite(&buf_globalLock);
***************
*** 1356,1365 ****
--- 1277,1295 ----
               */
              if (nbufp) 
                  buf_Release(nbufp);
+ 
+ #ifdef TESTING
+             buf_ValidateBufQueues();
+ #endif /* TESTING */
+ 
              return code;
          }
      }
  
+ #ifdef TESTING
+     buf_ValidateBufQueues();
+ #endif /* TESTING */
+ 
      /* success */
      return 0;
  }
***************
*** 1376,1385 ****
  
      code = 0;
      lock_ObtainWrite(&buf_globalLock);
!     bp = buf_fileHashTablepp[i];
!     if (bp) bp->refCount++;
      lock_ReleaseWrite(&buf_globalLock);
!     for(; bp; bp = nbp) {
          didRelease = 0;	/* haven't released this buffer yet */
  
          /* clean buffer synchronously */
--- 1306,1316 ----
  
      code = 0;
      lock_ObtainWrite(&buf_globalLock);
!     bp = cm_data.buf_fileHashTablepp[i];
!     if (bp) 
!         bp->refCount++;
      lock_ReleaseWrite(&buf_globalLock);
!     for (; bp; bp = nbp) {
          didRelease = 0;	/* haven't released this buffer yet */
  
          /* clean buffer synchronously */
***************
*** 1392,1398 ****
              lock_ReleaseMutex(&bp->mx);
  
              code = (*cm_buf_opsp->Stabilizep)(scp, userp, reqp);
!             if (code) goto skip;
  
              lock_ObtainWrite(&buf_globalLock);
              /* actually, we only know that buffer is clean if ref
--- 1323,1330 ----
              lock_ReleaseMutex(&bp->mx);
  
              code = (*cm_buf_opsp->Stabilizep)(scp, userp, reqp);
!             if (code) 
!                 goto skip;
  
              lock_ObtainWrite(&buf_globalLock);
              /* actually, we only know that buffer is clean if ref
***************
*** 1402,1408 ****
                  if (bp->refCount == 1) {	/* bp is held above */
                      buf_LockedRelease(bp);
                      nbp = bp->fileHashp;
!                     if (nbp) nbp->refCount++;
                      didRelease = 1;
                      buf_Recycle(bp);
                  }
--- 1334,1341 ----
                  if (bp->refCount == 1) {	/* bp is held above */
                      buf_LockedRelease(bp);
                      nbp = bp->fileHashp;
!                     if (nbp) 
!                         nbp->refCount++;
                      didRelease = 1;
                      buf_Recycle(bp);
                  }
***************
*** 1415,1426 ****
        skip:
          if (!didRelease) {
              lock_ObtainWrite(&buf_globalLock);
!             if (nbp = bp->fileHashp) nbp->refCount++;
              buf_LockedRelease(bp);
              lock_ReleaseWrite(&buf_globalLock);
          }
      }	/* for loop over a bunch of buffers */
  
      /* done */
      return code;
  }       
--- 1348,1364 ----
        skip:
          if (!didRelease) {
              lock_ObtainWrite(&buf_globalLock);
!             if (nbp = bp->fileHashp) 
!                 nbp->refCount++;
              buf_LockedRelease(bp);
              lock_ReleaseWrite(&buf_globalLock);
          }
      }	/* for loop over a bunch of buffers */
  
+ #ifdef TESTING
+             buf_ValidateBufQueues();
+ #endif /* TESTING */
+ 
      /* done */
      return code;
  }       
***************
*** 1436,1445 ****
  
      code = 0;
      lock_ObtainWrite(&buf_globalLock);
!     bp = buf_fileHashTablepp[i];
!     if (bp) bp->refCount++;
      lock_ReleaseWrite(&buf_globalLock);
!     for(; bp; bp = nbp) {
          /* clean buffer synchronously */
          if (cm_FidCmp(&bp->fid, &scp->fid) == 0) {
              if (userp) {
--- 1374,1384 ----
  
      code = 0;
      lock_ObtainWrite(&buf_globalLock);
!     bp = cm_data.buf_fileHashTablepp[i];
!     if (bp) 
!         bp->refCount++;
      lock_ReleaseWrite(&buf_globalLock);
!     for (; bp; bp = nbp) {
          /* clean buffer synchronously */
          if (cm_FidCmp(&bp->fid, &scp->fid) == 0) {
              if (userp) {
***************
*** 1465,1497 ****
          lock_ObtainWrite(&buf_globalLock);
          buf_LockedRelease(bp);
          nbp = bp->fileHashp;
!         if (nbp) nbp->refCount++;
          lock_ReleaseWrite(&buf_globalLock);
      }	/* for loop over a bunch of buffers */
  
      /* done */
      return code;
  }
  
  /* dump the contents of the buf_hashTablepp. */
! int cm_DumpBufHashTable(FILE *outputFile, char *cookie)
  {
      int zilch;
      cm_buf_t *bp;
      char output[1024];
      int i;
    
!     if (buf_hashTablepp == NULL)
          return -1;
  
!     lock_ObtainRead(&buf_globalLock);
    
!     StringCbPrintfA(output, sizeof(output), "%s - dumping buf_HashTable - buf_hashSize=%d\n", cookie, buf_hashSize);
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
    
!     for (i = 0; i < buf_hashSize; i++)
      {
!         for (bp = buf_hashTablepp[i]; bp; bp=bp->hashp) 
          {
              if (bp->refCount)
              {
--- 1404,1481 ----
          lock_ObtainWrite(&buf_globalLock);
          buf_LockedRelease(bp);
          nbp = bp->fileHashp;
!         if (nbp) 
!             nbp->refCount++;
          lock_ReleaseWrite(&buf_globalLock);
      }	/* for loop over a bunch of buffers */
  
+ #ifdef TESTING
+     buf_ValidateBufQueues();
+ #endif /* TESTING */
+ 
      /* done */
      return code;
  }
  
+ #ifdef TESTING
+ void
+ buf_ValidateBufQueues(void)
+ {
+     cm_buf_t * bp, *bpb, *bpf, *bpa;
+     afs_uint32 countf=0, countb=0, counta=0;
+ 
+     lock_ObtainRead(&buf_globalLock);
+     for (bp = cm_data.buf_freeListEndp; bp; bp=(cm_buf_t *) osi_QPrev(&bp->q)) {
+         if (bp->magic != CM_BUF_MAGIC)
+             DebugBreak();
+         countb++;
+         bpb = bp;
+     }
+ 
+     for (bp = cm_data.buf_freeListp; bp; bp=(cm_buf_t *) osi_QNext(&bp->q)) {
+         if (bp->magic != CM_BUF_MAGIC)
+             DebugBreak();
+         countf++;
+         bpf = bp;
+     }
+ 
+     for (bp = cm_data.buf_allp; bp; bp=bp->allp) {
+         if (bp->magic != CM_BUF_MAGIC)
+             DebugBreak();
+         counta++;
+         bpa = bp;
+     }
+     lock_ReleaseRead(&buf_globalLock);
+ 
+     if (countb != countf)
+         DebugBreak();
+ 
+     if (counta != cm_data.buf_nbuffers)
+         DebugBreak();	
+ }
+ #endif /* TESTING */
+ 
  /* dump the contents of the buf_hashTablepp. */
! int cm_DumpBufHashTable(FILE *outputFile, char *cookie, int lock)
  {
      int zilch;
      cm_buf_t *bp;
      char output[1024];
      int i;
    
!     if (cm_data.buf_hashTablepp == NULL)
          return -1;
  
!     if (lock)
!         lock_ObtainRead(&buf_globalLock);
    
!     StringCbPrintfA(output, sizeof(output), "%s - dumping buf_HashTable - buf_hashSize=%d\n", 
!                     cookie, cm_data.buf_hashSize);
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
    
!     for (i = 0; i < cm_data.buf_hashSize; i++)
      {
!         for (bp = cm_data.buf_hashTablepp[i]; bp; bp=bp->hashp) 
          {
              if (bp->refCount)
              {
***************
*** 1506,1512 ****
      StringCbPrintfA(output, sizeof(output), "%s - Done dumping buf_HashTable.\n", cookie);
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
  
!     lock_ReleaseRead(&buf_globalLock);
      return 0;
  }
  
--- 1490,1497 ----
      StringCbPrintfA(output, sizeof(output), "%s - Done dumping buf_HashTable.\n", cookie);
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
  
!     if (lock)
!         lock_ReleaseRead(&buf_globalLock);
      return 0;
  }
  
Index: openafs/src/WINNT/afsd/cm_buf.h
diff -c openafs/src/WINNT/afsd/cm_buf.h:1.4.2.4 openafs/src/WINNT/afsd/cm_buf.h:1.4.2.5
*** openafs/src/WINNT/afsd/cm_buf.h:1.4.2.4	Sun Jan 30 22:53:23 2005
--- openafs/src/WINNT/afsd/cm_buf.h	Fri Mar 11 01:58:40 2005
***************
*** 19,36 ****
  
  /* default # of buffers if not changed */
  #define CM_BUF_BUFFERS	100
- extern long buf_nbuffers;
- 
- /* orig # of buffers */
- extern long buf_nOrigBuffers;
  
  /* default buffer size */
! #define CM_BUF_SIZE		4096
! extern long buf_bufferSize;
  
  /* default hash size */
  #define CM_BUF_HASHSIZE	1024
- extern long buf_hashSize;
  
  /* cache type */
  #define CM_BUF_CACHETYPE_FILE 1
--- 19,30 ----
  
  /* default # of buffers if not changed */
  #define CM_BUF_BUFFERS	100
  
  /* default buffer size */
! #define CM_BUF_BLOCKSIZE CM_CONFIGDEFAULT_BLOCKSIZE
  
  /* default hash size */
  #define CM_BUF_HASHSIZE	1024
  
  /* cache type */
  #define CM_BUF_CACHETYPE_FILE 1
***************
*** 40,67 ****
  /* force it to be signed so that mod comes out positive or 0 */
  #define BUF_HASH(fidp,offsetp) ((((fidp)->vnode+((fidp)->unique << 5)	\
  				+(fidp)->volume+(fidp)->cell		\
! 				+((offsetp)->LowPart / buf_bufferSize))	\
  				  & 0x7fffffff)				\
! 				   % buf_hashSize)
  
  /* another hash fn */
  #define BUF_FILEHASH(fidp) ((((fidp)->vnode+((fidp)->unique << 5)	\
  				+(fidp)->volume+(fidp)->cell)		\
  				  & 0x7fffffff)				\
! 				   % buf_hashSize)
  
  /* backup over pointer to the buffer */
  #define BUF_OVERTOBUF(op) ((cm_buf_t *)(((char *)op) - ((long)(&((cm_buf_t *)0)->over))))
  
  /* pretend we have logs, too */
  typedef char cm_log_t;
  
  /* represents a single buffer */
  typedef struct cm_buf {
! 	osi_queue_t q;		/* queue of all zero-refcount buffers */
! 	struct cm_buf *hashp;	/* hash bucket pointer */
! 	struct cm_buf *fileHashp; /* file hash bucket pointer */
! 	struct cm_buf *fileHashBackp;	/* file hash bucket back pointer */
  				/*
  				 * The file hash chain is doubly linked, since
  				 * these chains can get rather long.  The
--- 34,67 ----
  /* force it to be signed so that mod comes out positive or 0 */
  #define BUF_HASH(fidp,offsetp) ((((fidp)->vnode+((fidp)->unique << 5)	\
  				+(fidp)->volume+(fidp)->cell		\
! 				+((offsetp)->LowPart / cm_data.buf_blockSize))	\
  				  & 0x7fffffff)				\
! 				   % cm_data.buf_hashSize)
  
  /* another hash fn */
  #define BUF_FILEHASH(fidp) ((((fidp)->vnode+((fidp)->unique << 5)	\
  				+(fidp)->volume+(fidp)->cell)		\
  				  & 0x7fffffff)				\
! 				   % cm_data.buf_hashSize)
  
  /* backup over pointer to the buffer */
  #define BUF_OVERTOBUF(op) ((cm_buf_t *)(((char *)op) - ((long)(&((cm_buf_t *)0)->over))))
  
+ #ifdef notdef
  /* pretend we have logs, too */
  typedef char cm_log_t;
+ #endif
+ 
+ #define CM_BUF_MAGIC    ('B' | 'U' <<8 | 'F'<<16 | 'F'<<24)
  
  /* represents a single buffer */
  typedef struct cm_buf {
!     osi_queue_t q;		/* queue of all zero-refcount buffers */
!     afs_uint32     magic;
!     struct cm_buf *allp;	/* next in all list */
!     struct cm_buf *hashp;	/* hash bucket pointer */
!     struct cm_buf *fileHashp;   /* file hash bucket pointer */
!     struct cm_buf *fileHashBackp;	/* file hash bucket back pointer */
  				/*
  				 * The file hash chain is doubly linked, since
  				 * these chains can get rather long.  The
***************
*** 70,100 ****
  				 * hash function is good and if there are
  				 * enough buckets for the size of the cache.
  				 */
!         struct cm_buf *allp;	/* next in all list */
! 	osi_mutex_t mx;		/* mutex protecting structure except refcount */
!     unsigned long refCount;		/* reference count (buf_globalLock) */
!         long idCounter;		/* counter for softrefs; bumped at each recycle */
!         long dirtyCounter;	/* bumped at each dirty->clean transition */
  #ifdef notdef
! 	struct cm_log *logp;	/* log for this buffer, if any */
! 	osi_hyper_t lsn;	/* lsn to force to (last LSN changing this buffer) */
  #endif /* notdef */
!         osi_hyper_t offset;	/* offset */
! 	cm_fid_t fid;		/* file ID */
! 	long flags;		/* flags we're using */
!         long size;		/* size in bytes of this buffer */
!         char *datap;		/* data in this buffer */
! 	unsigned long error;	/* last error code, if CM_BUF_ERROR is set */
!         struct cm_user *userp;	/* user who wrote to the buffer last */
  #ifndef DJGPP
!         OVERLAPPED over;	/* overlapped structure for I/O */
  #endif
          
!         /* fields added for the CM; locked by scp->mx */
!         long dataVersion;	/* data version of this page */
!         long cmFlags;		/* flags for cm */
  #ifdef DISKCACHE95
!         cm_diskcache_t *dcp;    /* diskcache structure */
  #endif /* DISKCACHE95 */
  } cm_buf_t;
  
--- 70,99 ----
  				 * hash function is good and if there are
  				 * enough buckets for the size of the cache.
  				 */
!     osi_mutex_t mx;		/* mutex protecting structure except refcount */
!     unsigned long refCount;	/* reference count (buf_globalLock) */
!     long idCounter;		/* counter for softrefs; bumped at each recycle */
!     long dirtyCounter;	        /* bumped at each dirty->clean transition */
  #ifdef notdef
!     cm_log_t *logp;	        /* log for this buffer, if any */
!     osi_hyper_t lsn;	        /* lsn to force to (last LSN changing this buffer) */
  #endif /* notdef */
!     osi_hyper_t offset;	        /* offset */
!     cm_fid_t fid;		/* file ID */
!     long flags;		        /* flags we're using */
!     long size;		        /* size in bytes of this buffer */
!     char *datap;		/* data in this buffer */
!     unsigned long error;	/* last error code, if CM_BUF_ERROR is set */
!     cm_user_t *userp;	        /* user who wrote to the buffer last */
  #ifndef DJGPP
!     OVERLAPPED over;	        /* overlapped structure for I/O */
  #endif
          
!     /* fields added for the CM; locked by scp->mx */
!     long dataVersion;	        /* data version of this page */
!     long cmFlags;		/* flags for cm */
  #ifdef DISKCACHE95
!     cm_diskcache_t *dcp;        /* diskcache structure */
  #endif /* DISKCACHE95 */
  } cm_buf_t;
  
***************
*** 106,113 ****
  
  /* represents soft reference which is OK to lose on a recycle */
  typedef struct cm_softRef {
! 	cm_buf_t *bufp;	/* buffer (may get reused) */
!         long counter;		/* counter of changes to identity */
  } cm_softRef_t;
  
  #define CM_BUF_READING	1	/* now reading buffer to the disk */
--- 105,112 ----
  
  /* represents soft reference which is OK to lose on a recycle */
  typedef struct cm_softRef {
!     cm_buf_t *bufp;	/* buffer (may get reused) */
!     long counter;		/* counter of changes to identity */
  } cm_softRef_t;
  
  #define CM_BUF_READING	1	/* now reading buffer to the disk */
***************
*** 121,146 ****
  #define CM_BUF_EOF		0x100	/* read 0 bytes; used for detecting EOF */
  
  typedef struct cm_buf_ops {
! 	long (*Writep)(void *, osi_hyper_t *, long, long, struct cm_user *,
  			struct cm_req *);
! 	long (*Readp)(cm_buf_t *, long, long *, struct cm_user *);
!         long (*Stabilizep)(void *, struct cm_user *, struct cm_req *);
!         long (*Unstabilizep)(void *, struct cm_user *);
  } cm_buf_ops_t;
  
  /* global locks */
  extern osi_rwlock_t buf_globalLock;
  
! /* buffer free list */
! extern cm_buf_t *buf_freeListp;
! 
! /* pointer to hash table */
! extern cm_buf_t **buf_hashTablepp;
! 
! /* another hash table */
! extern cm_buf_t **buf_fileHashTablepp;
! 
! extern long buf_Init(cm_buf_ops_t *);
  
  extern void buf_Shutdown(void);
  
--- 120,136 ----
  #define CM_BUF_EOF		0x100	/* read 0 bytes; used for detecting EOF */
  
  typedef struct cm_buf_ops {
!     long (*Writep)(void *, osi_hyper_t *, long, long, struct cm_user *,
  			struct cm_req *);
!     long (*Readp)(cm_buf_t *, long, long *, struct cm_user *);
!     long (*Stabilizep)(void *, struct cm_user *, struct cm_req *);
!     long (*Unstabilizep)(void *, struct cm_user *);
  } cm_buf_ops_t;
  
  /* global locks */
  extern osi_rwlock_t buf_globalLock;
  
! extern long buf_Init(int newFile, cm_buf_ops_t *, long nbuffers);
  
  extern void buf_Shutdown(void);
  
***************
*** 184,189 ****
--- 174,183 ----
  
  extern void buf_UnreserveBuffers(long);
  
+ #ifdef TESTING
+ extern void buf_ValidateBufQueues(void);
+ #endif /* TESTING */
+ 
  extern osi_log_t *buf_logp;
  
  extern long buf_Truncate(struct cm_scache *scp, cm_user_t *userp,
***************
*** 197,202 ****
--- 191,198 ----
  
  extern long buf_SetNBuffers(long nbuffers);
  
+ extern long buf_ValidateBuffers(void);
+ 
  extern void buf_ForceTrace(BOOL flush);
  
  /* error codes */
Index: openafs/src/WINNT/afsd/cm_callback.c
diff -c openafs/src/WINNT/afsd/cm_callback.c:1.20.2.7 openafs/src/WINNT/afsd/cm_callback.c:1.20.2.8
*** openafs/src/WINNT/afsd/cm_callback.c:1.20.2.7	Sun Jan 30 23:08:57 2005
--- openafs/src/WINNT/afsd/cm_callback.c	Fri Mar 11 01:58:40 2005
***************
*** 22,29 ****
--- 22,32 ----
  #include <stdlib.h>
  
  #include <osi.h>
+ #include <rx_pthread.h>
  
  #include "afsd.h"
+ #include <WINNT/syscfg.h>
+ #include <WINNT/afsreg.h>
  
  /*extern void afsi_log(char *pattern, ...);*/
  
***************
*** 75,81 ****
      lock_ObtainWrite(&cm_callbackLock);
  
      osi_Log3(afsd_logp, "RecordRacingRevoke Volume %d Flags %lX activeCalls %d",
!              fidp->volume, cancelFlags, cm_activeCallbackGrantingCalls);
  
      if (cm_activeCallbackGrantingCalls > 0) {
          rp = malloc(sizeof(*rp));
--- 78,84 ----
      lock_ObtainWrite(&cm_callbackLock);
  
      osi_Log3(afsd_logp, "RecordRacingRevoke Volume %d Flags %lX activeCalls %d",
! 		fidp ? fidp->volume : 0, cancelFlags, cm_activeCallbackGrantingCalls);
  
      if (cm_activeCallbackGrantingCalls > 0) {
          rp = malloc(sizeof(*rp));
***************
*** 94,101 ****
   */
  void cm_CallbackNotifyChange(cm_scache_t *scp)
  {
!     osi_Log2(afsd_logp, "CallbackNotifyChange FileType %d Flags %lX",
!               scp->fileType, scp->flags);
  
      if (scp->fileType == CM_SCACHETYPE_DIRECTORY) {
          if (scp->flags & CM_SCACHEFLAG_ANYWATCH)
--- 97,126 ----
   */
  void cm_CallbackNotifyChange(cm_scache_t *scp)
  {
!     DWORD dwDelay = 0;
!     HKEY  hKey;
!     DWORD dummyLen;
! 
!     if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       AFSREG_CLT_OPENAFS_SUBKEY,
!                       0,
!                       KEY_READ|KEY_QUERY_VALUE,
!                       &hKey) == ERROR_SUCCESS) {
! 
!         dummyLen = sizeof(DWORD);
!         RegQueryValueEx(hKey, "CallBack Notify Change Delay", NULL, NULL,
!                         (BYTE *) &dwDelay, &dummyLen);
!         RegCloseKey(hKey);
!     }
! 
!     if (dwDelay > 5000)    /* do not allow a delay of more then 5 seconds */
!         dwDelay = 5000;   
! 
!     osi_Log3(afsd_logp, "CallbackNotifyChange FileType %d Flags %lX Delay %dms",
!               scp->fileType, scp->flags, dwDelay);
! 
!     if (dwDelay)
!         Sleep(dwDelay);
  
      if (scp->fileType == CM_SCACHETYPE_DIRECTORY) {
          if (scp->flags & CM_SCACHEFLAG_ANYWATCH)
***************
*** 111,122 ****
          tfid.vnode = scp->parentVnode;
          tfid.unique = scp->parentUnique;
          dscp = cm_FindSCache(&tfid);
!         if (dscp &&
!              dscp->flags & CM_SCACHEFLAG_ANYWATCH)
              smb_NotifyChange( 0,
                                FILE_NOTIFY_GENERIC_FILE_FILTER,
                                dscp,   NULL, NULL, TRUE);
!         if (dscp) cm_ReleaseSCache(dscp);
      }
  }
  
--- 136,148 ----
          tfid.vnode = scp->parentVnode;
          tfid.unique = scp->parentUnique;
          dscp = cm_FindSCache(&tfid);
!         if ( dscp &&
!              dscp->flags & CM_SCACHEFLAG_ANYWATCH )
              smb_NotifyChange( 0,
                                FILE_NOTIFY_GENERIC_FILE_FILTER,
                                dscp,   NULL, NULL, TRUE);
!         if (dscp) 
!             cm_ReleaseSCache(dscp);
      }
  }
  
***************
*** 142,148 ****
      tfid.unique = fidp->Unique;
      hash = CM_SCACHE_HASH(&tfid);
  
!     osi_Log3(afsd_logp, "RevokeCallback vol %d vn %d un %d",
               fidp->Volume, fidp->Vnode, fidp->Unique);
          
      /* do this first, so that if we're executing a callback granting call
--- 168,174 ----
      tfid.unique = fidp->Unique;
      hash = CM_SCACHE_HASH(&tfid);
  
!     osi_Log3(afsd_logp, "RevokeCallback vol %u vn %u uniq %u",
               fidp->Volume, fidp->Vnode, fidp->Unique);
          
      /* do this first, so that if we're executing a callback granting call
***************
*** 156,168 ****
      /* do all in the hash bucket, since we don't know how many we'll find with
       * varying cells.
       */
!     for (scp = cm_hashTablep[hash]; scp; scp=scp->nextp) {
          if (scp->fid.volume == tfid.volume &&
               scp->fid.vnode == tfid.vnode &&
!              scp->fid.unique == tfid.unique) {
              cm_HoldSCacheNoLock(scp);
              lock_ReleaseWrite(&cm_scacheLock);
!             osi_Log1(afsd_logp, "Discarding SCache scp %x", scp);
              lock_ObtainMutex(&scp->mx);
              cm_DiscardSCache(scp);
              lock_ReleaseMutex(&scp->mx);
--- 182,198 ----
      /* do all in the hash bucket, since we don't know how many we'll find with
       * varying cells.
       */
!     for (scp = cm_data.hashTablep[hash]; scp; scp=scp->nextp) {
          if (scp->fid.volume == tfid.volume &&
               scp->fid.vnode == tfid.vnode &&
!              scp->fid.unique == tfid.unique &&
!              scp->cbExpires > 0 && 
!              scp->cbServerp != NULL)
!         {
              cm_HoldSCacheNoLock(scp);
              lock_ReleaseWrite(&cm_scacheLock);
!             osi_Log4(afsd_logp, "RevokeCallback Discarding SCache scp 0x%x vol %u vn %u uniq %u", 
!                      scp, scp->fid.volume, scp->fid.vnode, scp->fid.unique);
              lock_ObtainMutex(&scp->mx);
              cm_DiscardSCache(scp);
              lock_ReleaseMutex(&scp->mx);
***************
*** 172,177 ****
--- 202,210 ----
          }
      }
      lock_ReleaseWrite(&cm_scacheLock);
+ 
+     osi_Log3(afsd_logp, "RevokeCallback Complete vol %u vn %u uniq %u",
+              fidp->Volume, fidp->Vnode, fidp->Unique);
  }
  
  /* called to revoke a volume callback, which is typically issued when a volume
***************
*** 185,191 ****
      cm_scache_t *scp;
      cm_fid_t tfid;
  
!     osi_Log1(afsd_logp, "RevokeVolumeCallback %d", fidp->Volume);
  
      /* do this first, so that if we're executing a callback granting call
       * at this moment, we kill it before it can be merged in.  Otherwise,
--- 218,224 ----
      cm_scache_t *scp;
      cm_fid_t tfid;
  
!     osi_Log1(afsd_logp, "RevokeVolumeCallback vol %d", fidp->Volume);
  
      /* do this first, so that if we're executing a callback granting call
       * at this moment, we kill it before it can be merged in.  Otherwise,
***************
*** 198,210 ****
  
  
      lock_ObtainWrite(&cm_scacheLock);
!     for (hash = 0; hash < cm_hashTableSize; hash++) {
!         for(scp=cm_hashTablep[hash]; scp; scp=scp->nextp) {
!             if (scp->fid.volume == fidp->Volume) {
                  cm_HoldSCacheNoLock(scp);
                  lock_ReleaseWrite(&cm_scacheLock);
                  lock_ObtainMutex(&scp->mx);
!                 osi_Log1(afsd_logp, "Discarding SCache scp %x", scp);
                  cm_DiscardSCache(scp);
                  lock_ReleaseMutex(&scp->mx);
                  cm_CallbackNotifyChange(scp);
--- 231,246 ----
  
  
      lock_ObtainWrite(&cm_scacheLock);
!     for (hash = 0; hash < cm_data.hashTableSize; hash++) {
!         for(scp=cm_data.hashTablep[hash]; scp; scp=scp->nextp) {
!             if (scp->fid.volume == fidp->Volume &&
!                  scp->cbExpires > 0 &&
!                  scp->cbServerp != NULL) {
                  cm_HoldSCacheNoLock(scp);
                  lock_ReleaseWrite(&cm_scacheLock);
                  lock_ObtainMutex(&scp->mx);
!                 osi_Log4(afsd_logp, "RevokeVolumeCallback Discarding SCache scp 0x%x vol %u vn %u uniq %u", 
!                           scp, scp->fid.volume, scp->fid.vnode, scp->fid.unique);
                  cm_DiscardSCache(scp);
                  lock_ReleaseMutex(&scp->mx);
                  cm_CallbackNotifyChange(scp);
***************
*** 215,231 ****
      }	/* search all hash buckets */
  
      lock_ReleaseWrite(&cm_scacheLock);
  }
  
  /* handle incoming RPC callback breaking message.
   * Called with no locks held.
   */
  SRXAFSCB_CallBack(struct rx_call *callp, AFSCBFids *fidsArrayp, AFSCBs *cbsArrayp)
  {
      int i;
      AFSFid *tfidp;
!         
!     osi_Log0(afsd_logp, "SRXAFSCB_CallBack");
  
      for (i=0; i < (long) fidsArrayp->AFSCBFids_len; i++) {
          tfidp = &fidsArrayp->AFSCBFids_val[i];
--- 251,346 ----
      }	/* search all hash buckets */
  
      lock_ReleaseWrite(&cm_scacheLock);
+ 
+     osi_Log1(afsd_logp, "RevokeVolumeCallback Complete vol %d", fidp->Volume);
  }
  
+ /*
+  * afs_data_pointer_to_int32() - returns least significant afs_int32 of the
+  * given data pointer, without triggering "cast truncates pointer"
+  * warnings.  We use this where we explicitly don't care whether a
+  * pointer is truncated -- it loses information where a pointer is
+  * larger than an afs_int32.
+  */
+ 
+ static afs_int32
+ afs_data_pointer_to_int32(const void *p)
+ {
+     union {
+         afs_int32 i32[sizeof(void *) / sizeof(afs_int32)];
+         const void *p;
+     } ip;
+ 
+     int i32_sub;                /* subscript of least significant afs_int32 in ip.i32[] */
+ 
+     /* set i32_sub */
+ 
+     {
+         /* used to determine the byte order of the system */
+ 
+         union {
+             char c[sizeof(int) / sizeof(char)];
+             int i;
+         } ci;
+ 
+         ci.i = 1;
+         if (ci.c[0] == 1) {
+             /* little-endian system */
+             i32_sub = 0;
+         } else {
+             /* big-endian system */
+             i32_sub = (sizeof ip.i32 / sizeof ip.i32[0]) - 1;
+         }
+     }
+ 
+     ip.p = p;
+     return ip.i32[i32_sub];
+ }
+ /*------------------------------------------------------------------------
+  * EXPORTED SRXAFSCB_CallBack
+  *
+  * Description:
+  *      Routine called by the server-side callback RPC interface to
+  *      implement passing in callback information.
+  *      table.
+  *
+  * Arguments:
+  *      rx_call    : Ptr to Rx call on which this request came in.
+  *      fidsArrayp : Ptr to array of fids involved.
+  *      cbsArrayp  : Ptr to matching callback info for the fids.
+  *
+  * Returns:
+  *      0 (always).
+  *
+  * Environment:
+  *      Nothing interesting.
+  *
+  * Side Effects:
+  *      As advertised.
+  *------------------------------------------------------------------------*/
  /* handle incoming RPC callback breaking message.
   * Called with no locks held.
   */
+ int
  SRXAFSCB_CallBack(struct rx_call *callp, AFSCBFids *fidsArrayp, AFSCBs *cbsArrayp)
  {
      int i;
      AFSFid *tfidp;
!     struct rx_connection *connp;
!     struct rx_peer *peerp;
!     unsigned long host = 0;
!     unsigned short port = 0;
! 
!     MUTEX_ENTER(&callp->lock);
! 
!     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
!         host = rx_HostOf(peerp);
!         port = rx_PortOf(peerp);
!     }
! 
!     osi_Log2(afsd_logp, "SRXAFSCB_CallBack from host 0x%x port %d",
!               ntohl(host),
!               ntohs(port));
  
      for (i=0; i < (long) fidsArrayp->AFSCBFids_len; i++) {
          tfidp = &fidsArrayp->AFSCBFids_val[i];
***************
*** 238,250 ****
--- 353,386 ----
              cm_RevokeCallback(callp, tfidp);
      }
  
+     MUTEX_EXIT(&callp->lock);
      return 0;
  }
  
+ /*------------------------------------------------------------------------
+  * EXPORTED SRXAFSCB_InitCallBackState
+  *
+  * Description:
+  *      Routine called by the server-side callback RPC interface to
+  *      implement clearing all callbacks from this host.
+  *
+  * Arguments:
+  *      rx_call : Ptr to Rx call on which this request came in.
+  *
+  * Returns:
+  *      0 (always).
+  *
+  * Environment:
+  *      Nothing interesting.
+  *
+  * Side Effects:
+  *      As advertised.
+  *------------------------------------------------------------------------*/
  /* called with no locks by RPC system when a server indicates that it has never
   * heard from us, or for other reasons has had to discard callbacks from us
   * without telling us, e.g. a network partition.
   */
+ int
  SRXAFSCB_InitCallBackState(struct rx_call *callp)
  {
      struct sockaddr_in taddr;
***************
*** 252,259 ****
      cm_scache_t *scp;
      int hash;
      int discarded;
  
!     osi_Log0(afsd_logp, "SRXAFSCB_InitCallBackState");
  
      if ((rx_ConnectionOf(callp)) && (rx_PeerOf(rx_ConnectionOf(callp)))) {
  	taddr.sin_family = AF_INET;
--- 388,408 ----
      cm_scache_t *scp;
      int hash;
      int discarded;
+     struct rx_connection *connp;
+     struct rx_peer *peerp;
+     unsigned long host = 0;
+     unsigned short port = 0;
+ 
+     MUTEX_ENTER(&callp->lock);
+ 
+     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
+         host = rx_HostOf(peerp);
+         port = rx_PortOf(peerp);
+     }
  
!     osi_Log2(afsd_logp, "SRXAFSCB_InitCallBackState from host 0x%x port %d",
!               ntohl(host),
!               ntohs(port));
  
      if ((rx_ConnectionOf(callp)) && (rx_PeerOf(rx_ConnectionOf(callp)))) {
  	taddr.sin_family = AF_INET;
***************
*** 288,303 ****
  	 * are "rare," hopefully this won't be a problem.
  	 */
  	lock_ObtainWrite(&cm_scacheLock);
! 	for (hash = 0; hash < cm_hashTableSize; hash++) {
!             for (scp=cm_hashTablep[hash]; scp; scp=scp->nextp) {
                  cm_HoldSCacheNoLock(scp);
                  lock_ReleaseWrite(&cm_scacheLock);
                  lock_ObtainMutex(&scp->mx);
                  discarded = 0;
!                 if (scp->cbServerp != NULL) {
                      /* we have a callback, now decide if we should clear it */
                      if (scp->cbServerp == tsp || tsp == NULL) {
!                         osi_Log1(afsd_logp, "Discarding SCache scp %x", scp);
                          cm_DiscardSCache(scp);
                          discarded = 1;
                      }
--- 437,453 ----
  	 * are "rare," hopefully this won't be a problem.
  	 */
  	lock_ObtainWrite(&cm_scacheLock);
! 	for (hash = 0; hash < cm_data.hashTableSize; hash++) {
!             for (scp=cm_data.hashTablep[hash]; scp; scp=scp->nextp) {
                  cm_HoldSCacheNoLock(scp);
                  lock_ReleaseWrite(&cm_scacheLock);
                  lock_ObtainMutex(&scp->mx);
                  discarded = 0;
!                 if (scp->cbExpires > 0 && scp->cbServerp != NULL) {
                      /* we have a callback, now decide if we should clear it */
                      if (scp->cbServerp == tsp || tsp == NULL) {
!                         osi_Log4(afsd_logp, "InitCallbackState Discarding SCache scp 0x%x vol %u vn %u uniq %u", 
!                                   scp, scp->fid.volume, scp->fid.vnode, scp->fid.unique);
                          cm_DiscardSCache(scp);
                          discarded = 1;
                      }
***************
*** 316,404 ****
  	if (tsp) 
              cm_PutServer(tsp);
      }
! 
      return 0;
  }
  
! /* just returns if we're up */
  SRXAFSCB_Probe(struct rx_call *callp)
  {
!     osi_Log0(afsd_logp, "SRXAFSCB_Probe - not implemented");
      return 0;
  }
  
! /* debug interface: not implemented */
! SRXAFSCB_GetCE64(struct rx_call *callp, long index, AFSDBCacheEntry *cep)
! {
!     /* XXXX */
!     osi_Log0(afsd_logp, "SRXAFSCB_GetCE64 - not implemented");
!     return RXGEN_OPCODE;
! }
  
! /* debug interface: not implemented */
  SRXAFSCB_GetLock(struct rx_call *callp, long index, AFSDBLock *lockp)
  {
!     /* XXXX */
!     osi_Log0(afsd_logp, "SRXAFSCB_GetLock - not implemented");
!     return RXGEN_OPCODE;
  }
  
! /* debug interface: not implemented */
  SRXAFSCB_GetCE(struct rx_call *callp, long index, AFSDBCacheEntry *cep)
  {
!     /* XXXX */
!     osi_Log0(afsd_logp, "SRXAFSCB_GetCE - not implemented");
!     return RXGEN_OPCODE;
  }
  
  /* debug interface: not implemented */
  SRXAFSCB_XStatsVersion(struct rx_call *callp, long *vp)
  {
!     /* XXXX */
!     osi_Log0(afsd_logp, "SRXAFSCB_XStatsVersion - not implemented");
      *vp = -1;
      return RXGEN_OPCODE;
  }
  
  /* debug interface: not implemented */
  SRXAFSCB_GetXStats(struct rx_call *callp, long cvn, long coln, long *srvp, long *timep,
! 	AFSCB_CollData *datap)
  {
!     /* XXXX */
!     osi_Log0(afsd_logp, "SRXAFSCB_GetXStats - not implemented");
      return RXGEN_OPCODE;
  }
  
! /* debug interface: not implemented */
  SRXAFSCB_InitCallBackState2(struct rx_call *callp, struct interfaceAddr* addr)
  {
!     /* XXXX */
!     osi_Log0(afsd_logp, "SRXAFSCB_InitCallBackState2 - not implemented");
!     return RXGEN_OPCODE;
  }
  
! /* debug interface: not implemented */
  SRXAFSCB_WhoAreYou(struct rx_call *callp, struct interfaceAddr* addr)
  {
!     /* XXXX */
!     osi_Log0(afsd_logp, "SRXAFSCB_WhoAreYou - not implemented");
!     return RXGEN_OPCODE;
  }
  
! /* debug interface: not implemented */
  SRXAFSCB_InitCallBackState3(struct rx_call *callp, afsUUID* serverUuid)
  {
!     /* XXXX */
!     osi_Log0(afsd_logp, "SRXAFSCB_InitCallBackState3 - not implemented");
!     return RXGEN_OPCODE;
  }
  
! /* debug interface: not implemented */
  SRXAFSCB_ProbeUuid(struct rx_call *callp, afsUUID* clientUuid)
  {
!     /* XXXX */
!     osi_Log0(afsd_logp, "SRXAFSCB_ProbeUuid - not implemented");
!     return RXGEN_OPCODE;
  }
  
  /*------------------------------------------------------------------------
--- 466,1140 ----
  	if (tsp) 
              cm_PutServer(tsp);
      }
!     MUTEX_EXIT(&callp->lock);
      return 0;
  }
  
! /*------------------------------------------------------------------------
!  * EXPORTED SRXAFSCB_Probe
!  *
!  * Description:
!  *      Routine called by the server-side callback RPC interface to
!  *      implement ``probing'' the Cache Manager, just making sure it's
!  *      still there.
!  *
!  * Arguments:
!  *      rx_call : Ptr to Rx call on which this request came in.
!  *
!  * Returns:
!  *      0 (always).
!  *
!  * Environment:
!  *      Nothing interesting.
!  *
!  * Side Effects:
!  *      As advertised.
!  *------------------------------------------------------------------------*/
! int
  SRXAFSCB_Probe(struct rx_call *callp)
  {
!     struct rx_connection *connp;
!     struct rx_peer *peerp;
!     unsigned long host = 0;
!     unsigned short port = 0;
! 
!     MUTEX_ENTER(&callp->lock);
! 
!     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
!         host = rx_HostOf(peerp);
!         port = rx_PortOf(peerp);
!     }
! 
!     osi_Log2(afsd_logp, "SRXAFSCB_Probe from host 0x%x port %d",
!               ntohl(host),
!               ntohs(port));
! 
!     MUTEX_EXIT(&callp->lock);
      return 0;
  }
  
! /*------------------------------------------------------------------------
!  * EXPORTED SRXAFSCB_GetLock
!  *
!  * Description:
!  *      Routine called by the server-side callback RPC interface to
!  *      implement pulling out the contents of a lock in the lock
!  *      table.
!  *
!  * Arguments:
!  *      a_call   : Ptr to Rx call on which this request came in.
!  *      a_index  : Index of desired lock.
!  *      a_result : Ptr to a buffer for the given lock.
!  *
!  * Returns:
!  *      0 if everything went fine,
!  *      1 if we were given a bad index.
!  *
!  * Environment:
!  *      Nothing interesting.
!  *
!  * Side Effects:
!  *      As advertised.
!  *------------------------------------------------------------------------*/
! /* debug interface */
  
! extern osi_rwlock_t cm_aclLock;
! extern osi_rwlock_t buf_globalLock;
! extern osi_rwlock_t cm_callbackLock;
! extern osi_rwlock_t cm_cellLock;
! extern osi_rwlock_t cm_connLock;
! extern osi_rwlock_t cm_daemonLock;
! extern osi_rwlock_t cm_dnlcLock;
! extern osi_rwlock_t cm_scacheLock;
! extern osi_rwlock_t cm_serverLock;
! extern osi_rwlock_t cm_userLock;
! extern osi_rwlock_t cm_utilsLock;
! extern osi_rwlock_t cm_volumeLock;
! extern osi_rwlock_t smb_globalLock;
! extern osi_rwlock_t smb_rctLock;
! 
! extern osi_mutex_t cm_Freelance_Lock;
! extern osi_mutex_t cm_bufGetMutex;
! extern osi_mutex_t cm_Afsdsbmt_Lock;
! extern osi_mutex_t tokenEventLock;
! extern osi_mutex_t  smb_ListenerLock;
! extern osi_mutex_t smb_RawBufLock;
! extern osi_mutex_t smb_Dir_Watch_Lock;
! 
! #define LOCKTYPE_RW     1
! #define LOCKTYPE_MUTEX  2
! static struct _ltable {
!     char *name;
!     char *addr;
!     int  type;
! } ltable[] = {
!     {"cm_scacheLock",    (char*)&cm_scacheLock,         LOCKTYPE_RW},
!     {"buf_globalLock",   (char*)&buf_globalLock,        LOCKTYPE_RW},
!     {"cm_serverLock",    (char*)&cm_serverLock,         LOCKTYPE_RW},
!     {"cm_callbackLock",  (char*)&cm_callbackLock,       LOCKTYPE_RW},
!     {"cm_aclLock",       (char*)&cm_aclLock,            LOCKTYPE_RW},
!     {"cm_cellLock",      (char*)&cm_cellLock,           LOCKTYPE_RW},
!     {"cm_connLock",      (char*)&cm_connLock,           LOCKTYPE_RW},
!     {"cm_userLock",      (char*)&cm_userLock,           LOCKTYPE_RW},
!     {"cm_volumeLock",    (char*)&cm_volumeLock,         LOCKTYPE_RW},
!     {"cm_daemonLock",    (char*)&cm_daemonLock,         LOCKTYPE_RW},
!     {"cm_dnlcLock",      (char*)&cm_dnlcLock,           LOCKTYPE_RW},
!     {"cm_utilsLock",     (char*)&cm_utilsLock,          LOCKTYPE_RW},
!     {"smb_globalLock",   (char*)&smb_globalLock,        LOCKTYPE_RW},
!     {"smb_rctLock",      (char*)&smb_rctLock,           LOCKTYPE_RW},
!     {"cm_Freelance_Lock",(char*)&cm_Freelance_Lock,     LOCKTYPE_MUTEX},
!     {"cm_bufGetMutex",   (char*)&cm_bufGetMutex,        LOCKTYPE_MUTEX},
!     {"cm_Afsdsbmt_Lock", (char*)&cm_Afsdsbmt_Lock,      LOCKTYPE_MUTEX},
!     {"tokenEventLock",   (char*)&tokenEventLock,        LOCKTYPE_MUTEX},
!     {"smb_ListenerLock", (char*)&smb_ListenerLock,      LOCKTYPE_MUTEX},
!     {"smb_RawBufLock",   (char*)&smb_RawBufLock,        LOCKTYPE_MUTEX},
!     {"smb_Dir_Watch_Lock",(char*)&smb_Dir_Watch_Lock,   LOCKTYPE_MUTEX}
! };
! 
! int
  SRXAFSCB_GetLock(struct rx_call *callp, long index, AFSDBLock *lockp)
  {
!     struct _ltable *tl;          /*Ptr to lock table entry */
!     osi_rwlock_t  *rwp;
!     osi_mutex_t   *mtxp;
!     int nentries;               /*Num entries in table */
!     int code;                   /*Return code */
!     struct rx_connection *connp;
!     struct rx_peer *peerp;
!     unsigned long host = 0;
!     unsigned short port = 0;
! 
!     MUTEX_ENTER(&callp->lock);
! 
!     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
!         host = rx_HostOf(peerp);
!         port = rx_PortOf(peerp);
!     }
! 
!     osi_Log3(afsd_logp, "SRXAFSCB_GetLock(%d) from host 0x%x port %d", 
!              index, ntohl(host), ntohs(port));
! 
!     nentries = sizeof(ltable) / sizeof(struct _ltable);
!     if (index < 0 || index >= nentries) {
!         /*
!          * Past EOF
!          */
!         code = 1;
!     } else {
!         /*
!          * Found it - copy out its contents.
!          */
!         tl = &ltable[index];
!         strncpy(lockp->name, tl->name, sizeof(lockp->name));
!         lockp->name[sizeof(lockp->name)-1] = '\0';
!         lockp->lock.waitStates = 0;
!         switch ( tl->type ) {
!         case LOCKTYPE_RW:
!             rwp = (osi_rwlock_t *)tl->addr;
!             lockp->lock.exclLocked = rwp->flags;
!             lockp->lock.readersReading = rwp->readers;
!             lockp->lock.numWaiting = rwp->waiters;
!             break;
!         case LOCKTYPE_MUTEX:
!             mtxp = (osi_mutex_t *)tl->addr;
!             lockp->lock.exclLocked = mtxp->flags;
!             lockp->lock.readersReading = 0;
!             lockp->lock.numWaiting = mtxp->waiters;
!             break;
!         }
!         lockp->lock.pid_last_reader = 0;
!         lockp->lock.pid_writer = 0;
!         lockp->lock.src_indicator = 0;
!         code = 0;
!     }
! 
!     MUTEX_EXIT(&callp->lock);
!     return code;
  }
  
! /* debug interface */
! int
  SRXAFSCB_GetCE(struct rx_call *callp, long index, AFSDBCacheEntry *cep)
  {
!     int i;
!     cm_scache_t * scp;
!     int code;
!     struct rx_connection *connp;
!     struct rx_peer *peerp;
!     unsigned long host = 0;
!     unsigned short port = 0;
! 
!     MUTEX_ENTER(&callp->lock);
! 
!     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
!         host = rx_HostOf(peerp);
!         port = rx_PortOf(peerp);
!     }
! 
!     osi_Log2(afsd_logp, "SRXAFSCB_GetCE from host 0x%x port %d",
!              ntohl(host), ntohs(port));
! 
!     lock_ObtainRead(&cm_scacheLock);
!     for (i = 0; i < cm_data.hashTableSize; i++) {
!         for (scp = cm_data.hashTablep[i]; scp; scp = scp->nextp) {
!             if (index == 0)
!                 goto searchDone;
!             index--;
!         }                       /*Zip through current hash chain */
!     }                           /*Zip through hash chains */
! 
!   searchDone:
!     if (scp == NULL) {
!         /*Past EOF */
!         code = 1;
!         goto fcnDone;
!     }
! 
!     /*
!      * Copy out the located entry.
!      */
!     memset(cep, 0, sizeof(AFSDBCacheEntry));
!     cep->addr = afs_data_pointer_to_int32(scp);
!     cep->cell = scp->fid.cell;
!     cep->netFid.Volume = scp->fid.volume;
!     cep->netFid.Vnode = scp->fid.vnode;
!     cep->netFid.Unique = scp->fid.unique;
!     cep->lock.waitStates = 0;
!     cep->lock.exclLocked = scp->mx.flags;
!     cep->lock.readersReading = 0;
!     cep->lock.numWaiting = scp->mx.waiters;
!     cep->lock.pid_last_reader = 0;
!     cep->lock.pid_writer = 0;
!     cep->lock.src_indicator = 0;
!     cep->Length = scp->length.LowPart;
!     cep->DataVersion = scp->dataVersion;
!     cep->callback = afs_data_pointer_to_int32(scp->cbServerp);
!     cep->cbExpires = scp->cbExpires;
!     cep->refCount = scp->refCount;
!     cep->opens = scp->openReads;
!     cep->writers = scp->openWrites;
!     switch (scp->fileType) {
!     case CM_SCACHETYPE_FILE:
!         cep->mvstat = 0;
!         break;
!     case CM_SCACHETYPE_MOUNTPOINT:
!         cep->mvstat = 1;
!         break;
!     case CM_SCACHETYPE_DIRECTORY:
!         if (scp->fid.vnode == 1 && scp->fid.unique == 1)
!             cep->mvstat = 2;
!         else
!             cep->mvstat = 3;
!         break;
!     case CM_SCACHETYPE_SYMLINK:
!         cep->mvstat = 4;
!         break;
!     case CM_SCACHETYPE_DFSLINK:
!         cep->mvstat = 5;
!         break;
!     case CM_SCACHETYPE_INVALID:
!         cep->mvstat = 6;
!         break;
!     }
!     cep->states = 0;
!     if (scp->flags & CM_SCACHEFLAG_STATD)
!         cep->states |= 1;
!     if (scp->flags & CM_SCACHEFLAG_RO || scp->flags & CM_SCACHEFLAG_PURERO)
!         cep->states |= 4;
!     if (scp->fileType == CM_SCACHETYPE_MOUNTPOINT &&
!         scp->mountPointStringp[0])
!         cep->states |= 8;
!     if (scp->flags & CM_SCACHEFLAG_WAITING)
!         cep->states |= 0x40;
!     code = 0;
! 
!     /*
!      * Return our results.
!      */
!   fcnDone:
!     lock_ReleaseRead(&cm_scacheLock);
! 
!     MUTEX_EXIT(&callp->lock);
!     return (code);
! }
! 
! /* debug interface */
! int
! SRXAFSCB_GetCE64(struct rx_call *callp, long index, AFSDBCacheEntry64 *cep)
! {
!     int i;
!     cm_scache_t * scp;
!     int code;
!     struct rx_connection *connp;
!     struct rx_peer *peerp;
!     unsigned long host = 0;
!     unsigned short port = 0;
! 
!     MUTEX_ENTER(&callp->lock);
! 
!     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
!         host = rx_HostOf(peerp);
!         port = rx_PortOf(peerp);
!     }
! 
!     osi_Log2(afsd_logp, "SRXAFSCB_GetCE64 from host 0x%x port %d",
!              ntohl(host), ntohs(port));
! 
!     lock_ObtainRead(&cm_scacheLock);
!     for (i = 0; i < cm_data.hashTableSize; i++) {
!         for (scp = cm_data.hashTablep[i]; scp; scp = scp->nextp) {
!             if (index == 0)
!                 goto searchDone;
!             index--;
!         }                       /*Zip through current hash chain */
!     }                           /*Zip through hash chains */
! 
!   searchDone:
!     if (scp == NULL) {
!         /*Past EOF */
!         code = 1;
!         goto fcnDone;
!     }
! 
!     /*
!      * Copy out the located entry.
!      */
!     memset(cep, 0, sizeof(AFSDBCacheEntry64));
!     cep->addr = afs_data_pointer_to_int32(scp);
!     cep->cell = scp->fid.cell;
!     cep->netFid.Volume = scp->fid.volume;
!     cep->netFid.Vnode = scp->fid.vnode;
!     cep->netFid.Unique = scp->fid.unique;
!     cep->lock.waitStates = 0;
!     cep->lock.exclLocked = scp->mx.flags;
!     cep->lock.readersReading = 0;
!     cep->lock.numWaiting = scp->mx.waiters;
!     cep->lock.pid_last_reader = 0;
!     cep->lock.pid_writer = 0;
!     cep->lock.src_indicator = 0;
! #if !defined(AFS_64BIT_ENV)
!     cep->Length.high = scp->length.HighPart;
!     cep->Length.low = scp->length.LowPart;
! #else
!     cep->Length = ((afs_int64)scp->length.HighPart)<<32 | scp->length.LowPart;
! #endif
!     cep->DataVersion = scp->dataVersion;
!     cep->callback = afs_data_pointer_to_int32(scp->cbServerp);
!     cep->cbExpires = scp->cbExpires;
!     cep->refCount = scp->refCount;
!     cep->opens = scp->openReads;
!     cep->writers = scp->openWrites;
!     switch (scp->fileType) {
!     case CM_SCACHETYPE_FILE:
!         cep->mvstat = 0;
!         break;
!     case CM_SCACHETYPE_MOUNTPOINT:
!         cep->mvstat = 1;
!         break;
!     case CM_SCACHETYPE_DIRECTORY:
!         if (scp->fid.vnode == 1 && scp->fid.unique == 1)
!             cep->mvstat = 2;
!         else
!             cep->mvstat = 3;
!         break;
!     case CM_SCACHETYPE_SYMLINK:
!         cep->mvstat = 4;
!         break;
!     case CM_SCACHETYPE_DFSLINK:
!         cep->mvstat = 5;
!         break;
!     case CM_SCACHETYPE_INVALID:
!         cep->mvstat = 6;
!         break;
!     }
!     cep->states = 0;
!     if (scp->flags & CM_SCACHEFLAG_STATD)
!         cep->states |= 1;
!     if (scp->flags & CM_SCACHEFLAG_RO || scp->flags & CM_SCACHEFLAG_PURERO)
!         cep->states |= 4;
!     if (scp->fileType == CM_SCACHETYPE_MOUNTPOINT &&
!         scp->mountPointStringp[0])
!         cep->states |= 8;
!     if (scp->flags & CM_SCACHEFLAG_WAITING)
!         cep->states |= 0x40;
!     code = 0;
! 
!     /*
!      * Return our results.
!      */
!   fcnDone:
!     lock_ReleaseRead(&cm_scacheLock);
! 
!     MUTEX_EXIT(&callp->lock);
!     return (code);
  }
  
  /* debug interface: not implemented */
+ int
  SRXAFSCB_XStatsVersion(struct rx_call *callp, long *vp)
  {
!     struct rx_connection *connp;
!     struct rx_peer *peerp;
!     unsigned long host = 0;
!     unsigned short port = 0;
! 
!     MUTEX_ENTER(&callp->lock);
! 
!     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
!         host = rx_HostOf(peerp);
!         port = rx_PortOf(peerp);
!     }
! 
!     osi_Log2(afsd_logp, "SRXAFSCB_XStatsVersion from host 0x%x port %d - not implemented",
!              ntohl(host), ntohs(port));
      *vp = -1;
+ 
+     MUTEX_EXIT(&callp->lock);
      return RXGEN_OPCODE;
  }
  
  /* debug interface: not implemented */
+ int
  SRXAFSCB_GetXStats(struct rx_call *callp, long cvn, long coln, long *srvp, long *timep,
!                    AFSCB_CollData *datap)
  {
!     struct rx_connection *connp;
!     struct rx_peer *peerp;
!     unsigned long host = 0;
!     unsigned short port = 0;
! 
!     MUTEX_ENTER(&callp->lock);
! 
!     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
!         host = rx_HostOf(peerp);
!         port = rx_PortOf(peerp);
!     }
! 
!     osi_Log2(afsd_logp, "SRXAFSCB_GetXStats from host 0x%x port %d - not implemented",
!              ntohl(host), ntohs(port));
! 
!     MUTEX_EXIT(&callp->lock);
      return RXGEN_OPCODE;
  }
  
! int
  SRXAFSCB_InitCallBackState2(struct rx_call *callp, struct interfaceAddr* addr)
  {
!     osi_Log0(afsd_logp, "SRXAFSCB_InitCallBackState2 ->");
! 
!     return SRXAFSCB_InitCallBackState(callp);
  }
  
! /* debug interface */
! int
  SRXAFSCB_WhoAreYou(struct rx_call *callp, struct interfaceAddr* addr)
  {
!     int i;
!     int cm_noIPAddr;         /* number of client network interfaces */
!     int cm_IPAddr[CM_MAXINTERFACE_ADDR];    /* client's IP address in host order */
!     int cm_SubnetMask[CM_MAXINTERFACE_ADDR];/* client's subnet mask in host order*/
!     int cm_NetMtu[CM_MAXINTERFACE_ADDR];    /* client's MTU sizes */
!     int cm_NetFlags[CM_MAXINTERFACE_ADDR];  /* network flags */
!     long code;
!     struct rx_connection *connp;
!     struct rx_peer *peerp;
!     unsigned long host = 0;
!     unsigned short port = 0;
! 
!     MUTEX_ENTER(&callp->lock);
! 
!     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
!         host = rx_HostOf(peerp);
!         port = rx_PortOf(peerp);
!     }
! 
!     /* get network related info */
!     cm_noIPAddr = CM_MAXINTERFACE_ADDR;
!     code = syscfg_GetIFInfo(&cm_noIPAddr,
!                              cm_IPAddr, cm_SubnetMask,
!                              cm_NetMtu, cm_NetFlags);
! 
!     /* return all network interface addresses */
!     osi_Log2(afsd_logp, "SRXAFSCB_WhoAreYou from host 0x%x port %d",
!               ntohl(host),
!               ntohs(port));
! 
!     addr->numberOfInterfaces = cm_noIPAddr;
!     addr->uuid = cm_data.Uuid;
!     for ( i=0; i < cm_noIPAddr; i++ ) {
!         addr->addr_in[i] = cm_IPAddr[i];
!         addr->subnetmask[i] = cm_SubnetMask[i];
!         addr->mtu[i] = cm_NetMtu[i];
!     }
!     
!     MUTEX_EXIT(&callp->lock);
! 
!     return 0;
  }
  
! int
  SRXAFSCB_InitCallBackState3(struct rx_call *callp, afsUUID* serverUuid)
  {
!     char *p = NULL;
! 
!     if (UuidToString((UUID *)serverUuid, &p) == RPC_S_OK) {
!         osi_Log1(afsd_logp, "SRXAFSCB_InitCallBackState3 %s ->",p);
!         RpcStringFree(&p);
!     } else
!         osi_Log0(afsd_logp, "SRXAFSCB_InitCallBackState3 - no server Uuid ->");
! 
!     return SRXAFSCB_InitCallBackState(callp);
  }
  
! /* debug interface */
! int
  SRXAFSCB_ProbeUuid(struct rx_call *callp, afsUUID* clientUuid)
  {
!     struct rx_connection *connp;
!     struct rx_peer *peerp;
!     unsigned long host = 0;
!     unsigned short port = 0;
!     char *p,*q;
!     int code = 0;
! 
!     MUTEX_ENTER(&callp->lock);
! 
!     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
!         host = rx_HostOf(peerp);
!         port = rx_PortOf(peerp);
!     }
! 
!     if ( !afs_uuid_equal(&cm_data.Uuid, clientUuid) ) {
!         UuidToString((UUID *)&cm_data.Uuid, &p);
!         UuidToString((UUID *)clientUuid, &q);
!         osi_Log4(afsd_logp, "SRXAFSCB_ProbeUuid %s != %s from host 0x%x port %d", 
!                   osi_LogSaveString(afsd_logp,p), 
!                   osi_LogSaveString(afsd_logp,q),
!                   ntohl(host),
!                   ntohs(port));
!         RpcStringFree(&p);
!         RpcStringFree(&q);
! 
!         code = 1;       /* failure */
!     } else
!         osi_Log2(afsd_logp, "SRXAFSCB_ProbeUuid (success) from host 0x%x port %d",
!                   ntohl(host),
!                   ntohs(port));
! 
!     MUTEX_EXIT(&callp->lock);
!     return code;
! }
! 
! /* debug interface */
! int 
! SRXAFSCB_GetCellByNum(struct rx_call *callp, afs_int32 a_cellnum,
!                       char **a_name, serverList *a_hosts)
! {
!     afs_int32 sn;
!     cm_cell_t * cellp;
!     cm_serverRef_t * serverRefp; 
!     struct rx_connection *connp;
!     struct rx_peer *peerp;
!     unsigned long host = 0;
!     unsigned short port = 0;
! 
!     MUTEX_ENTER(&callp->lock);
! 
!     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
!         host = rx_HostOf(peerp);
!         port = rx_PortOf(peerp);
!     }
! 
!     osi_Log3(afsd_logp, "SRXAFSCB_GetCellByNum(%d) from host 0x%x port %d",
!              a_cellnum, ntohl(host), ntohs(port));
! 
!     a_hosts->serverList_val = 0;
!     a_hosts->serverList_len = 0;
! 
!     cellp = cm_FindCellByID(a_cellnum);
!     if (!cellp) {
!         *a_name = strdup("");
!         MUTEX_EXIT(&callp->lock);
!         return 0;
!     }
! 
!     lock_ObtainRead(&cm_serverLock);
!     *a_name = strdup(cellp->name);
! 
!     for ( sn = 0, serverRefp = cellp->vlServersp; 
!           sn < AFSMAXCELLHOSTS && serverRefp;
!           sn++, serverRefp = serverRefp->next);
! 
!     a_hosts->serverList_len = sn;
!     a_hosts->serverList_val = (afs_int32 *)osi_Alloc(sn * sizeof(afs_int32));
! 
!     for ( sn = 0, serverRefp = cellp->vlServersp; 
!           sn < AFSMAXCELLHOSTS && serverRefp;
!           sn++, serverRefp = serverRefp->next)
!     {
!         a_hosts->serverList_val[sn] = ntohl(serverRefp->server->addr.sin_addr.s_addr);
!     }
! 
!     lock_ReleaseRead(&cm_serverLock);
!     MUTEX_EXIT(&callp->lock);
!     return 0;
! }
! 
! /* debug interface */
! int 
! SRXAFSCB_TellMeAboutYourself( struct rx_call *callp, 
!                               struct interfaceAddr *addr,
!                               Capabilities * capabilities)
! {
!     int i;
!     afs_int32 *dataBuffP;
!     afs_int32 dataBytes;
!     int cm_noIPAddr;         /* number of client network interfaces */
!     int cm_IPAddr[CM_MAXINTERFACE_ADDR];    /* client's IP address in host order */
!     int cm_SubnetMask[CM_MAXINTERFACE_ADDR];/* client's subnet mask in host order*/
!     int cm_NetMtu[CM_MAXINTERFACE_ADDR];    /* client's MTU sizes */
!     int cm_NetFlags[CM_MAXINTERFACE_ADDR];  /* network flags */
!     long code;
!     struct rx_connection *connp;
!     struct rx_peer *peerp;
!     unsigned long host = 0;
!     unsigned short port = 0;
! 
!     MUTEX_ENTER(&callp->lock);
! 
!     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
!         host = rx_HostOf(peerp);
!         port = rx_PortOf(peerp);
!     }
! 
!     /* get network related info */
!     cm_noIPAddr = CM_MAXINTERFACE_ADDR;
!     code = syscfg_GetIFInfo(&cm_noIPAddr,
!                              cm_IPAddr, cm_SubnetMask,
!                              cm_NetMtu, cm_NetFlags);
! 
!     osi_Log2(afsd_logp, "SRXAFSCB_TellMeAboutYourself from host 0x%x port %d",
!               ntohl(host),
!               ntohs(port));
! 
!     /* return all network interface addresses */
!     addr->numberOfInterfaces = cm_noIPAddr;
!     addr->uuid = cm_data.Uuid;
!     for ( i=0; i < cm_noIPAddr; i++ ) {
!         addr->addr_in[i] = cm_IPAddr[i];
!         addr->subnetmask[i] = cm_SubnetMask[i];
!         addr->mtu[i] = cm_NetMtu[i];
!     }
! 
!     dataBytes = 1 * sizeof(afs_int32);
!     dataBuffP = (afs_int32 *) osi_Alloc(dataBytes);
!     dataBuffP[0] = CAPABILITY_ERRORTRANS;
!     capabilities->Capabilities_len = dataBytes / sizeof(afs_int32);
!     capabilities->Capabilities_val = dataBuffP;
! 
!     MUTEX_EXIT(&callp->lock);
! 
!     return 0;
  }
  
  /*------------------------------------------------------------------------
***************
*** 424,438 ****
   *------------------------------------------------------------------------*/
  
  int SRXAFSCB_GetServerPrefs(
!     struct rx_call *a_call,
      afs_int32 a_index,
      afs_int32 *a_srvr_addr,
      afs_int32 *a_srvr_rank)
  {
!     osi_Log0(afsd_logp, "SRXAFSCB_GetServerPrefs - not implemented");
  
      *a_srvr_addr = 0xffffffff;
      *a_srvr_rank = 0xffffffff;
      return 0;
  }
  
--- 1160,1190 ----
   *------------------------------------------------------------------------*/
  
  int SRXAFSCB_GetServerPrefs(
!     struct rx_call *callp,
      afs_int32 a_index,
      afs_int32 *a_srvr_addr,
      afs_int32 *a_srvr_rank)
  {
!     struct rx_connection *connp;
!     struct rx_peer *peerp;
!     unsigned long host = 0;
!     unsigned short port = 0;
! 
!     MUTEX_ENTER(&callp->lock);
! 
!     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
!         host = rx_HostOf(peerp);
!         port = rx_PortOf(peerp);
!     }
! 
!     osi_Log2(afsd_logp, "SRXAFSCB_GetServerPrefs from host 0x%x port %d - not implemented",
!               ntohl(host),
!               ntohs(port));
  
      *a_srvr_addr = 0xffffffff;
      *a_srvr_rank = 0xffffffff;
+ 
+     MUTEX_EXIT(&callp->lock);
      return 0;
  }
  
***************
*** 458,477 ****
   *      As advertised.
   *------------------------------------------------------------------------*/
  
! int SRXAFSCB_GetCellServDB(
!     struct rx_call *a_call,
!     afs_int32 a_index,
!     char **a_name,
!     serverList *a_hosts)
  {
      char *t_name;
  
!     osi_Log0(afsd_logp, "SRXAFSCB_GetCellServDB - not implemented");
  
      t_name = (char *)malloc(AFSNAMEMAX);
      t_name[0] = '\0';
      *a_name = t_name;
      a_hosts->serverList_len = 0;
      return 0;
  }
  
--- 1210,1240 ----
   *      As advertised.
   *------------------------------------------------------------------------*/
  
! int SRXAFSCB_GetCellServDB(struct rx_call *callp, afs_int32 index, char **a_name, 
!                            serverList *a_hosts)
  {
      char *t_name;
+     struct rx_connection *connp;
+     struct rx_peer *peerp;
+     unsigned long host = 0;
+     unsigned short port = 0;
+ 
+     MUTEX_ENTER(&callp->lock);
+ 
+     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
+         host = rx_HostOf(peerp);
+         port = rx_PortOf(peerp);
+     }
  
!     osi_Log2(afsd_logp, "SRXAFSCB_GetCellServDB from host 0x%x port %d - not implemented",
!              ntohl(host), ntohs(port));
  
      t_name = (char *)malloc(AFSNAMEMAX);
      t_name[0] = '\0';
      *a_name = t_name;
      a_hosts->serverList_len = 0;
+ 
+     MUTEX_EXIT(&callp->lock);
      return 0;
  }
  
***************
*** 495,516 ****
   *      As advertised.
   *------------------------------------------------------------------------*/
  
! int SRXAFSCB_GetLocalCell(
!     struct rx_call *a_call,
!     char **a_name)
  {
      char *t_name;
  
!     osi_Log0(afsd_logp, "SRXAFSCB_GetLocalCell");
  
!     if (cm_rootCellp) {
! 	t_name = (char *)malloc(strlen(cm_rootCellp->namep)+1);
!         strcpy(t_name, cm_rootCellp->namep);
      } else {
  	t_name = (char *)malloc(1);
  	t_name[0] = '\0';
      }
      *a_name = t_name;
      return 0;
  }
  
--- 1258,1291 ----
   *      As advertised.
   *------------------------------------------------------------------------*/
  
! int SRXAFSCB_GetLocalCell(struct rx_call *callp, char **a_name)
  {
      char *t_name;
+     struct rx_connection *connp;
+     struct rx_peer *peerp;
+     unsigned long host = 0;
+     unsigned short port = 0;
+ 
+     MUTEX_ENTER(&callp->lock);
+ 
+     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
+         host = rx_HostOf(peerp);
+         port = rx_PortOf(peerp);
+     }
  
!     osi_Log2(afsd_logp, "SRXAFSCB_GetLocalCell from host 0x%x port %d",
!              ntohl(host), ntohs(port));
  
!     if (cm_data.rootCellp) {
! 	t_name = (char *)malloc(strlen(cm_data.rootCellp->name)+1);
!         strcpy(t_name, cm_data.rootCellp->name);
      } else {
  	t_name = (char *)malloc(1);
  	t_name[0] = '\0';
      }
      *a_name = t_name;
+ 
+     MUTEX_EXIT(&callp->lock);
      return 0;
  }
  
***************
*** 576,594 ****
   *	As advertised.
   *------------------------------------------------------------------------*/
  
! int SRXAFSCB_GetCacheConfig(a_call, callerVersion, serverVersion,
! 			    configCount, config)
! struct rx_call *a_call;
! afs_uint32 callerVersion;
! afs_uint32 *serverVersion;
! afs_uint32 *configCount;
! cacheConfig *config;
  {
      afs_uint32 *t_config;
      size_t allocsize;
      extern cm_initparams_v1 cm_initParams;
  
!     osi_Log0(afsd_logp, "SRXAFSCB_GetCacheConfig - version 1 only");
  
      /*
       * Currently only support version 1
--- 1351,1379 ----
   *	As advertised.
   *------------------------------------------------------------------------*/
  
! int SRXAFSCB_GetCacheConfig(struct rx_call *callp,
!                             afs_uint32 callerVersion,
!                             afs_uint32 *serverVersion,
!                             afs_uint32 *configCount,
!                             cacheConfig *config)
  {
      afs_uint32 *t_config;
      size_t allocsize;
      extern cm_initparams_v1 cm_initParams;
+     struct rx_connection *connp;
+     struct rx_peer *peerp;
+     unsigned long host = 0;
+     unsigned short port = 0;
+ 
+     MUTEX_ENTER(&callp->lock);
+ 
+     if ((connp = rx_ConnectionOf(callp)) && (peerp = rx_PeerOf(connp))) {
+         host = rx_HostOf(peerp);
+         port = rx_PortOf(peerp);
+     }
  
!     osi_Log2(afsd_logp, "SRXAFSCB_GetCacheConfig from host 0x%x port %d - version 1 only",
!              ntohl(host), ntohs(port));
  
      /*
       * Currently only support version 1
***************
*** 603,608 ****
--- 1388,1394 ----
      config->cacheConfig_val = t_config;
      config->cacheConfig_len = allocsize/sizeof(afs_uint32);
  
+     MUTEX_EXIT(&callp->lock);
      return 0;
  }
  
***************
*** 644,668 ****
  	    return 1;
          }
  
! 	    lock_ObtainMutex(&cm_Freelance_Lock);
! 	    fdc = cm_fakeDirCallback;
! 	    fgc = cm_fakeGettingCallback;
! 	    lock_ReleaseMutex(&cm_Freelance_Lock);
  	    
! 	    if (fdc==1) {	// first call since init
! 		return 0;
! 	    } else if (fdc==2 && !fgc) { 	// we're in good shape
! 		if (cm_getLocalMountPointChange()) {	// check for changes
! 		    cm_clearLocalMountPointChange(); // clear the changefile
!             lock_ReleaseMutex(&scp->mx);      // this is re-locked in reInitLocalMountPoints
! 		    cm_reInitLocalMountPoints();	// start reinit
!             lock_ObtainMutex(&scp->mx);      // now get the lock back 
! 		    return 0;
! 		}
! 		return 1;			// no change
! 	    }
! 	    return 0;
! 	}
  #endif
  
      if (scp->cbServerp != NULL)
--- 1430,1454 ----
  	    return 1;
          }
  
!         lock_ObtainMutex(&cm_Freelance_Lock);
!         fdc = cm_fakeDirCallback;
!         fgc = cm_fakeGettingCallback;
!         lock_ReleaseMutex(&cm_Freelance_Lock);
  	    
!         if (fdc==1) {	// first call since init
!             return 0;
!         } else if (fdc==2 && !fgc) { 	// we're in good shape
!             if (cm_getLocalMountPointChange()) {	// check for changes
!                 cm_clearLocalMountPointChange(); // clear the changefile
!                 lock_ReleaseMutex(&scp->mx);      // this is re-locked in reInitLocalMountPoints
!                 cm_reInitLocalMountPoints();	// start reinit
!                 lock_ObtainMutex(&scp->mx);      // now get the lock back 
!                 return 0;
!             }
!             return 1;			// no change
!         }
!         return 0;
!     }
  #endif
  
      if (scp->cbServerp != NULL)
***************
*** 764,770 ****
                    (revp->flags & CM_RACINGFLAG_CANCELALL))) {
              /* this one matches */
              osi_Log4(afsd_logp,
!                       "Racing revoke scp %x old cbc %d rev cbc %d cur cbc %d",
                        scp,
                        cbrp->callbackCount, revp->callbackCount,
                        cm_callbackCount);
--- 1550,1556 ----
                    (revp->flags & CM_RACINGFLAG_CANCELALL))) {
              /* this one matches */
              osi_Log4(afsd_logp,
!                       "Racing revoke scp 0x%x old cbc %d rev cbc %d cur cbc %d",
                        scp,
                        cbrp->callbackCount, revp->callbackCount,
                        cm_callbackCount);
***************
*** 774,781 ****
               * OK to drop the lock and re-obtain it.
               */
              lock_ReleaseMutex(&scp->mx);
-             cm_CallbackNotifyChange(scp);
              lock_ReleaseWrite(&cm_callbackLock);
              lock_ObtainMutex(&scp->mx);
              lock_ObtainWrite(&cm_callbackLock);
          }
--- 1560,1567 ----
               * OK to drop the lock and re-obtain it.
               */
              lock_ReleaseMutex(&scp->mx);
              lock_ReleaseWrite(&cm_callbackLock);
+             cm_CallbackNotifyChange(scp);
              lock_ObtainMutex(&scp->mx);
              lock_ObtainWrite(&cm_callbackLock);
          }
***************
*** 814,820 ****
      cm_fid_t sfid;
      struct rx_connection * callp;
  
!     osi_Log2(afsd_logp, "GetCallback scp %x flags %lX", scp, flags);
  
  #ifdef AFS_FREELANCE_CLIENT
      // The case where a callback is needed on /afs is handled
--- 1600,1607 ----
      cm_fid_t sfid;
      struct rx_connection * callp;
  
!     osi_Log4(afsd_logp, "GetCallback scp 0x%x cell %d vol %d flags %lX", 
!              scp, scp->fid.cell, scp->fid.volume, flags);
  
  #ifdef AFS_FREELANCE_CLIENT
      // The case where a callback is needed on /afs is handled
***************
*** 858,864 ****
      mustCall = (flags & 1);
      cm_AFSFidFromFid(&tfid, &scp->fid);
      while (1) {
!         if (!mustCall && cm_HaveCallback(scp)) return 0;
  
          /* turn off mustCall, since it has now forced us past the check above */
          mustCall = 0;
--- 1645,1655 ----
      mustCall = (flags & 1);
      cm_AFSFidFromFid(&tfid, &scp->fid);
      while (1) {
!         if (!mustCall && cm_HaveCallback(scp)) {
!             osi_Log3(afsd_logp, "GetCallback Complete scp 0x%x cell %d vol %d", 
!                       scp, scp->fid.cell, scp->fid.volume);
!             return 0;
!         }
  
          /* turn off mustCall, since it has now forced us past the check above */
          mustCall = 0;
***************
*** 871,880 ****
          lock_ReleaseMutex(&scp->mx);
  		
          /* now make the RPC */
!         osi_Log1(afsd_logp, "CALL FetchStatus vp %x", (long) scp);
          do {
              code = cm_Conn(&sfid, userp, reqp, &connp);
!             if (code) continue;
  
              callp = cm_GetRxConn(connp);
              code = RXAFS_FetchStatus(callp, &tfid,
--- 1662,1673 ----
          lock_ReleaseMutex(&scp->mx);
  		
          /* now make the RPC */
!         osi_Log4(afsd_logp, "CALL FetchStatus scp 0x%x cell %d vol %d uniq %d", 
!                  (long) scp, scp->fid.cell, scp->fid.volume, scp->fid.unique);
          do {
              code = cm_Conn(&sfid, userp, reqp, &connp);
!             if (code) 
!                 continue;
  
              callp = cm_GetRxConn(connp);
              code = RXAFS_FetchStatus(callp, &tfid,
***************
*** 884,902 ****
          } while (cm_Analyze(connp, userp, reqp, &sfid, &volSync, NULL,
                              &cbr, code));
          code = cm_MapRPCError(code, reqp);
!         osi_Log0(afsd_logp, "CALL FetchStatus DONE");
  
          lock_ObtainMutex(&scp->mx);
-         cm_SyncOpDone(scp, NULL, sflags);
          if (code == 0) {
              cm_EndCallbackGrantingCall(scp, &cbr, &callback, 0);
              cm_MergeStatus(scp, &afsStatus, &volSync, userp, 0);
!         }   
!         else
              cm_EndCallbackGrantingCall(NULL, &cbr, NULL, 0);
  
          /* now check to see if we got an error */
!         if (code) return code;
      }
  }
  
--- 1677,1704 ----
          } while (cm_Analyze(connp, userp, reqp, &sfid, &volSync, NULL,
                              &cbr, code));
          code = cm_MapRPCError(code, reqp);
!         if (code)
!             osi_Log4(afsd_logp, "CALL FetchStatus FAILURE code 0x%x scp 0x%x cell %d vol %d", 
!                      code, (long) scp, scp->fid.cell, scp->fid.volume);
!         else
!             osi_Log4(afsd_logp, "CALL FetchStatus SUCCESS scp 0x%x cell %d vol %d uniq %d", 
!                      (long) scp, scp->fid.cell, scp->fid.volume, scp->fid.unique);
  
          lock_ObtainMutex(&scp->mx);
          if (code == 0) {
              cm_EndCallbackGrantingCall(scp, &cbr, &callback, 0);
              cm_MergeStatus(scp, &afsStatus, &volSync, userp, 0);
!         } else {
              cm_EndCallbackGrantingCall(NULL, &cbr, NULL, 0);
+         }
+         cm_SyncOpDone(scp, NULL, sflags);
  
          /* now check to see if we got an error */
!         if (code) {
!             osi_Log4(afsd_logp, "GetCallback Failed code 0x%x scp 0x%x cell %d vol %d", 
!                      code, scp, scp->fid.cell, scp->fid.volume);
!             return code;
!         }
      }
  }
  
***************
*** 905,948 ****
  {
      int i;
      cm_scache_t *scp;
!     long now;
          
      osi_Log0(afsd_logp, "CheckCBExpiration");
  
      now = osi_Time();
      lock_ObtainWrite(&cm_scacheLock);
!     for (i=0; i<cm_hashTableSize; i++) {
!         for (scp = cm_hashTablep[i]; scp; scp=scp->nextp) {
              cm_HoldSCacheNoLock(scp);
-             lock_ReleaseWrite(&cm_scacheLock);
              if (scp->cbExpires > 0 && (scp->cbServerp == NULL || now > scp->cbExpires)) {
!                 osi_Log1(afsd_logp, "Callback Expiration Discarding SCache scp %x", scp);
                  lock_ObtainMutex(&scp->mx);
                  cm_DiscardSCache(scp);
                  lock_ReleaseMutex(&scp->mx);
                  cm_CallbackNotifyChange(scp);
              }
-             lock_ObtainWrite(&cm_scacheLock);
              cm_ReleaseSCacheNoLock(scp);
          }
      }
      lock_ReleaseWrite(&cm_scacheLock);
- }
  
! /* debug interface: not implemented */
! int SRXAFSCB_GetCellByNum(struct rx_call *a_call, afs_int32 a_cellnum,
! 			  char **a_name, serverList *a_hosts)
! {
!     /* XXXX */
!     osi_Log0(afsd_logp, "SRXAFSCB_GetCellByNum - not implemented");
!     return RXGEN_OPCODE;
  }
  
- /* debug interface: not implemented */
- int SRXAFSCB_TellMeAboutYourself(struct rx_call *a_call, afs_int32 a_cellnum,
-                           char **a_name, serverList *a_hosts)
- {
-     /* XXXX */
-     osi_Log0(afsd_logp, "SRXAFSCB_TellMeAboutYourself - not implemented");
-     return RXGEN_OPCODE;
- }
--- 1707,1736 ----
  {
      int i;
      cm_scache_t *scp;
!     unsigned long now;
          
      osi_Log0(afsd_logp, "CheckCBExpiration");
  
      now = osi_Time();
      lock_ObtainWrite(&cm_scacheLock);
!     for (i=0; i<cm_data.hashTableSize; i++) {
!         for (scp = cm_data.hashTablep[i]; scp; scp=scp->nextp) {
              cm_HoldSCacheNoLock(scp);
              if (scp->cbExpires > 0 && (scp->cbServerp == NULL || now > scp->cbExpires)) {
!                 lock_ReleaseWrite(&cm_scacheLock);
!                 osi_Log4(afsd_logp, "Callback Expiration Discarding SCache scp 0x%x vol %u vn %u uniq %u", 
!                           scp, scp->fid.volume, scp->fid.vnode, scp->fid.unique);
                  lock_ObtainMutex(&scp->mx);
                  cm_DiscardSCache(scp);
                  lock_ReleaseMutex(&scp->mx);
                  cm_CallbackNotifyChange(scp);
+                 lock_ObtainWrite(&cm_scacheLock);
              }
              cm_ReleaseSCacheNoLock(scp);
          }
      }
      lock_ReleaseWrite(&cm_scacheLock);
  
!     osi_Log0(afsd_logp, "CheckCBExpiration Complete");
  }
  
Index: openafs/src/WINNT/afsd/cm_callback.h
diff -c openafs/src/WINNT/afsd/cm_callback.h:1.3.16.2 openafs/src/WINNT/afsd/cm_callback.h:1.3.16.3
*** openafs/src/WINNT/afsd/cm_callback.h:1.3.16.2	Tue Dec  7 01:01:41 2004
--- openafs/src/WINNT/afsd/cm_callback.h	Fri Mar 11 01:58:40 2005
***************
*** 13,30 ****
  #include <osi.h>
  
  typedef struct cm_callbackRequest {
! 	long callbackCount;		/* callback count at start of the request */
!         long startTime;			/* time when we started the call */
!         struct cm_server *serverp;	/* server we really got the callback from */
  } cm_callbackRequest_t;
  
  #include "cm_scache.h"
  
  typedef struct cm_racingRevokes {
!         osi_queue_t q;			/* queue for forward/backward searches */
!         cm_fid_t fid;			/* fid revoked */
!         long callbackCount;		/* which callback this is */
!         long flags;
  } cm_racingRevokes_t;
  
  /* flags for cm_racingRevokes_t flags field */
--- 13,30 ----
  #include <osi.h>
  
  typedef struct cm_callbackRequest {
!     long callbackCount;		/* callback count at start of the request */
!     unsigned long startTime;	/* time when we started the call */
!     struct cm_server *serverp;	/* server we really got the callback from */
  } cm_callbackRequest_t;
  
  #include "cm_scache.h"
  
  typedef struct cm_racingRevokes {
!     osi_queue_t q;		/* queue for forward/backward searches */
!     cm_fid_t fid;		/* fid revoked */
!     long callbackCount;		/* which callback this is */
!     long flags;
  } cm_racingRevokes_t;
  
  /* flags for cm_racingRevokes_t flags field */
Index: openafs/src/WINNT/afsd/cm_cell.c
diff -c openafs/src/WINNT/afsd/cm_cell.c:1.14.2.3 openafs/src/WINNT/afsd/cm_cell.c:1.14.2.4
*** openafs/src/WINNT/afsd/cm_cell.c:1.14.2.3	Sun Jan 30 23:08:49 2005
--- openafs/src/WINNT/afsd/cm_cell.c	Fri Mar 11 01:58:40 2005
***************
*** 25,252 ****
  
  osi_rwlock_t cm_cellLock;
  
- cm_cell_t *cm_allCellsp;
- 
  /* function called as callback proc from cm_SearchCellFile.  Return 0 to
   * continue processing.
   */
  long cm_AddCellProc(void *rockp, struct sockaddr_in *addrp, char *namep)
  {
! 	cm_server_t *tsp;
! 	cm_serverRef_t *tsrp;
      cm_cell_t *cellp;
          
! 	cellp = rockp;
  
! 	/* if this server was previously created by fs setserverprefs */
! 	if ( tsp = cm_FindServer(addrp, CM_SERVER_VLDB))
! 	{
! 		if ( !tsp->cellp )
! 			tsp->cellp = cellp;
! 	}
! 	else
          tsp = cm_NewServer(addrp, CM_SERVER_VLDB, cellp);
  
! 	/* Insert the vlserver into a sorted list, sorted by server rank */
! 	tsrp = cm_NewServerRef(tsp);
! 	cm_InsertServerList(&cellp->vlServersp, tsrp);
      /* drop the allocation reference */
      lock_ObtainWrite(&cm_serverLock);
      tsrp->refCount--;
      lock_ReleaseWrite(&cm_serverLock);
! 	return 0;
  }
  
  /* load up a cell structure from the cell database, afsdcell.ini */
  cm_cell_t *cm_GetCell(char *namep, long flags)
  {
!   return cm_GetCell_Gen(namep, NULL, flags);
  }
  
  cm_cell_t *cm_GetCell_Gen(char *namep, char *newnamep, long flags)
  {
! 	cm_cell_t *cp;
      long code;
!     static cellCounter = 1;		/* locked by cm_cellLock */
! 	int ttl;
! 	char fullname[200]="";
! 
! 	if (!strcmp(namep,SMB_IOCTL_FILENAME_NOSLASH))
! 		return NULL;
! 
! 	lock_ObtainWrite(&cm_cellLock);
! 	for (cp = cm_allCellsp; cp; cp=cp->nextp) {
! 		if (strcmp(namep, cp->namep) == 0) {
!             strcpy(fullname, cp->namep);
!             break;
! 		}
!     }
  
! 	if ((!cp && (flags & CM_FLAG_CREATE))
! #ifdef AFS_AFSDB_ENV
!          /* if it's from DNS, see if it has expired */
!          || (cp && (cp->flags & CM_CELLFLAG_DNS) 
!          && ((cp->flags & CM_CELLFLAG_VLSERVER_INVALID) || (time(0) > cp->timeout)))
! #endif
! 	  ) {
!         int dns_expired = 0;
! 		if (!cp) {
!             cp = malloc(sizeof(cm_cell_t));
!             memset(cp, 0, sizeof(cm_cell_t));
!         } 
!         else {
!             cm_cell_t **cpp;
! 
!             dns_expired = 1;
!             if (cp->vlServersp) {
!                 /* must empty cp->vlServersp */
!                 lock_ObtainMutex(&cp->mx);
!                 cm_FreeServerList(&cp->vlServersp);
!                 cp->vlServersp = NULL;
!                 lock_ReleaseMutex(&cp->mx);
!             }
!             /* remove the entry from the allCells list 
!              * we will re-insert it later 
!              */
!             for (cpp = &cm_allCellsp; *cpp; cpp=&(*cpp)->nextp) {
!                 if (*cpp == cp) {
!                     (*cpp) = cp->nextp;
!                     break;
!                 }
!             }
          }
  
          code = cm_SearchCellFile(namep, fullname, cm_AddCellProc, cp);
! 		if (code) {
              osi_Log3(afsd_logp,"in cm_GetCell_gen cm_SearchCellFile(%s) returns code= %d fullname= %s", 
!                       namep, code, fullname);
  
  #ifdef AFS_AFSDB_ENV
!             if (cm_dnsEnabled /*&& cm_DomainValid(namep)*/) {
                  code = cm_SearchCellByDNS(namep, fullname, &ttl, cm_AddCellProc, cp);
                  if ( code ) {
                      osi_Log3(afsd_logp,"in cm_GetCell_gen cm_SearchCellByDNS(%s) returns code= %d fullname= %s", 
!                              namep, code, fullname);
!                     if (dns_expired) {
!                         cp->flags |= CM_CELLFLAG_VLSERVER_INVALID;
!                         cp = NULL;  /* set cp to NULL to indicate error */
!                         goto done;
!                     } 
!                 }
!                 else {   /* got cell from DNS */
                      cp->flags |= CM_CELLFLAG_DNS;
                      cp->flags &= ~CM_CELLFLAG_VLSERVER_INVALID;
                      cp->timeout = time(0) + ttl;
                  }
!             }
  #endif
!             if (cp && code) {     /* free newly allocated memory */
!                 free(cp);
                  cp = NULL;
                  goto done;
              }
! 		}
  
! 		/* randomise among those vlservers having the same rank*/ 
          cm_RandomizeServer(&cp->vlServersp);
  
- #ifdef AFS_AFSDB_ENV
-         if (dns_expired) {
-             /* we want to preserve the full name and mutex.
-              * also, cp is already in the cm_allCellsp list
-              */
-             goto done;
-         }
- #endif /* AFS_AFSDB_ENV */
- 
          /* otherwise we found the cell, and so we're nearly done */
          lock_InitializeMutex(&cp->mx, "cm_cell_t mutex");
  
! 		/* copy in name */
!         cp->namep = malloc(strlen(fullname)+1);
!         strcpy(cp->namep, fullname);
! 
! 		/* thread on global list */
!         cp->nextp = cm_allCellsp;
!         cm_allCellsp = cp;
!                 
!         cp->cellID = cellCounter++;
      }
  
    done:
      /* fullname is not valid if cp == NULL */
! 	if (cp && newnamep)
          strcpy(newnamep, fullname);
! 	lock_ReleaseWrite(&cm_cellLock);
      return cp;
  }
  
  cm_cell_t *cm_FindCellByID(long cellID)
  {
! 	cm_cell_t *cp;
! 	int ttl;
      int code;
  
! 	lock_ObtainWrite(&cm_cellLock);
! 	for(cp = cm_allCellsp; cp; cp=cp->nextp) {
! 		if (cellID == cp->cellID) 
              break;
      }
  
! #ifdef AFS_AFSDB_ENV
! 	/* if it's from DNS, see if it has expired */
! 	if (cp && cm_dnsEnabled && (cp->flags & CM_CELLFLAG_DNS) && 
!         ((cp->flags & CM_CELLFLAG_VLSERVER_INVALID) || (time(0) > cp->timeout))) {
!         /* must empty cp->vlServersp */
!         cm_FreeServerList(&cp->vlServersp);
!         cp->vlServersp = NULL;
  
!         code = cm_SearchCellByDNS(cp->namep, NULL, &ttl, cm_AddCellProc, cp);
!         if (code == 0) {   /* got cell from DNS */
!             cp->flags |= CM_CELLFLAG_DNS;
!             cp->flags &= ~CM_CELLFLAG_VLSERVER_INVALID;
! #ifdef DEBUG
!             fprintf(stderr, "cell %s: ttl=%d\n", cp->namep, ttl);
! #endif
!             cp->timeout = time(0) + ttl;
!         } else {
!             cp->flags |= CM_CELLFLAG_VLSERVER_INVALID;
!             cp = NULL;      /* return NULL to indicate failure */
          }
!         /* if we fail to find it this time, we'll just do nothing and leave the
!          * current entry alone 
!          */
! 	}
! #endif /* AFS_AFSDB_ENV */
  
! 	lock_ReleaseWrite(&cm_cellLock);	
!     return cp;
  }
  
! void cm_InitCell(void)
  {
! 	static osi_once_t once;
          
      if (osi_Once(&once)) {
! 		lock_InitializeRWLock(&cm_cellLock, "cell global lock");
!         cm_allCellsp = NULL;
! 		osi_EndOnce(&once);
      }
  }
  void cm_ChangeRankCellVLServer(cm_server_t *tsp)
  {
! 	cm_cell_t *cp;
! 	int code;
  
! 	cp = tsp->cellp;	/* cell that this vlserver belongs to */
! 	osi_assert(cp);
  
! 	lock_ObtainMutex(&cp->mx);
! 	code = cm_ChangeRankServer(&cp->vlServersp, tsp);
  
! 	if ( !code ) 		/* if the server list was rearranged */
! 	    cm_RandomizeServer(&cp->vlServersp);
  
! 	lock_ReleaseMutex(&cp->mx);
! }
  
--- 25,331 ----
  
  osi_rwlock_t cm_cellLock;
  
  /* function called as callback proc from cm_SearchCellFile.  Return 0 to
   * continue processing.
   */
  long cm_AddCellProc(void *rockp, struct sockaddr_in *addrp, char *namep)
  {
!     cm_server_t *tsp;
!     cm_serverRef_t *tsrp;
      cm_cell_t *cellp;
          
!     cellp = rockp;
  
!     /* if this server was previously created by fs setserverprefs */
!     if ( tsp = cm_FindServer(addrp, CM_SERVER_VLDB))
!     {
!         if ( !tsp->cellp )
!             tsp->cellp = cellp;
!     }       
!     else
          tsp = cm_NewServer(addrp, CM_SERVER_VLDB, cellp);
  
!     /* Insert the vlserver into a sorted list, sorted by server rank */
!     tsrp = cm_NewServerRef(tsp);
!     cm_InsertServerList(&cellp->vlServersp, tsrp);
      /* drop the allocation reference */
      lock_ObtainWrite(&cm_serverLock);
      tsrp->refCount--;
      lock_ReleaseWrite(&cm_serverLock);
!     return 0;
! }
! 
! /* if it's from DNS, see if it has expired 
!  * and check to make sure we have a valid set of volume servers
!  * this function must be called with a Write Lock on cm_cellLock
!  */
! cm_cell_t *cm_UpdateCell(cm_cell_t * cp)
! {
!     long code;
! 
!     if (cp == NULL)
!         return NULL;
! 
!     if ((cp->vlServersp == NULL 
! #ifdef AFS_FREELANCE_CLIENT
!           && !(cp->flags & CM_CELLFLAG_FREELANCE)
! #endif
!           )
! #ifdef AFS_AFSDB_ENV
!         || (cm_dnsEnabled && (cp->flags & CM_CELLFLAG_DNS) &&
!          ((cp->flags & CM_CELLFLAG_VLSERVER_INVALID) || (time(0) > cp->timeout)))
! #endif
!             ) {
!         /* must empty cp->vlServersp */
!         if (cp->vlServersp) {
!             cm_FreeServerList(&cp->vlServersp);
!             cp->vlServersp = NULL;
!         }
! 
!         code = cm_SearchCellFile(cp->name, NULL, cm_AddCellProc, cp);
!         if (code) {
! #ifdef AFS_AFSDB_ENV
!             if (cm_dnsEnabled) {
!                 int ttl;
! 
!                 code = cm_SearchCellByDNS(cp->name, NULL, &ttl, cm_AddCellProc, cp);
!                 if (code == 0) {   /* got cell from DNS */
!                     cp->flags |= CM_CELLFLAG_DNS;
!                     cp->flags &= ~CM_CELLFLAG_VLSERVER_INVALID;
! #ifdef DEBUG
!                     fprintf(stderr, "cell %s: ttl=%d\n", cp->name, ttl);
! #endif
!                 } else {
!                     /* if we fail to find it this time, we'll just do nothing and leave the
!                     * current entry alone 
!                     */
!                     cp->flags |= CM_CELLFLAG_VLSERVER_INVALID;
!                     cp = NULL;      /* return NULL to indicate failure */
!                 }
!             } else 
! #endif /* AFS_AFSDB_ENV */
!             {
!                 cp = NULL;          /* return NULL to indicate failure */
!             }
!         }
!     }
! 
!     return cp;
  }
  
  /* load up a cell structure from the cell database, afsdcell.ini */
  cm_cell_t *cm_GetCell(char *namep, long flags)
  {
!     return cm_GetCell_Gen(namep, NULL, flags);
  }
  
  cm_cell_t *cm_GetCell_Gen(char *namep, char *newnamep, long flags)
  {
!     cm_cell_t *cp;
      long code;
!     char fullname[200]="";
  
!     if (!strcmp(namep,SMB_IOCTL_FILENAME_NOSLASH))
!         return NULL;
! 
!     lock_ObtainWrite(&cm_cellLock);
!     for (cp = cm_data.allCellsp; cp; cp=cp->nextp) {
!         if (strcmp(namep, cp->name) == 0) {
!             strcpy(fullname, cp->name);
!             break;
          }
+     }   
+ 
+     if (cp) {
+         cp = cm_UpdateCell(cp);
+     } else if (flags & CM_FLAG_CREATE) {
+         if ( cm_data.currentCells >= cm_data.maxCells )
+             osi_panic("Exceeded Max Cells", __FILE__, __LINE__);
  
+         /* don't increment currentCells until we know that we 
+          * are going to keep this entry 
+          */
+         cp = &cm_data.cellBaseAddress[cm_data.currentCells];
+         memset(cp, 0, sizeof(cm_cell_t));
+         cp->magic = CM_CELL_MAGIC;
+         
          code = cm_SearchCellFile(namep, fullname, cm_AddCellProc, cp);
!         if (code) {
              osi_Log3(afsd_logp,"in cm_GetCell_gen cm_SearchCellFile(%s) returns code= %d fullname= %s", 
!                       osi_LogSaveString(afsd_logp,namep), code, osi_LogSaveString(afsd_logp,fullname));
  
  #ifdef AFS_AFSDB_ENV
!             if (cm_dnsEnabled) {
!                 int ttl;
! 
                  code = cm_SearchCellByDNS(namep, fullname, &ttl, cm_AddCellProc, cp);
                  if ( code ) {
                      osi_Log3(afsd_logp,"in cm_GetCell_gen cm_SearchCellByDNS(%s) returns code= %d fullname= %s", 
!                              osi_LogSaveString(afsd_logp,namep), code, osi_LogSaveString(afsd_logp,fullname));
!                     cp = NULL;
!                     goto done;
!                 } else {   /* got cell from DNS */
                      cp->flags |= CM_CELLFLAG_DNS;
                      cp->flags &= ~CM_CELLFLAG_VLSERVER_INVALID;
                      cp->timeout = time(0) + ttl;
                  }
!             } else 
  #endif
!             {   
                  cp = NULL;
                  goto done;
              }
!         }
  
!         /* randomise among those vlservers having the same rank*/ 
          cm_RandomizeServer(&cp->vlServersp);
  
          /* otherwise we found the cell, and so we're nearly done */
          lock_InitializeMutex(&cp->mx, "cm_cell_t mutex");
  
!         /* copy in name */
!         strncpy(cp->name, fullname, CELL_MAXNAMELEN);
!         cp->name[CELL_MAXNAMELEN-1] = '\0';
! 
!         /* thread on global list */
!         cp->nextp = cm_data.allCellsp;
!         cm_data.allCellsp = cp;
!            
!         /* the cellID cannot be 0 */
!         cp->cellID = ++cm_data.currentCells;
      }
  
    done:
      /* fullname is not valid if cp == NULL */
!     if (cp && newnamep)
          strcpy(newnamep, fullname);
!     
!     lock_ReleaseWrite(&cm_cellLock);
      return cp;
  }
  
  cm_cell_t *cm_FindCellByID(long cellID)
  {
!     cm_cell_t *cp;
!     int ttl;
      int code;
  
!     lock_ObtainWrite(&cm_cellLock);
!     for (cp = cm_data.allCellsp; cp; cp=cp->nextp) {
!         if (cellID == cp->cellID) 
              break;
      }
  
!     if (cp)
!         cp = cm_UpdateCell(cp);
  
!     lock_ReleaseWrite(&cm_cellLock);	
!     return cp;
! }
! 
! long 
! cm_ValidateCell(void)
! {
!     cm_cell_t * cellp;
!     afs_uint32 count;
! 
!     for (cellp = cm_data.allCellsp, count = 0; cellp; cellp=cellp->nextp, count++) {
!         if ( cellp->magic != CM_CELL_MAGIC ) {
!             afsi_log("cm_ValidateCell failure: cellp->magic != CM_CELL_MAGIC");
!             fprintf(stderr, "cm_ValidateCell failure: cellp->magic != CM_CELL_MAGIC\n");
!             return -1;
          }
!         if ( count != 0 && cellp == cm_data.allCellsp ||
!              count > cm_data.maxCells ) {
!             afsi_log("cm_ValidateCell failure: cm_data.allCellsp infinite loop");
!             fprintf(stderr, "cm_ValidateCell failure: cm_data.allCellsp infinite loop\n");
!             return -2;
!         }
!     }
  
!     if ( count != cm_data.currentCells ) {
!         afsi_log("cm_ValidateCell failure: count != cm_data.currentCells");
!         fprintf(stderr, "cm_ValidateCell failure: count != cm_data.currentCells\n");
!         return -3;
!     }
!     
!     return 0;
  }
  
! 
! long 
! cm_ShutdownCell(void)
  {
!     cm_cell_t * cellp;
! 
!     for (cellp = cm_data.allCellsp; cellp; cellp=cellp->nextp)
!         lock_FinalizeMutex(&cellp->mx);
! 
!     return 0;
! }
! 
! 
! void cm_InitCell(int newFile, long maxCells)
! {
!     static osi_once_t once;
          
      if (osi_Once(&once)) {
!         cm_cell_t * cellp;
! 
!         lock_InitializeRWLock(&cm_cellLock, "cell global lock");
! 
!         if ( newFile ) {
!             cm_data.allCellsp = NULL;
!             cm_data.currentCells = 0;
!             cm_data.maxCells = maxCells;
!         
! #ifdef AFS_FREELANCE_CLIENT
!             /* Generate a dummy entry for the Freelance cell whether or not 
!              * freelance mode is being used in this session 
!              */
! 
!             cellp = &cm_data.cellBaseAddress[cm_data.currentCells++];
!             memset(cellp, 0, sizeof(cm_cell_t));
!             cellp->magic = CM_CELL_MAGIC;
! 
!             lock_InitializeMutex(&cellp->mx, "cm_cell_t mutex");
! 
!             /* copy in name */
!             strncpy(cellp->name, "Freelance.Local.Cell", CELL_MAXNAMELEN); /*safe*/
! 
!             /* thread on global list */
!             cellp->nextp = cm_data.allCellsp;
!             cm_data.allCellsp = cellp;
!                 
!             cellp->cellID = AFS_FAKE_ROOT_CELL_ID;
!             cellp->vlServersp = NULL;
!             cellp->flags = CM_CELLFLAG_FREELANCE;
! #endif  
!         } else {
!             for (cellp = cm_data.allCellsp; cellp; cellp=cellp->nextp) {
!                 lock_InitializeMutex(&cellp->mx, "cm_cell_t mutex");
!                 cellp->vlServersp = NULL;
!             }
!         }
! 
!         osi_EndOnce(&once);
      }
  }
+ 
  void cm_ChangeRankCellVLServer(cm_server_t *tsp)
  {
!     cm_cell_t *cp;
!     int code;
  
!     cp = tsp->cellp;	/* cell that this vlserver belongs to */
!     osi_assert(cp);
  
!     lock_ObtainMutex(&cp->mx);
!     code = cm_ChangeRankServer(&cp->vlServersp, tsp);
  
!     if ( !code ) 		/* if the server list was rearranged */
!         cm_RandomizeServer(&cp->vlServersp);
  
!     lock_ReleaseMutex(&cp->mx);
! }       
  
Index: openafs/src/WINNT/afsd/cm_cell.h
diff -c openafs/src/WINNT/afsd/cm_cell.h:1.6 openafs/src/WINNT/afsd/cm_cell.h:1.6.2.1
*** openafs/src/WINNT/afsd/cm_cell.h:1.6	Sat Jul 31 20:16:37 2004
--- openafs/src/WINNT/afsd/cm_cell.h	Fri Mar 11 01:58:40 2005
***************
*** 12,34 ****
  
  #include "cm_server.h"
  
  /* a cell structure */
! typedef struct cm_cell {
! 	long cellID;			/* cell ID */
! 	struct cm_cell *nextp;		/* locked by cm_cellLock */
!         char *namep;			/* cell name; never changes */
!         cm_serverRef_t *vlServersp;     /* locked by cm_serverLock */
!         osi_mutex_t mx;			/* mutex locking fields (flags) */
!         long flags;			/* locked by mx */
!         long timeout;                   /* if dns, time at which the server addrs expire */
  } cm_cell_t;
  
  /* These are bit flag values */
! #define CM_CELLFLAG_SUID	    1	/* setuid flag; not yet used */
! #define CM_CELLFLAG_DNS         2   /* cell servers are from DNS */
  #define CM_CELLFLAG_VLSERVER_INVALID 4  /* cell servers are invalid */
  
! extern void cm_InitCell(void);
  
  extern cm_cell_t *cm_GetCell(char *namep, long flags);
  
--- 12,44 ----
  
  #include "cm_server.h"
  
+ #define CELL_MAXNAMELEN                 256
+ 
+ #define CM_CELL_MAGIC    ('C' | 'E' <<8 | 'L'<<16 | 'L'<<24)
+ 
  /* a cell structure */
! typedef struct cm_cell {        
!     afs_uint32  magic;
!     long cellID;		        /* cell ID */
!     struct cm_cell *nextp;	        /* locked by cm_cellLock */
!     char name[CELL_MAXNAMELEN];         /* cell name; never changes */
!     cm_serverRef_t *vlServersp;         /* locked by cm_serverLock */
!     osi_mutex_t mx;			/* mutex locking fields (flags) */
!     long flags;			        /* locked by mx */
!     time_t timeout;                     /* if dns, time at which the server addrs expire */
  } cm_cell_t;
  
  /* These are bit flag values */
! #define CM_CELLFLAG_SUID	     1	/* setuid flag; not yet used */
! #define CM_CELLFLAG_DNS              2  /* cell servers are from DNS */
  #define CM_CELLFLAG_VLSERVER_INVALID 4  /* cell servers are invalid */
+ #define CM_CELLFLAG_FREELANCE        8  /* local freelance fake cell */
+ 
+ extern void cm_InitCell(int newFile, long maxCells);
+ 
+ extern long cm_ShutdownCell(void);
  
! extern long cm_ValidateCell(void);
  
  extern cm_cell_t *cm_GetCell(char *namep, long flags);
  
Index: openafs/src/WINNT/afsd/cm_config.c
diff -c openafs/src/WINNT/afsd/cm_config.c:1.20.2.1 openafs/src/WINNT/afsd/cm_config.c:1.20.2.2
*** openafs/src/WINNT/afsd/cm_config.c:1.20.2.1	Tue Dec  7 01:01:41 2004
--- openafs/src/WINNT/afsd/cm_config.c	Fri Mar 11 01:58:40 2005
***************
*** 22,38 ****
  #include <stdio.h>
  #include <string.h>
  
! #include "cm_config.h"
  #include <WINNT\afssw.h>
  #ifdef AFS_AFSDB_ENV
  #include "cm_dns.h"
  #include <afs/afsint.h>
  #endif
  
- char AFSConfigKeyName[] =
- 	"SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters";
- char AFSLocalMachineKeyName[] = "SOFTWARE\\OpenAFS\\Client";
- 
  /* TODO: these should be pulled in from dirpath.h */
  #if !defined(DJGPP) && !defined(AFS_WIN95_ENV)
  #define AFS_THISCELL "ThisCell"
--- 22,35 ----
  #include <stdio.h>
  #include <string.h>
  
! #include "afsd.h"
  #include <WINNT\afssw.h>
+ #include <WINNT\afsreg.h>
  #ifdef AFS_AFSDB_ENV
  #include "cm_dns.h"
  #include <afs/afsint.h>
  #endif
  
  /* TODO: these should be pulled in from dirpath.h */
  #if !defined(DJGPP) && !defined(AFS_WIN95_ENV)
  #define AFS_THISCELL "ThisCell"
***************
*** 99,105 ****
          DWORD LSPtype, LSPsize;
          HKEY NPKey;
  
!         (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_CLIENT_PARMS_KEY,
                               0, KEY_QUERY_VALUE, &NPKey);
          LSPsize=sizeof(TraceOption);
          RegQueryValueEx(NPKey, REG_CLIENT_TRACE_OPTION_PARM, NULL,
--- 96,102 ----
          DWORD LSPtype, LSPsize;
          HKEY NPKey;
  
!         (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY,
                               0, KEY_QUERY_VALUE, &NPKey);
          LSPsize=sizeof(TraceOption);
          RegQueryValueEx(NPKey, REG_CLIENT_TRACE_OPTION_PARM, NULL,
***************
*** 189,197 ****
   * newCellNamep but return an error code.
   */
  long cm_SearchCellFile(char *cellNamep, char *newCellNamep,
! 	cm_configProc_t *procp, void *rockp)
  {
! 	char wdir[257];
      FILE *tfilep = NULL, *bestp, *tempp;
      char *tp;
      char lineBuffer[257];
--- 186,194 ----
   * newCellNamep but return an error code.
   */
  long cm_SearchCellFile(char *cellNamep, char *newCellNamep,
!                        cm_configProc_t *procp, void *rockp)
  {
!     char wdir[257];
      FILE *tfilep = NULL, *bestp, *tempp;
      char *tp;
      char lineBuffer[257];
***************
*** 434,440 ****
  	HKEY parmKey;
      int tlen;
  
! 	code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSLocalMachineKeyName,
  				0, KEY_QUERY_VALUE, &parmKey);
  	if (code != ERROR_SUCCESS)
          goto dirpath;
--- 431,437 ----
  	HKEY parmKey;
      int tlen;
  
! 	code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_OPENAFS_SUBKEY,
  				0, KEY_QUERY_VALUE, &parmKey);
  	if (code != ERROR_SUCCESS)
          goto dirpath;
***************
*** 467,473 ****
  	DWORD code, dummyLen;
  	HKEY parmKey;
  
! 	code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSConfigKeyName,
  				0, KEY_QUERY_VALUE, &parmKey);
  	if (code != ERROR_SUCCESS)
  		return -1;
--- 464,470 ----
  	DWORD code, dummyLen;
  	HKEY parmKey;
  
! 	code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY,
  				0, KEY_QUERY_VALUE, &parmKey);
  	if (code != ERROR_SUCCESS)
  		return -1;
***************
*** 557,563 ****
  	DWORD code, dummyDisp;
  	HKEY parmKey;
  
! 	code = RegCreateKeyEx(HKEY_LOCAL_MACHINE, AFSConfigKeyName,
  				0, "container", 0, KEY_SET_VALUE, NULL,
  				&parmKey, &dummyDisp);
  	if (code != ERROR_SUCCESS)
--- 554,560 ----
  	DWORD code, dummyDisp;
  	HKEY parmKey;
  
! 	code = RegCreateKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY,
  				0, "container", 0, KEY_SET_VALUE, NULL,
  				&parmKey, &dummyDisp);
  	if (code != ERROR_SUCCESS)
***************
*** 579,585 ****
  	DWORD code, dummyDisp;
  	HKEY parmKey;
  
! 	code = RegCreateKeyEx(HKEY_LOCAL_MACHINE, AFSConfigKeyName,
  				0, "container", 0, KEY_SET_VALUE, NULL,
  				&parmKey, &dummyDisp);
  	if (code != ERROR_SUCCESS)
--- 576,582 ----
  	DWORD code, dummyDisp;
  	HKEY parmKey;
  
! 	code = RegCreateKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY,
  				0, "container", 0, KEY_SET_VALUE, NULL,
  				&parmKey, &dummyDisp);
  	if (code != ERROR_SUCCESS)
***************
*** 738,744 ****
  
  void cm_GetConfigDir(char *dir)
  {
!     char wdir[256];
      int tlen;
  #ifdef AFS_WIN95_ENV
      char *afsconf_path;
--- 735,741 ----
  
  void cm_GetConfigDir(char *dir)
  {
! 	char wdir[256];
      int tlen;
  #ifdef AFS_WIN95_ENV
      char *afsconf_path;
Index: openafs/src/WINNT/afsd/cm_config.h
diff -c openafs/src/WINNT/afsd/cm_config.h:1.6.2.1 openafs/src/WINNT/afsd/cm_config.h:1.6.2.2
*** openafs/src/WINNT/afsd/cm_config.h:1.6.2.1	Tue Dec  7 01:01:41 2004
--- openafs/src/WINNT/afsd/cm_config.h	Fri Mar 11 01:58:40 2005
***************
*** 10,18 ****
  #ifndef __CONFIG_H_ENV_
  #define __CONFIG_H_ENV_ 1
  
! #define CM_CONFIGDEFAULT_CACHESIZE	20480
  #define CM_CONFIGDEFAULT_BLOCKSIZE	4096
! #define CM_CONFIGDEFAULT_STATS		1000
  #define CM_CONFIGDEFAULT_CHUNKSIZE	17
  #define CM_CONFIGDEFAULT_DAEMONS	2
  #define CM_CONFIGDEFAULT_SVTHREADS	25
--- 10,18 ----
  #ifndef __CONFIG_H_ENV_
  #define __CONFIG_H_ENV_ 1
  
! #define CM_CONFIGDEFAULT_CACHESIZE	98304
  #define CM_CONFIGDEFAULT_BLOCKSIZE	4096
! #define CM_CONFIGDEFAULT_STATS		10000
  #define CM_CONFIGDEFAULT_CHUNKSIZE	17
  #define CM_CONFIGDEFAULT_DAEMONS	2
  #define CM_CONFIGDEFAULT_SVTHREADS	25
***************
*** 25,32 ****
  #include <netinet/in.h>
  #endif /* DJGPP */
  
- extern char AFSConfigKeyName[];
- 
  typedef FILE cm_configFile_t;
  
  typedef long (cm_configProc_t)(void *rockp, struct sockaddr_in *addrp, char *namep);
--- 25,30 ----
Index: openafs/src/WINNT/afsd/cm_conn.c
diff -c openafs/src/WINNT/afsd/cm_conn.c:1.25.2.5 openafs/src/WINNT/afsd/cm_conn.c:1.25.2.7
*** openafs/src/WINNT/afsd/cm_conn.c:1.25.2.5	Sun Jan 30 23:08:57 2005
--- openafs/src/WINNT/afsd/cm_conn.c	Wed Mar 16 16:37:52 2005
***************
*** 152,158 ****
      int dead_session;
      long timeUsed, timeLeft;
          
!     osi_Log2(afsd_logp, "cm_Analyze connp 0x%x, code %d",
               (long) connp, errorCode);
  
      /* no locking required, since connp->serverp never changes after
--- 152,158 ----
      int dead_session;
      long timeUsed, timeLeft;
          
!     osi_Log2(afsd_logp, "cm_Analyze connp 0x%x, code 0x%x",
               (long) connp, errorCode);
  
      /* no locking required, since connp->serverp never changes after
***************
*** 196,225 ****
      /* leave 5 seconds margin for sleep */
      timeLeft = RDRtimeout - timeUsed;
  
!     if (errorCode == CM_ERROR_TIMEDOUT && timeLeft > 5 ) {
!         thrd_Sleep(3000);
!         cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS, NULL);
!         retry = 1;
      } 
  
      /* if all servers are offline, mark them non-busy and start over */
!     if (errorCode == CM_ERROR_ALLOFFLINE && timeLeft > 7) {
!         osi_Log0(afsd_logp, "cm_Analyze passed CM_ERROR_ALLOFFLINE.");
!         thrd_Sleep(5000);
!         /* cm_ForceUpdateVolume marks all servers as non_busy */
!         /* No it doesn't and it won't do anything if all of the 
!          * the servers are marked as DOWN.  So clear the DOWN
!          * flag and reset the busy state as well.
!          */
!         if (!serversp) {
!             cm_GetServerList(fidp, userp, reqp, &serverspp);
!             serversp = *serverspp;
!             free_svr_list = 1;
          }
!         if (serversp) {
              lock_ObtainWrite(&cm_serverLock);
              for (tsrp = serversp; tsrp; tsrp=tsrp->next) {
-                 tsrp->server->flags &= ~CM_SERVERFLAG_DOWN;
                  if (tsrp->status == busy)
                      tsrp->status = not_busy;
              }
--- 196,255 ----
      /* leave 5 seconds margin for sleep */
      timeLeft = RDRtimeout - timeUsed;
  
!     if (errorCode == CM_ERROR_TIMEDOUT) {
!         if (timeLeft > 5 ) {
!             thrd_Sleep(3000);
!             cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS, NULL);
!             retry = 1;
!         }
      } 
  
      /* if all servers are offline, mark them non-busy and start over */
!     else if (errorCode == CM_ERROR_ALLOFFLINE) {
!         if (timeLeft > 7) {
!             osi_Log0(afsd_logp, "cm_Analyze passed CM_ERROR_ALLOFFLINE.");
!             thrd_Sleep(5000);
!             /* cm_ForceUpdateVolume marks all servers as non_busy */
!             /* No it doesn't and it won't do anything if all of the 
!              * the servers are marked as DOWN.  So clear the DOWN
!              * flag and reset the busy state as well.
!              */
!             if (!serversp) {
!                 cm_GetServerList(fidp, userp, reqp, &serverspp);
!                 serversp = *serverspp;
!                 free_svr_list = 1;
!             }
!             if (serversp) {
!                 lock_ObtainWrite(&cm_serverLock);
!                 for (tsrp = serversp; tsrp; tsrp=tsrp->next) {
!                     tsrp->server->flags &= ~CM_SERVERFLAG_DOWN;
!                     if (tsrp->status == busy)
!                         tsrp->status = not_busy;
!                 }
!                 lock_ReleaseWrite(&cm_serverLock);
!                 if (free_svr_list) {
!                     cm_FreeServerList(&serversp);
!                     *serverspp = serversp;
!                 }
!                 retry = 1;
!             }
! 
!             if (fidp != NULL)   /* Not a VLDB call */
!                 cm_ForceUpdateVolume(fidp, userp, reqp);
          }
!     }
! 
!     /* if all servers are busy, mark them non-busy and start over */
!     else if (errorCode == CM_ERROR_ALLBUSY) {
!         if (timeLeft > 7) {
!             thrd_Sleep(5000);
!             if (!serversp) {
!                 cm_GetServerList(fidp, userp, reqp, &serverspp);
!                 serversp = *serverspp;
!                 free_svr_list = 1;
!             }
              lock_ObtainWrite(&cm_serverLock);
              for (tsrp = serversp; tsrp; tsrp=tsrp->next) {
                  if (tsrp->status == busy)
                      tsrp->status = not_busy;
              }
***************
*** 230,374 ****
              }
              retry = 1;
          }
- 
-         if (fidp != NULL)   /* Not a VLDB call */
-             cm_ForceUpdateVolume(fidp, userp, reqp);
      }
  
! 	/* if all servers are busy, mark them non-busy and start over */
!     if (errorCode == CM_ERROR_ALLBUSY && timeLeft > 7) {
!         thrd_Sleep(5000);
          if (!serversp) {
              cm_GetServerList(fidp, userp, reqp, &serverspp);
              serversp = *serverspp;
              free_svr_list = 1;
          }
! 		lock_ObtainWrite(&cm_serverLock);
! 		for (tsrp = serversp; tsrp; tsrp=tsrp->next) {
! 			if (tsrp->status == busy)
! 				tsrp->status = not_busy;
! 		}
          lock_ReleaseWrite(&cm_serverLock);
          if (free_svr_list) {
              cm_FreeServerList(&serversp);
              *serverspp = serversp;
          }
! 		retry = 1;
! 	}
! 
! 	/* special codes:  VBUSY and VRESTARTING */
! 	if (errorCode == VBUSY || errorCode == VRESTARTING) {
!             if (!serversp) {
!                 cm_GetServerList(fidp, userp, reqp, &serverspp);
!                 serversp = *serverspp;
!                 free_svr_list = 1;
!             }
!             lock_ObtainWrite(&cm_serverLock);
!             for (tsrp = serversp; tsrp; tsrp=tsrp->next) {
!                 if (tsrp->server == serverp
!                      && tsrp->status == not_busy) {
!                     tsrp->status = busy;
!                     break;
!                 }
!             }
!             lock_ReleaseWrite(&cm_serverLock);
!             if (free_svr_list) {
!                 cm_FreeServerList(&serversp);
!                 *serverspp = serversp;
!             }
!             retry = 1;
! 	}
  
! 	/* special codes:  missing volumes */
! 	if (errorCode == VNOVOL || errorCode == VMOVED || errorCode == VOFFLINE
! 	    || errorCode == VSALVAGE || errorCode == VNOSERVICE) 
          {
-             /* Log server being offline for this volume */
-             osi_Log4(afsd_logp, "cm_Analyze found server %d.%d.%d.%d marked offline for a volume",
-                       ((serverp->addr.sin_addr.s_addr & 0xff)),
-                       ((serverp->addr.sin_addr.s_addr & 0xff00)>> 8),
-                       ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16),
-                       ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24));
-             /* Create Event Log message */ 
-             {
-                 HANDLE h;
-                 char *ptbuf[1];
-                 char s[100];
-                 h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-                 sprintf(s, "cm_Analyze: Server %d.%d.%d.%d reported volume %d as missing.",
-                          ((serverp->addr.sin_addr.s_addr & 0xff)),
-                          ((serverp->addr.sin_addr.s_addr & 0xff00)>> 8),
-                          ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16),
-                          ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24),
-                          fidp->volume);
-                 ptbuf[0] = s;
-                 ReportEvent(h, EVENTLOG_WARNING_TYPE, 0, 1009, NULL,
-                              1, 0, ptbuf, NULL);
-                 DeregisterEventSource(h);
-             }
- 
-             /* Mark server offline for this volume */
-             if (!serversp) {
-                 cm_GetServerList(fidp, userp, reqp, &serverspp);
-                 serversp = *serverspp;
-                 free_svr_list = 1;
-             }
-             for (tsrp = serversp; tsrp; tsrp=tsrp->next) {
-                 if (tsrp->server == serverp)
-                     tsrp->status = offline;
-             }
-             if (free_svr_list) {
-                 cm_FreeServerList(&serversp);
-                 *serverspp = serversp;
-             }
-             if ( timeLeft > 2 )
- 		retry = 1;
- 	}
- 
- 	/* RX codes */
- 	if (errorCode == RX_CALL_TIMEOUT) {
-             /* server took longer than hardDeadTime 
-              * don't mark server as down but don't retry
-              * this is to prevent the SMB session from timing out
-              * In addition, we log an event to the event log 
-              */
- #ifndef DJGPP
              HANDLE h;
              char *ptbuf[1];
              char s[100];
              h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
!             sprintf(s, "cm_Analyze: HardDeadTime exceeded.");
              ptbuf[0] = s;
              ReportEvent(h, EVENTLOG_WARNING_TYPE, 0, 1009, NULL,
                           1, 0, ptbuf, NULL);
              DeregisterEventSource(h);
  #endif /* !DJGPP */
  	  
!             retry = 0;
!             osi_Log0(afsd_logp, "cm_Analyze: hardDeadTime exceeded");
! 	}
! 	else if (errorCode >= -64 && errorCode < 0) {
!             /* mark server as down */
!             lock_ObtainMutex(&serverp->mx);
!             serverp->flags |= CM_SERVERFLAG_DOWN;
!             lock_ReleaseMutex(&serverp->mx);
              if ( timeLeft > 2 )
                  retry = 1;
          }
! 
!     if (errorCode == RXKADEXPIRED && !dead_session) {
!         lock_ObtainMutex(&userp->mx);
!         ucellp = cm_GetUCell(userp, serverp->cellp);
!         if (ucellp->ticketp) {
!             free(ucellp->ticketp);
!             ucellp->ticketp = NULL;
!         }
!         ucellp->flags &= ~CM_UCELLFLAG_RXKAD;
!         ucellp->gen++;
!         lock_ReleaseMutex(&userp->mx);
!         if ( timeLeft > 2 )
!             retry = 1;
!     }       
  
      if (retry && dead_session)
          retry = 0;
--- 260,384 ----
              }
              retry = 1;
          }
      }
  
!     /* special codes:  VBUSY and VRESTARTING */
!     else if (errorCode == VBUSY || errorCode == VRESTARTING) {
          if (!serversp) {
              cm_GetServerList(fidp, userp, reqp, &serverspp);
              serversp = *serverspp;
              free_svr_list = 1;
          }
!         lock_ObtainWrite(&cm_serverLock);
!         for (tsrp = serversp; tsrp; tsrp=tsrp->next) {
!             if (tsrp->server == serverp
!                  && tsrp->status == not_busy) {
!                 tsrp->status = busy;
!                 break;
!             }
!         }
          lock_ReleaseWrite(&cm_serverLock);
          if (free_svr_list) {
              cm_FreeServerList(&serversp);
              *serverspp = serversp;
          }
!         retry = 1;
!     }
  
!     /* special codes:  missing volumes */
!     else if (errorCode == VNOVOL || errorCode == VMOVED || errorCode == VOFFLINE
!          || errorCode == VSALVAGE || errorCode == VNOSERVICE) 
!     {       
!         /* Log server being offline for this volume */
!         osi_Log4(afsd_logp, "cm_Analyze found server %d.%d.%d.%d marked offline for a volume",
!                   ((serverp->addr.sin_addr.s_addr & 0xff)),
!                   ((serverp->addr.sin_addr.s_addr & 0xff00)>> 8),
!                   ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16),
!                   ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24));
!         /* Create Event Log message */ 
          {
              HANDLE h;
              char *ptbuf[1];
              char s[100];
              h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
!             sprintf(s, "cm_Analyze: Server %d.%d.%d.%d reported volume %d as missing.",
!                      ((serverp->addr.sin_addr.s_addr & 0xff)),
!                      ((serverp->addr.sin_addr.s_addr & 0xff00)>> 8),
!                      ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16),
!                      ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24),
!                      fidp->volume);
              ptbuf[0] = s;
              ReportEvent(h, EVENTLOG_WARNING_TYPE, 0, 1009, NULL,
                           1, 0, ptbuf, NULL);
              DeregisterEventSource(h);
+         }
+ 
+         /* Mark server offline for this volume */
+         if (!serversp) {
+             cm_GetServerList(fidp, userp, reqp, &serverspp);
+             serversp = *serverspp;
+             free_svr_list = 1;
+         }
+         for (tsrp = serversp; tsrp; tsrp=tsrp->next) {
+             if (tsrp->server == serverp)
+                 tsrp->status = offline;
+         }   
+         if (free_svr_list) {
+             cm_FreeServerList(&serversp);
+             *serverspp = serversp;
+         }
+         if ( timeLeft > 2 )
+             retry = 1;
+     }
+ 
+     /* RX codes */
+     else if (errorCode == RX_CALL_TIMEOUT) {
+         /* server took longer than hardDeadTime 
+          * don't mark server as down but don't retry
+          * this is to prevent the SMB session from timing out
+          * In addition, we log an event to the event log 
+          */
+ #ifndef DJGPP
+         HANDLE h;
+         char *ptbuf[1];
+         char s[100];
+         h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
+         sprintf(s, "cm_Analyze: HardDeadTime exceeded.");
+         ptbuf[0] = s;
+         ReportEvent(h, EVENTLOG_WARNING_TYPE, 0, 1009, NULL,
+                      1, 0, ptbuf, NULL);
+         DeregisterEventSource(h);
  #endif /* !DJGPP */
  	  
!         retry = 0;
!         osi_Log0(afsd_logp, "cm_Analyze: hardDeadTime exceeded");
!     }
!     else if (errorCode >= -64 && errorCode < 0) {
!         /* mark server as down */
!         lock_ObtainMutex(&serverp->mx);
!         serverp->flags |= CM_SERVERFLAG_DOWN;
!         lock_ReleaseMutex(&serverp->mx);
!         if ( timeLeft > 2 )
!             retry = 1;
!     }
!     else if (errorCode == RXKADEXPIRED) {
!         if (!dead_session) {
!             lock_ObtainMutex(&userp->mx);
!             ucellp = cm_GetUCell(userp, serverp->cellp);
!             if (ucellp->ticketp) {
!                 free(ucellp->ticketp);
!                 ucellp->ticketp = NULL;
!             }
!             ucellp->flags &= ~CM_UCELLFLAG_RXKAD;
!             ucellp->gen++;
!             lock_ReleaseMutex(&userp->mx);
              if ( timeLeft > 2 )
                  retry = 1;
          }
!     } else {
!         if (errorCode)
!             osi_Log1(afsd_logp, "cm_Analyze: ignoring error code 0x%x", errorCode);
!     }
  
      if (retry && dead_session)
          retry = 0;
***************
*** 414,428 ****
          cm_GetServerNoLock(tsp);
          lock_ReleaseWrite(&cm_serverLock);
          if (!(tsp->flags & CM_SERVERFLAG_DOWN)) {
!             allDown = 0;
!             if (tsrp->status == busy)
                  someBusy = 1;
!             else if (tsrp->status == offline)
                  someOffline = 1;
!             else {
                  allBusy = 0;
                  code = cm_ConnByServer(tsp, usersp, connpp);
!                 if (code == 0) {
                      cm_PutServer(tsp);
                      /* Set RPC timeout */
                      if (timeLeft > ConnDeadtimeout)
--- 424,439 ----
          cm_GetServerNoLock(tsp);
          lock_ReleaseWrite(&cm_serverLock);
          if (!(tsp->flags & CM_SERVERFLAG_DOWN)) {
!             if (tsrp->status == busy) {
!                 allDown = 0;
                  someBusy = 1;
!             } else if (tsrp->status == offline) {
                  someOffline = 1;
!             } else {
!                 allDown = 0;
                  allBusy = 0;
                  code = cm_ConnByServer(tsp, usersp, connpp);
!                 if (code == 0) {        /* cm_CBS only returns 0 */
                      cm_PutServer(tsp);
                      /* Set RPC timeout */
                      if (timeLeft > ConnDeadtimeout)
***************
*** 437,446 ****
                      lock_ReleaseMutex(&(*connpp)->mx);
                      return 0;
                  }
!                 if (firstError == 0) 
                      firstError = code;
              }
!         } 
          lock_ObtainWrite(&cm_serverLock);
          cm_PutServerNoLock(tsp);
      }   
--- 448,459 ----
                      lock_ReleaseMutex(&(*connpp)->mx);
                      return 0;
                  }
!                 
!                 /* therefore, this code is never executed */
!                 if (firstError == 0)
                      firstError = code;
              }
!         }
          lock_ObtainWrite(&cm_serverLock);
          cm_PutServerNoLock(tsp);
      }   
***************
*** 453,463 ****
              firstError = CM_ERROR_ALLOFFLINE;
          else if (allBusy) 
              firstError = CM_ERROR_ALLBUSY;
!         else
              firstError = CM_ERROR_TIMEDOUT;
      }
  
!     osi_Log1(afsd_logp, "cm_ConnByMServers returning %x", firstError);
      return firstError;
  }
  
--- 466,478 ----
              firstError = CM_ERROR_ALLOFFLINE;
          else if (allBusy) 
              firstError = CM_ERROR_ALLBUSY;
!         else {
!             osi_Log0(afsd_logp, "cm_ConnByMServers returning impossible error TIMEDOUT");
              firstError = CM_ERROR_TIMEDOUT;
+         }
      }
  
!     osi_Log1(afsd_logp, "cm_ConnByMServers returning 0x%x", firstError);
      return firstError;
  }
  
***************
*** 490,502 ****
  }
  
  static void cm_NewRXConnection(cm_conn_t *tcp, cm_ucell_t *ucellp,
! 	cm_server_t *serverp)
  {
      unsigned short port;
      int serviceID;
      int secIndex;
      struct rx_securityClass *secObjp;
-     afs_int32 level;
  
      if (serverp->type == CM_SERVER_VLDB) {
          port = htons(7003);
--- 505,516 ----
  }
  
  static void cm_NewRXConnection(cm_conn_t *tcp, cm_ucell_t *ucellp,
!                                cm_server_t *serverp)
  {
      unsigned short port;
      int serviceID;
      int secIndex;
      struct rx_securityClass *secObjp;
  
      if (serverp->type == CM_SERVER_VLDB) {
          port = htons(7003);
***************
*** 510,526 ****
      if (ucellp->flags & CM_UCELLFLAG_RXKAD) {
          secIndex = 2;
          if (cryptall) {
!             level = tcp->cryptlevel = rxkad_crypt;
          } else {
!             level = tcp->cryptlevel = rxkad_clear;
          }
!         secObjp = rxkad_NewClientSecurityObject(level,
                                                  &ucellp->sessionKey, ucellp->kvno,
                                                  ucellp->ticketLen, ucellp->ticketp);    
!     }
!     else {
          /* normal auth */
          secIndex = 0;
          secObjp = rxnull_NewClientSecurityObject();
      }
      osi_assert(secObjp != NULL);
--- 524,540 ----
      if (ucellp->flags & CM_UCELLFLAG_RXKAD) {
          secIndex = 2;
          if (cryptall) {
!             tcp->cryptlevel = rxkad_crypt;
          } else {
!             tcp->cryptlevel = rxkad_clear;
          }
!         secObjp = rxkad_NewClientSecurityObject(tcp->cryptlevel,
                                                  &ucellp->sessionKey, ucellp->kvno,
                                                  ucellp->ticketLen, ucellp->ticketp);    
!     } else {
          /* normal auth */
          secIndex = 0;
+         tcp->cryptlevel = rxkad_clear;
          secObjp = rxnull_NewClientSecurityObject();
      }
      osi_assert(secObjp != NULL);
***************
*** 567,574 ****
          lock_ReleaseMutex(&tcp->mx);
      } else {
          if ((tcp->ucgen < ucellp->gen) ||
!             (tcp->cryptlevel != (cryptall ? rxkad_crypt : rxkad_clear)))
          {
              lock_ObtainMutex(&tcp->mx);
              rx_DestroyConnection(tcp->callp);
              cm_NewRXConnection(tcp, ucellp, serverp);
--- 581,592 ----
          lock_ReleaseMutex(&tcp->mx);
      } else {
          if ((tcp->ucgen < ucellp->gen) ||
!             (tcp->cryptlevel != (cryptall ? (ucellp->flags & CM_UCELLFLAG_RXKAD ? rxkad_crypt : rxkad_clear) : rxkad_clear)))
          {
+             if (tcp->ucgen < ucellp->gen)
+                 osi_Log0(afsd_logp, "cm_ConnByServer replace connection due to token update");
+             else
+                 osi_Log0(afsd_logp, "cm_ConnByServer replace connection due to crypt change");
              lock_ObtainMutex(&tcp->mx);
              rx_DestroyConnection(tcp->callp);
              cm_NewRXConnection(tcp, ucellp, serverp);
***************
*** 587,605 ****
  }
  
  long cm_Conn(struct cm_fid *fidp, struct cm_user *userp, cm_req_t *reqp,
! 	cm_conn_t **connpp)
  {
! 	long code;
  
! 	cm_serverRef_t **serverspp;
  
! 	code = cm_GetServerList(fidp, userp, reqp, &serverspp);
! 	if (code) {
! 		*connpp = NULL;
! 		return code;
! 	}
  
! 	code = cm_ConnByMServers(*serverspp, userp, reqp, connpp);
      cm_FreeServerList(serverspp);
      return code;
  }
--- 605,623 ----
  }
  
  long cm_Conn(struct cm_fid *fidp, struct cm_user *userp, cm_req_t *reqp,
!              cm_conn_t **connpp)
  {
!     long code;
  
!     cm_serverRef_t **serverspp;
  
!     code = cm_GetServerList(fidp, userp, reqp, &serverspp);
!     if (code) {
!         *connpp = NULL;
!         return code;
!     }
  
!     code = cm_ConnByMServers(*serverspp, userp, reqp, connpp);
      cm_FreeServerList(serverspp);
      return code;
  }
Index: openafs/src/WINNT/afsd/cm_daemon.c
diff -c openafs/src/WINNT/afsd/cm_daemon.c:1.4.2.1 openafs/src/WINNT/afsd/cm_daemon.c:1.4.2.2
*** openafs/src/WINNT/afsd/cm_daemon.c:1.4.2.1	Tue Aug 17 00:28:39 2004
--- openafs/src/WINNT/afsd/cm_daemon.c	Fri Mar 11 01:58:41 2005
***************
*** 36,74 ****
  cm_bkgRequest_t *cm_bkgListp;		/* first elt in the list of requests */
  cm_bkgRequest_t *cm_bkgListEndp;	/* last elt in the list of requests */
  
  void cm_BkgDaemon(long parm)
  {
! 	cm_bkgRequest_t *rp;
  
! 	lock_ObtainWrite(&cm_daemonLock);
! 	while(1) {
! 		if (!cm_bkgListEndp) {
! 			osi_SleepW((long) &cm_bkgListp, &cm_daemonLock);
!                         lock_ObtainWrite(&cm_daemonLock);
!                         continue;
!                 }
!                 
!                 /* we found a request */
! 		rp = cm_bkgListEndp;
!                 cm_bkgListEndp = (cm_bkgRequest_t *) osi_QPrev(&rp->q);
!                 osi_QRemove((osi_queue_t **) &cm_bkgListp, &rp->q);
!                 osi_assert(cm_bkgQueueCount-- > 0);
!                 lock_ReleaseWrite(&cm_daemonLock);
!                 
!                 (*rp->procp)(rp->scp, rp->p1, rp->p2, rp->p3, rp->p4, rp->userp);
                  
!                 cm_ReleaseUser(rp->userp);
!                 cm_ReleaseSCache(rp->scp);
!                 free(rp);
  
!                 lock_ObtainWrite(&cm_daemonLock);
!         }
  }
  
  void cm_QueueBKGRequest(cm_scache_t *scp, cm_bkgProc_t *procp, long p1, long p2, long p3, long p4,
  	cm_user_t *userp)
  {
! 	cm_bkgRequest_t *rp;
          
      rp = malloc(sizeof(*rp));
      memset(rp, 0, sizeof(*rp));
--- 36,77 ----
  cm_bkgRequest_t *cm_bkgListp;		/* first elt in the list of requests */
  cm_bkgRequest_t *cm_bkgListEndp;	/* last elt in the list of requests */
  
+ static int daemon_ShutdownFlag = 0;
+ 
  void cm_BkgDaemon(long parm)
  {
!     cm_bkgRequest_t *rp;
  
!     lock_ObtainWrite(&cm_daemonLock);
!     while (daemon_ShutdownFlag == 0) {
!         if (!cm_bkgListEndp) {
!             osi_SleepW((long) &cm_bkgListp, &cm_daemonLock);
!             lock_ObtainWrite(&cm_daemonLock);
!             continue;
!         }
                  
!         /* we found a request */
!         rp = cm_bkgListEndp;
!         cm_bkgListEndp = (cm_bkgRequest_t *) osi_QPrev(&rp->q);
!         osi_QRemove((osi_queue_t **) &cm_bkgListp, &rp->q);
!         osi_assert(cm_bkgQueueCount-- > 0);
!         lock_ReleaseWrite(&cm_daemonLock);
! 
!         (*rp->procp)(rp->scp, rp->p1, rp->p2, rp->p3, rp->p4, rp->userp);
!                 
!         cm_ReleaseUser(rp->userp);
!         cm_ReleaseSCache(rp->scp);
!         free(rp);
  
!         lock_ObtainWrite(&cm_daemonLock);
!     }
!     lock_ReleaseWrite(&cm_daemonLock);
  }
  
  void cm_QueueBKGRequest(cm_scache_t *scp, cm_bkgProc_t *procp, long p1, long p2, long p3, long p4,
  	cm_user_t *userp)
  {
!     cm_bkgRequest_t *rp;
          
      rp = malloc(sizeof(*rp));
      memset(rp, 0, sizeof(*rp));
***************
*** 84,92 ****
      rp->p4 = p4;
  
      lock_ObtainWrite(&cm_daemonLock);
! 	cm_bkgQueueCount++;
      osi_QAdd((osi_queue_t **) &cm_bkgListp, &rp->q);
!     if (!cm_bkgListEndp) cm_bkgListEndp = rp;
      lock_ReleaseWrite(&cm_daemonLock);
  
      osi_Wakeup((long) &cm_bkgListp);
--- 87,96 ----
      rp->p4 = p4;
  
      lock_ObtainWrite(&cm_daemonLock);
!     cm_bkgQueueCount++;
      osi_QAdd((osi_queue_t **) &cm_bkgListp, &rp->q);
!     if (!cm_bkgListEndp) 
!         cm_bkgListEndp = rp;
      lock_ReleaseWrite(&cm_daemonLock);
  
      osi_Wakeup((long) &cm_bkgListp);
***************
*** 96,201 ****
  void cm_Daemon(long parm)
  {
      unsigned long now;
! 	unsigned long lastLockCheck;
      unsigned long lastVolCheck;
      unsigned long lastCBExpirationCheck;
! 	unsigned long lastDownServerCheck;
! 	unsigned long lastUpServerCheck;
! 	unsigned long lastTokenCacheCheck;
! 	char thostName[200];
! 	unsigned long code;
! 	struct hostent *thp;
! 
! 	/* ping all file servers, up or down, with unauthenticated connection,
!          * to find out whether we have all our callbacks from the server still.
!          * Also, ping down VLDBs.
!          */
! 	/*
! 	 * Seed the random number generator with our own address, so that
! 	 * clients starting at the same time don't all do vol checks at the
! 	 * same time.
! 	 */
! 	gethostname(thostName, sizeof(thostName));
! 	thp = gethostbyname(thostName);
!         if (thp == NULL)    /* In djgpp, gethostname returns the netbios
!                                name of the machine.  gethostbyname will fail
!                                looking this up if it differs from DNS name. */
!           code = 0;
!         else
!           memcpy(&code, thp->h_addr_list[0], 4);
! 	srand(ntohl(code));
! 
! 	now = osi_Time();
! 	lastVolCheck = now - 1800 + (rand() % 3600);
!         lastCBExpirationCheck = now - 60 + (rand() % 60);
! 	lastLockCheck = now - 60 + (rand() % 60);
! 	lastDownServerCheck = now - cm_daemonCheckInterval/2 + (rand() % cm_daemonCheckInterval);
! 	lastUpServerCheck = now - 1800 + (rand() % 3600);
! 	lastTokenCacheCheck = now - cm_daemonTokenCheckInterval/2 + (rand() % cm_daemonTokenCheckInterval);
! 	
!         while (1) {
! 		thrd_Sleep(30 * 1000);		/* sleep 30 seconds */
!                 
! 		/* find out what time it is */
! 		now = osi_Time();
  
! 		/* check down servers */
! 		if (now > lastDownServerCheck + cm_daemonCheckInterval) {
! 			lastDownServerCheck = now;
! 			cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS, NULL);
! 		}
! 
! 		/* check up servers */
! 		if (now > lastUpServerCheck + 3600) {
! 			lastUpServerCheck = now;
! 			cm_CheckServers(CM_FLAG_CHECKUPSERVERS, NULL);
! 		}
! 
!                 if (now > lastVolCheck + 3600) {
! 			lastVolCheck = now;
!                         cm_CheckVolumes();
!                 }
!                 
!                 if (now > lastCBExpirationCheck + 60) {
! 			lastCBExpirationCheck = now;
!                         cm_CheckCBExpiration();
!                 }
!                 
!                 if (now > lastLockCheck + 60) {
! 			lastLockCheck = now;
!                         cm_CheckLocks();
!                 }
! 
! 		if (now > lastTokenCacheCheck + cm_daemonTokenCheckInterval) {
! 		        lastTokenCacheCheck = now;
! 			cm_CheckTokenCache(now);
! 		}
          }
  }
  
  void cm_InitDaemon(int nDaemons)
  {
! 	static osi_once_t once;
!         long pid;
!         thread_t phandle;
!         int i;
          
!         if (osi_Once(&once)) {
! 		lock_InitializeRWLock(&cm_daemonLock, "cm_daemonLock");
! 		osi_EndOnce(&once);
!                 
!                 /* creating pinging daemon */
! 		phandle = thrd_Create((SecurityAttrib) 0, 0,
! 	                (ThreadFunc) cm_Daemon, 0, 0, &pid, "cm_Daemon");
! 		osi_assert(phandle != NULL);
! 
! 		thrd_CloseHandle(phandle);
! 		for(i=0; i < nDaemons; i++) {
! 			phandle = thrd_Create((SecurityAttrib) 0, 0,
! 		                (ThreadFunc) cm_BkgDaemon, 0, 0, &pid,
!                                               "cm_BkgDaemon");
! 			osi_assert(phandle != NULL);
! 			thrd_CloseHandle(phandle);
! 		}
          }
  }
--- 100,212 ----
  void cm_Daemon(long parm)
  {
      unsigned long now;
!     unsigned long lastLockCheck;
      unsigned long lastVolCheck;
      unsigned long lastCBExpirationCheck;
!     unsigned long lastDownServerCheck;
!     unsigned long lastUpServerCheck;
!     unsigned long lastTokenCacheCheck;
!     char thostName[200];
!     unsigned long code;
!     struct hostent *thp;
! 
!     /* ping all file servers, up or down, with unauthenticated connection,
!      * to find out whether we have all our callbacks from the server still.
!      * Also, ping down VLDBs.
!      */
!     /*
!      * Seed the random number generator with our own address, so that
!      * clients starting at the same time don't all do vol checks at the
!      * same time.
!      */
!     gethostname(thostName, sizeof(thostName));
!     thp = gethostbyname(thostName);
!     if (thp == NULL)    /* In djgpp, gethostname returns the netbios
!                            name of the machine.  gethostbyname will fail
!                            looking this up if it differs from DNS name. */
!         code = 0;
!     else
!         memcpy(&code, thp->h_addr_list[0], 4);
!     srand(ntohl(code));
! 
!     now = osi_Time();
!     lastVolCheck = now - 1800 + (rand() % 3600);
!     lastCBExpirationCheck = now - 60 + (rand() % 60);
!     lastLockCheck = now - 60 + (rand() % 60);
!     lastDownServerCheck = now - cm_daemonCheckInterval/2 + (rand() % cm_daemonCheckInterval);
!     lastUpServerCheck = now - 1800 + (rand() % 3600);
!     lastTokenCacheCheck = now - cm_daemonTokenCheckInterval/2 + (rand() % cm_daemonTokenCheckInterval);
! 
!     while (daemon_ShutdownFlag == 0) {
!         thrd_Sleep(30 * 1000);		/* sleep 30 seconds */
!         if (daemon_ShutdownFlag == 1)
!             return;
! 
!         /* find out what time it is */
!         now = osi_Time();
! 
!         /* check down servers */
!         if (now > lastDownServerCheck + cm_daemonCheckInterval) {
!             lastDownServerCheck = now;
!             cm_CheckServers(CM_FLAG_CHECKDOWNSERVERS, NULL);
!         }
  
!         /* check up servers */
!         if (now > lastUpServerCheck + 3600) {
!             lastUpServerCheck = now;
!             cm_CheckServers(CM_FLAG_CHECKUPSERVERS, NULL);
          }
+ 
+         if (now > lastVolCheck + 3600) {
+             lastVolCheck = now;
+             cm_CheckVolumes();
+         }
+ 
+         if (now > lastCBExpirationCheck + 60) {
+             lastCBExpirationCheck = now;
+             cm_CheckCBExpiration();
+         }
+ 
+         if (now > lastLockCheck + 60) {
+             lastLockCheck = now;
+             cm_CheckLocks();
+         }
+ 
+         if (now > lastTokenCacheCheck + cm_daemonTokenCheckInterval) {
+             lastTokenCacheCheck = now;
+             cm_CheckTokenCache(now);
+         }
+     }
+ }       
+ 
+ void cm_DaemonShutdown(void)
+ {
+     daemon_ShutdownFlag = 1;
  }
  
  void cm_InitDaemon(int nDaemons)
  {
!     static osi_once_t once;
!     long pid;
!     thread_t phandle;
!     int i;
          
!     if (osi_Once(&once)) {
!         lock_InitializeRWLock(&cm_daemonLock, "cm_daemonLock");
!         osi_EndOnce(&once);
!                 
!         /* creating pinging daemon */
!         phandle = thrd_Create((SecurityAttrib) 0, 0,
!                                (ThreadFunc) cm_Daemon, 0, 0, &pid, "cm_Daemon");
!         osi_assert(phandle != NULL);
! 
!         thrd_CloseHandle(phandle);
!         for(i=0; i < nDaemons; i++) {
!             phandle = thrd_Create((SecurityAttrib) 0, 0,
!                                    (ThreadFunc) cm_BkgDaemon, 0, 0, &pid,
!                                    "cm_BkgDaemon");
!             osi_assert(phandle != NULL);
!             thrd_CloseHandle(phandle);
          }
+     }
  }
Index: openafs/src/WINNT/afsd/cm_daemon.h
diff -c openafs/src/WINNT/afsd/cm_daemon.h:1.2 openafs/src/WINNT/afsd/cm_daemon.h:1.2.20.1
*** openafs/src/WINNT/afsd/cm_daemon.h:1.2	Sat Nov  4 05:01:38 2000
--- openafs/src/WINNT/afsd/cm_daemon.h	Fri Mar 11 01:58:41 2005
***************
*** 15,20 ****
--- 15,22 ----
  
  extern osi_rwlock_t cm_daemonLock;
  
+ void cm_DaemonShutdown(void);
+ 
  void cm_InitDaemon(int nDaemons);
  
  typedef void (cm_bkgProc_t)(cm_scache_t *scp, long p1, long p2, long p3,
Index: openafs/src/WINNT/afsd/cm_dcache.c
diff -c openafs/src/WINNT/afsd/cm_dcache.c:1.11.2.5 openafs/src/WINNT/afsd/cm_dcache.c:1.11.2.6
*** openafs/src/WINNT/afsd/cm_dcache.c:1.11.2.5	Sun Jan 30 23:09:28 2005
--- openafs/src/WINNT/afsd/cm_dcache.c	Fri Mar 11 01:58:41 2005
***************
*** 151,158 ****
                  bufp = osi_GetQData(qdp);
                  bufferp = bufp->datap;
                  wbytes = nbytes;
!                 if (wbytes > buf_bufferSize) 
!                     wbytes = buf_bufferSize;
  
                  /* write out wbytes of data from bufferp */
                  temp = rx_Write(callp, bufferp, wbytes);
--- 151,158 ----
                  bufp = osi_GetQData(qdp);
                  bufferp = bufp->datap;
                  wbytes = nbytes;
!                 if (wbytes > cm_data.buf_blockSize) 
!                     wbytes = cm_data.buf_blockSize;
  
                  /* write out wbytes of data from bufferp */
                  temp = rx_Write(callp, bufferp, wbytes);
***************
*** 296,302 ****
  
  long cm_BufRead(cm_buf_t *bufp, long nbytes, long *bytesReadp, cm_user_t *userp)
  {
!     *bytesReadp = buf_bufferSize;
  
      /* now return a code that means that I/O is done */
      return 0;
--- 296,302 ----
  
  long cm_BufRead(cm_buf_t *bufp, long nbytes, long *bytesReadp, cm_user_t *userp)
  {
!     *bytesReadp = cm_data.buf_blockSize;
  
      /* now return a code that means that I/O is done */
      return 0;
***************
*** 343,354 ****
      cm_BufUnstabilize
  };
  
! int cm_InitDCache(long chunkSize, long nbuffers)
  {
      lock_InitializeMutex(&cm_bufGetMutex, "buf_Get mutex");
!     if (nbuffers) 
!         buf_nbuffers = nbuffers;
!     return buf_Init(&cm_bufOps);
  }
  
  /* check to see if we have an up-to-date buffer.  The buffer must have
--- 343,362 ----
      cm_BufUnstabilize
  };
  
! long cm_ValidateDCache(void)
! {
!     return buf_ValidateBuffers();
! }
! 
! long cm_ShutdownDCache(void)
! {
!     return 0;
! }
! 
! int cm_InitDCache(int newFile, long chunkSize, long nbuffers)
  {
      lock_InitializeMutex(&cm_bufGetMutex, "buf_Get mutex");
!     return buf_Init(newFile, &cm_bufOps, nbuffers);
  }
  
  /* check to see if we have an up-to-date buffer.  The buffer must have
***************
*** 444,453 ****
          if (stop) 
              break;
                  
!         toffset.LowPart = buf_bufferSize;
          toffset.HighPart = 0;
          tbase = LargeIntegerAdd(toffset, tbase);
!         length -= buf_bufferSize;
      }
          
      /* if we get here, either everything is fine or stop stopped us at a
--- 452,461 ----
          if (stop) 
              break;
                  
!         toffset.LowPart = cm_data.buf_blockSize;
          toffset.HighPart = 0;
          tbase = LargeIntegerAdd(toffset, tbase);
!         length -= cm_data.buf_blockSize;
      }
          
      /* if we get here, either everything is fine or stop stopped us at a
***************
*** 623,633 ****
  
      /* reserve a chunk's worth of buffers */
      lock_ReleaseMutex(&scp->mx);
!     buf_ReserveBuffers(cm_chunkSize / buf_bufferSize);
      lock_ObtainMutex(&scp->mx);
  
      bufp = NULL;
!     for (temp = 0; temp < inSize; temp += buf_bufferSize, bufp = NULL) {
          thyper.HighPart = 0;
          thyper.LowPart = temp;
          tbase = LargeIntegerAdd(*inOffsetp, thyper);
--- 631,641 ----
  
      /* reserve a chunk's worth of buffers */
      lock_ReleaseMutex(&scp->mx);
!     buf_ReserveBuffers(cm_chunkSize / cm_data.buf_blockSize);
      lock_ObtainMutex(&scp->mx);
  
      bufp = NULL;
!     for (temp = 0; temp < inSize; temp += cm_data.buf_blockSize, bufp = NULL) {
          thyper.HighPart = 0;
          thyper.LowPart = temp;
          tbase = LargeIntegerAdd(*inOffsetp, thyper);
***************
*** 647,653 ****
              if (code) {
                  lock_ReleaseMutex(&bufp->mx);
                  buf_Release(bufp);
!                 buf_UnreserveBuffers(cm_chunkSize / buf_bufferSize);
                  return code;
              }   
                          
--- 655,661 ----
              if (code) {
                  lock_ReleaseMutex(&bufp->mx);
                  buf_Release(bufp);
!                 buf_UnreserveBuffers(cm_chunkSize / cm_data.buf_blockSize);
                  return code;
              }   
                          
***************
*** 685,691 ****
      osi_QAddH((osi_queue_t **) &biop->bufListp,
                (osi_queue_t **) &biop->bufListEndp,
                &qdp->q);
!     biop->length = buf_bufferSize;
      firstModOffset = bufp->offset;
      biop->offset = firstModOffset;
  
--- 693,699 ----
      osi_QAddH((osi_queue_t **) &biop->bufListp,
                (osi_queue_t **) &biop->bufListEndp,
                &qdp->q);
!     biop->length = cm_data.buf_blockSize;
      firstModOffset = bufp->offset;
      biop->offset = firstModOffset;
  
***************
*** 703,710 ****
          | CM_SCACHESYNC_NOWAIT;
  
      /* start by looking backwards until scanStart */
!     thyper.HighPart = 0;		/* hyper version of buf_bufferSize */
!     thyper.LowPart = buf_bufferSize;
      tbase = LargeIntegerSubtract(firstModOffset, thyper);
      while(LargeIntegerGreaterThanOrEqualTo(tbase, scanStart)) {
          /* see if we can find the buffer */
--- 711,718 ----
          | CM_SCACHESYNC_NOWAIT;
  
      /* start by looking backwards until scanStart */
!     thyper.HighPart = 0;		/* hyper version of cm_data.buf_blockSize */
!     thyper.LowPart = cm_data.buf_blockSize;
      tbase = LargeIntegerSubtract(firstModOffset, thyper);
      while(LargeIntegerGreaterThanOrEqualTo(tbase, scanStart)) {
          /* see if we can find the buffer */
***************
*** 750,764 ****
  
          /* update biod info describing the transfer */
          biop->offset = LargeIntegerSubtract(biop->offset, thyper);
!         biop->length += buf_bufferSize;
  
          /* update loop pointer */
          tbase = LargeIntegerSubtract(tbase, thyper);
      }	/* while loop looking for pages preceding the one we found */
  
      /* now, find later dirty, contiguous pages, and add them to the list */
!     thyper.HighPart = 0;		/* hyper version of buf_bufferSize */
!     thyper.LowPart = buf_bufferSize;
      tbase = LargeIntegerAdd(firstModOffset, thyper);
      while(LargeIntegerLessThan(tbase, scanEnd)) {
          /* see if we can find the buffer */
--- 758,772 ----
  
          /* update biod info describing the transfer */
          biop->offset = LargeIntegerSubtract(biop->offset, thyper);
!         biop->length += cm_data.buf_blockSize;
  
          /* update loop pointer */
          tbase = LargeIntegerSubtract(tbase, thyper);
      }	/* while loop looking for pages preceding the one we found */
  
      /* now, find later dirty, contiguous pages, and add them to the list */
!     thyper.HighPart = 0;		/* hyper version of cm_data.buf_blockSize */
!     thyper.LowPart = cm_data.buf_blockSize;
      tbase = LargeIntegerAdd(firstModOffset, thyper);
      while(LargeIntegerLessThan(tbase, scanEnd)) {
          /* see if we can find the buffer */
***************
*** 803,809 ****
                    &qdp->q);
  
          /* update biod info describing the transfer */
!         biop->length += buf_bufferSize;
                  
          /* update loop pointer */
          tbase = LargeIntegerAdd(tbase, thyper);
--- 811,817 ----
                    &qdp->q);
  
          /* update biod info describing the transfer */
!         biop->length += cm_data.buf_blockSize;
                  
          /* update loop pointer */
          tbase = LargeIntegerAdd(tbase, thyper);
***************
*** 898,910 ****
          lock_ReleaseMutex(&cm_bufGetMutex);
  
          toffset.HighPart = 0;
!         toffset.LowPart = buf_bufferSize;
          pageBase = LargeIntegerAdd(toffset, pageBase);
!         collected += buf_bufferSize;
      }
  
      /* reserve a chunk's worth of buffers if possible */
!     reserving = buf_TryReserveBuffers(cm_chunkSize / buf_bufferSize);
  
      pageBase = *offsetp;
      collected = pageBase.LowPart & (cm_chunkSize - 1);
--- 906,918 ----
          lock_ReleaseMutex(&cm_bufGetMutex);
  
          toffset.HighPart = 0;
!         toffset.LowPart = cm_data.buf_blockSize;
          pageBase = LargeIntegerAdd(toffset, pageBase);
!         collected += cm_data.buf_blockSize;
      }
  
      /* reserve a chunk's worth of buffers if possible */
!     reserving = buf_TryReserveBuffers(cm_chunkSize / cm_data.buf_blockSize);
  
      pageBase = *offsetp;
      collected = pageBase.LowPart & (cm_chunkSize - 1);
***************
*** 933,941 ****
          if (!reserving) 
              break;
  
!         collected += buf_bufferSize;
          toffset.HighPart = 0;
!         toffset.LowPart = buf_bufferSize;
          pageBase = LargeIntegerAdd(toffset, pageBase);
      }
  
--- 941,949 ----
          if (!reserving) 
              break;
  
!         collected += cm_data.buf_blockSize;
          toffset.HighPart = 0;
!         toffset.LowPart = cm_data.buf_blockSize;
          pageBase = LargeIntegerAdd(toffset, pageBase);
      }
  
***************
*** 1004,1010 ****
           * we still do the I/O to whatever we've already managed to collect.
           */
          isFirst = 0;
!         collected += buf_bufferSize;
      }
          
      /* now, we've held in biop->bufListp all the buffer's we're really
--- 1012,1018 ----
           * we still do the I/O to whatever we've already managed to collect.
           */
          isFirst = 0;
!         collected += cm_data.buf_blockSize;
      }
          
      /* now, we've held in biop->bufListp all the buffer's we're really
***************
*** 1026,1032 ****
       * caller requires to make any progress.  Give up now.
       */
      if (code && isFirst) {
!         buf_UnreserveBuffers(cm_chunkSize / buf_bufferSize);
          return code;
      }
          
--- 1034,1040 ----
       * caller requires to make any progress.  Give up now.
       */
      if (code && isFirst) {
!         buf_UnreserveBuffers(cm_chunkSize / cm_data.buf_blockSize);
          return code;
      }
          
***************
*** 1051,1057 ****
  
      /* Give back reserved buffers */
      if (biop->reserved)
!         buf_UnreserveBuffers(cm_chunkSize / buf_bufferSize);
          
      flags = CM_SCACHESYNC_NEEDCALLBACK;
      if (isStore)
--- 1059,1065 ----
  
      /* Give back reserved buffers */
      if (biop->reserved)
!         buf_UnreserveBuffers(cm_chunkSize / cm_data.buf_blockSize);
          
      flags = CM_SCACHESYNC_NEEDCALLBACK;
      if (isStore)
***************
*** 1125,1133 ****
      // handle it differently, since it's local rather than on any
      // server
  
!     getroot = (scp==cm_rootSCachep);
      if (getroot)
!         osi_Log1(afsd_logp,"GetBuffer returns cm_rootSCachep=%x",cm_rootSCachep);
  #endif
  
      cm_AFSFidFromFid(&tfid, &scp->fid);
--- 1133,1141 ----
      // handle it differently, since it's local rather than on any
      // server
  
!     getroot = (scp==cm_data.rootSCachep);
      if (getroot)
!         osi_Log1(afsd_logp,"GetBuffer returns cm_data.rootSCachep=%x",cm_data.rootSCachep);
  #endif
  
      cm_AFSFidFromFid(&tfid, &scp->fid);
***************
*** 1154,1160 ****
               && LargeIntegerGreaterThanOrEqualTo(bufp->offset,
                                                   scp->serverLength)) {
              if (bufp->dataVersion == -1)
!                 memset(bufp->datap, 0, buf_bufferSize);
              bufp->dataVersion = scp->dataVersion;
          }
          lock_ReleaseMutex(&scp->mx);
--- 1162,1168 ----
               && LargeIntegerGreaterThanOrEqualTo(bufp->offset,
                                                   scp->serverLength)) {
              if (bufp->dataVersion == -1)
!                 memset(bufp->datap, 0, cm_data.buf_blockSize);
              bufp->dataVersion = scp->dataVersion;
          }
          lock_ReleaseMutex(&scp->mx);
***************
*** 1182,1188 ****
          afsStatus.FileType = 0x2;
          afsStatus.LinkCount = scp->linkCount;
          afsStatus.Length = cm_fakeDirSize;
!         afsStatus.DataVersion = cm_fakeDirVersion;
          afsStatus.Author = 0x1;
          afsStatus.Owner = 0x0;
          afsStatus.CallerAccess = 0x9;
--- 1190,1196 ----
          afsStatus.FileType = 0x2;
          afsStatus.LinkCount = scp->linkCount;
          afsStatus.Length = cm_fakeDirSize;
!         afsStatus.DataVersion = cm_data.fakeDirVersion;
          afsStatus.Author = 0x1;
          afsStatus.Owner = 0x0;
          afsStatus.CallerAccess = 0x9;
***************
*** 1196,1201 ****
--- 1204,1212 ----
          afsStatus.Group = 0;
          afsStatus.SyncCounter = 0;
          afsStatus.dataVersionHigh = 0;
+         afsStatus.lockCount = 0;
+         afsStatus.Length_hi = 0;
+         afsStatus.errorCode = 0;
  	
          // once we're done setting up the status info,
          // we just fill the buffer pages with fakedata
***************
*** 1208,1216 ****
          while (qdp) {
              tbufp = osi_GetQData(qdp);
              bufferp=tbufp->datap;
!             memset(bufferp, 0, buf_bufferSize);
              t2 = cm_fakeDirSize - t1;
!             if (t2>buf_bufferSize) t2=buf_bufferSize;
              if (t2 > 0) {
                  memcpy(bufferp, cm_FakeRootDir+t1, t2);
              } else {
--- 1219,1227 ----
          while (qdp) {
              tbufp = osi_GetQData(qdp);
              bufferp=tbufp->datap;
!             memset(bufferp, 0, cm_data.buf_blockSize);
              t2 = cm_fakeDirSize - t1;
!             if (t2>cm_data.buf_blockSize) t2=cm_data.buf_blockSize;
              if (t2 > 0) {
                  memcpy(bufferp, cm_FakeRootDir+t1, t2);
              } else {
***************
*** 1280,1286 ****
                  osi_assert(bufferp != NULL);
  
                  /* read rbytes of data */
!                 rbytes = (nbytes > buf_bufferSize? buf_bufferSize : nbytes);
                  temp = rx_Read(callp, bufferp, rbytes);
                  if (temp < rbytes) {
                      code = (callp->error < 0) ? callp->error : -1;
--- 1291,1297 ----
                  osi_assert(bufferp != NULL);
  
                  /* read rbytes of data */
!                 rbytes = (nbytes > cm_data.buf_blockSize? cm_data.buf_blockSize : nbytes);
                  temp = rx_Read(callp, bufferp, rbytes);
                  if (temp < rbytes) {
                      code = (callp->error < 0) ? callp->error : -1;
***************
*** 1329,1335 ****
              /* bytes fetched */
              rbytes = bufferp - tbufp->datap;
              /* bytes left to zero */
!             rbytes = buf_bufferSize - rbytes;
              while(qdp) {
                  if (rbytes != 0)
                      memset(bufferp, 0, rbytes);
--- 1340,1346 ----
              /* bytes fetched */
              rbytes = bufferp - tbufp->datap;
              /* bytes left to zero */
!             rbytes = cm_data.buf_blockSize - rbytes;
              while(qdp) {
                  if (rbytes != 0)
                      memset(bufferp, 0, rbytes);
***************
*** 1339,1345 ****
                  tbufp = osi_GetQData(qdp);
                  bufferp = tbufp->datap;
                  /* bytes to clear in this page */
!                 rbytes = buf_bufferSize;
              }   
          }
  
--- 1350,1356 ----
                  tbufp = osi_GetQData(qdp);
                  bufferp = tbufp->datap;
                  /* bytes to clear in this page */
!                 rbytes = cm_data.buf_blockSize;
              }   
          }
  
***************
*** 1372,1378 ****
  
  #ifdef DISKCACHE95
              /* write buffer out to disk cache */
!             diskcache_Update(tbufp->dcp, tbufp->datap, buf_bufferSize,
                                tbufp->dataVersion);
  #endif /* DISKCACHE95 */
          }
--- 1383,1389 ----
  
  #ifdef DISKCACHE95
              /* write buffer out to disk cache */
!             diskcache_Update(tbufp->dcp, tbufp->datap, cm_data.buf_blockSize,
                                tbufp->dataVersion);
  #endif /* DISKCACHE95 */
          }
Index: openafs/src/WINNT/afsd/cm_dcache.h
diff -c openafs/src/WINNT/afsd/cm_dcache.h:1.2 openafs/src/WINNT/afsd/cm_dcache.h:1.2.20.1
*** openafs/src/WINNT/afsd/cm_dcache.h:1.2	Sat Nov  4 05:01:38 2000
--- openafs/src/WINNT/afsd/cm_dcache.h	Fri Mar 11 01:58:41 2005
***************
*** 12,30 ****
  
  /* bulk I/O descriptor */
  typedef struct cm_bulkIO {
! 	struct cm_scache *scp;		/* typically unheld vnode ptr */
!         osi_hyper_t offset;		/* offset of buffers */
!         long length;			/* # of bytes to be transferred */
! 	int reserved;			/* did we reserve multiple buffers? */
          
!         /* all of these buffers are held */
!         osi_queueData_t *bufListp;	/* list of buffers involved in I/O */
!         osi_queueData_t *bufListEndp;	/* list of buffers involved in I/O */
  } cm_bulkIO_t;
  
  extern long cm_StoreMini(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
  
! extern int cm_InitDCache(long chunkSize, long nbuffers);
  
  extern int cm_HaveBuffer(struct cm_scache *, struct cm_buf *, int haveBufLocked);
  
--- 12,30 ----
  
  /* bulk I/O descriptor */
  typedef struct cm_bulkIO {
!     struct cm_scache *scp;		/* typically unheld vnode ptr */
!     osi_hyper_t offset;		        /* offset of buffers */
!     long length;			/* # of bytes to be transferred */
!     int reserved;			/* did we reserve multiple buffers? */
          
!     /* all of these buffers are held */
!     osi_queueData_t *bufListp;	/* list of buffers involved in I/O */
!     osi_queueData_t *bufListEndp;	/* list of buffers involved in I/O */
  } cm_bulkIO_t;
  
  extern long cm_StoreMini(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp);
  
! extern int cm_InitDCache(int newFile, long chunkSize, long nbuffers);
  
  extern int cm_HaveBuffer(struct cm_scache *, struct cm_buf *, int haveBufLocked);
  
***************
*** 51,54 ****
--- 51,58 ----
  extern void cm_ConsiderPrefetch(cm_scache_t *scp, osi_hyper_t *offsetp,
  	cm_user_t *userp, cm_req_t *reqp);
  
+ extern long cm_ValidateDCache(void);
+ 
+ extern long cm_ShutdownDCache(void);
+ 
  #endif /*  __CM_DCACHE_ENV__ */
Index: openafs/src/WINNT/afsd/cm_diskcache95.c
diff -c openafs/src/WINNT/afsd/cm_diskcache95.c:1.1 openafs/src/WINNT/afsd/cm_diskcache95.c:1.1.18.1
*** openafs/src/WINNT/afsd/cm_diskcache95.c:1.1	Mon Apr 30 02:48:04 2001
--- openafs/src/WINNT/afsd/cm_diskcache95.c	Fri Mar 11 01:58:41 2005
***************
*** 31,37 ****
  
  extern int afs_diskCacheChunks;
  /*extern int cm_diskCacheChunkSize;*/
! extern long buf_bufferSize;
  long cm_diskCacheChunkSize;
  extern char cm_cachePath[];
  extern int cm_cachePathLen;
--- 31,37 ----
  
  extern int afs_diskCacheChunks;
  /*extern int cm_diskCacheChunkSize;*/
! extern long buf_blockSize;
  long cm_diskCacheChunkSize;
  extern char cm_cachePath[];
  extern int cm_cachePathLen;
***************
*** 85,95 ****
    if (!cm_diskCacheEnabled)
      return 0;
    
!   cm_diskCacheChunkSize = buf_bufferSize;
!   if (cm_diskCacheChunkSize % buf_bufferSize != 0)
    {
      complain("Error: disk cache chunk size %d not a multiple of buffer size %d\n",
!              cm_diskCacheChunkSize, buf_bufferSize);
      return CM_ERROR_INVAL;
    }
    
--- 85,95 ----
    if (!cm_diskCacheEnabled)
      return 0;
    
!   cm_diskCacheChunkSize = buf_blockSize;
!   if (cm_diskCacheChunkSize % buf_blockSize != 0)
    {
      complain("Error: disk cache chunk size %d not a multiple of buffer size %d\n",
!              cm_diskCacheChunkSize, buf_blockSize);
      return CM_ERROR_INVAL;
    }
    
***************
*** 660,666 ****
       opened = 1;
     }
  
!    /*lseek(dcp->openfd, bufferNum * buf_bufferSize, SEEK_SET);*/
     /* only write size bytes */
     rc = write(dcp->openfd, buf, size);
     if (rc < 0)
--- 660,666 ----
       opened = 1;
     }
  
!    /*lseek(dcp->openfd, bufferNum * buf_blockSize, SEEK_SET);*/
     /* only write size bytes */
     rc = write(dcp->openfd, buf, size);
     if (rc < 0)
Index: openafs/src/WINNT/afsd/cm_dnlc.c
diff -c openafs/src/WINNT/afsd/cm_dnlc.c:1.5.2.1 openafs/src/WINNT/afsd/cm_dnlc.c:1.5.2.2
*** openafs/src/WINNT/afsd/cm_dnlc.c:1.5.2.1	Tue Aug 17 00:28:39 2004
--- openafs/src/WINNT/afsd/cm_dnlc.c	Fri Mar 11 01:58:41 2005
***************
*** 27,33 ****
  #include <osi.h>
  #include "afsd.h"
  
! static osi_rwlock_t cm_dnlcLock;
  
  static cm_dnlcstats_t dnlcstats;	/* dnlc statistics */
  static int cm_useDnlc = 1; 	/* yes, start using the dnlc */
--- 27,33 ----
  #include <osi.h>
  #include "afsd.h"
  
! osi_rwlock_t cm_dnlcLock;
  
  static cm_dnlcstats_t dnlcstats;	/* dnlc statistics */
  static int cm_useDnlc = 1; 	/* yes, start using the dnlc */
***************
*** 38,47 ****
   *     1.  If nameHash[i] is NULL, list is empty
   *     2.  A single element in a hash bucket has itself as prev and next.
   */
- static struct nc *ncfreelist = (struct nc *)0;
- static struct nc nameCache[NCSIZE];
- static struct nc *nameHash[NHSIZE];
- 
  #ifndef DJGPP
  #define dnlcNotify(x,debug){                    \
                          HANDLE  hh;             \
--- 38,43 ----
***************
*** 58,74 ****
  #define dnlcNotify(x,debug)
  #endif /* !DJGPP */
  
! static struct nc * 
  GetMeAnEntry() 
  {
      static unsigned int nameptr = 0; /* next bucket to pull something from */
!     struct nc *tnc;
      int j;
    
!     if (ncfreelist) 
      {
! 	tnc = ncfreelist;
! 	ncfreelist = tnc->next;
  	return tnc;
      }
  
--- 54,70 ----
  #define dnlcNotify(x,debug)
  #endif /* !DJGPP */
  
! static cm_nc_t * 
  GetMeAnEntry() 
  {
      static unsigned int nameptr = 0; /* next bucket to pull something from */
!     cm_nc_t *tnc;
      int j;
    
!     if (cm_data.ncfreelist) 
      {
! 	tnc = cm_data.ncfreelist;
! 	cm_data.ncfreelist = tnc->next;
  	return tnc;
      }
  
***************
*** 76,86 ****
      {
  	if (nameptr >= NHSIZE) 
  	    nameptr =0;
! 	if (nameHash[nameptr])
  	    break;
      }
  
!     tnc = nameHash[nameptr];
      if (!tnc)   
      {
  	dnlcNotify("null tnc in GetMeAnEntry",1);
--- 72,82 ----
      {
  	if (nameptr >= NHSIZE) 
  	    nameptr =0;
! 	if (cm_data.nameHash[nameptr])
  	    break;
      }
  
!     tnc = cm_data.nameHash[nameptr];
      if (!tnc)   
      {
  	dnlcNotify("null tnc in GetMeAnEntry",1);
***************
*** 90,96 ****
  
      if (tnc->prev == tnc) 
      { 			/* only thing in list, don't screw around */
! 	nameHash[nameptr] = (struct nc *) 0;
  	return (tnc);
      }
  
--- 86,92 ----
  
      if (tnc->prev == tnc) 
      { 			/* only thing in list, don't screw around */
! 	cm_data.nameHash[nameptr] = (cm_nc_t *) 0;
  	return (tnc);
      }
  
***************
*** 103,136 ****
  
  static void 
  InsertEntry(tnc)
!     struct nc *tnc;
  {
      unsigned int key; 
      key = tnc->key & (NHSIZE -1);
  
!     if(!nameHash[key]) 
      {
! 	nameHash[key] = tnc;
  	tnc->next = tnc->prev = tnc;
      }
      else 
      {
! 	tnc->next = nameHash[key];
  	tnc->prev = tnc->next->prev;
  	tnc->next->prev = tnc;
  	tnc->prev->next = tnc;
! 	nameHash[key] = tnc;
      }
  }
  
  
  void 
! cm_dnlcEnter ( adp, aname, avc )
!     cm_scache_t *adp;
!     char        *aname;
!     cm_scache_t *avc;
  {
!     struct nc *tnc;
      unsigned int key, skey, new=0;
      char *ts = aname;
      int safety;
--- 99,131 ----
  
  static void 
  InsertEntry(tnc)
!     cm_nc_t *tnc;
  {
      unsigned int key; 
      key = tnc->key & (NHSIZE -1);
  
!     if (!cm_data.nameHash[key]) 
      {
! 	cm_data.nameHash[key] = tnc;
  	tnc->next = tnc->prev = tnc;
      }
      else 
      {
! 	tnc->next = cm_data.nameHash[key];
  	tnc->prev = tnc->next->prev;
  	tnc->next->prev = tnc;
  	tnc->prev->next = tnc;
! 	cm_data.nameHash[key] = tnc;
      }
  }
  
  
  void 
! cm_dnlcEnter ( cm_scache_t *adp,
!                char        *aname,
!                cm_scache_t *avc )
  {
!     cm_nc_t *tnc;
      unsigned int key, skey, new=0;
      char *ts = aname;
      int safety;
***************
*** 150,164 ****
      lock_ObtainWrite(&cm_dnlcLock);
      dnlcstats.enters++;
    
!     for (tnc = nameHash[skey], safety=0; tnc; tnc = tnc->next, safety++ )
  	if ((tnc->dirp == adp) && (!strcmp(tnc->name, aname)))
  	    break;				/* preexisting entry */
! 	else if ( tnc->next == nameHash[skey])	/* end of list */
  	{
  	    tnc = NULL;
  	    break;
  	}
! 	else if ( safety >NCSIZE) 
  	{
  	    dnlcstats.cycles++;
  	    lock_ReleaseWrite(&cm_dnlcLock);
--- 145,159 ----
      lock_ObtainWrite(&cm_dnlcLock);
      dnlcstats.enters++;
    
!     for (tnc = cm_data.nameHash[skey], safety=0; tnc; tnc = tnc->next, safety++ )
  	if ((tnc->dirp == adp) && (!strcmp(tnc->name, aname)))
  	    break;				/* preexisting entry */
! 	else if ( tnc->next == cm_data.nameHash[skey])	/* end of list */
  	{
  	    tnc = NULL;
  	    break;
  	}
! 	else if (safety > NCSIZE) 
  	{
  	    dnlcstats.cycles++;
  	    lock_ReleaseWrite(&cm_dnlcLock);
***************
*** 196,210 ****
  * if the scache entry is found, return it held
  */
  cm_scache_t *
! cm_dnlcLookup ( adp, sp)
!   cm_scache_t *adp;
!   cm_lookupSearch_t*      sp;
  {
      cm_scache_t * tvc;
      unsigned int key, skey;
      char* aname = sp->searchNamep;
      char *ts = aname;
!     struct nc * tnc, * tnc_begin;
      int safety, match;
    
      if (!cm_useDnlc)
--- 191,203 ----
  * if the scache entry is found, return it held
  */
  cm_scache_t *
! cm_dnlcLookup (cm_scache_t *adp, cm_lookupSearch_t* sp)
  {
      cm_scache_t * tvc;
      unsigned int key, skey;
      char* aname = sp->searchNamep;
      char *ts = aname;
!     cm_nc_t * tnc, * tnc_begin;
      int safety, match;
    
      if (!cm_useDnlc)
***************
*** 223,231 ****
      dnlcstats.lookups++;	     /* Is a dnlcread lock sufficient? */
  
      ts = 0;
!     tnc_begin = nameHash[skey];
      for ( tvc = (cm_scache_t *) 0, tnc = tnc_begin, safety=0; 
!        tnc; tnc = tnc->next, safety++ ) 
      {
  	if (tnc->dirp == adp) 
  	{
--- 216,224 ----
      dnlcstats.lookups++;	     /* Is a dnlcread lock sufficient? */
  
      ts = 0;
!     tnc_begin = cm_data.nameHash[skey];
      for ( tvc = (cm_scache_t *) 0, tnc = tnc_begin, safety=0; 
!           tnc; tnc = tnc->next, safety++ ) 
      {
  	if (tnc->dirp == adp) 
  	{
***************
*** 273,283 ****
              }
  	    }
  	}
! 	if (tnc->next == nameHash[skey]) 
      { 			/* end of list */
  	    break;
  	}
! 	else if (tnc->next == tnc_begin || safety >NCSIZE) 
  	{
  	    dnlcstats.cycles++;
  	    lock_ReleaseRead(&cm_dnlcLock);
--- 266,276 ----
              }
  	    }
  	}
! 	if (tnc->next == cm_data.nameHash[skey]) 
      { 			/* end of list */
  	    break;
  	}
! 	else if (tnc->next == tnc_begin || safety > NCSIZE) 
  	{
  	    dnlcstats.cycles++;
  	    lock_ReleaseRead(&cm_dnlcLock);
***************
*** 307,317 ****
      }
      lock_ReleaseRead(&cm_dnlcLock);
  
!     if (tvc) {
!         lock_ObtainWrite(&cm_scacheLock);
!         tvc->refCount++;	/* scache entry held */
!         lock_ReleaseWrite(&cm_scacheLock);
!     }
  
      if ( cm_debugDnlc && tvc ) 
          osi_Log1(afsd_logp, "cm_dnlcLookup found %x", tvc);
--- 300,307 ----
      }
      lock_ReleaseRead(&cm_dnlcLock);
  
!     if (tvc)
!         cm_HoldSCache(tvc);
  
      if ( cm_debugDnlc && tvc ) 
          osi_Log1(afsd_logp, "cm_dnlcLookup found %x", tvc);
***************
*** 322,328 ****
  
  static int
  RemoveEntry (tnc, key)
!     struct nc    *tnc;
      unsigned int key;
  {
      if (!tnc->prev) /* things on freelist always have null prev ptrs */
--- 312,318 ----
  
  static int
  RemoveEntry (tnc, key)
!     cm_nc_t    *tnc;
      unsigned int key;
  {
      if (!tnc->prev) /* things on freelist always have null prev ptrs */
***************
*** 333,348 ****
      }
  
      if (tnc == tnc->next)  /* only one in list */
! 	nameHash[key] = (struct nc *) 0;
      else 
      {
! 	if (tnc == nameHash[key])
! 	    nameHash[key]  = tnc->next;
  	tnc->prev->next = tnc->next;
  	tnc->next->prev = tnc->prev;
      }
  
!     tnc->prev = (struct nc *) 0; /* everything not in hash table has 0 prev */
      tnc->key = 0; /* just for safety's sake */
      return 0;	  /* success */
  }
--- 323,338 ----
      }
  
      if (tnc == tnc->next)  /* only one in list */
! 	cm_data.nameHash[key] = (cm_nc_t *) 0;
      else 
      {
! 	if (tnc == cm_data.nameHash[key])
! 	    cm_data.nameHash[key]  = tnc->next;
  	tnc->prev->next = tnc->next;
  	tnc->next->prev = tnc->prev;
      }
  
!     tnc->prev = (cm_nc_t *) 0; /* everything not in hash table has 0 prev */
      tnc->key = 0; /* just for safety's sake */
      return 0;	  /* success */
  }
***************
*** 356,362 ****
      unsigned int key, skey, error=0;
      int found= 0, safety;
      char *ts = aname;
!     struct nc *tnc, *tmp;
    
      if (!cm_useDnlc)
  	return ;
--- 346,352 ----
      unsigned int key, skey, error=0;
      int found= 0, safety;
      char *ts = aname;
!     cm_nc_t *tnc, *tmp;
    
      if (!cm_useDnlc)
  	return ;
***************
*** 373,379 ****
      lock_ObtainWrite(&cm_dnlcLock);
      dnlcstats.removes++;
  
!     for (tnc = nameHash[skey], safety=0; tnc; safety++) 
      {
  	if ( (tnc->dirp == adp) && (tnc->key == key) 
  			&& !strcmp(tnc->name,aname) )
--- 363,369 ----
      lock_ObtainWrite(&cm_dnlcLock);
      dnlcstats.removes++;
  
!     for (tnc = cm_data.nameHash[skey], safety=0; tnc; safety++) 
      {
  	if ( (tnc->dirp == adp) && (tnc->key == key) 
  			&& !strcmp(tnc->name,aname) )
***************
*** 384,396 ****
  	    if ( error )
  		break;
  
! 	    tnc->next = ncfreelist; /* insert entry into freelist */
! 	    ncfreelist = tnc;
  	    found = 1;		/* found atleast one entry */
  
  	    tnc = tmp;		/* continue down the linked list */
  	}
! 	else if (tnc->next == nameHash[skey]) /* end of list */
  	    break;
  	else
  	    tnc = tnc->next;
--- 374,386 ----
  	    if ( error )
  		break;
  
! 	    tnc->next = cm_data.ncfreelist; /* insert entry into freelist */
! 	    cm_data.ncfreelist = tnc;
  	    found = 1;		/* found atleast one entry */
  
  	    tnc = tmp;		/* continue down the linked list */
  	}
! 	else if (tnc->next == cm_data.nameHash[skey]) /* end of list */
  	    break;
  	else
  	    tnc = tnc->next;
***************
*** 434,447 ****
  
      for (i=0; i<NCSIZE && !err; i++) 
      {
! 	if (nameCache[i].dirp == adp ) 
  	{
! 	    nameCache[i].dirp = nameCache[i].vp = (cm_scache_t *) 0;
! 	    if (nameCache[i].prev && !err) 
  	    {
! 		err = RemoveEntry(&nameCache[i], nameCache[i].key & (NHSIZE-1));
! 		nameCache[i].next = ncfreelist;
! 		ncfreelist = &nameCache[i];
  	    }
  	}
      }
--- 424,437 ----
  
      for (i=0; i<NCSIZE && !err; i++) 
      {
! 	if (cm_data.nameCache[i].dirp == adp ) 
  	{
! 	    cm_data.nameCache[i].dirp = cm_data.nameCache[i].vp = (cm_scache_t *) 0;
! 	    if (cm_data.nameCache[i].prev && !err) 
  	    {
! 		err = RemoveEntry(&cm_data.nameCache[i], cm_data.nameCache[i].key & (NHSIZE-1));
! 		cm_data.nameCache[i].next = cm_data.ncfreelist;
! 		cm_data.ncfreelist = &cm_data.nameCache[i];
  	    }
  	}
      }
***************
*** 469,484 ****
  
      for (i=0; i<NCSIZE && !err ; i++) 
      {
!    	if (nameCache[i].vp == avc) 
  	{
! 	    nameCache[i].dirp = nameCache[i].vp = (cm_scache_t *) 0;
  	    /* can't simply break; because of hard links -- might be two */
  	    /* different entries with same vnode */ 
! 	    if (!err && nameCache[i].prev) 
  	    {
! 		err=RemoveEntry(&nameCache[i], nameCache[i].key & (NHSIZE-1));
! 		nameCache[i].next = ncfreelist;
! 		ncfreelist = &nameCache[i];
  	    }
  	}
      }
--- 459,474 ----
  
      for (i=0; i<NCSIZE && !err ; i++) 
      {
!    	if (cm_data.nameCache[i].vp == avc) 
  	{
! 	    cm_data.nameCache[i].dirp = cm_data.nameCache[i].vp = (cm_scache_t *) 0;
  	    /* can't simply break; because of hard links -- might be two */
  	    /* different entries with same vnode */ 
! 	    if (!err && cm_data.nameCache[i].prev) 
  	    {
! 		err=RemoveEntry(&cm_data.nameCache[i], cm_data.nameCache[i].key & (NHSIZE-1));
! 		cm_data.nameCache[i].next = cm_data.ncfreelist;
! 		cm_data.ncfreelist = &cm_data.nameCache[i];
  	    }
  	}
      }
***************
*** 501,513 ****
      lock_ObtainWrite(&cm_dnlcLock);
      dnlcstats.purges++;
      
!     ncfreelist = (struct nc *) 0;
!     memset (nameCache, 0, sizeof(struct nc) * NCSIZE);
!     memset (nameHash, 0, sizeof(struct nc *) * NHSIZE);
      for (i=0; i<NCSIZE; i++) 
      {
! 	nameCache[i].next = ncfreelist;
! 	ncfreelist = &nameCache[i];
      }
      lock_ReleaseWrite(&cm_dnlcLock);
     
--- 491,503 ----
      lock_ObtainWrite(&cm_dnlcLock);
      dnlcstats.purges++;
      
!     cm_data.ncfreelist = (cm_nc_t *) 0;
!     memset (cm_data.nameCache, 0, sizeof(cm_nc_t) * NCSIZE);
!     memset (cm_data.nameHash, 0, sizeof(cm_nc_t *) * NHSIZE);
      for (i=0; i<NCSIZE; i++) 
      {
! 	cm_data.nameCache[i].next = cm_data.ncfreelist;
! 	cm_data.ncfreelist = &cm_data.nameCache[i];
      }
      lock_ReleaseWrite(&cm_dnlcLock);
     
***************
*** 526,558 ****
      cm_dnlcPurge();
  }
  
  void 
! cm_dnlcInit(void)
  {
      int i;
  
      if (!cm_useDnlc)
          return ;
      if ( cm_debugDnlc )
  	osi_Log0(afsd_logp,"cm_dnlcInit");
  
-     lock_InitializeRWLock(&cm_dnlcLock, "cm_dnlcLock");
      memset (&dnlcstats, 0, sizeof(dnlcstats));
!     lock_ObtainWrite(&cm_dnlcLock);
!     ncfreelist = (struct nc *) 0;
!     memset (nameCache, 0, sizeof(struct nc) * NCSIZE);
!     memset (nameHash, 0, sizeof(struct nc *) * NHSIZE);
!     for (i=0; i<NCSIZE; i++) 
!     {
! 	nameCache[i].next = ncfreelist;
! 	ncfreelist = &nameCache[i];
      }
-     lock_ReleaseWrite(&cm_dnlcLock);
  }
  
! void 
  cm_dnlcShutdown(void)
  {
      if ( cm_debugDnlc )
  	osi_Log0(afsd_logp,"cm_dnlcShutdown");
  }
--- 516,655 ----
      cm_dnlcPurge();
  }
  
+ long
+ cm_dnlcValidate(void)
+ {
+     int i;
+     cm_nc_t * ncp;
+     
+     // are all nameCache entries marked with the magic bit?
+     for (i=0; i<NCSIZE; i++)
+     {
+         if (cm_data.nameCache[i].magic != CM_DNLC_MAGIC) {
+             afsi_log("cm_dnlcValidate failure: cm_data.nameCache[%d].magic != CM_DNLC_MAGIC", i);
+             fprintf(stderr, "cm_dnlcValidate failure: cm_data.nameCache[%d].magic != CM_DNLC_MAGIC\n", i);
+             return -1;
+         }
+         if (cm_data.nameCache[i].next &&
+             cm_data.nameCache[i].next->magic != CM_DNLC_MAGIC) {
+             afsi_log("cm_dnlcValidate failure: cm_data.nameCache[%d].next->magic != CM_DNLC_MAGIC", i);
+             fprintf(stderr, "cm_dnlcValidate failure: cm_data.nameCache[%d].next->magic != CM_DNLC_MAGIC\n", i);
+             return -2;
+         }
+         if (cm_data.nameCache[i].prev &&
+             cm_data.nameCache[i].prev->magic != CM_DNLC_MAGIC) {
+             afsi_log("cm_dnlcValidate failure: cm_data.nameCache[%d].prev->magic != CM_DNLC_MAGIC", i);
+             fprintf(stderr, "cm_dnlcValidate failure: cm_data.nameCache[%d].prev->magic != CM_DNLC_MAGIC\n", i);
+             return -3;
+         }
+         if (cm_data.nameCache[i].dirp &&
+             cm_data.nameCache[i].dirp->magic != CM_SCACHE_MAGIC) {
+             afsi_log("cm_dnlcValidate failure: cm_data.nameCache[%d].dirp->magic != CM_SCACHE_MAGIC", i);
+             fprintf(stderr, "cm_dnlcValidate failure: cm_data.nameCache[%d].dirp->magic != CM_SCACHE_MAGIC\n", i);
+             return -4;
+         }
+         if (cm_data.nameCache[i].vp &&
+             cm_data.nameCache[i].vp->magic != CM_SCACHE_MAGIC) {
+             afsi_log("cm_dnlcValidate failure: cm_data.nameCache[%d].vp->magic != CM_SCACHE_MAGIC", i);
+             fprintf(stderr, "cm_dnlcValidate failure: cm_data.nameCache[%d].vp->magic != CM_SCACHE_MAGIC\n", i);
+             return -5;
+         }
+     }
+ 
+     // are the contents of the hash table intact?
+     for (i=0; i<NHSIZE;i++) {
+         for (ncp = cm_data.nameHash[i]; ncp ; 
+              ncp = ncp->next != cm_data.nameHash[i] ? ncp->next : NULL) {
+             if (ncp->magic != CM_DNLC_MAGIC) {
+                 afsi_log("cm_dnlcValidate failure: ncp->magic != CM_DNLC_MAGIC");
+                 fprintf(stderr, "cm_dnlcValidate failure: ncp->magic != CM_DNLC_MAGIC\n");
+                 return -6;
+             }
+             if (ncp->prev && ncp->prev->magic != CM_DNLC_MAGIC) {
+                 afsi_log("cm_dnlcValidate failure: ncp->prev->magic != CM_DNLC_MAGIC");
+                 fprintf(stderr, "cm_dnlcValidate failure: ncp->prev->magic != CM_DNLC_MAGIC\n");
+                 return -7;
+             }
+             if (ncp->dirp && ncp->dirp->magic != CM_SCACHE_MAGIC) {
+                 afsi_log("cm_dnlcValidate failure: ncp->dirp->magic != CM_DNLC_MAGIC");
+                 fprintf(stderr, "cm_dnlcValidate failure: ncp->dirp->magic != CM_DNLC_MAGIC\n");
+                 return -8;
+             }
+             if (ncp->vp && ncp->vp->magic != CM_SCACHE_MAGIC) {
+                 afsi_log("cm_dnlcValidate failure: ncp->vp->magic != CM_DNLC_MAGIC");
+                 fprintf(stderr, "cm_dnlcValidate failure: ncp->vp->magic != CM_DNLC_MAGIC\n");
+                 return -9;
+             }
+         }
+     }
+ 
+     // is the freelist stable?
+     if ( cm_data.ncfreelist ) {
+         for (ncp = cm_data.ncfreelist; ncp; 
+              ncp = ncp->next != cm_data.ncfreelist ? ncp->next : NULL) {
+             if (ncp->magic != CM_DNLC_MAGIC) {
+                 afsi_log("cm_dnlcValidate failure: ncp->magic != CM_DNLC_MAGIC");
+                 fprintf(stderr, "cm_dnlcValidate failure: ncp->magic != CM_DNLC_MAGIC\n");
+                 return -10;
+             }
+             if (ncp->prev && ncp->prev->magic != CM_DNLC_MAGIC) {
+                 afsi_log("cm_dnlcValidate failure: ncp->prev->magic != CM_DNLC_MAGIC");
+                 fprintf(stderr, "cm_dnlcValidate failure: ncp->prev->magic != CM_DNLC_MAGIC\n");
+                 return -11;
+             }
+             if (ncp->dirp && ncp->dirp->magic != CM_SCACHE_MAGIC) {
+                 afsi_log("cm_dnlcValidate failure: ncp->dirp->magic != CM_DNLC_MAGIC");
+                 fprintf(stderr, "cm_dnlcValidate failure: ncp->dirp->magic != CM_DNLC_MAGIC\n");
+                return -12;
+             }
+             if (ncp->vp && ncp->vp->magic != CM_SCACHE_MAGIC) {
+                 afsi_log("cm_dnlcValidate failure: ncp->vp->magic != CM_DNLC_MAGIC");
+                 fprintf(stderr, "cm_dnlcValidate failure: ncp->vp->magic != CM_DNLC_MAGIC\n");
+                 return -13;
+             }
+         }
+     }
+ 
+     return 0;
+ }
+ 
  void 
! cm_dnlcInit(int newFile)
  {
      int i;
  
      if (!cm_useDnlc)
          return ;
+ 
      if ( cm_debugDnlc )
  	osi_Log0(afsd_logp,"cm_dnlcInit");
  
      memset (&dnlcstats, 0, sizeof(dnlcstats));
! 
!     lock_InitializeRWLock(&cm_dnlcLock, "cm_dnlcLock");
!     if ( newFile ) {
!         lock_ObtainWrite(&cm_dnlcLock);
!         cm_data.ncfreelist = (cm_nc_t *) 0;
!         cm_data.nameCache = cm_data.dnlcBaseAddress;
!         memset (cm_data.nameCache, 0, sizeof(cm_nc_t) * NCSIZE);
!         cm_data.nameHash = (cm_nc_t **) (cm_data.nameCache + NCSIZE);
!         memset (cm_data.nameHash, 0, sizeof(cm_nc_t *) * NHSIZE);
!     
!         for (i=0; i<NCSIZE; i++)
!         {
!             cm_data.nameCache[i].magic = CM_DNLC_MAGIC;
!             cm_data.nameCache[i].next = cm_data.ncfreelist;
!             cm_data.ncfreelist = &cm_data.nameCache[i];
!         }
!         lock_ReleaseWrite(&cm_dnlcLock);
      }
  }
  
! long 
  cm_dnlcShutdown(void)
  {
      if ( cm_debugDnlc )
  	osi_Log0(afsd_logp,"cm_dnlcShutdown");
+ 
+     return 0;
  }
Index: openafs/src/WINNT/afsd/cm_dnlc.h
diff -c openafs/src/WINNT/afsd/cm_dnlc.h:1.2.20.1 openafs/src/WINNT/afsd/cm_dnlc.h:1.2.20.2
*** openafs/src/WINNT/afsd/cm_dnlc.h:1.2.20.1	Tue Aug 17 00:28:39 2004
--- openafs/src/WINNT/afsd/cm_dnlc.h	Fri Mar 11 01:58:41 2005
***************
*** 13,30 ****
  #define         NCSIZE 			512
  #define         NHSIZE 			256 /* must be power of 2 == CM_DIR_NHASHENT */
  
  
! struct nc {
!   unsigned int key;
!   struct nc *next, *prev;
!   cm_scache_t *dirp, *vp;
!   unsigned char name[CM_AFSNCNAMESIZE];   
! };
  
  typedef struct {
!   unsigned int enters, lookups, misses, removes;
!   unsigned int purgeds, purgevs, purgevols, purges;
!   unsigned int cycles, lookuprace;
  } cm_dnlcstats_t;
  
  #define dnlcHash(ts, hval) for (hval=0; *ts; ts++) {    \
--- 13,32 ----
  #define         NCSIZE 			512
  #define         NHSIZE 			256 /* must be power of 2 == CM_DIR_NHASHENT */
  
+ #define         CM_DNLC_MAGIC           ('D' | 'N' <<8 | 'L'<<16 | 'C'<<24)
  
! typedef struct nc {
!     afs_uint32 magic;
!     unsigned int key;
!     struct nc *next, *prev;
!     cm_scache_t *dirp, *vp;
!     unsigned char name[CM_AFSNCNAMESIZE];   
! } cm_nc_t;
  
  typedef struct {
!     unsigned int enters, lookups, misses, removes;
!     unsigned int purgeds, purgevs, purgevols, purges;
!     unsigned int cycles, lookuprace;
  } cm_dnlcstats_t;
  
  #define dnlcHash(ts, hval) for (hval=0; *ts; ts++) {    \
***************
*** 37,42 ****
  extern void cm_dnlcPurgevp(cm_scache_t *avc);
  extern void cm_dnlcPurge(void);
  extern void cm_dnlcPurgeVol(struct AFSFid *fidp);
! extern void cm_dnlcInit(void);
! extern void cm_dnlcShutdown(void);
  extern cm_scache_t* cm_dnlcLookup(cm_scache_t *adp, cm_lookupSearch_t* sp);
--- 39,45 ----
  extern void cm_dnlcPurgevp(cm_scache_t *avc);
  extern void cm_dnlcPurge(void);
  extern void cm_dnlcPurgeVol(struct AFSFid *fidp);
! extern void cm_dnlcInit(int);
! extern long cm_dnlcShutdown(void);
  extern cm_scache_t* cm_dnlcLookup(cm_scache_t *adp, cm_lookupSearch_t* sp);
+ extern long cm_dnlcValidate(void);
Index: openafs/src/WINNT/afsd/cm_dns.c
diff -c openafs/src/WINNT/afsd/cm_dns.c:1.9 openafs/src/WINNT/afsd/cm_dns.c:1.9.2.1
*** openafs/src/WINNT/afsd/cm_dns.c:1.9	Sat Jun  5 23:51:41 2004
--- openafs/src/WINNT/afsd/cm_dns.c	Wed Mar 16 16:37:52 2005
***************
*** 636,641 ****
--- 636,642 ----
    SOCKADDR_IN sockAddr;
    PDNS_HDR  pDNShdr;
    char buffer[BUFSIZE];
+   char query[1024];
    int rc;
  
  #ifdef DEBUG
***************
*** 672,677 ****
--- 673,685 ----
    bind(commSock,0,sizeof( SOCKADDR_IN ) );
  #endif /* DJGPP */
  
+   strncpy(query, cellName, 1024);
+   query[1023] = 0;
+   if (query[strlen(query)-1] != '.') {
+     strncat(query,".",1024);
+     query[1023] = 0;
+   }
+ 
    rc = send_DNS_AFSDB_Query(cellName,commSock,sockAddr, buffer);
    if (rc < 0) {
      fprintf(stderr,"getAFSServer: send_DNS_AFSDB_Query failed\n");
Index: openafs/src/WINNT/afsd/cm_freelance.c
diff -c openafs/src/WINNT/afsd/cm_freelance.c:1.15.2.11 openafs/src/WINNT/afsd/cm_freelance.c:1.15.2.12
*** openafs/src/WINNT/afsd/cm_freelance.c:1.15.2.11	Thu Dec 16 14:02:48 2004
--- openafs/src/WINNT/afsd/cm_freelance.c	Fri Mar 11 01:58:41 2005
***************
*** 14,19 ****
--- 14,20 ----
  
  #include <rx/rx.h>
  
+ #include <WINNT/afsreg.h>
  #include "afsd.h"
  #ifdef AFS_FREELANCE_CLIENT
  #include "cm_freelance.h"
***************
*** 25,46 ****
  int cm_fakeDirSize;
  int cm_fakeDirCallback=0;
  int cm_fakeGettingCallback=0;
- int cm_fakeDirVersion = 0x8;
  cm_localMountPoint_t* cm_localMountPoints;
  osi_mutex_t cm_Freelance_Lock;
  int cm_localMountPointChangeFlag = 0;
  int cm_freelanceEnabled = 0;
  time_t FakeFreelanceModTime = 0x3b49f6e2;
  
  void cm_InitFakeRootDir();
  
  #if !defined(DJGPP)
  void cm_FreelanceChangeNotifier(void * parmp) {
-     HANDLE hFreelanceChangeEvent = 0;
      HKEY   hkFreelance = 0;
  
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       "SOFTWARE\\OpenAFS\\Client\\Freelance",
                        0,
                        KEY_NOTIFY,
                        &hkFreelance) == ERROR_SUCCESS) {
--- 26,51 ----
  int cm_fakeDirSize;
  int cm_fakeDirCallback=0;
  int cm_fakeGettingCallback=0;
  cm_localMountPoint_t* cm_localMountPoints;
  osi_mutex_t cm_Freelance_Lock;
  int cm_localMountPointChangeFlag = 0;
  int cm_freelanceEnabled = 0;
  time_t FakeFreelanceModTime = 0x3b49f6e2;
  
+ static int freelance_ShutdownFlag = 0;
+ #if !defined(DJGPP)
+ static HANDLE hFreelanceChangeEvent = 0;
+ static HANDLE hFreelanceSymlinkChangeEvent = 0;
+ #endif
+ 
  void cm_InitFakeRootDir();
  
  #if !defined(DJGPP)
  void cm_FreelanceChangeNotifier(void * parmp) {
      HKEY   hkFreelance = 0;
  
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       AFSREG_CLT_OPENAFS_SUBKEY "\\Freelance",
                        0,
                        KEY_NOTIFY,
                        &hkFreelance) == ERROR_SUCCESS) {
***************
*** 64,85 ****
                                       ) != ERROR_SUCCESS) {
              RegCloseKey(hkFreelance);
              CloseHandle(hFreelanceChangeEvent);
              return;
          }
  
          if (WaitForSingleObject(hFreelanceChangeEvent, INFINITE) == WAIT_OBJECT_0)
          {
              cm_noteLocalMountPointChange();
          }
      }
  }
  
  void cm_FreelanceSymlinkChangeNotifier(void * parmp) {
-     HANDLE hFreelanceSymlinkChangeEvent = 0;
      HKEY   hkFreelance = 0;
  
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       "SOFTWARE\\OpenAFS\\Client\\Freelance\\Symlinks",
                        0,
                        KEY_NOTIFY,
                        &hkFreelance) == ERROR_SUCCESS) {
--- 69,96 ----
                                       ) != ERROR_SUCCESS) {
              RegCloseKey(hkFreelance);
              CloseHandle(hFreelanceChangeEvent);
+             hFreelanceChangeEvent = 0;
              return;
          }
  
          if (WaitForSingleObject(hFreelanceChangeEvent, INFINITE) == WAIT_OBJECT_0)
          {
+             if (freelance_ShutdownFlag == 1) {     
+                 RegCloseKey(hkFreelance);          
+                 CloseHandle(hFreelanceChangeEvent);
+                 hFreelanceChangeEvent = 0;         
+                 return;                            
+             }                                      
              cm_noteLocalMountPointChange();
          }
      }
  }
  
  void cm_FreelanceSymlinkChangeNotifier(void * parmp) {
      HKEY   hkFreelance = 0;
  
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       AFSREG_CLT_OPENAFS_SUBKEY "\\Freelance\\Symlinks",
                        0,
                        KEY_NOTIFY,
                        &hkFreelance) == ERROR_SUCCESS) {
***************
*** 103,119 ****
--- 114,149 ----
                                       ) != ERROR_SUCCESS) {
              RegCloseKey(hkFreelance);
              CloseHandle(hFreelanceSymlinkChangeEvent);
+             hFreelanceSymlinkChangeEvent = 0;
              return;
          }
  
          if (WaitForSingleObject(hFreelanceSymlinkChangeEvent, INFINITE) == WAIT_OBJECT_0)
          {
+             if (freelance_ShutdownFlag == 1) {     
+                 RegCloseKey(hkFreelance);          
+                 CloseHandle(hFreelanceSymlinkChangeEvent);
+                 hFreelanceSymlinkChangeEvent = 0;         
+                 return;                            
+             }                                      
              cm_noteLocalMountPointChange();
          }
      }
  }
  #endif
  
+ void                                          
+ cm_FreelanceShutdown(void)                    
+ {                                             
+     freelance_ShutdownFlag = 1;               
+ #if !defined(DJGPP)                           
+     if (hFreelanceChangeEvent != 0)           
+         thrd_SetEvent(hFreelanceChangeEvent); 
+     if (hFreelanceSymlinkChangeEvent != 0)           
+         thrd_SetEvent(hFreelanceSymlinkChangeEvent); 
+ #endif                                        
+ }                                             
+ 
  void cm_InitFreelance() {
  #if !defined(DJGPP)
      thread_t phandle;
***************
*** 122,127 ****
--- 152,161 ----
  
      lock_InitializeMutex(&cm_Freelance_Lock, "Freelance Lock");
  
+     // make sure we sync the data version to the cached root scache_t                  
+     if (cm_data.rootSCachep && cm_data.rootSCachep->fid.cell == AFS_FAKE_ROOT_CELL_ID) 
+         cm_data.fakeDirVersion = cm_data.rootSCachep->dataVersion;                          
+                                                                                       
      // yj: first we make a call to cm_initLocalMountPoints
      // to read all the local mount points from an ini file
      cm_InitLocalMountPoints();
***************
*** 334,340 ****
  /* called while not holding freelance lock */
  int cm_noteLocalMountPointChange(void) {
      lock_ObtainMutex(&cm_Freelance_Lock);
!     cm_fakeDirVersion++;
      cm_localMountPointChangeFlag = 1;
      lock_ReleaseMutex(&cm_Freelance_Lock);
      return 1;
--- 368,374 ----
  /* called while not holding freelance lock */
  int cm_noteLocalMountPointChange(void) {
      lock_ObtainMutex(&cm_Freelance_Lock);
!     cm_data.fakeDirVersion++;
      cm_localMountPointChangeFlag = 1;
      lock_ReleaseMutex(&cm_Freelance_Lock);
      return 1;
***************
*** 370,376 ****
      lock_ObtainMutex(&cm_Freelance_Lock);  /* always scache then freelance lock */
      for (i=0; i<cm_noLocalMountPoints; i++) {
          hash = CM_SCACHE_HASH(&aFid);
!         for (scp=cm_hashTablep[hash]; scp; scp=scp->nextp) {
              if (scp->fid.volume == aFid.volume &&
                   scp->fid.vnode == aFid.vnode &&
                   scp->fid.unique == aFid.unique 
--- 404,410 ----
      lock_ObtainMutex(&cm_Freelance_Lock);  /* always scache then freelance lock */
      for (i=0; i<cm_noLocalMountPoints; i++) {
          hash = CM_SCACHE_HASH(&aFid);
!         for (scp=cm_data.hashTablep[hash]; scp; scp=scp->nextp) {
              if (scp->fid.volume == aFid.volume &&
                   scp->fid.vnode == aFid.vnode &&
                   scp->fid.unique == aFid.unique 
***************
*** 387,398 ****
                  cm_ReleaseSCacheNoLock(scp);
  
                  // take the scp out of the hash
!                 lscpp = &cm_hashTablep[hash];
!                 for (tscp=*lscpp; tscp; lscpp = &tscp->nextp, tscp = *lscpp) {
!                     if (tscp == scp) break;
                  }
-                 *lscpp = scp->nextp;
-                 scp->flags &= ~CM_SCACHEFLAG_INHASH;
              }
          }
          aFid.vnode = aFid.vnode + 1;
--- 421,435 ----
                  cm_ReleaseSCacheNoLock(scp);
  
                  // take the scp out of the hash
!                 for (lscpp = &cm_data.hashTablep[hash], tscp = cm_data.hashTablep[hash]; 
!                      tscp; 
!                      lscpp = &tscp->nextp, tscp = tscp->nextp) {
!                     if (tscp == scp) {
!                         *lscpp = scp->nextp;
!                         scp->flags &= ~CM_SCACHEFLAG_INHASH;
!                         break;
!                     }
                  }
              }
          }
          aFid.vnode = aFid.vnode + 1;
***************
*** 452,458 ****
  
  #if !defined(DJGPP)
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       "SOFTWARE\\OpenAFS\\Client\\Freelance",
                        0,
                        KEY_READ|KEY_WRITE|KEY_QUERY_VALUE,
                        &hkFreelance) == ERROR_SUCCESS) {
--- 489,495 ----
  
  #if !defined(DJGPP)
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       AFSREG_CLT_OPENAFS_SUBKEY "\\Freelance",
                        0,
                        KEY_READ|KEY_WRITE|KEY_QUERY_VALUE,
                        &hkFreelance) == ERROR_SUCCESS) {
***************
*** 484,490 ****
          }
  
          if (RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                           "SOFTWARE\\OpenAFS\\Client\\Freelance\\Symlinks",
                            0,
                            NULL,
                            REG_OPTION_NON_VOLATILE,
--- 521,527 ----
          }
  
          if (RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                           AFSREG_CLT_OPENAFS_SUBKEY "\\Freelance\\Symlinks",
                            0,
                            NULL,
                            REG_OPTION_NON_VOLATILE,
***************
*** 542,555 ****
              if (t2)
                  *(t2+1) = '\0';
  
              // line is not empty, so let's parse it
              t = strchr(line, '#');
              if (!t)
                  t = strchr(line, '%');
              // make sure that there is a '#' or '%' separator in the line
              if (!t) {
!                 afsi_log("error occurred while parsing entry in %s: no # or %% separator in line %d", AFS_FREELANCE_INI, dwIndex);
!                 fprintf(stderr, "error occurred while parsing entry in afs_freelance.ini: no # or %% separator in line %d", dwIndex);
                  cm_noLocalMountPoints--;
                  continue;
              }
--- 579,601 ----
              if (t2)
                  *(t2+1) = '\0';
  
+             for ( t=line;*t;t++ ) {
+                 if ( !isprint(*t) ) {
+                     afsi_log("error occurred while parsing mountpoint entry [%d]: non-printable character", dwIndex);
+                     fprintf(stderr, "error occurred while parsing mountpoint entry [%d]: non-printable character", dwIndex);
+                     cm_noLocalMountPoints--;
+                     continue;
+                 }
+             }
+ 
              // line is not empty, so let's parse it
              t = strchr(line, '#');
              if (!t)
                  t = strchr(line, '%');
              // make sure that there is a '#' or '%' separator in the line
              if (!t) {
!                 afsi_log("error occurred while parsing mountpoint entry [%d]: no # or %% separator", dwIndex);
!                 fprintf(stderr, "error occurred while parsing mountpoint entry [%d]: no # or %% separator", dwIndex);
                  cm_noLocalMountPoints--;
                  continue;
              }
***************
*** 590,602 ****
              if (t2)
                  *(t2+1) = '\0';
  
              // line is not empty, so let's parse it
              t = strchr(line, ':');
  
              // make sure that there is a ':' separator in the line
              if (!t) {
!                 afsi_log("error occurred while parsing symlink entry: no ':' separator in line %d", dwIndex);
!                 fprintf(stderr, "error occurred while parsing symlink entry: no ':' separator in line %d", dwIndex);
                  cm_noLocalMountPoints--;
                  continue;
              }
--- 636,657 ----
              if (t2)
                  *(t2+1) = '\0';
  
+             for ( t=line;*t;t++ ) {
+                 if ( !isprint(*t) ) {
+                     afsi_log("error occurred while parsing symlink entry [%d]: non-printable character", dwIndex);
+                     fprintf(stderr, "error occurred while parsing symlink entry [%d]: non-printable character", dwIndex);
+                     cm_noLocalMountPoints--;
+                     continue;
+                 }
+             }
+ 
              // line is not empty, so let's parse it
              t = strchr(line, ':');
  
              // make sure that there is a ':' separator in the line
              if (!t) {
!                 afsi_log("error occurred while parsing symlink entry [%d]: no ':' separator", dwIndex);
!                 fprintf(stderr, "error occurred while parsing symlink entry [%d]: no ':' separator", dwIndex);
                  cm_noLocalMountPoints--;
                  continue;
              }
***************
*** 642,648 ****
  
  #if !defined(DJGPP)
      RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                     "SOFTWARE\\OpenAFS\\Client\\Freelance",
                      0,
                      NULL,
                      REG_OPTION_NON_VOLATILE,
--- 697,703 ----
  
  #if !defined(DJGPP)
      RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                     AFSREG_CLT_OPENAFS_SUBKEY "\\Freelance",
                      0,
                      NULL,
                      REG_OPTION_NON_VOLATILE,
***************
*** 776,782 ****
      lock_ObtainMutex(&cm_Freelance_Lock);
  
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       "SOFTWARE\\OpenAFS\\Client\\Freelance",
                        0,
                        KEY_READ|KEY_QUERY_VALUE,
                        &hkFreelance) == ERROR_SUCCESS) 
--- 831,837 ----
      lock_ObtainMutex(&cm_Freelance_Lock);
  
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       AFSREG_CLT_OPENAFS_SUBKEY "\\Freelance",
                        0,
                        KEY_READ|KEY_QUERY_VALUE,
                        &hkFreelance) == ERROR_SUCCESS) 
***************
*** 853,859 ****
      lock_ObtainMutex(&cm_Freelance_Lock);
  
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       "SOFTWARE\\OpenAFS\\Client\\Freelance\\Symlinks",
                        0,
                        KEY_READ|KEY_QUERY_VALUE,
                        &hkFreelance) == ERROR_SUCCESS) 
--- 908,914 ----
      lock_ObtainMutex(&cm_Freelance_Lock);
  
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       AFSREG_CLT_OPENAFS_SUBKEY "\\Freelance\\Symlinks",
                        0,
                        KEY_READ|KEY_QUERY_VALUE,
                        &hkFreelance) == ERROR_SUCCESS) 
***************
*** 962,968 ****
  
  #if !defined(DJGPP)
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       "SOFTWARE\\OpenAFS\\Client\\Freelance",
                        0,
                        KEY_READ|KEY_WRITE|KEY_QUERY_VALUE,
                        &hkFreelance) == ERROR_SUCCESS) {
--- 1017,1023 ----
  
  #if !defined(DJGPP)
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       AFSREG_CLT_OPENAFS_SUBKEY "\\Freelance",
                        0,
                        KEY_READ|KEY_WRITE|KEY_QUERY_VALUE,
                        &hkFreelance) == ERROR_SUCCESS) {
***************
*** 1065,1071 ****
  
  #if !defined(DJGPP)
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       "SOFTWARE\\OpenAFS\\Client\\Freelance",
                        0,
                        KEY_READ|KEY_WRITE|KEY_QUERY_VALUE,
                        &hkFreelance) == ERROR_SUCCESS) {
--- 1120,1126 ----
  
  #if !defined(DJGPP)
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       AFSREG_CLT_OPENAFS_SUBKEY "\\Freelance",
                        0,
                        KEY_READ|KEY_WRITE|KEY_QUERY_VALUE,
                        &hkFreelance) == ERROR_SUCCESS) {
***************
*** 1196,1202 ****
  
  #if !defined(DJGPP)
      if (RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                         "SOFTWARE\\OpenAFS\\Client\\Freelance\\Symlinks",
                          0,
                          NULL,
                          REG_OPTION_NON_VOLATILE,
--- 1251,1257 ----
  
  #if !defined(DJGPP)
      if (RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                         AFSREG_CLT_OPENAFS_SUBKEY "\\Freelance\\Symlinks",
                          0,
                          NULL,
                          REG_OPTION_NON_VOLATILE,
***************
*** 1278,1284 ****
  
  #if !defined(DJGPP)
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       "SOFTWARE\\OpenAFS\\Client\\Freelance\\Symlinks",
                        0,
                        KEY_READ|KEY_WRITE|KEY_QUERY_VALUE,
                        &hkFreelanceSymlinks) == ERROR_SUCCESS) {
--- 1333,1339 ----
  
  #if !defined(DJGPP)
      if (RegOpenKeyEx( HKEY_LOCAL_MACHINE, 
!                       AFSREG_CLT_OPENAFS_SUBKEY "\\Freelance\\Symlinks",
                        0,
                        KEY_READ|KEY_WRITE|KEY_QUERY_VALUE,
                        &hkFreelanceSymlinks) == ERROR_SUCCESS) {
Index: openafs/src/WINNT/afsd/cm_freelance.h
diff -c openafs/src/WINNT/afsd/cm_freelance.h:1.6.2.3 openafs/src/WINNT/afsd/cm_freelance.h:1.6.2.4
*** openafs/src/WINNT/afsd/cm_freelance.h:1.6.2.3	Tue Dec  7 01:01:41 2004
--- openafs/src/WINNT/afsd/cm_freelance.h	Fri Mar 11 01:58:42 2005
***************
*** 14,19 ****
--- 14,20 ----
  extern int cm_getLocalMountPointChange();
  extern int cm_reInitLocalMountPoints();
  extern void cm_InitFreelance();
+ extern void cm_FreelanceShutdown(void);
  extern int cm_noteLocalMountPointChange(void);
  extern long cm_FreelanceRemoveMount(char *toremove);
  extern long cm_FreelanceAddMount(char *filename, char *cellname, char *volume, int rw, cm_fid_t *fidp);
Index: openafs/src/WINNT/afsd/cm_ioctl.c
diff -c openafs/src/WINNT/afsd/cm_ioctl.c:1.33.2.9 openafs/src/WINNT/afsd/cm_ioctl.c:1.33.2.10
*** openafs/src/WINNT/afsd/cm_ioctl.c:1.33.2.9	Sun Jan 30 23:17:43 2005
--- openafs/src/WINNT/afsd/cm_ioctl.c	Fri Mar 11 01:58:42 2005
***************
*** 26,31 ****
--- 26,32 ----
  
  #include "afsd.h"
  #include "afsd_init.h"
+ #include <WINNT\afsreg.h>
  
  #include "smb.h"
  #include "cm_server.h"
***************
*** 71,81 ****
      lock_ObtainMutex(&scp->mx);
      scp->cbServerp = NULL;
      scp->cbExpires = 0;
      lock_ReleaseMutex(&scp->mx);
  
      lock_ReleaseWrite(&scp->bufCreateLock);
-     cm_dnlcPurgedp(scp);
- 
      return code;
  }
  
--- 72,83 ----
      lock_ObtainMutex(&scp->mx);
      scp->cbServerp = NULL;
      scp->cbExpires = 0;
+     cm_dnlcPurgedp(scp);
+     cm_dnlcPurgevp(scp);
+     cm_FreeAllACLEnts(scp);
      lock_ReleaseMutex(&scp->mx);
  
      lock_ReleaseWrite(&scp->bufCreateLock);
      return code;
  }
  
***************
*** 89,96 ****
      int hash;
  
      lock_ObtainWrite(&cm_scacheLock);
!     for (hash=0; hash < cm_hashTableSize; hash++) {
!         for (scp=cm_hashTablep[hash]; scp; scp=scp->nextp) {
              cm_HoldSCacheNoLock(scp);
              lock_ReleaseWrite(&cm_scacheLock);
              lock_ObtainMutex(&scp->mx);
--- 91,98 ----
      int hash;
  
      lock_ObtainWrite(&cm_scacheLock);
!     for (hash=0; hash < cm_data.hashTableSize; hash++) {
!         for (scp=cm_data.hashTablep[hash]; scp; scp=scp->nextp) {
              cm_HoldSCacheNoLock(scp);
              lock_ReleaseWrite(&cm_scacheLock);
              lock_ObtainMutex(&scp->mx);
***************
*** 179,185 ****
          shareFound = smb_FindShare(ioctlp->fidp->vcp, ioctlp->uidp, shareName, &sharePath);
          if ( shareFound ) {
              /* we found a sharename, therefore use the resulting path */
!             code = cm_NameI(cm_rootSCachep, ioctlp->prefix->data,
                               CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
                               userp, sharePath, reqp, &substRootp);
              free(sharePath);
--- 181,187 ----
          shareFound = smb_FindShare(ioctlp->fidp->vcp, ioctlp->uidp, shareName, &sharePath);
          if ( shareFound ) {
              /* we found a sharename, therefore use the resulting path */
!             code = cm_NameI(cm_data.rootSCachep, ioctlp->prefix->data,
                               CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
                               userp, sharePath, reqp, &substRootp);
              free(sharePath);
***************
*** 208,214 ****
              shareName[i] = 0;       /* terminate string */
  
  
!             code = cm_NameI(cm_rootSCachep, ioctlp->prefix->data,
                               CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
                               userp, shareName, reqp, &substRootp);
              if (code) 
--- 210,216 ----
              shareName[i] = 0;       /* terminate string */
  
  
!             code = cm_NameI(cm_data.rootSCachep, ioctlp->prefix->data,
                               CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
                               userp, shareName, reqp, &substRootp);
              if (code) 
***************
*** 220,226 ****
                  return code;
          }
      } else {
!         code = cm_NameI(cm_rootSCachep, ioctlp->prefix->data,
                           CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
                           userp, ioctlp->tidPathp, reqp, &substRootp);
          if (code) 
--- 222,228 ----
                  return code;
          }
      } else {
!         code = cm_NameI(cm_data.rootSCachep, ioctlp->prefix->data,
                           CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
                           userp, ioctlp->tidPathp, reqp, &substRootp);
          if (code) 
***************
*** 347,353 ****
          shareFound = smb_FindShare(ioctlp->fidp->vcp, ioctlp->uidp, shareName, &sharePath);
          if ( shareFound ) {
              /* we found a sharename, therefore use the resulting path */
!             code = cm_NameI(cm_rootSCachep, ioctlp->prefix->data,
                               CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
                               userp, sharePath, reqp, &substRootp);
              free(sharePath);
--- 349,355 ----
          shareFound = smb_FindShare(ioctlp->fidp->vcp, ioctlp->uidp, shareName, &sharePath);
          if ( shareFound ) {
              /* we found a sharename, therefore use the resulting path */
!             code = cm_NameI(cm_data.rootSCachep, ioctlp->prefix->data,
                               CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
                               userp, sharePath, reqp, &substRootp);
              free(sharePath);
***************
*** 373,379 ****
              shareName[i++] = '/';	/* add trailing slash */
              shareName[i] = 0;       /* terminate string */
  
!             code = cm_NameI(cm_rootSCachep, ioctlp->prefix->data,
                               CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
                               userp, shareName, reqp, &substRootp);
              if (code) return code;
--- 375,381 ----
              shareName[i++] = '/';	/* add trailing slash */
              shareName[i] = 0;       /* terminate string */
  
!             code = cm_NameI(cm_data.rootSCachep, ioctlp->prefix->data,
                               CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
                               userp, shareName, reqp, &substRootp);
              if (code) return code;
***************
*** 383,389 ****
              if (code) return code;
          }
      } else {
!         code = cm_NameI(cm_rootSCachep, ioctlp->prefix->data,
                          CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
                          userp, ioctlp->tidPathp, reqp, &substRootp);
          if (code) return code;
--- 385,391 ----
              if (code) return code;
          }
      } else {
!         code = cm_NameI(cm_data.rootSCachep, ioctlp->prefix->data,
                          CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW,
                          userp, ioctlp->tidPathp, reqp, &substRootp);
          if (code) return code;
***************
*** 472,478 ****
      {
          cellp = cm_FindCellByID(scp->fid.cell);
          if (cellp) {
!             StringCbCopyA(ioctlp->outDatap, 999999, cellp->namep);
              ioctlp->outDatap += strlen(ioctlp->outDatap) + 1;
              code = 0;
          }
--- 474,480 ----
      {
          cellp = cm_FindCellByID(scp->fid.cell);
          if (cellp) {
!             StringCbCopyA(ioctlp->outDatap, 999999, cellp->name);
              ioctlp->outDatap += strlen(ioctlp->outDatap) + 1;
              code = 0;
          }
***************
*** 545,552 ****
      cm_ReleaseSCache(scp);
  
      lock_ObtainWrite(&cm_scacheLock);
!     for (i=0; i<cm_hashTableSize; i++) {
!         for (scp = cm_hashTablep[i]; scp; scp = scp->nextp) {
              if (scp->fid.volume == volume) {
                  cm_HoldSCacheNoLock(scp);
                  lock_ReleaseWrite(&cm_scacheLock);
--- 547,554 ----
      cm_ReleaseSCache(scp);
  
      lock_ObtainWrite(&cm_scacheLock);
!     for (i=0; i<cm_data.hashTableSize; i++) {
!         for (scp = cm_data.hashTablep[i]; scp; scp = scp->nextp) {
              if (scp->fid.volume == volume) {
                  cm_HoldSCacheNoLock(scp);
                  lock_ReleaseWrite(&cm_scacheLock);
***************
*** 974,983 ****
  
      memcpy(&temp, ioctlp->inDatap, sizeof(temp));
      if (temp == 0) 
!         temp = buf_nOrigBuffers;
      else {
          /* temp is in 1K units, convert to # of buffers */
!         temp = temp / (buf_bufferSize / 1024);
      }       
  
      /* now adjust the cache size */
--- 976,985 ----
  
      memcpy(&temp, ioctlp->inDatap, sizeof(temp));
      if (temp == 0) 
!         temp = cm_data.buf_nOrigBuffers;
      else {
          /* temp is in 1K units, convert to # of buffers */
!         temp = temp / (cm_data.buf_blockSize / 1024);
      }       
  
      /* now adjust the cache size */
***************
*** 1031,1042 ****
      memset(&parms, 0, sizeof(parms));
  
      /* first we get, in 1K units, the cache size */
!     parms.parms[0] = buf_nbuffers * (buf_bufferSize / 1024);
  
      /* and then the actual # of buffers in use (not in the free list, I guess,
       * will be what we do).
       */
!     parms.parms[1] = (buf_nbuffers - buf_CountFreeList()) * (buf_bufferSize / 1024);
  
      memcpy(ioctlp->outDatap, &parms, sizeof(parms));
      ioctlp->outDatap += sizeof(parms);
--- 1033,1044 ----
      memset(&parms, 0, sizeof(parms));
  
      /* first we get, in 1K units, the cache size */
!     parms.parms[0] = cm_data.buf_nbuffers * (cm_data.buf_blockSize / 1024);
  
      /* and then the actual # of buffers in use (not in the free list, I guess,
       * will be what we do).
       */
!     parms.parms[1] = (cm_data.buf_nbuffers - buf_CountFreeList()) * (cm_data.buf_blockSize / 1024);
  
      memcpy(ioctlp->outDatap, &parms, sizeof(parms));
      ioctlp->outDatap += sizeof(parms);
***************
*** 1069,1075 ****
      }
  
      lock_ObtainRead(&cm_cellLock);
!     for (tcellp = cm_allCellsp; tcellp; tcellp = tcellp->nextp) {
          if (whichCell == 0) break;
          whichCell--;
      }
--- 1071,1077 ----
      }
  
      lock_ObtainRead(&cm_cellLock);
!     for (tcellp = cm_data.allCellsp; tcellp; tcellp = tcellp->nextp) {
          if (whichCell == 0) break;
          whichCell--;
      }
***************
*** 1097,1104 ****
          }
          lock_ReleaseRead(&cm_serverLock);
          cp = basep + max * sizeof(afs_int32);
!         StringCbCopyA(cp, 999999, tcellp->namep);
!         cp += strlen(tcellp->namep)+1;
          ioctlp->outDatap = cp;
      }
  
--- 1099,1106 ----
          }
          lock_ReleaseRead(&cm_serverLock);
          cp = basep + max * sizeof(afs_int32);
!         StringCbCopyA(cp, 999999, tcellp->name);
!         cp += strlen(tcellp->name)+1;
          ioctlp->outDatap = cp;
      }
  
***************
*** 1126,1143 ****
      cm_SkipIoctlPath(ioctlp);
      lock_ObtainWrite(&cm_cellLock);
    
!     for (cp = cm_allCellsp; cp; cp=cp->nextp) 
      {
          long code;
          /* delete all previous server lists - cm_FreeServerList will ask for write on cm_ServerLock*/
          cm_FreeServerList(&cp->vlServersp);
          cp->vlServersp = NULL;
!         code = cm_SearchCellFile(cp->namep, cp->namep, cm_AddCellProc, cp);
  #ifdef AFS_AFSDB_ENV
          if (code) {
              if (cm_dnsEnabled) {
                  int ttl;
!                 code = cm_SearchCellByDNS(cp->namep, cp->namep, &ttl, cm_AddCellProc, cp);
                  if ( code == 0 ) { /* got cell from DNS */
                      cp->flags |= CM_CELLFLAG_DNS;
                      cp->flags &= ~CM_CELLFLAG_VLSERVER_INVALID;
--- 1128,1145 ----
      cm_SkipIoctlPath(ioctlp);
      lock_ObtainWrite(&cm_cellLock);
    
!     for (cp = cm_data.allCellsp; cp; cp=cp->nextp) 
      {
          long code;
          /* delete all previous server lists - cm_FreeServerList will ask for write on cm_ServerLock*/
          cm_FreeServerList(&cp->vlServersp);
          cp->vlServersp = NULL;
!         code = cm_SearchCellFile(cp->name, cp->name, cm_AddCellProc, cp);
  #ifdef AFS_AFSDB_ENV
          if (code) {
              if (cm_dnsEnabled) {
                  int ttl;
!                 code = cm_SearchCellByDNS(cp->name, cp->name, &ttl, cm_AddCellProc, cp);
                  if ( code == 0 ) { /* got cell from DNS */
                      cp->flags |= CM_CELLFLAG_DNS;
                      cp->flags &= ~CM_CELLFLAG_VLSERVER_INVALID;
***************
*** 1169,1177 ****
  	if (cm_freelanceEnabled) {
  	    StringCbCopyA(ioctlp->outDatap, 999999, "Freelance.Local.Root");
  		ioctlp->outDatap += strlen(ioctlp->outDatap) +1;
! 	} else if (cm_rootCellp) {
  	    /* return the default cellname to the caller */
! 	    StringCbCopyA(ioctlp->outDatap, 999999, cm_rootCellp->namep);
  	    ioctlp->outDatap += strlen(ioctlp->outDatap) +1;
  	} else {
  	    /* if we don't know our default cell, return failure */
--- 1171,1179 ----
  	if (cm_freelanceEnabled) {
  	    StringCbCopyA(ioctlp->outDatap, 999999, "Freelance.Local.Root");
  		ioctlp->outDatap += strlen(ioctlp->outDatap) +1;
! 	} else if (cm_data.rootCellp) {
  	    /* return the default cellname to the caller */
! 	    StringCbCopyA(ioctlp->outDatap, 999999, cm_data.rootCellp->name);
  	    ioctlp->outDatap += strlen(ioctlp->outDatap) +1;
  	} else {
  	    /* if we don't know our default cell, return failure */
***************
*** 1352,1363 ****
          {
              tsp->ipRank = rank; /* no need to protect by mutex*/
  
!             if ( type == CM_SERVER_FILE) /* fileserver */
!             {
                  /* find volumes which might have RO copy 
                  /* on server and change the ordering of 
!                 ** their RO list */
!                     cm_ChangeRankVolume(tsp);
              }
              else 	
              {
--- 1354,1366 ----
          {
              tsp->ipRank = rank; /* no need to protect by mutex*/
  
!             if (type == CM_SERVER_FILE)
!             {   /* fileserver */
                  /* find volumes which might have RO copy 
                  /* on server and change the ordering of 
!                  * their RO list 
!                  */
!                 cm_ChangeRankVolume(tsp);
              }
              else 	
              {
***************
*** 1481,1487 ****
      }
  
  #ifdef AFS_FREELANCE_CLIENT
!     if (cm_freelanceEnabled && dscp == cm_rootSCachep) {
          /* we are adding the mount point to the root dir., so call
           * the freelance code to do the add. */
          osi_Log0(afsd_logp,"IoctlCreateMountPoint within Freelance root dir");
--- 1484,1490 ----
      }
  
  #ifdef AFS_FREELANCE_CLIENT
!     if (cm_freelanceEnabled && dscp == cm_data.rootSCachep) {
          /* we are adding the mount point to the root dir., so call
           * the freelance code to do the add. */
          osi_Log0(afsd_logp,"IoctlCreateMountPoint within Freelance root dir");
***************
*** 1530,1536 ****
      cp = ioctlp->inDatap;		/* contents of link */
  
  #ifdef AFS_FREELANCE_CLIENT
!     if (cm_freelanceEnabled && dscp == cm_rootSCachep) {
          /* we are adding the symlink to the root dir., so call
           * the freelance code to do the add. */
          if (cp[0] == cp[1] && cp[1] == '\\' && 
--- 1533,1539 ----
      cp = ioctlp->inDatap;		/* contents of link */
  
  #ifdef AFS_FREELANCE_CLIENT
!     if (cm_freelanceEnabled && dscp == cm_data.rootSCachep) {
          /* we are adding the symlink to the root dir., so call
           * the freelance code to do the add. */
          if (cp[0] == cp[1] && cp[1] == '\\' && 
***************
*** 1588,1594 ****
      if (code) return code;
  
      /* Check that it's a real symlink */
!     if (scp->fileType != CM_SCACHETYPE_SYMLINK){
          cm_ReleaseSCache(scp);
          return CM_ERROR_INVAL;
      }
--- 1591,1599 ----
      if (code) return code;
  
      /* Check that it's a real symlink */
!     if (scp->fileType != CM_SCACHETYPE_SYMLINK &&
!         scp->fileType != CM_SCACHETYPE_DFSLINK &&
!         scp->fileType != CM_SCACHETYPE_INVALID) {
          cm_ReleaseSCache(scp);
          return CM_ERROR_INVAL;
      }
***************
*** 1609,1615 ****
          if (newRootScp != NULL)
              cm_ReleaseSCache(newRootScp);
          code = 0;
!     }       
  
      return code;
  }
--- 1614,1632 ----
          if (newRootScp != NULL)
              cm_ReleaseSCache(newRootScp);
          code = 0;
!     } else if (code == CM_ERROR_PATH_NOT_COVERED && 
!                 scp->fileType == CM_SCACHETYPE_DFSLINK ||
!                code == CM_ERROR_NOSUCHPATH &&
!                 scp->fileType == CM_SCACHETYPE_INVALID) {
!         cp = ioctlp->outDatap;
!         StringCbCopyA(cp, 999999, spacep->data);
!         cp += strlen(cp) + 1;
!         ioctlp->outDatap = cp;
!         cm_FreeSpace(spacep);
!         if (newRootScp != NULL)
!             cm_ReleaseSCache(newRootScp);
!         code = 0;
!     }
  
      return code;
  }
***************
*** 1635,1641 ****
      if (code) return code;
  
      /* Check that it's a real symlink */
!     if (scp->fileType != CM_SCACHETYPE_SYMLINK)
          code = CM_ERROR_INVAL;
      cm_ReleaseSCache(scp);
      return code;
--- 1652,1660 ----
      if (code) return code;
  
      /* Check that it's a real symlink */
!     if (scp->fileType != CM_SCACHETYPE_SYMLINK &&
!         scp->fileType != CM_SCACHETYPE_DFSLINK &&
!         scp->fileType != CM_SCACHETYPE_INVALID)
          code = CM_ERROR_INVAL;
      cm_ReleaseSCache(scp);
      return code;
***************
*** 1657,1663 ****
      cp = ioctlp->inDatap;
  
  #ifdef AFS_FREELANCE_CLIENT
!     if (cm_freelanceEnabled && dscp == cm_rootSCachep) {
          /* we are adding the mount point to the root dir., so call
           * the freelance code to do the add. */
          osi_Log0(afsd_logp,"IoctlDeletelink from Freelance root dir");
--- 1676,1682 ----
      cp = ioctlp->inDatap;
  
  #ifdef AFS_FREELANCE_CLIENT
!     if (cm_freelanceEnabled && dscp == cm_data.rootSCachep) {
          /* we are adding the mount point to the root dir., so call
           * the freelance code to do the add. */
          osi_Log0(afsd_logp,"IoctlDeletelink from Freelance root dir");
***************
*** 1683,1689 ****
      }
  	
      /* now check that this is a real symlink */
!     if (scp->fileType != CM_SCACHETYPE_SYMLINK) {
          lock_ReleaseMutex(&scp->mx);
          cm_ReleaseSCache(scp);
          code = CM_ERROR_INVAL;
--- 1702,1710 ----
      }
  	
      /* now check that this is a real symlink */
!     if (scp->fileType != CM_SCACHETYPE_SYMLINK &&
!         scp->fileType != CM_SCACHETYPE_DFSLINK &&
!         scp->fileType != CM_SCACHETYPE_INVALID) {
          lock_ReleaseMutex(&scp->mx);
          cm_ReleaseSCache(scp);
          code = CM_ERROR_INVAL;
***************
*** 1785,1791 ****
              return CM_ERROR_INVAL;
  #endif /* !DJGPP */
      } else {
!         cellp = cm_rootCellp;
          osi_Log0(smb_logp,"cm_IoctlSetToken - no name specified");
      }
  
--- 1806,1812 ----
              return CM_ERROR_INVAL;
  #endif /* !DJGPP */
      } else {
!         cellp = cm_data.rootCellp;
          osi_Log0(smb_logp,"cm_IoctlSetToken - no name specified");
      }
  
***************
*** 1904,1910 ****
      cp += sizeof(temp);
  
      /* cell name */
!     StringCbCopyA(cp, 999999, ucellp->cellp->namep);
      cp += strlen(cp) + 1;
  
      /* user name */
--- 1925,1931 ----
      cp += sizeof(temp);
  
      /* cell name */
!     StringCbCopyA(cp, 999999, ucellp->cellp->name);
      cp += strlen(cp) + 1;
  
      /* user name */
***************
*** 1993,1999 ****
      cp += sizeof(temp);
  
      /* cell name */
!     StringCbCopyA(cp, 999999, ucellp->cellp->namep);
      cp += strlen(cp) + 1;
  
      /* user name */
--- 2014,2020 ----
      cp += sizeof(temp);
  
      /* cell name */
!     StringCbCopyA(cp, 999999, ucellp->cellp->name);
      cp += strlen(cp) + 1;
  
      /* user name */
***************
*** 2098,2104 ****
       */
  
      RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                     "SOFTWARE\\OpenAFS\\Client\\Submounts",
                      0, 
                      "AFS", 
                      REG_OPTION_NON_VOLATILE,
--- 2119,2125 ----
       */
  
      RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                     AFSREG_CLT_OPENAFS_SUBKEY "\\Submounts",
                      0, 
                      "AFS", 
                      REG_OPTION_NON_VOLATILE,
***************
*** 2286,2294 ****
   * functions to dump contents of various structures. 
   * In debug build (linked with crt debug library) will dump allocated but not freed memory
   */
! extern int cm_DumpSCache(FILE *outputFile, char *cookie);
! extern int cm_DumpBufHashTable(FILE *outputFile, char *cookie);
! extern int smb_DumpVCP(FILE *outputFile, char *cookie);
  
  long cm_IoctlMemoryDump(struct smb_ioctl *ioctlp, struct cm_user *userp)
  {
--- 2307,2315 ----
   * functions to dump contents of various structures. 
   * In debug build (linked with crt debug library) will dump allocated but not freed memory
   */
! extern int cm_DumpSCache(FILE *outputFile, char *cookie, int lock);
! extern int cm_DumpBufHashTable(FILE *outputFile, char *cookie, int lock);
! extern int smb_DumpVCP(FILE *outputFile, char *cookie, int lock);
  
  long cm_IoctlMemoryDump(struct smb_ioctl *ioctlp, struct cm_user *userp)
  {
***************
*** 2346,2354 ****
  #endif
    
      /* dump all interesting data */
!     cm_DumpSCache(hLogFile, cookie);
!     cm_DumpBufHashTable(hLogFile, cookie);
!     smb_DumpVCP(hLogFile, cookie);
  
      CloseHandle(hLogFile);                          
    
--- 2367,2375 ----
  #endif
    
      /* dump all interesting data */
!     cm_DumpSCache(hLogFile, cookie, 1);
!     cm_DumpBufHashTable(hLogFile, cookie, 1);
!     smb_DumpVCP(hLogFile, cookie, 1);
  
      CloseHandle(hLogFile);                          
    
Index: openafs/src/WINNT/afsd/cm_memmap.c
diff -c /dev/null openafs/src/WINNT/afsd/cm_memmap.c:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:19 2005
--- openafs/src/WINNT/afsd/cm_memmap.c	Fri Mar 11 02:22:40 2005
***************
*** 0 ****
--- 1,677 ----
+ #include <windows.h>
+ #include "afsd.h"
+ #include "cm_memmap.h"
+ 
+ extern void afsi_log(char *pattern, ...);
+ extern DWORD cm_ValidateCache;
+ 
+ DWORD
+ GranularityAdjustment(DWORD size)
+ {
+     SYSTEM_INFO sysInfo;
+     static DWORD dwGranularity = 0;
+ 
+     if ( !dwGranularity ) {
+         GetSystemInfo(&sysInfo);
+         afsi_log("Granularity - %lX", sysInfo.dwAllocationGranularity);
+         dwGranularity = sysInfo.dwAllocationGranularity;
+     }
+ 
+     size = (size + (dwGranularity - 1)) & ~(dwGranularity - 1);
+     return size;
+ }
+ 
+ DWORD 
+ ComputeSizeOfConfigData(void)
+ {
+     DWORD size;
+     size = sizeof(cm_config_data_t);
+     return size;
+ }
+ 
+ DWORD
+ ComputeSizeOfVolumes(DWORD maxvols)
+ {
+     DWORD size;
+     size = maxvols * sizeof(cm_volume_t);
+     return size;
+ }
+ 
+ DWORD
+ ComputeSizeOfCells(DWORD maxcells)
+ {
+     DWORD size;
+     size = maxcells * sizeof(cm_cell_t);
+     return size;
+ }
+ 
+ DWORD 
+ ComputeSizeOfACLCache(DWORD stats)
+ {
+     DWORD size;
+     size = 2 * (stats + 10) * sizeof(cm_aclent_t);
+     return size;
+ }
+ 
+ DWORD 
+ ComputeSizeOfSCache(DWORD stats)
+ {
+     DWORD size;
+     size = (stats + 10) * sizeof(cm_scache_t);
+     return size;
+ }
+ 
+ DWORD 
+ ComputeSizeOfSCacheHT(DWORD stats)
+ {
+     DWORD size;
+     size = (stats + 10) / 2 * sizeof(cm_scache_t *);;
+     return size;
+ }
+ 
+ DWORD 
+ ComputeSizeOfDNLCache(void)
+ {
+     DWORD size;
+     size = NHSIZE * sizeof(cm_nc_t *) + NCSIZE * sizeof(cm_nc_t);
+     return size;
+ }
+ 
+ DWORD 
+ ComputeSizeOfDataBuffers(DWORD cacheBlocks, DWORD blockSize)
+ {
+     DWORD size;
+     size = cacheBlocks * blockSize;
+     return size;
+ }
+ 
+ DWORD 
+ ComputeSizeOfDataHT(void)
+ {
+     DWORD size;
+     size = osi_PrimeLessThan(CM_BUF_HASHSIZE) * sizeof(cm_buf_t *);
+     return size;
+ }
+ 
+ DWORD 
+ ComputeSizeOfDataHeaders(DWORD cacheBlocks)
+ {
+     DWORD size;
+     size = cacheBlocks * sizeof(cm_buf_t);
+     return size;
+ }
+ 
+ DWORD
+ ComputeSizeOfMappingFile(DWORD stats, DWORD chunkSize, DWORD cacheBlocks, DWORD blockSize)
+ {
+     DWORD size;
+     
+     size       =  ComputeSizeOfConfigData()
+                +  ComputeSizeOfVolumes(stats/2) 
+                +  ComputeSizeOfCells(stats/4) 
+                +  ComputeSizeOfACLCache(stats)
+                +  ComputeSizeOfSCache(stats)
+                +  ComputeSizeOfSCacheHT(stats)
+                +  ComputeSizeOfDNLCache()
+                +  ComputeSizeOfDataBuffers(cacheBlocks, blockSize) 
+                +  2 * ComputeSizeOfDataHT() 
+                +  ComputeSizeOfDataHeaders(cacheBlocks);
+     return size;    
+ }
+ 
+ /* Create a security attribute structure suitable for use when the cache file
+  * is created.  What we mainly want is that only the administrator should be
+  * able to do anything with the file.  We create an ACL with only one entry,
+  * an entry that grants all rights to the administrator.
+  */
+ PSECURITY_ATTRIBUTES CreateCacheFileSA()
+ {
+     PSECURITY_ATTRIBUTES psa;
+     PSECURITY_DESCRIPTOR psd;
+     SID_IDENTIFIER_AUTHORITY authority = SECURITY_NT_AUTHORITY;
+     PSID AdminSID;
+     DWORD AdminSIDlength;
+     PACL AdminOnlyACL;
+     DWORD ACLlength;
+ 
+     /* Get Administrator SID */
+     AllocateAndInitializeSid(&authority, 2,
+                               SECURITY_BUILTIN_DOMAIN_RID,
+                               DOMAIN_ALIAS_RID_ADMINS,
+                               0, 0, 0, 0, 0, 0,
+                               &AdminSID);
+ 
+     /* Create Administrator-only ACL */
+     AdminSIDlength = GetLengthSid(AdminSID);
+     ACLlength = sizeof(ACL) + sizeof(ACCESS_ALLOWED_ACE)
+         + AdminSIDlength - sizeof(DWORD);
+     AdminOnlyACL = GlobalAlloc(GMEM_FIXED, ACLlength);
+     InitializeAcl(AdminOnlyACL, ACLlength, ACL_REVISION);
+     AddAccessAllowedAce(AdminOnlyACL, ACL_REVISION,
+                          STANDARD_RIGHTS_ALL | SPECIFIC_RIGHTS_ALL,
+                          AdminSID);
+ 
+     /* Create security descriptor */
+     psd = GlobalAlloc(GMEM_FIXED, sizeof(SECURITY_DESCRIPTOR));
+     InitializeSecurityDescriptor(psd, SECURITY_DESCRIPTOR_REVISION);
+     SetSecurityDescriptorDacl(psd, TRUE, AdminOnlyACL, FALSE);
+ 
+     /* Create security attributes structure */
+     psa = GlobalAlloc(GMEM_FIXED, sizeof(SECURITY_ATTRIBUTES));
+     psa->nLength = sizeof(SECURITY_ATTRIBUTES);
+     psa->lpSecurityDescriptor = psd;
+     psa->bInheritHandle = TRUE;
+ 
+     return psa;
+ }       
+ 
+ 
+ /* Free a security attribute structure created by CreateCacheFileSA() */
+ VOID FreeCacheFileSA(PSECURITY_ATTRIBUTES psa)
+ {
+     BOOL b1, b2;
+     PACL pAcl;
+ 
+     GetSecurityDescriptorDacl(psa->lpSecurityDescriptor, &b1, &pAcl, &b2);
+     GlobalFree(pAcl);
+     GlobalFree(psa->lpSecurityDescriptor);
+     GlobalFree(psa);
+ }       
+ 
+ static HANDLE hMemoryMappedFile = NULL;
+ 
+ int
+ cm_IsCacheValid(void)
+ {
+     int rc = 1;
+ 
+     afsi_log("Validating Cache Contents");
+ 
+     if (cm_ValidateACLCache()) {
+         afsi_log("ACL Cache validation failure");
+         rc = 0;
+     } else if (cm_ValidateDCache()) {
+         afsi_log("Data Cache validation failure");
+         rc = 0;
+     } else if (cm_ValidateVolume()) {
+         afsi_log("Volume validation failure");
+         rc = 0;
+     } else if (cm_ValidateCell()) {
+         afsi_log("Cell validation failure");
+         rc = 0;
+     } else if (cm_ValidateSCache()) {
+         afsi_log("Stat Cache validation failure");
+         rc = 0;
+     }
+ 
+     return rc;
+ }
+ 
+ int
+ cm_ShutdownMappedMemory(void)
+ {
+     cm_config_data_t * config_data_p = (cm_config_data_t *)cm_data.baseAddress;
+     int dirty = 0;
+ 
+     cm_ShutdownDCache();
+     cm_ShutdownSCache();
+     cm_ShutdownACLCache();
+     cm_ShutdownCell();
+     cm_ShutdownVolume();
+ 
+     if (cm_ValidateCache == 2)
+         dirty = !cm_IsCacheValid();
+ 
+     *config_data_p = cm_data;
+     config_data_p->dirty = dirty;
+     UnmapViewOfFile(config_data_p);
+     CloseHandle(hMemoryMappedFile);
+     hMemoryMappedFile = NULL;
+ 
+     afsi_log("Memory Mapped File has been closed");
+ }
+ 
+ int
+ cm_ValidateMappedMemory(char * cachePath)
+ {
+     HANDLE hf = INVALID_HANDLE_VALUE, hm;
+     PSECURITY_ATTRIBUTES psa;
+     BY_HANDLE_FILE_INFORMATION fileInfo;
+     int newFile = 1;
+     DWORD mappingSize;
+     char * baseAddress = NULL;
+     cm_config_data_t * config_data_p;
+         
+     psa = CreateCacheFileSA();
+     hf = CreateFile( cachePath,
+                      GENERIC_READ | GENERIC_WRITE,
+                      FILE_SHARE_READ | FILE_SHARE_WRITE,
+                      psa,
+                      OPEN_EXISTING,
+                      FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM | 
+                      FILE_ATTRIBUTE_NOT_CONTENT_INDEXED | FILE_FLAG_RANDOM_ACCESS,
+                      NULL);
+     FreeCacheFileSA(psa);
+ 
+     if (hf == INVALID_HANDLE_VALUE) {
+         fprintf(stderr, "Error creating cache file \"%s\" error %d\n", 
+                  cachePath, GetLastError());
+         return CM_ERROR_INVAL;
+     }
+ 
+     /* The file is being re-used; check to see if the existing data can be reused */
+     if ( !GetFileInformationByHandle(hf, &fileInfo) ) {
+         CloseHandle(hf);
+         fprintf(stderr, "Unable to obtain File Information\n");
+         return CM_ERROR_INVAL;
+     }
+ 
+     afsi_log("Existing File Size: %08X:%08X",
+               fileInfo.nFileSizeHigh,
+               fileInfo.nFileSizeLow);
+             
+     hm = CreateFileMapping( hf,
+                             NULL,
+                             PAGE_READWRITE,
+                             0, 
+                             sizeof(cm_config_data_t),
+                             NULL);
+     if (hm == NULL) {
+         if (GetLastError() == ERROR_DISK_FULL) {
+             fprintf(stderr, "Error creating file mapping for \"%s\": disk full (%lX)\n",
+                      cachePath, sizeof(cm_config_data_t));
+ 
+             hm = CreateFileMapping( hf,
+                                     NULL,
+                                     PAGE_READWRITE,
+                                     0, 
+                                     fileInfo.nFileSizeLow,
+                                     NULL);
+             if (hm == NULL) {
+                 if (GetLastError() == ERROR_DISK_FULL) {
+                     CloseHandle(hf);
+                     return CM_ERROR_TOOMANYBUFS;
+                 } else {
+                     fprintf(stderr,"Error creating file mapping for \"%s\": %d\n",
+                               cachePath, GetLastError());
+                     CloseHandle(hf);
+                     return CM_ERROR_INVAL;
+                 }
+             } else {
+                 fprintf(stderr, "Retry with file size (%lX) succeeds", 
+                          fileInfo.nFileSizeLow);
+             }
+         } else {
+             afsi_log("Error creating file mapping for \"%s\": %d",
+                       cachePath, GetLastError());
+             CloseHandle(hf);
+             return CM_ERROR_INVAL;
+         }
+     }
+ 
+     config_data_p = MapViewOfFile( hm,
+                                    FILE_MAP_READ,
+                                    0, 0,   
+                                    sizeof(cm_config_data_t));
+     if ( config_data_p == NULL ) {
+         fprintf(stderr, "Unable to MapViewOfFile\n");
+         if (hf != INVALID_HANDLE_VALUE)
+             CloseHandle(hf);
+         CloseHandle(hm);
+         return CM_ERROR_INVAL;
+     }
+ 
+     if ( config_data_p->dirty ) {
+         fprintf(stderr, "Previous session terminated prematurely\n");
+         UnmapViewOfFile(config_data_p);
+         CloseHandle(hm);               
+         CloseHandle(hf);
+         return CM_ERROR_INVAL;
+     }
+ 
+     mappingSize = config_data_p->bufferSize;
+     baseAddress = config_data_p->baseAddress;
+     UnmapViewOfFile(config_data_p);
+     CloseHandle(hm);
+ 
+     hm = CreateFileMapping( hf,
+                             NULL,
+                             PAGE_READWRITE,
+                             0, mappingSize,
+                             NULL);
+     if (hm == NULL) {
+         if (GetLastError() == ERROR_DISK_FULL) {
+             fprintf(stderr, "Error creating file mapping for \"%s\": disk full [2]\n",
+                   cachePath);
+             CloseHandle(hf);
+             return CM_ERROR_TOOMANYBUFS;
+         }
+         fprintf(stderr, "Error creating file mapping for \"%s\": %d\n",
+                 cachePath, GetLastError());
+         CloseHandle(hf);
+         return CM_ERROR_INVAL;
+     }
+     
+     baseAddress = MapViewOfFileEx( hm,
+                                    FILE_MAP_ALL_ACCESS,
+                                    0, 0,   
+                                    mappingSize,
+                                    baseAddress );
+     if (baseAddress == NULL) {
+         fprintf(stderr, "Error mapping view of file: %d\n", GetLastError());
+         baseAddress = MapViewOfFile( hm,
+                                      FILE_MAP_ALL_ACCESS,
+                                      0, 0,   
+                                      mappingSize );
+         if (baseAddress == NULL) {
+             CloseHandle(hm);
+             if (hf != INVALID_HANDLE_VALUE)
+                 CloseHandle(hf);
+             return CM_ERROR_INVAL;
+         }
+         fprintf(stderr, "Unable to re-load cache file at base address\n");
+         CloseHandle(hm);
+         if (hf != INVALID_HANDLE_VALUE)
+             CloseHandle(hf);
+         return CM_ERROR_INVAL;
+     }
+     CloseHandle(hm);
+ 
+     config_data_p = (cm_config_data_t *) baseAddress;
+ 
+     fprintf(stderr,"AFS Cache data:\n");
+     fprintf(stderr,"  Base Address   = %lX\n",baseAddress);
+     fprintf(stderr,"  stats          = %d\n", config_data_p->stats);
+     fprintf(stderr,"  chunkSize      = %d\n", config_data_p->chunkSize);
+     fprintf(stderr,"  blockSize      = %d\n", config_data_p->blockSize);
+     fprintf(stderr,"  bufferSize     = %d\n", config_data_p->bufferSize);
+     fprintf(stderr,"  cacheType      = %d\n", config_data_p->cacheType);
+     fprintf(stderr,"  currentVolumes = %d\n", config_data_p->currentVolumes);
+     fprintf(stderr,"  maxVolumes     = %d\n", config_data_p->maxVolumes);
+     fprintf(stderr,"  currentCells   = %d\n", config_data_p->currentCells);
+     fprintf(stderr,"  maxCells       = %d\n", config_data_p->maxCells);
+     fprintf(stderr,"  hashTableSize  = %d\n", config_data_p->hashTableSize );
+     fprintf(stderr,"  currentSCaches = %d\n", config_data_p->currentSCaches);
+     fprintf(stderr,"  maxSCaches     = %d\n", config_data_p->maxSCaches);
+     cm_data = *config_data_p;      
+ 
+     // perform validation of persisted data structures
+     // if there is a failure, start from scratch
+     if (!cm_IsCacheValid()) {
+         fprintf(stderr,"Cache file fails validation test\n");
+         UnmapViewOfFile(config_data_p);
+         CloseHandle(hm);
+         return CM_ERROR_INVAL;
+     }
+ 
+     fprintf(stderr,"Cache passes validation test\n");
+     UnmapViewOfFile(config_data_p);
+     CloseHandle(hm);
+     return 0;
+ }
+ 
+ int
+ cm_InitMappedMemory(DWORD virtualCache, char * cachePath, DWORD stats, DWORD chunkSize, DWORD cacheBlocks)
+ {
+     HANDLE hf = INVALID_HANDLE_VALUE, hm;
+     PSECURITY_ATTRIBUTES psa;
+     int newFile = 1;
+     DWORD mappingSize;
+     char * baseAddress = NULL;
+     cm_config_data_t * config_data_p;
+     char * p;
+ 
+     mappingSize = ComputeSizeOfMappingFile(stats, chunkSize, cacheBlocks, CM_CONFIGDEFAULT_BLOCKSIZE);
+ 
+     if ( !virtualCache ) {
+         psa = CreateCacheFileSA();
+         hf = CreateFile( cachePath,
+                          GENERIC_READ | GENERIC_WRITE,
+                          FILE_SHARE_READ | FILE_SHARE_WRITE,
+                          psa,
+                          OPEN_ALWAYS,
+                          FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM | 
+                          FILE_ATTRIBUTE_NOT_CONTENT_INDEXED | FILE_FLAG_RANDOM_ACCESS,
+                          NULL);
+         FreeCacheFileSA(psa);
+ 
+         if (hf == INVALID_HANDLE_VALUE) {
+             afsi_log("Error creating cache file \"%s\" error %d", 
+                       cachePath, GetLastError());
+             return CM_ERROR_INVAL;
+         }
+         
+         if ( GetLastError() == ERROR_ALREADY_EXISTS ) {
+             BY_HANDLE_FILE_INFORMATION fileInfo;
+ 
+             /* The file is being re-used; check to see if the existing data can be reused */
+             afsi_log("Cache File \"%s\" already exists", cachePath);
+ 
+             if ( GetFileInformationByHandle(hf, &fileInfo) ) {
+                 afsi_log("Existing File Size: %08X:%08X",
+                           fileInfo.nFileSizeHigh,
+                           fileInfo.nFileSizeLow);
+                 if (fileInfo.nFileSizeLow > GranularityAdjustment(mappingSize)) {
+                     psa = CreateCacheFileSA();
+                     hf = CreateFile( cachePath,
+                                      GENERIC_READ | GENERIC_WRITE,
+                                      FILE_SHARE_READ | FILE_SHARE_WRITE,
+                                      psa,
+                                      TRUNCATE_EXISTING,
+                                      FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM | 
+                                      FILE_ATTRIBUTE_NOT_CONTENT_INDEXED | FILE_FLAG_RANDOM_ACCESS,
+                                      NULL);
+                     FreeCacheFileSA(psa);
+ 
+                     if (hf == INVALID_HANDLE_VALUE) {
+                         afsi_log("Error creating cache file \"%s\" error %d", 
+                                   cachePath, GetLastError());
+                         return CM_ERROR_INVAL;
+                     }
+ 
+                     GetFileInformationByHandle(hf, &fileInfo);
+                     afsi_log("     New File Size: %08X:%08X",
+                               fileInfo.nFileSizeHigh,
+                               fileInfo.nFileSizeLow);
+                 }
+ 
+             }
+ 
+             hm = CreateFileMapping( hf,
+                                     NULL,
+                                     PAGE_READWRITE,
+                                     0, 
+                                     sizeof(cm_config_data_t),
+                                     NULL);
+             if (hm == NULL) {
+                 if (GetLastError() == ERROR_DISK_FULL) {
+                     afsi_log("Error creating file mapping for \"%s\": disk full (%lX)",
+                               cachePath, sizeof(cm_config_data_t));
+ 
+                     hm = CreateFileMapping( hf,
+                                             NULL,
+                                             PAGE_READWRITE,
+                                             0, 
+                                             mappingSize,
+                                             NULL);
+                     if (hm == NULL) {
+                         if (GetLastError() == ERROR_DISK_FULL) {
+                             CloseHandle(hf);
+                             return CM_ERROR_TOOMANYBUFS;
+                         } else {
+                             afsi_log("Error creating file mapping for \"%s\": %d",
+                                       cachePath, GetLastError());
+                             CloseHandle(hf);
+                             return CM_ERROR_INVAL;
+                         }
+                     } else {
+                         afsi_log("Retry with mapping size (%lX) succeeds", mappingSize);
+                     }
+                 } else {
+                     afsi_log("Error creating file mapping for \"%s\": %d",
+                               cachePath, GetLastError());
+                     CloseHandle(hf);
+                     return CM_ERROR_INVAL;
+                 }
+             }
+ 
+             config_data_p = MapViewOfFile( hm,
+                                            FILE_MAP_READ,
+                                            0, 0,   
+                                            sizeof(cm_config_data_t));
+             if ( config_data_p == NULL ) {
+                 if (hf != INVALID_HANDLE_VALUE)
+                     CloseHandle(hf);
+                 CloseHandle(hm);
+                 return CM_ERROR_INVAL;
+             }
+ 
+             if ( config_data_p->size == sizeof(cm_config_data_t) &&
+                  config_data_p->magic == CM_CONFIG_DATA_MAGIC &&
+                  config_data_p->stats == stats &&
+                  config_data_p->chunkSize == chunkSize &&
+                  config_data_p->buf_nbuffers == cacheBlocks &&
+                  config_data_p->blockSize == CM_CONFIGDEFAULT_BLOCKSIZE &&
+                  config_data_p->bufferSize == mappingSize)
+             {
+                 if ( config_data_p->dirty ) {
+                     afsi_log("Previous session terminated prematurely");
+                 } else {
+                     baseAddress = config_data_p->baseAddress;
+                     newFile = 0;
+                 }
+             } else {
+                 afsi_log("Configuration changed or Not a persistent cache file");
+             }
+             UnmapViewOfFile(config_data_p);
+             CloseHandle(hm);
+         }
+     }
+ 
+     hm = CreateFileMapping( hf,
+                             NULL,
+                             PAGE_READWRITE,
+                             0, mappingSize,
+                             NULL);
+     if (hm == NULL) {
+         if (GetLastError() == ERROR_DISK_FULL) {
+             afsi_log("Error creating file mapping for \"%s\": disk full [2]",
+                       cachePath);
+             return CM_ERROR_TOOMANYBUFS;
+         }
+         afsi_log("Error creating file mapping for \"%s\": %d",
+                   cachePath, GetLastError());
+         return CM_ERROR_INVAL;
+     }
+     baseAddress = MapViewOfFileEx( hm,
+                                    FILE_MAP_ALL_ACCESS,
+                                    0, 0,   
+                                    mappingSize,
+                                    baseAddress );
+     if (baseAddress == NULL) {
+         afsi_log("Error mapping view of file: %d", GetLastError());
+         baseAddress = MapViewOfFile( hm,
+                                      FILE_MAP_ALL_ACCESS,
+                                      0, 0,   
+                                      mappingSize );
+         if (baseAddress == NULL) {
+             if (hf != INVALID_HANDLE_VALUE)
+                 CloseHandle(hf);
+             CloseHandle(hm);
+             return CM_ERROR_INVAL;
+         }
+         newFile = 1;
+     }
+     CloseHandle(hm);
+ 
+     config_data_p = (cm_config_data_t *) baseAddress;
+ 
+     if (!newFile) {
+         afsi_log("Reusing existing AFS Cache data: Base Address = %lX",baseAddress);
+         cm_data = *config_data_p;      
+ 
+         // perform validation of persisted data structures
+         // if there is a failure, start from scratch
+         if (cm_ValidateCache && !cm_IsCacheValid()) {
+             newFile = 1;
+         }
+     }
+ 
+     if ( newFile ) {
+         afsi_log("Building AFS Cache from scratch");
+         cm_data.size = sizeof(cm_config_data_t);
+         cm_data.magic = CM_CONFIG_DATA_MAGIC;
+         cm_data.baseAddress = baseAddress;
+         cm_data.stats = stats;
+         cm_data.chunkSize = chunkSize;
+         cm_data.blockSize = CM_CONFIGDEFAULT_BLOCKSIZE;
+         cm_data.bufferSize = mappingSize;
+         cm_data.hashTableSize = osi_PrimeLessThan(stats / 2 + 1);
+         if (virtualCache) {
+             cm_data.cacheType = CM_BUF_CACHETYPE_VIRTUAL;
+         } else {
+             cm_data.cacheType = CM_BUF_CACHETYPE_FILE;
+         }
+ 
+         cm_data.buf_nbuffers = cacheBlocks;
+         cm_data.buf_nOrigBuffers = 0;
+         cm_data.buf_blockSize = CM_BUF_BLOCKSIZE;
+         cm_data.buf_hashSize = CM_BUF_HASHSIZE;
+ 
+         cm_data.mountRootGen = time(NULL);
+ 
+         baseAddress += ComputeSizeOfConfigData();
+         cm_data.volumeBaseAddress = (cm_volume_t *) baseAddress;
+         baseAddress += ComputeSizeOfVolumes(stats/2);
+         cm_data.cellBaseAddress = (cm_cell_t *) baseAddress;
+         baseAddress += ComputeSizeOfCells(stats/4);
+         cm_data.aclBaseAddress = (cm_aclent_t *) baseAddress;
+         baseAddress += ComputeSizeOfACLCache(stats);
+         cm_data.scacheBaseAddress = (cm_scache_t *) baseAddress;
+         baseAddress += ComputeSizeOfSCache(stats);
+         cm_data.hashTablep = (cm_scache_t **) baseAddress;
+         baseAddress += ComputeSizeOfSCacheHT(stats);
+         cm_data.dnlcBaseAddress = (cm_nc_t *) baseAddress;
+         baseAddress += ComputeSizeOfDNLCache();
+         cm_data.buf_hashTablepp = (cm_buf_t **) baseAddress;
+         baseAddress += ComputeSizeOfDataHT();
+         cm_data.buf_fileHashTablepp = (cm_buf_t **) baseAddress;
+         baseAddress += ComputeSizeOfDataHT();
+         cm_data.bufHeaderBaseAddress = (cm_buf_t *) baseAddress;
+         baseAddress += ComputeSizeOfDataHeaders(cacheBlocks);
+         cm_data.bufDataBaseAddress = (char *) baseAddress;
+         baseAddress += ComputeSizeOfDataBuffers(cacheBlocks, CM_CONFIGDEFAULT_BLOCKSIZE);
+         cm_data.bufEndOfData = (char *) baseAddress;
+ 
+         cm_data.fakeDirVersion = 0x8;
+ 
+         UuidCreate((UUID *)&cm_data.Uuid);
+     }
+ 
+     UuidToString((UUID *)&cm_data.Uuid, &p);
+     afsi_log("Initializing Uuid to %s",p);
+     RpcStringFree(&p);
+ 
+     afsi_log("Initializing Volume Data");
+     cm_InitVolume(newFile, stats/2);
+ 
+     afsi_log("Initializing Cell Data");
+     cm_InitCell(newFile, stats/4);
+ 
+     afsi_log("Initializing ACL Data");
+     cm_InitACLCache(newFile, 2*stats);
+ 
+     afsi_log("Initializing Stat Data");
+     cm_InitSCache(newFile, stats);
+         
+     afsi_log("Initializing Data Buffers");
+     cm_InitDCache(newFile, 0, cacheBlocks);
+ 
+     *config_data_p = cm_data;
+     config_data_p->dirty = 1;
+     
+     hMemoryMappedFile = hf;
+     afsi_log("Cache Initialization Complete");
+     return 0;
+ }
+ 
Index: openafs/src/WINNT/afsd/cm_memmap.h
diff -c /dev/null openafs/src/WINNT/afsd/cm_memmap.h:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:19 2005
--- openafs/src/WINNT/afsd/cm_memmap.h	Fri Mar 11 02:22:40 2005
***************
*** 0 ****
--- 1,102 ----
+ /*
+  * Copyright 2004, Secure Endpoints Inc.
+  * All Rights Reserved.
+  * 
+  * This software has been released under the terms of the IBM Public
+  * License.  For details, see the LICENSE file in the top-level source
+  * directory or online at http://www.openafs.org/dl/license10.html
+  */
+ 
+ #ifndef CM_MEMMAP_H
+ #define CM_MEMMAP_H 1
+ 
+ #define CM_CONFIG_DATA_MAGIC            ('A' | 'F'<<8 | 'S'<<16 | 'D'<<24)
+ 
+ typedef struct cm_config_data {
+     long                size;
+     long                magic;
+     CHAR *              baseAddress;
+ 
+     long                stats;
+     long                chunkSize;
+     long                blockSize;
+     long                bufferSize;
+     long                cacheType;
+     long                dirty;
+ 
+     cm_volume_t *       volumeBaseAddress;
+     cm_cell_t   *       cellBaseAddress; 
+     cm_aclent_t *       aclBaseAddress;
+     cm_scache_t *       scacheBaseAddress;
+     cm_nc_t     *       dnlcBaseAddress;
+     cm_buf_t    *       bufHeaderBaseAddress;
+     char *              bufDataBaseAddress;
+     char *              bufEndOfData;
+ 
+     cm_volume_t	*       allVolumesp;
+     long                currentVolumes;
+     long                maxVolumes;
+ 
+     cm_cell_t	*       allCellsp;
+     long                currentCells;
+     long                maxCells;
+ 
+     cm_volume_t	*       rootVolumep;
+     cm_cell_t   *       rootCellp;
+     cm_fid_t            rootFid;
+     cm_scache_t *       rootSCachep;
+     cm_scache_t         fakeSCache;
+     afs_uint32          fakeDirVersion;
+ 
+     cm_aclent_t *       aclLRUp;
+     cm_aclent_t	*       aclLRUEndp;
+ 
+     cm_scache_t	**      hashTablep;
+     long		hashTableSize;
+ 
+     long		currentSCaches;
+     long                maxSCaches;
+     cm_scache_t *       scacheLRUFirstp;
+     cm_scache_t *       scacheLRULastp;
+ 
+     cm_nc_t 	*       ncfreelist;
+     cm_nc_t 	*       nameCache;
+     cm_nc_t 	**      nameHash; 
+ 
+     cm_buf_t	*       buf_freeListp;
+     cm_buf_t    *       buf_freeListEndp;
+     cm_buf_t	**      buf_hashTablepp;
+     cm_buf_t	**      buf_fileHashTablepp;
+     cm_buf_t	*       buf_allp;
+     long		buf_nbuffers;
+     long		buf_blockSize;
+     long		buf_hashSize;
+     long		buf_nOrigBuffers;
+     long                buf_reservedBufs;
+     long                buf_maxReservedBufs;
+     long                buf_reserveWaiting;
+ 
+     time_t              mountRootGen;
+     afsUUID             Uuid;
+ } cm_config_data_t;
+ 
+ extern cm_config_data_t cm_data;
+ 
+ DWORD GranularityAdjustment(DWORD size);
+ DWORD ComputeSizeOfConfigData(void);
+ DWORD ComputeSizeOfVolumes(DWORD maxvols);
+ DWORD ComputeSizeOfCells(DWORD maxcells);
+ DWORD ComputeSizeOfACLCache(DWORD stats);
+ DWORD ComputeSizeOfSCache(DWORD stats);
+ DWORD ComputeSizeOfSCacheHT(DWORD stats);
+ DWORD ComputeSizeOfDNLCache(void);
+ DWORD ComputeSizeOfDataBuffers(DWORD cacheBlocks, DWORD blockSize);
+ DWORD ComputeSizeOfDataHT(void);
+ DWORD ComputeSizeOfDataHeaders(DWORD cacheBlocks);
+ DWORD ComputeSizeOfMappingFile(DWORD stats, DWORD chunkSize, DWORD cacheBlocks, DWORD blockSize);
+ PSECURITY_ATTRIBUTES CreateCacheFileSA();
+ VOID  FreeCacheFileSA(PSECURITY_ATTRIBUTES psa);
+ int   cm_ShutdownMappedMemory(void);
+ int   cm_ValidateMappedMemory(char * cachePath);
+ int   cm_InitMappedMemory(DWORD virtualCache, char * cachePath, DWORD stats, DWORD chunkSize, DWORD cacheBlocks );
+ #endif /* CM_MEMMAP_H */
\ No newline at end of file
Index: openafs/src/WINNT/afsd/cm_scache.c
diff -c openafs/src/WINNT/afsd/cm_scache.c:1.14.2.6 openafs/src/WINNT/afsd/cm_scache.c:1.14.2.7
*** openafs/src/WINNT/afsd/cm_scache.c:1.14.2.6	Sun Jan 30 23:09:28 2005
--- openafs/src/WINNT/afsd/cm_scache.c	Fri Mar 11 01:58:42 2005
***************
*** 26,41 ****
  
  extern osi_hyper_t hzero;
  
- /* hash table stuff */
- cm_scache_t **cm_hashTablep;
- long cm_hashTableSize;
- long cm_maxSCaches;
- long cm_currentSCaches;
- 
- /* LRU stuff */
- cm_scache_t *cm_scacheLRUFirstp;
- cm_scache_t *cm_scacheLRULastp;
- 
  /* File locks */
  osi_queue_t *cm_allFileLocks;
  
--- 26,31 ----
***************
*** 52,67 ****
  /* must be called with cm_scacheLock write-locked! */
  void cm_AdjustLRU(cm_scache_t *scp)
  {
!     if (scp == cm_scacheLRULastp)
!         cm_scacheLRULastp = (cm_scache_t *) osi_QPrev(&scp->q);
!     osi_QRemove((osi_queue_t **) &cm_scacheLRUFirstp, &scp->q);
!     osi_QAdd((osi_queue_t **) &cm_scacheLRUFirstp, &scp->q);
!     if (!cm_scacheLRULastp) 
!         cm_scacheLRULastp = scp;
  }
  
  /* called with cm_scacheLock write-locked; find a vnode to recycle.
!  * Can allocate a new one if desperate, or if below quota (cm_maxSCaches).
   */
  cm_scache_t *cm_GetNewSCache(void)
  {
--- 42,57 ----
  /* must be called with cm_scacheLock write-locked! */
  void cm_AdjustLRU(cm_scache_t *scp)
  {
!     if (scp == cm_data.scacheLRULastp)
!         cm_data.scacheLRULastp = (cm_scache_t *) osi_QPrev(&scp->q);
!     osi_QRemove((osi_queue_t **) &cm_data.scacheLRUFirstp, &scp->q);
!     osi_QAdd((osi_queue_t **) &cm_data.scacheLRUFirstp, &scp->q);
!     if (!cm_data.scacheLRULastp) 
!         cm_data.scacheLRULastp = scp;
  }
  
  /* called with cm_scacheLock write-locked; find a vnode to recycle.
!  * Can allocate a new one if desperate, or if below quota (cm_data.maxSCaches).
   */
  cm_scache_t *cm_GetNewSCache(void)
  {
***************
*** 70,77 ****
      cm_scache_t **lscpp;
      cm_scache_t *tscp;
  
!     if (cm_currentSCaches >= cm_maxSCaches) {
!         for (scp = cm_scacheLRULastp;
                scp;
                scp = (cm_scache_t *) osi_QPrev(&scp->q)) {
              if (scp->refCount == 0) 
--- 60,67 ----
      cm_scache_t **lscpp;
      cm_scache_t *tscp;
  
!     if (cm_data.currentSCaches >= cm_data.maxSCaches) {
!         for (scp = cm_data.scacheLRULastp;
                scp;
                scp = (cm_scache_t *) osi_QPrev(&scp->q)) {
              if (scp->refCount == 0) 
***************
*** 79,98 ****
          }
                  
          if (scp) {
              /* we found an entry, so return it */
              if (scp->flags & CM_SCACHEFLAG_INHASH) {
                  /* hash it out first */
                  i = CM_SCACHE_HASH(&scp->fid);
!                 lscpp = &cm_hashTablep[i];
!                 for (tscp = *lscpp;
                        tscp;
!                       lscpp = &tscp->nextp, tscp = *lscpp) {
!                     if (tscp == scp) 
                          break;
                  }
                  osi_assertx(tscp, "afsd: scache hash screwup");
-                 *lscpp = scp->nextp;
-                 scp->flags &= ~CM_SCACHEFLAG_INHASH;
              }
  
              /* look for things that shouldn't still be set */
--- 69,89 ----
          }
                  
          if (scp) {
+             osi_assert(scp >= cm_data.scacheBaseAddress && scp < (cm_scache_t *)cm_data.hashTablep);
              /* we found an entry, so return it */
              if (scp->flags & CM_SCACHEFLAG_INHASH) {
                  /* hash it out first */
                  i = CM_SCACHE_HASH(&scp->fid);
!                 for (lscpp = &cm_data.hashTablep[i], tscp = cm_data.hashTablep[i];
                        tscp;
!                       lscpp = &tscp->nextp, tscp = tscp->nextp) {
!                     if (tscp == scp) {
!                         *lscpp = scp->nextp;
!                         scp->flags &= ~CM_SCACHEFLAG_INHASH;
                          break;
+                     }
                  }
                  osi_assertx(tscp, "afsd: scache hash screwup");
              }
  
              /* look for things that shouldn't still be set */
***************
*** 132,149 ****
              }
  
              /* discard symlink info */
!             if (scp->mountPointStringp) {
!                 free(scp->mountPointStringp);
!                 scp->mountPointStringp = NULL;
!             }
!             if (scp->mountRootFidp) {
!                 free(scp->mountRootFidp);
!                 scp->mountRootFidp = NULL;
!             }
!             if (scp->dotdotFidp) {
!                 free(scp->dotdotFidp);
!                 scp->dotdotFidp = NULL;
!             }
  
              /* not locked, but there can be no references to this guy
               * while we hold the global refcount lock.
--- 123,131 ----
              }
  
              /* discard symlink info */
!             scp->mountPointStringp[0] = 0;
!             memset(&scp->mountRootFid, 0, sizeof(cm_fid_t));
!             memset(&scp->dotdotFid, 0, sizeof(cm_fid_t));
  
              /* not locked, but there can be no references to this guy
               * while we hold the global refcount lock.
***************
*** 163,178 ****
      /* if we get here, we should allocate a new scache entry.  We either are below
       * quota or we have a leak and need to allocate a new one to avoid panicing.
       */
!     scp = malloc(sizeof(*scp));
!     memset(scp, 0, sizeof(*scp));
      lock_InitializeMutex(&scp->mx, "cm_scache_t mutex");
      lock_InitializeRWLock(&scp->bufCreateLock, "cm_scache_t bufCreateLock");
  
      /* and put it in the LRU queue */
!     osi_QAdd((osi_queue_t **) &cm_scacheLRUFirstp, &scp->q);
!     if (!cm_scacheLRULastp) 
!         cm_scacheLRULastp = scp;
!     cm_currentSCaches++;
      cm_dnlcPurgedp(scp); /* make doubly sure that this is not in dnlc */
      cm_dnlcPurgevp(scp); 
      return scp;
--- 145,162 ----
      /* if we get here, we should allocate a new scache entry.  We either are below
       * quota or we have a leak and need to allocate a new one to avoid panicing.
       */
!     scp = cm_data.scacheBaseAddress + cm_data.currentSCaches;
!     osi_assert(scp >= cm_data.scacheBaseAddress && scp < (cm_scache_t *)cm_data.hashTablep);
!     memset(scp, 0, sizeof(cm_scache_t));
!     scp->magic = CM_SCACHE_MAGIC;
      lock_InitializeMutex(&scp->mx, "cm_scache_t mutex");
      lock_InitializeRWLock(&scp->bufCreateLock, "cm_scache_t bufCreateLock");
  
      /* and put it in the LRU queue */
!     osi_QAdd((osi_queue_t **) &cm_data.scacheLRUFirstp, &scp->q);
!     if (!cm_data.scacheLRULastp) 
!         cm_data.scacheLRULastp = scp;
!     cm_data.currentSCaches++;
      cm_dnlcPurgedp(scp); /* make doubly sure that this is not in dnlc */
      cm_dnlcPurgevp(scp); 
      return scp;
***************
*** 192,223 ****
      return 0;
  }
  
! void cm_fakeSCacheInit()
  {
!     memset(&cm_fakeSCache, 0, sizeof(cm_fakeSCache));
!     lock_InitializeMutex(&cm_fakeSCache.mx, "cm_scache_t mutex");
!     cm_fakeSCache.cbServerp = (struct cm_server *)(-1);
!     /* can leave clientModTime at 0 */
!     cm_fakeSCache.fileType = CM_SCACHETYPE_FILE;
!     cm_fakeSCache.unixModeBits = 0777;
!     cm_fakeSCache.length.LowPart = 1000;
!     cm_fakeSCache.linkCount = 1;
  }       
  
! void cm_InitSCache(long maxSCaches)
  {
      static osi_once_t once;
          
      if (osi_Once(&once)) {
          lock_InitializeRWLock(&cm_scacheLock, "cm_scacheLock");
!         cm_hashTableSize = maxSCaches / 2;
!         cm_hashTablep = malloc(sizeof(cm_scache_t *) * cm_hashTableSize);
!         memset(cm_hashTablep, 0, sizeof(cm_scache_t *) * cm_hashTableSize);
          cm_allFileLocks = NULL;
!         cm_currentSCaches = 0;
!         cm_maxSCaches = maxSCaches;
!         cm_fakeSCacheInit();
!         cm_dnlcInit();
          osi_EndOnce(&once);
      }
  }
--- 176,328 ----
      return 0;
  }
  
! void cm_fakeSCacheInit(int newFile)
  {
!     if ( newFile ) {
!         memset(&cm_data.fakeSCache, 0, sizeof(cm_scache_t));
!         cm_data.fakeSCache.cbServerp = (struct cm_server *)(-1);
!         /* can leave clientModTime at 0 */
!         cm_data.fakeSCache.fileType = CM_SCACHETYPE_FILE;
!         cm_data.fakeSCache.unixModeBits = 0777;
!         cm_data.fakeSCache.length.LowPart = 1000;
!         cm_data.fakeSCache.linkCount = 1;
!         cm_data.fakeSCache.refCount = 1;
!     }
!     lock_InitializeMutex(&cm_data.fakeSCache.mx, "cm_scache_t mutex");
  }       
  
! long
! cm_ValidateSCache(void)
! {
!     cm_scache_t * scp;
!     long i;
! 
!     for ( scp = cm_data.scacheLRUFirstp; scp;
!           scp = (cm_scache_t *) osi_QNext(&scp->q) ) {
!         if (scp->magic != CM_SCACHE_MAGIC) {
!             afsi_log("cm_ValidateSCache failure: scp->magic != CM_SCACHE_MAGIC");
!             fprintf(stderr, "cm_ValidateSCache failure: scp->magic != CM_SCACHE_MAGIC\n");
!             return -1;
!         }
!         if (scp->nextp && scp->nextp->magic != CM_SCACHE_MAGIC) {
!             afsi_log("cm_ValidateSCache failure: scp->nextp->magic != CM_SCACHE_MAGIC");
!             fprintf(stderr, "cm_ValidateSCache failure: scp->nextp->magic != CM_SCACHE_MAGIC\n");
!             return -2;
!         }
!         if (scp->randomACLp && scp->randomACLp->magic != CM_ACLENT_MAGIC) {
!             afsi_log("cm_ValidateSCache failure: scp->randomACLp->magic != CM_ACLENT_MAGIC");
!             fprintf(stderr, "cm_ValidateSCache failure: scp->randomACLp->magic != CM_ACLENT_MAGIC\n");
!             return -3;
!         }
!         if (scp->volp && scp->volp->magic != CM_VOLUME_MAGIC) {
!             afsi_log("cm_ValidateSCache failure: scp->volp->magic != CM_VOLUME_MAGIC");
!             fprintf(stderr, "cm_ValidateSCache failure: scp->volp->magic != CM_VOLUME_MAGIC\n");
!             return -4;
!         }
!     }
! 
!     for ( scp = cm_data.scacheLRULastp; scp;
!           scp = (cm_scache_t *) osi_QPrev(&scp->q) ) {
!         if (scp->magic != CM_SCACHE_MAGIC) {
!             afsi_log("cm_ValidateSCache failure: scp->magic != CM_SCACHE_MAGIC");
!             fprintf(stderr, "cm_ValidateSCache failure: scp->magic != CM_SCACHE_MAGIC\n");
!             return -5;
!         }
!         if (scp->nextp && scp->nextp->magic != CM_SCACHE_MAGIC) {
!             afsi_log("cm_ValidateSCache failure: scp->nextp->magic != CM_SCACHE_MAGIC");
!             fprintf(stderr, "cm_ValidateSCache failure: scp->nextp->magic != CM_SCACHE_MAGIC\n");
!             return -6;
!         }
!         if (scp->randomACLp && scp->randomACLp->magic != CM_ACLENT_MAGIC) {
!             afsi_log("cm_ValidateSCache failure: scp->randomACLp->magic != CM_ACLENT_MAGIC");
!             fprintf(stderr, "cm_ValidateSCache failure: scp->randomACLp->magic != CM_ACLENT_MAGIC\n");
!             return -7;
!         }
!         if (scp->volp && scp->volp->magic != CM_VOLUME_MAGIC) {
!             afsi_log("cm_ValidateSCache failure: scp->volp->magic != CM_VOLUME_MAGIC");
!             fprintf(stderr, "cm_ValidateSCache failure: scp->volp->magic != CM_VOLUME_MAGIC\n");
!             return -8;
!         }
!     }
! 
!     for ( i=0; i < cm_data.hashTableSize; i++ ) {
!         for ( scp = cm_data.hashTablep[i]; scp; scp = scp->nextp ) {
!             if (scp->magic != CM_SCACHE_MAGIC) {
!                 afsi_log("cm_ValidateSCache failure: scp->magic != CM_SCACHE_MAGIC");
!                 fprintf(stderr, "cm_ValidateSCache failure: scp->magic != CM_SCACHE_MAGIC\n");
!                 return -9;
!             }
!             if (scp->nextp && scp->nextp->magic != CM_SCACHE_MAGIC) {
!                 afsi_log("cm_ValidateSCache failure: scp->nextp->magic != CM_SCACHE_MAGIC");
!                 fprintf(stderr, "cm_ValidateSCache failure: scp->nextp->magic != CM_SCACHE_MAGIC\n");
!                 return -10;
!             }
!             if (scp->randomACLp && scp->randomACLp->magic != CM_ACLENT_MAGIC) {
!                 afsi_log("cm_ValidateSCache failure: scp->randomACLp->magic != CM_ACLENT_MAGIC");
!                 fprintf(stderr, "cm_ValidateSCache failure: scp->randomACLp->magic != CM_ACLENT_MAGIC\n");
!                 return -11;
!             }
!             if (scp->volp && scp->volp->magic != CM_VOLUME_MAGIC) {
!                 afsi_log("cm_ValidateSCache failure: scp->volp->magic != CM_VOLUME_MAGIC");
!                 fprintf(stderr, "cm_ValidateSCache failure: scp->volp->magic != CM_VOLUME_MAGIC\n");
!                 return -12;
!             }
!         }
!     }
! 
!     return cm_dnlcValidate();
! }
! 
! long
! cm_ShutdownSCache(void)
! {
!     cm_scache_t * scp;
! 
!     for ( scp = cm_data.scacheLRULastp; scp;
!           scp = (cm_scache_t *) osi_QPrev(&scp->q) ) {
!         if (scp->randomACLp) {
!             lock_ObtainWrite(&scp->mx);
!             cm_FreeAllACLEnts(scp);
!             lock_ReleaseWrite(&scp->mx);
!         }
!         lock_FinalizeMutex(&scp->mx);
!         lock_FinalizeRWLock(&scp->bufCreateLock);
!     }
! 
!     return cm_dnlcShutdown();
! }
! 
! void cm_InitSCache(int newFile, long maxSCaches)
  {
      static osi_once_t once;
          
      if (osi_Once(&once)) {
          lock_InitializeRWLock(&cm_scacheLock, "cm_scacheLock");
!         if ( newFile ) {
!             memset(cm_data.hashTablep, 0, sizeof(cm_scache_t *) * cm_data.hashTableSize);
!             cm_data.currentSCaches = 0;
!             cm_data.maxSCaches = maxSCaches;
!             cm_data.scacheLRUFirstp = cm_data.scacheLRULastp = NULL;
!         } else {
!             cm_scache_t * scp;
! 
!             for ( scp = cm_data.scacheLRULastp; scp;
!                   scp = (cm_scache_t *) osi_QPrev(&scp->q) ) {
!                 lock_InitializeMutex(&scp->mx, "cm_scache_t mutex");
!                 lock_InitializeRWLock(&scp->bufCreateLock, "cm_scache_t bufCreateLock");
! 
!                 scp->cbServerp = NULL;
!                 scp->cbExpires = 0;
!                 scp->fileLocks = NULL;
!                 scp->openReads = 0;
!                 scp->openWrites = 0;
!                 scp->openShares = 0;
!                 scp->openExcls = 0;
!             }
!         }
          cm_allFileLocks = NULL;
!         cm_fakeSCacheInit(newFile);
!         cm_dnlcInit(newFile);
          osi_EndOnce(&once);
      }
  }
***************
*** 233,239 ****
      osi_assert(fidp->cell != 0);
  
      lock_ObtainWrite(&cm_scacheLock);
!     for(scp=cm_hashTablep[hash]; scp; scp=scp->nextp) {
          if (cm_FidCmp(fidp, &scp->fid) == 0) {
              cm_HoldSCacheNoLock(scp);
              cm_AdjustLRU(scp);
--- 338,344 ----
      osi_assert(fidp->cell != 0);
  
      lock_ObtainWrite(&cm_scacheLock);
!     for (scp=cm_data.hashTablep[hash]; scp; scp=scp->nextp) {
          if (cm_FidCmp(fidp, &scp->fid) == 0) {
              cm_HoldSCacheNoLock(scp);
              cm_AdjustLRU(scp);
***************
*** 262,269 ****
          
      osi_assert(fidp->cell != 0);
  
!     if (fidp->cell== cm_rootFid.cell && 
!          fidp->volume==cm_rootFid.volume &&
           fidp->vnode==0x0 && fidp->unique==0x0)
      {
          osi_Log0(afsd_logp,"cm_getSCache called with root cell/volume and vnode=0 and unique=0");
--- 367,374 ----
          
      osi_assert(fidp->cell != 0);
  
!     if (fidp->cell== cm_data.rootFid.cell && 
!          fidp->volume==cm_data.rootFid.volume &&
           fidp->vnode==0x0 && fidp->unique==0x0)
      {
          osi_Log0(afsd_logp,"cm_getSCache called with root cell/volume and vnode=0 and unique=0");
***************
*** 272,278 ****
      // yj: check if we have the scp, if so, we don't need
      // to do anything else
      lock_ObtainWrite(&cm_scacheLock);
!     for (scp=cm_hashTablep[hash]; scp; scp=scp->nextp) {
          if (cm_FidCmp(fidp, &scp->fid) == 0) {
              cm_HoldSCacheNoLock(scp);
              *outScpp = scp;
--- 377,383 ----
      // yj: check if we have the scp, if so, we don't need
      // to do anything else
      lock_ObtainWrite(&cm_scacheLock);
!     for (scp=cm_data.hashTablep[hash]; scp; scp=scp->nextp) {
          if (cm_FidCmp(fidp, &scp->fid) == 0) {
              cm_HoldSCacheNoLock(scp);
              *outScpp = scp;
***************
*** 317,340 ****
          scp = cm_GetNewSCache();
  		
          scp->fid = *fidp;
!         scp->volp = cm_rootSCachep->volp;
!         if (scp->dotdotFidp == (cm_fid_t *) NULL)
!             scp->dotdotFidp = (cm_fid_t *) malloc (sizeof(cm_fid_t));
!         scp->dotdotFidp->cell=AFS_FAKE_ROOT_CELL_ID;
!         scp->dotdotFidp->volume=AFS_FAKE_ROOT_VOL_ID;
!         scp->dotdotFidp->unique=1;
!         scp->dotdotFidp->vnode=1;
          scp->flags |= (CM_SCACHEFLAG_PURERO | CM_SCACHEFLAG_RO);
!         scp->nextp=cm_hashTablep[hash];
!         cm_hashTablep[hash]=scp;
          scp->flags |= CM_SCACHEFLAG_INHASH;
          scp->refCount = 1;
          scp->fileType = (cm_localMountPoints+fidp->vnode-2)->fileType;
  
          lock_ObtainMutex(&cm_Freelance_Lock);
          scp->length.LowPart = strlen(mp)+4;
!         scp->mountPointStringp=malloc(strlen(mp)+1);
!         strcpy(scp->mountPointStringp,mp);
          lock_ReleaseMutex(&cm_Freelance_Lock);
  
          scp->owner=0x0;
--- 422,443 ----
          scp = cm_GetNewSCache();
  		
          scp->fid = *fidp;
!         scp->volp = cm_data.rootSCachep->volp;
!         scp->dotdotFid.cell=AFS_FAKE_ROOT_CELL_ID;
!         scp->dotdotFid.volume=AFS_FAKE_ROOT_VOL_ID;
!         scp->dotdotFid.unique=1;
!         scp->dotdotFid.vnode=1;
          scp->flags |= (CM_SCACHEFLAG_PURERO | CM_SCACHEFLAG_RO);
!         scp->nextp=cm_data.hashTablep[hash];
!         cm_data.hashTablep[hash]=scp;
          scp->flags |= CM_SCACHEFLAG_INHASH;
          scp->refCount = 1;
          scp->fileType = (cm_localMountPoints+fidp->vnode-2)->fileType;
  
          lock_ObtainMutex(&cm_Freelance_Lock);
          scp->length.LowPart = strlen(mp)+4;
!         strncpy(scp->mountPointStringp,mp,MOUNTPOINTLEN);
!         scp->mountPointStringp[MOUNTPOINTLEN-1] = '\0';
          lock_ReleaseMutex(&cm_Freelance_Lock);
  
          scp->owner=0x0;
***************
*** 344,350 ****
          scp->parentUnique = 0x1;
          scp->parentVnode=0x1;
          scp->group=0;
!         scp->dataVersion=cm_fakeDirVersion;
          *outScpp = scp;
          lock_ReleaseWrite(&cm_scacheLock);
          /*afsi_log("   getscache done");*/
--- 447,453 ----
          scp->parentUnique = 0x1;
          scp->parentVnode=0x1;
          scp->group=0;
!         scp->dataVersion=cm_data.fakeDirVersion;
          *outScpp = scp;
          lock_ReleaseWrite(&cm_scacheLock);
          /*afsi_log("   getscache done");*/
***************
*** 369,378 ****
      /* otherwise, we have the volume, now reverify that the scp doesn't
       * exist, and proceed.
       */
!     for (scp=cm_hashTablep[hash]; scp; scp=scp->nextp) {
          if (cm_FidCmp(fidp, &scp->fid) == 0) {
- 			osi_assert(scp->volp == volp);
              cm_HoldSCacheNoLock(scp);
              cm_AdjustLRU(scp);
              lock_ReleaseWrite(&cm_scacheLock);
              if (volp)
--- 472,481 ----
      /* otherwise, we have the volume, now reverify that the scp doesn't
       * exist, and proceed.
       */
!     for (scp=cm_data.hashTablep[hash]; scp; scp=scp->nextp) {
          if (cm_FidCmp(fidp, &scp->fid) == 0) {
              cm_HoldSCacheNoLock(scp);
+             osi_assert(scp->volp == volp);
              cm_AdjustLRU(scp);
              lock_ReleaseWrite(&cm_scacheLock);
              if (volp)
***************
*** 393,402 ****
           * to copy the dotdotFipd from the volume structure where the 
           * "master" copy is stored (defect 11489)
           */
!         if (scp->fid.vnode == 1 && scp->fid.unique == 1 && volp->dotdotFidp) {
! 	    if (scp->dotdotFidp == (cm_fid_t *) NULL)
!                 scp->dotdotFidp = (cm_fid_t *) malloc(sizeof(cm_fid_t));
! 	    *(scp->dotdotFidp) = *volp->dotdotFidp;
          }
  	  
          if (volp->roID == fidp->volume)
--- 496,503 ----
           * to copy the dotdotFipd from the volume structure where the 
           * "master" copy is stored (defect 11489)
           */
!         if (scp->fid.vnode == 1 && scp->fid.unique == 1) {
! 	    scp->dotdotFid = volp->dotdotFid;
          }
  	  
          if (volp->roID == fidp->volume)
***************
*** 404,411 ****
          else if (volp->bkID == fidp->volume)
  	    scp->flags |= CM_SCACHEFLAG_RO;
      }
!     scp->nextp = cm_hashTablep[hash];
!     cm_hashTablep[hash] = scp;
      scp->flags |= CM_SCACHEFLAG_INHASH;
      scp->refCount = 1;
  
--- 505,512 ----
          else if (volp->bkID == fidp->volume)
  	    scp->flags |= CM_SCACHEFLAG_RO;
      }
!     scp->nextp = cm_data.hashTablep[hash];
!     cm_data.hashTablep[hash] = scp;
      scp->flags |= CM_SCACHEFLAG_INHASH;
      scp->refCount = 1;
  
***************
*** 523,540 ****
               * a write occurred in.
               */
              if (scp->flags & (CM_SCACHEFLAG_FETCHING | CM_SCACHEFLAG_STORING
!                                | CM_SCACHEFLAG_SIZESTORING | CM_SCACHEFLAG_GETCALLBACK))
                  goto sleep;
          }
          if (flags & (CM_SCACHESYNC_STORESIZE | CM_SCACHESYNC_STORESTATUS
                        | CM_SCACHESYNC_SETSIZE | CM_SCACHESYNC_GETCALLBACK)) {
              /* if we're going to make an RPC to change the status, make sure
               * that no one is bringing in or sending out the status.
               */
!             if (scp->flags & (CM_SCACHEFLAG_FETCHING | CM_SCACHEFLAG_STORING
!                                | CM_SCACHEFLAG_SIZESTORING | CM_SCACHEFLAG_GETCALLBACK))
                  goto sleep;
!             if (scp->bufReadsp || scp->bufWritesp) goto sleep;
          }
          if (flags & CM_SCACHESYNC_FETCHDATA) {
              /* if we're bringing in a new chunk of data, make sure that
--- 624,648 ----
               * a write occurred in.
               */
              if (scp->flags & (CM_SCACHEFLAG_FETCHING | CM_SCACHEFLAG_STORING
!                                | CM_SCACHEFLAG_SIZESTORING | CM_SCACHEFLAG_GETCALLBACK)) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is FETCHING|STORING|SIZESTORING|GETCALLBACK want FETCHSTATUS", scp);
                  goto sleep;
+             }
          }
          if (flags & (CM_SCACHESYNC_STORESIZE | CM_SCACHESYNC_STORESTATUS
                        | CM_SCACHESYNC_SETSIZE | CM_SCACHESYNC_GETCALLBACK)) {
              /* if we're going to make an RPC to change the status, make sure
               * that no one is bringing in or sending out the status.
               */
!             if (scp->flags & (CM_SCACHEFLAG_FETCHING | CM_SCACHEFLAG_STORING |
!                               CM_SCACHEFLAG_SIZESTORING | CM_SCACHEFLAG_GETCALLBACK)) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is FETCHING|STORING|SIZESTORING|GETCALLBACK want STORESIZE|STORESTATUS|SETSIZE|GETCALLBACK", scp);
                  goto sleep;
!             }
!             if (scp->bufReadsp || scp->bufWritesp) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is bufRead|bufWrite want STORESIZE|STORESTATUS|SETSIZE|GETCALLBACK", scp);
!                 goto sleep;
!             }
          }
          if (flags & CM_SCACHESYNC_FETCHDATA) {
              /* if we're bringing in a new chunk of data, make sure that
***************
*** 542,577 ****
               * changing the basic file status info, either.
               */
              if (scp->flags & (CM_SCACHEFLAG_FETCHING | CM_SCACHEFLAG_STORING
!                                | CM_SCACHEFLAG_SIZESTORING | CM_SCACHEFLAG_GETCALLBACK))
                  goto sleep;
!             if (bufp && (bufp->cmFlags & (CM_BUF_CMFETCHING | CM_BUF_CMSTORING)))
                  goto sleep;
          }
          if (flags & CM_SCACHESYNC_STOREDATA) {
              /* same as fetch data */
              if (scp->flags & (CM_SCACHEFLAG_FETCHING | CM_SCACHEFLAG_STORING
!                                | CM_SCACHEFLAG_SIZESTORING | CM_SCACHEFLAG_GETCALLBACK))
                  goto sleep;
!             if (bufp && (bufp->cmFlags & (CM_BUF_CMFETCHING | CM_BUF_CMSTORING)))
                  goto sleep;
          }
  
          if (flags & CM_SCACHESYNC_STOREDATA_EXCL) {
              /* Don't allow concurrent StoreData RPC's */
!             if (scp->flags & CM_SCACHEFLAG_DATASTORING)
                  goto sleep;
          }
  
          if (flags & CM_SCACHESYNC_ASYNCSTORE) {
              /* Don't allow more than one BKG store request */
!             if (scp->flags & CM_SCACHEFLAG_ASYNCSTORING)
                  goto sleep;
          }
  
          if (flags & CM_SCACHESYNC_LOCK) {
              /* Don't allow concurrent fiddling with lock lists */
!             if (scp->flags & CM_SCACHEFLAG_LOCKING)
                  goto sleep;
          }
  
          /* now the operations that don't correspond to making RPCs */
--- 650,699 ----
               * changing the basic file status info, either.
               */
              if (scp->flags & (CM_SCACHEFLAG_FETCHING | CM_SCACHEFLAG_STORING
!                                | CM_SCACHEFLAG_SIZESTORING | CM_SCACHEFLAG_GETCALLBACK)) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is FETCHING|STORING|SIZESTORING|GETCALLBACK want FETCHDATA", scp);
                  goto sleep;
!             }
!             if (bufp && (bufp->cmFlags & (CM_BUF_CMFETCHING | CM_BUF_CMSTORING))) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is BUF_CMFETCHING|BUF_CMSTORING want FETCHDATA", scp);
                  goto sleep;
+             }
          }
          if (flags & CM_SCACHESYNC_STOREDATA) {
              /* same as fetch data */
              if (scp->flags & (CM_SCACHEFLAG_FETCHING | CM_SCACHEFLAG_STORING
!                                | CM_SCACHEFLAG_SIZESTORING | CM_SCACHEFLAG_GETCALLBACK)) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is FETCHING|STORING|SIZESTORING|GETCALLBACK want STOREDATA", scp);
                  goto sleep;
!             }
!             if (bufp && (bufp->cmFlags & (CM_BUF_CMFETCHING | CM_BUF_CMSTORING))) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is BUF_CMFETCHING|BUF_CMSTORING want STOREDATA", scp);
                  goto sleep;
+             }
          }
  
          if (flags & CM_SCACHESYNC_STOREDATA_EXCL) {
              /* Don't allow concurrent StoreData RPC's */
!             if (scp->flags & CM_SCACHEFLAG_DATASTORING) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is DATASTORING want STOREDATA_EXCL", scp);
                  goto sleep;
+             }
          }
  
          if (flags & CM_SCACHESYNC_ASYNCSTORE) {
              /* Don't allow more than one BKG store request */
!             if (scp->flags & CM_SCACHEFLAG_ASYNCSTORING) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is ASYNCSTORING want ASYNCSTORE", scp);
                  goto sleep;
+             }
          }
  
          if (flags & CM_SCACHESYNC_LOCK) {
              /* Don't allow concurrent fiddling with lock lists */
!             if (scp->flags & CM_SCACHEFLAG_LOCKING) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is LOCKING want LOCK", scp);
                  goto sleep;
+             }
          }
  
          /* now the operations that don't correspond to making RPCs */
***************
*** 579,586 ****
              /* we can use the status that's here, if we're not
               * bringing in new status.
               */
!             if (scp->flags & (CM_SCACHEFLAG_FETCHING))
                  goto sleep;
          }
          if (flags & CM_SCACHESYNC_SETSTATUS) {
              /* we can make a change to the local status, as long as
--- 701,710 ----
              /* we can use the status that's here, if we're not
               * bringing in new status.
               */
!             if (scp->flags & (CM_SCACHEFLAG_FETCHING)) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is FETCHING want GETSTATUS", scp);
                  goto sleep;
+             }
          }
          if (flags & CM_SCACHESYNC_SETSTATUS) {
              /* we can make a change to the local status, as long as
***************
*** 592,622 ****
               * changing here.
               */
              if (scp->flags & (CM_SCACHEFLAG_FETCHING | CM_SCACHEFLAG_STORING
!                                | CM_SCACHEFLAG_SIZESTORING))
                  goto sleep;
          }
          if (flags & CM_SCACHESYNC_READ) {
              /* we're going to read the data, make sure that the
               * status is available, and that the data is here.  It
               * is OK to read while storing the data back.
               */
!             if (scp->flags & CM_SCACHEFLAG_FETCHING)
                  goto sleep;
              if (bufp && ((bufp->cmFlags
                             & (CM_BUF_CMFETCHING
                                 | CM_BUF_CMFULLYFETCHED))
!                           == CM_BUF_CMFETCHING))
                  goto sleep;
          }
          if (flags & CM_SCACHESYNC_WRITE) {
              /* don't write unless the status is stable and the chunk
               * is stable.
               */
              if (scp->flags & (CM_SCACHEFLAG_FETCHING | CM_SCACHEFLAG_STORING
!                                | CM_SCACHEFLAG_SIZESTORING))
                  goto sleep;
!             if (bufp && (bufp->cmFlags & (CM_BUF_CMFETCHING | CM_BUF_CMSTORING)))
                  goto sleep;
          }
  
          // yj: modified this so that callback only checked if we're
--- 716,756 ----
               * changing here.
               */
              if (scp->flags & (CM_SCACHEFLAG_FETCHING | CM_SCACHEFLAG_STORING
!                                | CM_SCACHEFLAG_SIZESTORING)) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is FETCHING|STORING|SIZESTORING want SETSTATUS", scp);
                  goto sleep;
+             }
          }
          if (flags & CM_SCACHESYNC_READ) {
              /* we're going to read the data, make sure that the
               * status is available, and that the data is here.  It
               * is OK to read while storing the data back.
               */
!             if (scp->flags & CM_SCACHEFLAG_FETCHING) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is FETCHING want READ", scp);
                  goto sleep;
+             }
              if (bufp && ((bufp->cmFlags
                             & (CM_BUF_CMFETCHING
                                 | CM_BUF_CMFULLYFETCHED))
!                           == CM_BUF_CMFETCHING)) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is BUF_CMFETCHING want READ", scp);
                  goto sleep;
+             }
          }
          if (flags & CM_SCACHESYNC_WRITE) {
              /* don't write unless the status is stable and the chunk
               * is stable.
               */
              if (scp->flags & (CM_SCACHEFLAG_FETCHING | CM_SCACHEFLAG_STORING
!                                | CM_SCACHEFLAG_SIZESTORING)) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is FETCHING|STORING|SIZESTORING want WRITE", scp);
                  goto sleep;
!             }
!             if (bufp && (bufp->cmFlags & (CM_BUF_CMFETCHING | CM_BUF_CMSTORING))) {
!                 osi_Log1(afsd_logp, "CM SyncOp scp 0x%x is BUF_CMFETCHING|BUF_CMSTORING want WRITE", scp);
                  goto sleep;
+             }
          }
  
          // yj: modified this so that callback only checked if we're
***************
*** 641,647 ****
                      lock_ObtainMutex(&bufp->mx);
                      lock_ObtainMutex(&scp->mx);
                  }
!                 if (code) return code;
                  continue;
              }
          }
--- 775,782 ----
                      lock_ObtainMutex(&bufp->mx);
                      lock_ObtainMutex(&scp->mx);
                  }
!                 if (code) 
!                     return code;
                  continue;
              }
          }
***************
*** 660,666 ****
                  /* we don't know the required access rights */
                  if (bufLocked) lock_ReleaseMutex(&bufp->mx);
                  code = cm_GetAccessRights(scp, up, reqp);
!                 if (code) return code;
                  if (bufLocked) {
                      lock_ReleaseMutex(&scp->mx);
                      lock_ObtainMutex(&bufp->mx);
--- 795,802 ----
                  /* we don't know the required access rights */
                  if (bufLocked) lock_ReleaseMutex(&bufp->mx);
                  code = cm_GetAccessRights(scp, up, reqp);
!                 if (code) 
!                     return code;
                  if (bufLocked) {
                      lock_ReleaseMutex(&scp->mx);
                      lock_ObtainMutex(&bufp->mx);
***************
*** 677,697 ****
          /* first check if we're not supposed to wait: fail 
           * in this case, returning with everything still locked.
           */
!         if (flags & CM_SCACHESYNC_NOWAIT) return CM_ERROR_WOULDBLOCK;
  
          /* wait here, then try again */
!         osi_Log1(afsd_logp, "CM SyncOp sleeping scp %x", (long) scp);
!         if ( scp->flags & CM_SCACHEFLAG_WAITING ) 
              osi_Log1(afsd_logp, "CM SyncOp CM_SCACHEFLAG_WAITING already set for 0x%x", scp);
!         else 
              osi_Log1(afsd_logp, "CM SyncOp CM_SCACHEFLAG_WAITING set for 0x%x", scp);
!         scp->flags |= CM_SCACHEFLAG_WAITING;
!         if (bufLocked) lock_ReleaseMutex(&bufp->mx);
          osi_SleepM((long) &scp->flags, &scp->mx);
-         osi_Log0(afsd_logp, "CM SyncOp woke!");
          if (bufLocked) 
              lock_ObtainMutex(&bufp->mx);
          lock_ObtainMutex(&scp->mx);
      } /* big while loop */
          
      /* now, update the recorded state for RPC-type calls */
--- 813,836 ----
          /* first check if we're not supposed to wait: fail 
           * in this case, returning with everything still locked.
           */
!         if (flags & CM_SCACHESYNC_NOWAIT) 
!             return CM_ERROR_WOULDBLOCK;
  
          /* wait here, then try again */
!         osi_Log1(afsd_logp, "CM SyncOp sleeping scp 0x%x", scp);
!         if ( scp->flags & CM_SCACHEFLAG_WAITING ) {
              osi_Log1(afsd_logp, "CM SyncOp CM_SCACHEFLAG_WAITING already set for 0x%x", scp);
!         } else {
              osi_Log1(afsd_logp, "CM SyncOp CM_SCACHEFLAG_WAITING set for 0x%x", scp);
!             scp->flags |= CM_SCACHEFLAG_WAITING;
!         }
!         if (bufLocked) 
!             lock_ReleaseMutex(&bufp->mx);
          osi_SleepM((long) &scp->flags, &scp->mx);
          if (bufLocked) 
              lock_ObtainMutex(&bufp->mx);
          lock_ObtainMutex(&scp->mx);
+         osi_Log1(afsd_logp, "CM SyncOp woke! scp 0x%x", scp);
      } /* big while loop */
          
      /* now, update the recorded state for RPC-type calls */
***************
*** 838,850 ****
      // yj: i want to create some fake status for the /afs directory and the
      // entries under that directory
  #ifdef AFS_FREELANCE_CLIENT
!     if (cm_freelanceEnabled && scp == cm_rootSCachep) {
!         osi_Log0(afsd_logp,"cm_MergeStatus Freelance cm_rootSCachep");
          statusp->InterfaceVersion = 0x1;
          statusp->FileType = CM_SCACHETYPE_DIRECTORY;
          statusp->LinkCount = scp->linkCount;
          statusp->Length = cm_fakeDirSize;
!         statusp->DataVersion = cm_fakeDirVersion;
          statusp->Author = 0x1;
          statusp->Owner = 0x0;
          statusp->CallerAccess = 0x9;
--- 977,989 ----
      // yj: i want to create some fake status for the /afs directory and the
      // entries under that directory
  #ifdef AFS_FREELANCE_CLIENT
!     if (cm_freelanceEnabled && scp == cm_data.rootSCachep) {
!         osi_Log0(afsd_logp,"cm_MergeStatus Freelance cm_data.rootSCachep");
          statusp->InterfaceVersion = 0x1;
          statusp->FileType = CM_SCACHETYPE_DIRECTORY;
          statusp->LinkCount = scp->linkCount;
          statusp->Length = cm_fakeDirSize;
!         statusp->DataVersion = cm_data.fakeDirVersion;
          statusp->Author = 0x1;
          statusp->Owner = 0x0;
          statusp->CallerAccess = 0x9;
***************
*** 853,860 ****
          statusp->ParentVnode = 0x1;
          statusp->ParentUnique = 0x1;
          statusp->ResidencyMask = 0;
!         statusp->ClientModTime = (afs_uint32)FakeFreelanceModTime;
!         statusp->ServerModTime = (afs_uint32)FakeFreelanceModTime;
          statusp->Group = 0;
          statusp->SyncCounter = 0;
          statusp->dataVersionHigh = 0;
--- 992,999 ----
          statusp->ParentVnode = 0x1;
          statusp->ParentUnique = 0x1;
          statusp->ResidencyMask = 0;
!         statusp->ClientModTime = FakeFreelanceModTime;
!         statusp->ServerModTime = FakeFreelanceModTime;
          statusp->Group = 0;
          statusp->SyncCounter = 0;
          statusp->dataVersionHigh = 0;
***************
*** 969,974 ****
--- 1108,1114 ----
      }
      scp->cbExpires = 0;
      cm_dnlcPurgedp(scp);
+     cm_dnlcPurgevp(scp);
      cm_FreeAllACLEnts(scp);
  }
  
***************
*** 981,994 ****
  
  void cm_HoldSCacheNoLock(cm_scache_t *scp)
  {
! #ifdef NOLOCK_ASSERT
      osi_assert(scp->refCount >= 0);
- #endif
      scp->refCount++;
  }
  
  void cm_HoldSCache(cm_scache_t *scp)
  {
      lock_ObtainWrite(&cm_scacheLock);
      osi_assert(scp->refCount >= 0);
      scp->refCount++;
--- 1121,1134 ----
  
  void cm_HoldSCacheNoLock(cm_scache_t *scp)
  {
!     osi_assert(scp != 0);
      osi_assert(scp->refCount >= 0);
      scp->refCount++;
  }
  
  void cm_HoldSCache(cm_scache_t *scp)
  {
+     osi_assert(scp != 0);
      lock_ObtainWrite(&cm_scacheLock);
      osi_assert(scp->refCount >= 0);
      scp->refCount++;
***************
*** 997,1009 ****
  
  void cm_ReleaseSCacheNoLock(cm_scache_t *scp)
  {
!     osi_assert(scp->refCount-- > 0);
  }
  
  void cm_ReleaseSCache(cm_scache_t *scp)
  {
      lock_ObtainWrite(&cm_scacheLock);
!     osi_assert(scp->refCount-- > 0);
      lock_ReleaseWrite(&cm_scacheLock);
  }
  
--- 1137,1152 ----
  
  void cm_ReleaseSCacheNoLock(cm_scache_t *scp)
  {
!     osi_assert(scp != 0);
!     osi_assert(scp->refCount-- >= 0);
  }
  
  void cm_ReleaseSCache(cm_scache_t *scp)
  {
+     osi_assert(scp != 0);
      lock_ObtainWrite(&cm_scacheLock);
!     osi_assert(scp->refCount != 0);
!     scp->refCount--;
      lock_ReleaseWrite(&cm_scacheLock);
  }
  
***************
*** 1019,1025 ****
      osi_assert(fidp->cell != 0);
  
      lock_ObtainWrite(&cm_scacheLock);
!     for (scp=cm_hashTablep[hash]; scp; scp=scp->nextp) {
          if (cm_FidCmp(fidp, &scp->fid) == 0) {
              lock_ReleaseWrite(&cm_scacheLock);
              return scp->fileType;
--- 1162,1168 ----
      osi_assert(fidp->cell != 0);
  
      lock_ObtainWrite(&cm_scacheLock);
!     for (scp=cm_data.hashTablep[hash]; scp; scp=scp->nextp) {
          if (cm_FidCmp(fidp, &scp->fid) == 0) {
              lock_ReleaseWrite(&cm_scacheLock);
              return scp->fileType;
***************
*** 1033,1053 ****
   * cookie is used to identify this batch for easy parsing, 
   * and it a string provided by a caller 
   */
! int cm_DumpSCache(FILE *outputFile, char *cookie)
  {
      int zilch;
      cm_scache_t *scp;
      char output[1024];
      int i;
    
!     lock_ObtainRead(&cm_scacheLock);
    
!     sprintf(output, "%s - dumping scache - cm_currentSCaches=%d, cm_maxSCaches=%d\n", cookie, cm_currentSCaches, cm_maxSCaches);
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
    
!     for (scp = cm_scacheLRULastp; scp; scp = (cm_scache_t *) osi_QPrev(&scp->q)) 
      {
!         if (scp->refCount > 0)
          {
              sprintf(output, "%s fid (cell=%d, volume=%d, vnode=%d, unique=%d) refCount=%u\n", 
                      cookie, scp->fid.cell, scp->fid.volume, scp->fid.vnode, scp->fid.unique, 
--- 1176,1197 ----
   * cookie is used to identify this batch for easy parsing, 
   * and it a string provided by a caller 
   */
! int cm_DumpSCache(FILE *outputFile, char *cookie, int lock)
  {
      int zilch;
      cm_scache_t *scp;
      char output[1024];
      int i;
    
!     if (lock)
!         lock_ObtainRead(&cm_scacheLock);
    
!     sprintf(output, "%s - dumping scache - cm_data.currentSCaches=%d, cm_data.maxSCaches=%d\n", cookie, cm_data.currentSCaches, cm_data.maxSCaches);
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
    
!     for (scp = cm_data.scacheLRULastp; scp; scp = (cm_scache_t *) osi_QPrev(&scp->q)) 
      {
!         if (scp->refCount != 0)
          {
              sprintf(output, "%s fid (cell=%d, volume=%d, vnode=%d, unique=%d) refCount=%u\n", 
                      cookie, scp->fid.cell, scp->fid.volume, scp->fid.vnode, scp->fid.unique, 
***************
*** 1056,1077 ****
          }
      }
    
!     sprintf(output, "%s - dumping cm_hashTable - cm_hashTableSize=%d\n", cookie, cm_hashTableSize);
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
    
!     for (i = 0; i < cm_hashTableSize; i++)
      {
!         for(scp = cm_hashTablep[i]; scp; scp=scp->nextp) 
          {
!             if (scp)
              {
!                 if (scp->refCount > 0)
!                 {
!                     sprintf(output, "%s scp=0x%08X, hash=%d, fid (cell=%d, volume=%d, vnode=%d, unique=%d) refCount=%u\n", 
!                             cookie, (void *)scp, i, scp->fid.cell, scp->fid.volume, scp->fid.vnode, 
!                             scp->fid.unique, scp->refCount);
!                     WriteFile(outputFile, output, strlen(output), &zilch, NULL);
!                 }
              }
          }
      }
--- 1200,1218 ----
          }
      }
    
!     sprintf(output, "%s - dumping cm_data.hashTable - cm_data.hashTableSize=%d\n", cookie, cm_data.hashTableSize);
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
    
!     for (i = 0; i < cm_data.hashTableSize; i++)
      {
!         for(scp = cm_data.hashTablep[i]; scp; scp=scp->nextp) 
          {
!             if (scp->refCount != 0)
              {
!                 sprintf(output, "%s scp=0x%08X, hash=%d, fid (cell=%d, volume=%d, vnode=%d, unique=%d) refCount=%u\n", 
!                          cookie, (void *)scp, i, scp->fid.cell, scp->fid.volume, scp->fid.vnode, 
!                          scp->fid.unique, scp->refCount);
!                 WriteFile(outputFile, output, strlen(output), &zilch, NULL);
              }
          }
      }
***************
*** 1079,1085 ****
      sprintf(output, "%s - Done dumping scache.\n", cookie);
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
    
!     lock_ReleaseRead(&cm_scacheLock);       
      return (0);     
  }
  
--- 1220,1227 ----
      sprintf(output, "%s - Done dumping scache.\n", cookie);
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
    
!     if (lock)
!         lock_ReleaseRead(&cm_scacheLock);       
      return (0);     
  }
  
Index: openafs/src/WINNT/afsd/cm_scache.h
diff -c openafs/src/WINNT/afsd/cm_scache.h:1.4.2.5 openafs/src/WINNT/afsd/cm_scache.h:1.4.2.6
*** openafs/src/WINNT/afsd/cm_scache.h:1.4.2.5	Tue Dec  7 01:01:41 2004
--- openafs/src/WINNT/afsd/cm_scache.h	Fri Mar 11 01:58:42 2005
***************
*** 14,19 ****
--- 14,21 ----
  #include "largeint95.h"
  #endif /* DJGPP */
  
+ #define MOUNTPOINTLEN   1024
+ 
  typedef struct cm_fid {
  	unsigned long cell;
          unsigned long volume;
***************
*** 21,31 ****
--- 23,35 ----
          unsigned long unique;
  } cm_fid_t;
  
+ #if 0
  typedef struct cm_accessCache {
  	osi_queue_t q;			/* queue header */
          struct cm_user *userp;		/* user having access rights */
          unsigned long rights;		/* rights */
  } cm_accessCache_t;
+ #endif
  
  typedef struct cm_file_lock {
  	osi_queue_t q;			/* list of all locks */
***************
*** 46,56 ****
          osi_hyper_t end;		/* first char past region */
  } cm_prefetch_t;
  
  typedef struct cm_scache {
  	osi_queue_t q;			/* lru queue; cm_scacheLock */
! 	struct cm_scache *nextp;	/* next in hash; cm_scacheLock */
  	cm_fid_t fid;
!         unsigned long flags;		/* flags; locked by mx */
  
  	/* synchronization stuff */
          osi_mutex_t mx;			/* mutex for this structure */
--- 50,64 ----
          osi_hyper_t end;		/* first char past region */
  } cm_prefetch_t;
  
+ 
+ #define CM_SCACHE_MAGIC ('S' | 'C'<<8 | 'A'<<16 | 'C'<<24)
+ 
  typedef struct cm_scache {
  	osi_queue_t q;			/* lru queue; cm_scacheLock */
!         afs_uint32      magic;
!         struct cm_scache *nextp;	/* next in hash; cm_scacheLock */
  	cm_fid_t fid;
!         afs_uint32 flags;		/* flags; locked by mx */
  
  	/* synchronization stuff */
          osi_mutex_t mx;			/* mutex for this structure */
***************
*** 58,87 ****
          				 * write-locked to prevent buffers from
                                           * being created during a truncate op, etc.
                                           */
!         long refCount;			/* reference count; cm_scacheLock */
          osi_queueData_t *bufReadsp;	/* queue of buffers being read */
          osi_queueData_t *bufWritesp;	/* queue of buffers being written */
  
  	/* parent info for ACLs */
!         long parentVnode;		/* parent vnode for ACL callbacks */
!         long parentUnique;		/* for ACL callbacks */
  
  	/* local modification stat */
!         unsigned long mask;		/* for clientModTime, length and
  					 * truncPos */
  
  	/* file status */
! 	unsigned int fileType;			/* file type */
! 	time_t clientModTime;	/* mtime */
!         time_t serverModTime;	/* at server, for concurrent call
  					 * comparisons */
          osi_hyper_t length;		/* file length */
  	cm_prefetch_t prefetch;		/* prefetch info structure */
!         unsigned int unixModeBits;	/* unix protection mode bits */
!         int linkCount;			/* link count */
!         long dataVersion;		/* data version */
!         long owner;			/* file owner */
!         long group;			/* file owning group */
  
  	/* pseudo file status */
  	osi_hyper_t serverLength;	/* length known to server */
--- 66,95 ----
          				 * write-locked to prevent buffers from
                                           * being created during a truncate op, etc.
                                           */
!         afs_uint32 refCount;		/* reference count; cm_scacheLock */
          osi_queueData_t *bufReadsp;	/* queue of buffers being read */
          osi_queueData_t *bufWritesp;	/* queue of buffers being written */
  
  	/* parent info for ACLs */
!         afs_uint32 parentVnode;		/* parent vnode for ACL callbacks */
!         afs_uint32 parentUnique;	/* for ACL callbacks */
  
  	/* local modification stat */
!         afs_uint32 mask;		/* for clientModTime, length and
  					 * truncPos */
  
  	/* file status */
! 	afs_uint32 fileType;		/* file type */
! 	time_t clientModTime;	        /* mtime */
!         time_t serverModTime;	        /* at server, for concurrent call
  					 * comparisons */
          osi_hyper_t length;		/* file length */
  	cm_prefetch_t prefetch;		/* prefetch info structure */
!         afs_uint32 unixModeBits;	/* unix protection mode bits */
!         afs_uint32 linkCount;		/* link count */
!         afs_uint32 dataVersion;		/* data version */
!         afs_uint32 owner; 		/* file owner */
!         afs_uint32 group;		/* file owning group */
  
  	/* pseudo file status */
  	osi_hyper_t serverLength;	/* length known to server */
***************
*** 91,104 ****
  					 * storing data */
  
  	/* symlink and mount point info */
!         char *mountPointStringp;	/* the string stored in a mount point;
          				 * first char is type, then vol name.
                                           * If this is a normal symlink, we store
  					 * the link contents here.
                                           */
! 	cm_fid_t *mountRootFidp;	/* mounted on root */
  	time_t    mountRootGen;	        /* time to update mountRootFidp? */
! 	cm_fid_t *dotdotFidp;		/* parent of volume root */
  
  	/* callback info */
          struct cm_server *cbServerp;	/* server granting callback */
--- 99,112 ----
  					 * storing data */
  
  	/* symlink and mount point info */
!         char mountPointStringp[MOUNTPOINTLEN];	/* the string stored in a mount point;
          				 * first char is type, then vol name.
                                           * If this is a normal symlink, we store
  					 * the link contents here.
                                           */
! 	cm_fid_t  mountRootFid;	        /* mounted on root */
  	time_t    mountRootGen;	        /* time to update mountRootFidp? */
! 	cm_fid_t  dotdotFid;		/* parent of volume root */
  
  	/* callback info */
          struct cm_server *cbServerp;	/* server granting callback */
***************
*** 118,127 ****
          osi_hyper_t bulkStatProgress;	/* track bulk stats of large dirs */
  
          /* open state */
!         short openReads;		/* open for reading */
!         short openWrites;		/* open for writing */
!         short openShares;		/* open for read excl */
!         short openExcls;		/* open for exclusives */
  } cm_scache_t;
  
  /* mask field - tell what has been modified */
--- 126,135 ----
          osi_hyper_t bulkStatProgress;	/* track bulk stats of large dirs */
  
          /* open state */
!         afs_uint16 openReads;		/* open for reading */
!         afs_uint16 openWrites;		/* open for writing */
!         afs_uint16 openShares;		/* open for read excl */
!         afs_uint16 openExcls;		/* open for exclusives */
  } cm_scache_t;
  
  /* mask field - tell what has been modified */
***************
*** 134,142 ****
  #define CM_SCACHETYPE_DIRECTORY		2	/* a dir */
  #define CM_SCACHETYPE_SYMLINK		3	/* a symbolic link */
  #define CM_SCACHETYPE_MOUNTPOINT	4	/* a mount point */
  
  /* flag bits */
! #define CM_SCACHEFLAG_STATD                 0x01        /* status info is valid */
  #define CM_SCACHEFLAG_DELETED           0x02    /* file has been deleted */
  #define CM_SCACHEFLAG_CALLBACK          0x04    /* have a valid callback */
  #define CM_SCACHEFLAG_STORING           0x08    /* status being stored back */
--- 142,152 ----
  #define CM_SCACHETYPE_DIRECTORY		2	/* a dir */
  #define CM_SCACHETYPE_SYMLINK		3	/* a symbolic link */
  #define CM_SCACHETYPE_MOUNTPOINT	4	/* a mount point */
+ #define CM_SCACHETYPE_DFSLINK           5       /* a Microsoft Dfs link */
+ #define CM_SCACHETYPE_INVALID           99      /* an invalid link */
  
  /* flag bits */
! #define CM_SCACHEFLAG_STATD             0x01    /* status info is valid */
  #define CM_SCACHEFLAG_DELETED           0x02    /* file has been deleted */
  #define CM_SCACHEFLAG_CALLBACK          0x04    /* have a valid callback */
  #define CM_SCACHEFLAG_STORING           0x08    /* status being stored back */
***************
*** 212,225 ****
  				   ((fidp)->volume +	\
  				    (fidp)->vnode +	\
  				    (fidp)->unique))	\
! 					% cm_hashTableSize)
  
  #include "cm_conn.h"
  #include "cm_buf.h"
  
! extern cm_scache_t cm_fakeSCache;
! 
! extern void cm_InitSCache(long);
  
  extern long cm_GetSCache(cm_fid_t *, cm_scache_t **, struct cm_user *,
  	struct cm_req *);
--- 222,233 ----
  				   ((fidp)->volume +	\
  				    (fidp)->vnode +	\
  				    (fidp)->unique))	\
! 					% cm_data.hashTableSize)
  
  #include "cm_conn.h"
  #include "cm_buf.h"
  
! extern void cm_InitSCache(int, long);
  
  extern long cm_GetSCache(cm_fid_t *, cm_scache_t **, struct cm_user *,
  	struct cm_req *);
***************
*** 250,265 ****
  
  extern cm_scache_t *cm_FindSCache(cm_fid_t *fidp);
  
- extern long cm_hashTableSize;
- 
  extern osi_rwlock_t cm_scacheLock;
  
  extern osi_queue_t *cm_allFileLocks;
  
- extern cm_scache_t **cm_hashTablep;
- 
  extern void cm_DiscardSCache(cm_scache_t *scp);
  
  extern int cm_FindFileType(cm_fid_t *fidp);
  
  #endif /*  __CM_SCACHE_H_ENV__ */
--- 258,273 ----
  
  extern cm_scache_t *cm_FindSCache(cm_fid_t *fidp);
  
  extern osi_rwlock_t cm_scacheLock;
  
  extern osi_queue_t *cm_allFileLocks;
  
  extern void cm_DiscardSCache(cm_scache_t *scp);
  
  extern int cm_FindFileType(cm_fid_t *fidp);
  
+ extern long cm_ValidateSCache(void);
+ 
+ extern long cm_ShutdownSCache(void);
+ 
  #endif /*  __CM_SCACHE_H_ENV__ */
Index: openafs/src/WINNT/afsd/cm_server.c
diff -c openafs/src/WINNT/afsd/cm_server.c:1.13.2.4 openafs/src/WINNT/afsd/cm_server.c:1.13.2.5
*** openafs/src/WINNT/afsd/cm_server.c:1.13.2.4	Mon Oct 18 00:09:26 2004
--- openafs/src/WINNT/afsd/cm_server.c	Fri Mar 11 01:58:42 2005
***************
*** 29,40 ****
  
  cm_server_t *cm_allServersp;
  
- int cm_noIPAddr;         /* number of client network interfaces */
- int cm_IPAddr[CM_MAXINTERFACE_ADDR];    /* client's IP address in host order */
- int cm_SubnetMask[CM_MAXINTERFACE_ADDR];/* client's subnet mask in host order*/
- int cm_NetMtu[CM_MAXINTERFACE_ADDR];    /* client's MTU sizes */
- int cm_NetFlags[CM_MAXINTERFACE_ADDR];  /* network flags */
- 
  void cm_CheckServers(long flags, cm_cell_t *cellp)
  {
      /* ping all file servers, up or down, with unauthenticated connection,
--- 29,34 ----
***************
*** 47,53 ****
      long usecs;
      int doPing;
      int serverType;
!     long now;
      int wasDown;
      cm_conn_t *connp;
      struct rx_connection * callp;
--- 41,47 ----
      long usecs;
      int doPing;
      int serverType;
!     unsigned long now;
      int wasDown;
      cm_conn_t *connp;
      struct rx_connection * callp;
***************
*** 172,177 ****
--- 166,184 ----
      /* implement server prefs for fileservers only */
      if ( serverp->type == CM_SERVER_FILE )
      {
+         int cm_noIPAddr;         /* number of client network interfaces */
+         int cm_IPAddr[CM_MAXINTERFACE_ADDR];    /* client's IP address in host order */
+         int cm_SubnetMask[CM_MAXINTERFACE_ADDR];/* client's subnet mask in host order*/
+         int cm_NetMtu[CM_MAXINTERFACE_ADDR];    /* client's MTU sizes */
+         int cm_NetFlags[CM_MAXINTERFACE_ADDR];  /* network flags */
+         long code;
+ 
+         /* get network related info */
+         cm_noIPAddr = CM_MAXINTERFACE_ADDR;
+         code = syscfg_GetIFInfo(&cm_noIPAddr,
+                                  cm_IPAddr, cm_SubnetMask,
+                                  cm_NetMtu, cm_NetFlags);
+ 
          serverAddr = ntohl(serverp->addr.sin_addr.s_addr);
          serverp->ipRank  = CM_IPRANK_LOW;	/* default setings */
  
***************
*** 247,253 ****
      lock_ObtainWrite(&cm_serverLock);
      for (tsp = cm_allServersp; tsp; tsp=tsp->allNextp) {
          if (tsp->type == type &&
!              tsp->addr.sin_addr.s_addr == addrp->sin_addr.s_addr) break;
      }       
  
      /* bump ref count if we found the server */
--- 254,261 ----
      lock_ObtainWrite(&cm_serverLock);
      for (tsp = cm_allServersp; tsp; tsp=tsp->allNextp) {
          if (tsp->type == type &&
!             tsp->addr.sin_addr.s_addr == addrp->sin_addr.s_addr) 
!             break;
      }       
  
      /* bump ref count if we found the server */
Index: openafs/src/WINNT/afsd/cm_server.h
diff -c openafs/src/WINNT/afsd/cm_server.h:1.5.2.3 openafs/src/WINNT/afsd/cm_server.h:1.5.2.4
*** openafs/src/WINNT/afsd/cm_server.h:1.5.2.3	Mon Dec 13 09:13:08 2004
--- openafs/src/WINNT/afsd/cm_server.h	Fri Mar 11 01:58:42 2005
***************
*** 24,43 ****
      struct cm_server *allNextp;		/* locked by cm_serverLock */
      struct sockaddr_in addr;		/* by mx */
      int type;				/* by mx */
!     struct cm_conn *connsp;		/* locked by cm_connLock */
      long flags;				/* by mx */
!     struct cm_cell *cellp;		/* cell containing this server */
!     unsigned long refCount;		/* locked by cm_serverLock */
!     osi_mutex_t mx;                     
!     unsigned short ipRank;		/* server priority */
  } cm_server_t;
  
  enum repstate {not_busy, busy, offline};
  
  typedef struct cm_serverRef {
! 	struct cm_serverRef *next;      /* locked by cm_serverLock */
! 	struct cm_server *server;       /* locked by cm_serverLock */
! 	enum repstate status;           /* locked by cm_serverLock */
      unsigned long refCount;                   /* locked by cm_serverLock */
  } cm_serverRef_t;
  
--- 24,43 ----
      struct cm_server *allNextp;		/* locked by cm_serverLock */
      struct sockaddr_in addr;		/* by mx */
      int type;				/* by mx */
!     struct cm_conn *connsp;			/* locked by cm_connLock */
      long flags;				/* by mx */
!     struct cm_cell *cellp;			/* cell containing this server */
!     unsigned long refCount;				/* locked by cm_serverLock */
!     osi_mutex_t mx;
!     unsigned short ipRank;			/* server priority */
  } cm_server_t;
  
  enum repstate {not_busy, busy, offline};
  
  typedef struct cm_serverRef {
!     struct cm_serverRef *next;      /* locked by cm_serverLock */
!     struct cm_server *server;       /* locked by cm_serverLock */
!     enum repstate status;           /* locked by cm_serverLock */
      unsigned long refCount;                   /* locked by cm_serverLock */
  } cm_serverRef_t;
  
***************
*** 61,71 ****
  /* the maximum number of network interfaces that this client has */ 
  
  #define CM_MAXINTERFACE_ADDR          16
- extern int cm_noIPAddr;		/* number of client network interfaces */
- extern int cm_IPAddr[CM_MAXINTERFACE_ADDR];    /* client's IP address */
- extern int cm_SubnetMask[CM_MAXINTERFACE_ADDR];/* client's subnet mask*/ 
- extern int cm_NetMtu[CM_MAXINTERFACE_ADDR];    /* client's MTU sizes */
- extern int cm_NetFlags[CM_MAXINTERFACE_ADDR];  /* network flags */
  
  extern cm_server_t *cm_NewServer(struct sockaddr_in *addrp, int type,
  	struct cm_cell *cellp);
--- 61,66 ----
Index: openafs/src/WINNT/afsd/cm_utils.c
diff -c openafs/src/WINNT/afsd/cm_utils.c:1.5.14.1 openafs/src/WINNT/afsd/cm_utils.c:1.5.14.2
*** openafs/src/WINNT/afsd/cm_utils.c:1.5.14.1	Tue Sep 21 10:07:18 2004
--- openafs/src/WINNT/afsd/cm_utils.c	Fri Mar 11 01:58:43 2005
***************
*** 84,108 ****
  
  	/* If we had to stop retrying, report our saved error code. */
  	if (reqp && error == CM_ERROR_TIMEDOUT) {
! 		if (reqp->accessError)
! 			return reqp->accessError;
! 		if (reqp->volumeError)
! 			return reqp->volumeError;
! 		if (reqp->rpcError)
! 			return reqp->rpcError;
! 		return error;
  	}
  
! 	if (error < 0) error = CM_ERROR_TIMEDOUT;
! 	else if (error == 30) error = CM_ERROR_READONLY;
! 	else if (error == 20) error = CM_ERROR_NOTDIR;
!         else if (error == 13) error = CM_ERROR_NOACCESS;
!         else if (error == 2) error = CM_ERROR_NOSUCHFILE;
  	else if (error == 17		/* AIX */
  		 || error == 66		/* SunOS 4, Digital UNIX */
  		 || error == 93		/* Solaris 2, IRIX */
  		 || error == 247)	/* HP/UX */
! 		error = CM_ERROR_NOTEMPTY;
          return error;
  }
  
--- 84,113 ----
  
  	/* If we had to stop retrying, report our saved error code. */
  	if (reqp && error == CM_ERROR_TIMEDOUT) {
!             if (reqp->accessError)
!                 return reqp->accessError;
!             if (reqp->volumeError)
!                 return reqp->volumeError;
!             if (reqp->rpcError)
!                 return reqp->rpcError;
!             return error;
  	}
  
! 	if (error < 0) 
!             error = CM_ERROR_TIMEDOUT;
! 	else if (error == 30) 
!             error = CM_ERROR_READONLY;
! 	else if (error == 20) 
!             error = CM_ERROR_NOTDIR;
!         else if (error == 13) 
!             error = CM_ERROR_NOACCESS;
!         else if (error == 2) 
!             error = CM_ERROR_NOSUCHFILE;
  	else if (error == 17		/* AIX */
  		 || error == 66		/* SunOS 4, Digital UNIX */
  		 || error == 93		/* Solaris 2, IRIX */
  		 || error == 247)	/* HP/UX */
!             error = CM_ERROR_NOTEMPTY;
          return error;
  }
  
***************
*** 121,128 ****
  		return error;
  	}
  
! 	if (error < 0) error = CM_ERROR_TIMEDOUT;
! 	else if (error == VL_NOENT) error = CM_ERROR_NOSUCHVOLUME;
  	return error;
  }
  
--- 126,135 ----
  		return error;
  	}
  
! 	if (error < 0) 
!             error = CM_ERROR_TIMEDOUT;
! 	else if (error == VL_NOENT) 
!             error = CM_ERROR_NOSUCHVOLUME;
  	return error;
  }
  
Index: openafs/src/WINNT/afsd/cm_vnodeops.c
diff -c openafs/src/WINNT/afsd/cm_vnodeops.c:1.19.2.10 openafs/src/WINNT/afsd/cm_vnodeops.c:1.19.2.11
*** openafs/src/WINNT/afsd/cm_vnodeops.c:1.19.2.10	Sun Feb 20 20:16:39 2005
--- openafs/src/WINNT/afsd/cm_vnodeops.c	Fri Mar 11 01:58:43 2005
***************
*** 32,39 ****
  extern void afsi_log(char *pattern, ...);
  #endif
  
- unsigned int cm_mountRootGen = 0;
- 
  /*
   * Case-folding array.  This was constructed by inspecting of SMBtrace output.
   * I do not know anything more about it.
--- 32,37 ----
***************
*** 180,191 ****
  
  /*
   * Number unparsing map for generating 8.3 names;
!  * Taken from DFS.
   */
! char cm_8Dot3Mapping[41] =
  {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
!  'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S',
!  'T', 'V', 'W', 'X', 'Y', 'Z', '_', '-', '$', '#', '@', '%', '!', '&', 'E', 'O'
  };
  int cm_8Dot3MapSize = sizeof(cm_8Dot3Mapping);
  
--- 178,191 ----
  
  /*
   * Number unparsing map for generating 8.3 names;
!  * The version taken from DFS was on drugs.  
!  * You can't include '&' and '@' in a file name.
   */
! char cm_8Dot3Mapping[42] =
  {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
!  'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 
!  'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 
!  'V', 'W', 'X', 'Y', 'Z', '_', '-', '$', '#', '!', '+', '='
  };
  int cm_8Dot3MapSize = sizeof(cm_8Dot3Mapping);
  
***************
*** 474,493 ****
  	 * do not have an associated cm_server_t
  	 */
      if ( !(cm_freelanceEnabled &&
! 			sp->fid.cell==AFS_FAKE_ROOT_CELL_ID &&
! 			sp->fid.volume==AFS_FAKE_ROOT_VOL_ID ) )
  #endif /* AFS_FREELANCE_CLIENT */
! 		{
! 	        int casefold = sp->caseFold;
! 			sp->caseFold = 0; /* we have a strong preference for exact matches */
! 			if ( *retscp = cm_dnlcLookup(scp, sp))	/* dnlc hit */
! 			{
! 				sp->caseFold = casefold;
! 				lock_ReleaseMutex(&scp->mx);
! 				return 0;
! 			}
! 	        sp->caseFold = casefold;
! 		}
      }	
  
      /*
--- 474,493 ----
  	 * do not have an associated cm_server_t
  	 */
      if ( !(cm_freelanceEnabled &&
!             sp->fid.cell==AFS_FAKE_ROOT_CELL_ID &&
!             sp->fid.volume==AFS_FAKE_ROOT_VOL_ID ) )
  #endif /* AFS_FREELANCE_CLIENT */
!     {
!         int casefold = sp->caseFold;
!         sp->caseFold = 0; /* we have a strong preference for exact matches */
!         if ( *retscp = cm_dnlcLookup(scp, sp))	/* dnlc hit */
!         {
!             sp->caseFold = casefold;
!             lock_ReleaseMutex(&scp->mx);
!             return 0;
!         }
!         sp->caseFold = casefold;
!     }
      }	
  
      /*
***************
*** 540,546 ****
           * the offset of the buffer we have.  If not, get the buffer.
           */
          thyper.HighPart = curOffset.HighPart;
!         thyper.LowPart = curOffset.LowPart & ~(buf_bufferSize-1);
          if (!bufferp || !LargeIntegerEqualTo(thyper, bufferOffset)) {
              /* wrong buffer */
              if (bufferp) {
--- 540,546 ----
           * the offset of the buffer we have.  If not, get the buffer.
           */
          thyper.HighPart = curOffset.HighPart;
!         thyper.LowPart = curOffset.LowPart & ~(cm_data.buf_blockSize-1);
          if (!bufferp || !LargeIntegerEqualTo(thyper, bufferOffset)) {
              /* wrong buffer */
              if (bufferp) {
***************
*** 552,562 ****
              lock_ObtainRead(&scp->bufCreateLock);
              code = buf_Get(scp, &thyper, &bufferp);
              lock_ReleaseRead(&scp->bufCreateLock);
! 			if (code) {
! 				/* if buf_Get() fails we do not have a buffer object to lock */
                  bufferp = NULL;
                  break;
! 			}
  
              lock_ObtainMutex(&bufferp->mx);
              bufferOffset = thyper;
--- 552,562 ----
              lock_ObtainRead(&scp->bufCreateLock);
              code = buf_Get(scp, &thyper, &bufferp);
              lock_ReleaseRead(&scp->bufCreateLock);
!             if (code) {
!                 /* if buf_Get() fails we do not have a buffer object to lock */
                  bufferp = NULL;
                  break;
!             }
  
              lock_ObtainMutex(&bufferp->mx);
              bufferOffset = thyper;
***************
*** 600,606 ****
           * in; copy it out if it represents a non-deleted entry.
           */
          entryInDir = curOffset.LowPart & (2048-1);
!         entryInBuffer = curOffset.LowPart & (buf_bufferSize - 1);
  
          /* page header will help tell us which entries are free.  Page
           * header can change more often than once per buffer, since
--- 600,606 ----
           * in; copy it out if it represents a non-deleted entry.
           */
          entryInDir = curOffset.LowPart & (2048-1);
!         entryInBuffer = curOffset.LowPart & (cm_data.buf_blockSize - 1);
  
          /* page header will help tell us which entries are free.  Page
           * header can change more often than once per buffer, since
***************
*** 608,614 ****
           * buffer package buffer.
           */
          /* only look intra-buffer */
!         temp = curOffset.LowPart & (buf_bufferSize - 1);
          temp &= ~(2048 - 1);	/* turn off intra-page bits */
          pageHeaderp = (cm_pageHeader_t *) (bufferp->datap + temp);
  
--- 608,614 ----
           * buffer package buffer.
           */
          /* only look intra-buffer */
!         temp = curOffset.LowPart & (cm_data.buf_blockSize - 1);
          temp &= ~(2048 - 1);	/* turn off intra-page bits */
          pageHeaderp = (cm_pageHeader_t *) (bufferp->datap + temp);
  
***************
*** 770,776 ****
      osi_hyper_t thyper;
      int tlen;
  
!     if (scp->mountPointStringp) 
          return 0;
          
      /* otherwise, we have to read it in */
--- 770,776 ----
      osi_hyper_t thyper;
      int tlen;
  
!     if (scp->mountPointStringp[0]) 
          return 0;
          
      /* otherwise, we have to read it in */
***************
*** 810,822 ****
      }
  
      /* someone else did the work while we were out */
!     if (scp->mountPointStringp) {
          code = 0;
          goto done;
      }
  
      /* otherwise, copy out the link */
-     scp->mountPointStringp = malloc(tlen);
      memcpy(scp->mountPointStringp, bufp->datap, tlen);
  
      /* now make it null-terminated.  Note that the original contents of a
--- 810,821 ----
      }
  
      /* someone else did the work while we were out */
!     if (scp->mountPointStringp[0]) {
          code = 0;
          goto done;
      }
  
      /* otherwise, copy out the link */
      memcpy(scp->mountPointStringp, bufp->datap, tlen);
  
      /* now make it null-terminated.  Note that the original contents of a
***************
*** 838,844 ****
   * scp remains locked, just for simplicity of describing the interface.
   */
  long cm_FollowMountPoint(cm_scache_t *scp, cm_scache_t *dscp, cm_user_t *userp,
!                           cm_req_t *reqp, cm_scache_t **outScpp)
  {
      char *cellNamep;
      char *volNamep;
--- 837,843 ----
   * scp remains locked, just for simplicity of describing the interface.
   */
  long cm_FollowMountPoint(cm_scache_t *scp, cm_scache_t *dscp, cm_user_t *userp,
!                          cm_req_t *reqp, cm_scache_t **outScpp)
  {
      char *cellNamep;
      char *volNamep;
***************
*** 853,860 ****
      size_t vnLength;
      int type;
  
!     if (scp->mountRootFidp && scp->mountRootGen >= cm_mountRootGen) {
!         tfid = *scp->mountRootFidp;
          lock_ReleaseMutex(&scp->mx);
          code = cm_GetSCache(&tfid, outScpp, userp, reqp);
          lock_ObtainMutex(&scp->mx);
--- 852,859 ----
      size_t vnLength;
      int type;
  
!     if (scp->mountRootFid.cell != 0 && scp->mountRootGen >= cm_data.mountRootGen) {
!         tfid = scp->mountRootFid;
          lock_ReleaseMutex(&scp->mx);
          code = cm_GetSCache(&tfid, outScpp, userp, reqp);
          lock_ObtainMutex(&scp->mx);
***************
*** 863,869 ****
  
      /* parse the volume name */
      mpNamep = scp->mountPointStringp;
!     osi_assert(mpNamep);
      tlen = strlen(scp->mountPointStringp);
      mtType = *scp->mountPointStringp;
      cellNamep = malloc(tlen);
--- 862,868 ----
  
      /* parse the volume name */
      mpNamep = scp->mountPointStringp;
!     osi_assert(mpNamep[0]);
      tlen = strlen(scp->mountPointStringp);
      mtType = *scp->mountPointStringp;
      cellNamep = malloc(tlen);
***************
*** 920,934 ****
           * (defect 11489)
           */
          lock_ObtainMutex(&volp->mx);
!         if(volp->dotdotFidp == (cm_fid_t *) NULL) 
!             volp->dotdotFidp = (cm_fid_t *) malloc(sizeof(cm_fid_t));
!         *(volp->dotdotFidp) = dscp->fid;
          lock_ReleaseMutex(&volp->mx);
  
!         if (scp->mountRootFidp == 0) {
!             scp->mountRootFidp = malloc(sizeof(cm_fid_t));
!         }
!         scp->mountRootFidp->cell = cellp->cellID;
          /* if the mt pt is in a read-only volume (not just a
           * backup), and if there is a read-only volume for the
           * target, and if this is a type '#' mount point, use
--- 919,928 ----
           * (defect 11489)
           */
          lock_ObtainMutex(&volp->mx);
!         volp->dotdotFid = dscp->fid;
          lock_ReleaseMutex(&volp->mx);
  
!         scp->mountRootFid.cell = cellp->cellID;
          /* if the mt pt is in a read-only volume (not just a
           * backup), and if there is a read-only volume for the
           * target, and if this is a type '#' mount point, use
***************
*** 938,955 ****
               && volp->roID != 0 && type == RWVOL)
              type = ROVOL;
          if (type == ROVOL)
!             scp->mountRootFidp->volume = volp->roID;
          else if (type == BACKVOL)
!             scp->mountRootFidp->volume = volp->bkID;
          else
!             scp->mountRootFidp->volume = volp->rwID;
  
          /* the rest of the fid is a magic number */
!         scp->mountRootFidp->vnode = 1;
!         scp->mountRootFidp->unique = 1;
!         scp->mountRootGen = cm_mountRootGen;
  
!         tfid = *scp->mountRootFidp;
          lock_ReleaseMutex(&scp->mx);
          code = cm_GetSCache(&tfid, outScpp, userp, reqp);
          lock_ObtainMutex(&scp->mx);
--- 932,949 ----
               && volp->roID != 0 && type == RWVOL)
              type = ROVOL;
          if (type == ROVOL)
!             scp->mountRootFid.volume = volp->roID;
          else if (type == BACKVOL)
!             scp->mountRootFid.volume = volp->bkID;
          else
!             scp->mountRootFid.volume = volp->rwID;
  
          /* the rest of the fid is a magic number */
!         scp->mountRootFid.vnode = 1;
!         scp->mountRootFid.unique = 1;
!         scp->mountRootGen = cm_data.mountRootGen;
  
!         tfid = scp->mountRootFid;
          lock_ReleaseMutex(&scp->mx);
          code = cm_GetSCache(&tfid, outScpp, userp, reqp);
          lock_ObtainMutex(&scp->mx);
***************
*** 973,982 ****
  
      if (dscp->fid.vnode == 1 && dscp->fid.unique == 1
           && strcmp(namep, "..") == 0) {
!         if (dscp->dotdotFidp == (cm_fid_t *)NULL
!              || dscp->dotdotFidp->volume == 0)
              return CM_ERROR_NOSUCHVOLUME;
!         rock.fid = *dscp->dotdotFidp;
          goto haveFid;
      }
  
--- 967,975 ----
  
      if (dscp->fid.vnode == 1 && dscp->fid.unique == 1
           && strcmp(namep, "..") == 0) {
!         if (dscp->dotdotFid.volume == 0)
              return CM_ERROR_NOSUCHVOLUME;
!         rock.fid = dscp->dotdotFid;
          goto haveFid;
      }
  
***************
*** 995,1001 ****
       * that we stopped early, probably because we found the entry we're
       * looking for.  Any other non-zero code is an error.
       */
!     if (code && code != CM_ERROR_STOPNOW) { 
          /* if the cm_scache_t we are searching in is not a directory 
           * we must return path not found because the error 
           * is to describe the final component not an intermediary
--- 988,994 ----
       * that we stopped early, probably because we found the entry we're
       * looking for.  Any other non-zero code is an error.
       */
!     if (code && code != CM_ERROR_STOPNOW) {
          /* if the cm_scache_t we are searching in is not a directory 
           * we must return path not found because the error 
           * is to describe the final component not an intermediary
***************
*** 1009,1015 ****
          return code;
      }
  
!     getroot = (dscp==cm_rootSCachep) ;
      if (!rock.found) {
          if (!cm_freelanceEnabled || !getroot) {
              if (flags & CM_FLAG_CHECKPATH)
--- 1002,1008 ----
          return code;
      }
  
!     getroot = (dscp==cm_data.rootSCachep) ;
      if (!rock.found) {
          if (!cm_freelanceEnabled || !getroot) {
              if (flags & CM_FLAG_CHECKPATH)
***************
*** 1184,1190 ****
      struct rx_connection * callp;
  
  #ifdef AFS_FREELANCE_CLIENT
!     if (cm_freelanceEnabled && dscp == cm_rootSCachep) {
          /* deleting a mount point from the root dir. */
          code = cm_FreelanceRemoveMount(namep);
          return code;
--- 1177,1183 ----
      struct rx_connection * callp;
  
  #ifdef AFS_FREELANCE_CLIENT
!     if (cm_freelanceEnabled && dscp == cm_data.rootSCachep) {
          /* deleting a mount point from the root dir. */
          code = cm_FreelanceRemoveMount(namep);
          return code;
***************
*** 1237,1243 ****
      osi_hyper_t thyper;
  
      lock_AssertMutex(&linkScp->mx);
!     if (!linkScp->mountPointStringp) {
          /* read the link data */
          lock_ReleaseMutex(&linkScp->mx);
          thyper.LowPart = thyper.HighPart = 0;
--- 1230,1236 ----
      osi_hyper_t thyper;
  
      lock_AssertMutex(&linkScp->mx);
!     if (!linkScp->mountPointStringp[0]) {
          /* read the link data */
          lock_ReleaseMutex(&linkScp->mx);
          thyper.LowPart = thyper.HighPart = 0;
***************
*** 1264,1270 ****
                  
          /* now if we still have no link read in,
           * copy the data from the buffer */
!         if ((temp = linkScp->length.LowPart) >= 1024) {
              buf_Release(bufp);
              return CM_ERROR_TOOBIG;
          }
--- 1257,1263 ----
                  
          /* now if we still have no link read in,
           * copy the data from the buffer */
!         if ((temp = linkScp->length.LowPart) >= MOUNTPOINTLEN) {
              buf_Release(bufp);
              return CM_ERROR_TOOBIG;
          }
***************
*** 1273,1280 ****
           * lost race with someone else referencing this link above),
           * and if so, copy in the data.
           */
!         if (linkScp->mountPointStringp == NULL) {
!             linkScp->mountPointStringp = malloc(temp+1);
              strncpy(linkScp->mountPointStringp, bufp->datap, temp);
              linkScp->mountPointStringp[temp] = 0;	/* null terminate */
          }
--- 1266,1272 ----
           * lost race with someone else referencing this link above),
           * and if so, copy in the data.
           */
!         if (!linkScp->mountPointStringp[0]) {
              strncpy(linkScp->mountPointStringp, bufp->datap, temp);
              linkScp->mountPointStringp[temp] = 0;	/* null terminate */
          }
***************
*** 1294,1300 ****
                        cm_scache_t **newRootScpp, cm_space_t **newSpaceBufferp,
                        cm_user_t *userp, cm_req_t *reqp)
  {
!     long code;
      char *linkp;
      cm_space_t *tsp;
  
--- 1286,1293 ----
                        cm_scache_t **newRootScpp, cm_space_t **newSpaceBufferp,
                        cm_user_t *userp, cm_req_t *reqp)
  {
!     long code = 0;
!     long len;
      char *linkp;
      cm_space_t *tsp;
  
***************
*** 1318,1339 ****
              strcpy(tsp->data, linkp+cm_mountRootLen+1);
          else
              tsp->data[0] = 0;
!         *newRootScpp = cm_rootSCachep;
!         cm_HoldSCache(cm_rootSCachep);
      } else if (*linkp == '\\' || *linkp == '/') {
          /* formerly, this was considered to be from the AFS root,
           * but this seems to create problems.  instead, we will just
           * reject the link */
- #if 0   
          strcpy(tsp->data, linkp+1);
!         *newRootScpp = cm_rootSCachep;
!         cm_HoldSCache(cm_rootSCachep);
  #else
          code = CM_ERROR_NOSUCHPATH;
-         goto done;
  #endif  
!     }
!     else {
          /* a relative link */
          strcpy(tsp->data, linkp);
          *newRootScpp = NULL;
--- 1311,1361 ----
              strcpy(tsp->data, linkp+cm_mountRootLen+1);
          else
              tsp->data[0] = 0;
!         *newRootScpp = cm_data.rootSCachep;
!         cm_HoldSCache(cm_data.rootSCachep);
!     } else if (linkp[0] == '\\' && linkp[1] == '\\') {
!         if (!strnicmp(&linkp[2], cm_NetbiosName, (len = strlen(cm_NetbiosName)))) 
!         {
!             char * p = &linkp[len + 3];
!             if (strnicmp(p, "all", 3) == 0)
!                 p += 4;
! 
!             strcpy(tsp->data, p);
!             for (p = tsp->data; *p; p++) {
!                 if (*p == '\\')
!                     *p = '/';
!             }
!             *newRootScpp = cm_data.rootSCachep;
!             cm_HoldSCache(cm_data.rootSCachep);
!         } else {
!             linkScp->fileType = CM_SCACHETYPE_DFSLINK;
!             strcpy(tsp->data, linkp);
!             *newRootScpp = NULL;
!             code = CM_ERROR_PATH_NOT_COVERED;
!         }
!     } else if ( !strnicmp(linkp, "msdfs:", (len = strlen("msdfs:"))) ) {
!         linkScp->fileType = CM_SCACHETYPE_DFSLINK;
!         strcpy(tsp->data, linkp);
!         *newRootScpp = NULL;
!         code = CM_ERROR_PATH_NOT_COVERED;
      } else if (*linkp == '\\' || *linkp == '/') {
+ #if 0   
          /* formerly, this was considered to be from the AFS root,
           * but this seems to create problems.  instead, we will just
           * reject the link */
          strcpy(tsp->data, linkp+1);
!         *newRootScpp = cm_data.rootSCachep;
!         cm_HoldSCache(cm_data.rootSCachep);
  #else
+         /* we still copy the link data into the response so that 
+          * the user can see what the link points to
+          */
+         linkScp->fileType = CM_SCACHETYPE_INVALID;
+         strcpy(tsp->data, linkp);
+         *newRootScpp = NULL;
          code = CM_ERROR_NOSUCHPATH;
  #endif  
!     } else {
          /* a relative link */
          strcpy(tsp->data, linkp);
          *newRootScpp = NULL;
***************
*** 1343,1349 ****
          strcat(tsp->data, pathSuffixp);
      }
      *newSpaceBufferp = tsp;
-     code = 0;
  
    done:
      lock_ReleaseMutex(&linkScp->mx);
--- 1365,1370 ----
***************
*** 1357,1376 ****
      char *tp;			/* ptr moving through input buffer */
      char tc;			/* temp char */
      int haveComponent;		/* has new component started? */
!     char component[256];		/* this is the new component */
      char *cp;			/* component name being assembled */
      cm_scache_t *tscp;		/* current location in the hierarchy */
      cm_scache_t *nscp;		/* next dude down */
!     cm_scache_t *dirScp;		/* last dir we searched */
!     cm_scache_t *linkScp;		/* new root for the symlink we just
      * looked up */
      cm_space_t *psp;		/* space for current path, if we've hit
      * any symlinks */
      cm_space_t *tempsp;		/* temp vbl */
!     char *restp;			/* rest of the pathname to interpret */
      int symlinkCount;		/* count of # of symlinks traversed */
!     int extraFlag;			/* avoid chasing mt pts for dir cmd */
!     int phase = 1;			/* 1 = tidPathp, 2 = pathp */
  
      tp = tidPathp;
      if (tp == NULL) {
--- 1378,1397 ----
      char *tp;			/* ptr moving through input buffer */
      char tc;			/* temp char */
      int haveComponent;		/* has new component started? */
!     char component[256];	/* this is the new component */
      char *cp;			/* component name being assembled */
      cm_scache_t *tscp;		/* current location in the hierarchy */
      cm_scache_t *nscp;		/* next dude down */
!     cm_scache_t *dirScp;	/* last dir we searched */
!     cm_scache_t *linkScp;	/* new root for the symlink we just
      * looked up */
      cm_space_t *psp;		/* space for current path, if we've hit
      * any symlinks */
      cm_space_t *tempsp;		/* temp vbl */
!     char *restp;		/* rest of the pathname to interpret */
      int symlinkCount;		/* count of # of symlinks traversed */
!     int extraFlag;		/* avoid chasing mt pts for dir cmd */
!     int phase = 1;		/* 1 = tidPathp, 2 = pathp */
  
      tp = tidPathp;
      if (tp == NULL) {
***************
*** 1385,1390 ****
--- 1406,1413 ----
      tscp = rootSCachep;
      cm_HoldSCache(tscp);
      symlinkCount = 0;
+     dirScp = 0;
+ 
      while (1) {
          tc = *tp++;
  
***************
*** 1395,1403 ****
              tc = '\\';
  
          if (!haveComponent) {
!             if (tc == '\\') 
                  continue;
!             else if (tc == 0) {
                  if (phase == 1) {
                      phase = 2;
                      tp = pathp;
--- 1418,1426 ----
              tc = '\\';
  
          if (!haveComponent) {
!             if (tc == '\\') {
                  continue;
!             } else if (tc == 0) {
                  if (phase == 1) {
                      phase = 2;
                      tp = pathp;
***************
*** 1405,1418 ****
                  }
                  code = 0;
                  break;
!             }
!             else {
                  haveComponent = 1;
                  cp = component;
                  *cp++ = tc;
              }
!         }
!         else {
              /* we have a component here */
              if (tc == 0 || tc == '\\') {
                  /* end of the component; we're at the last
--- 1428,1439 ----
                  }
                  code = 0;
                  break;
!             } else {
                  haveComponent = 1;
                  cp = component;
                  *cp++ = tc;
              }
!         } else {
              /* we have a component here */
              if (tc == 0 || tc == '\\') {
                  /* end of the component; we're at the last
***************
*** 1426,1434 ****
                  code = cm_Lookup(tscp, component,
                                    flags | extraFlag,
                                    userp, reqp, &nscp);
- 
                  if (code) {
                      cm_ReleaseSCache(tscp);
                      if (psp) 
                          cm_FreeSpace(psp);
                      if (code == CM_ERROR_NOSUCHFILE && tscp->fileType == CM_SCACHETYPE_SYMLINK)
--- 1447,1456 ----
                  code = cm_Lookup(tscp, component,
                                    flags | extraFlag,
                                    userp, reqp, &nscp);
                  if (code) {
                      cm_ReleaseSCache(tscp);
+                     if (dirScp)
+                         cm_ReleaseSCache(dirScp);
                      if (psp) 
                          cm_FreeSpace(psp);
                      if (code == CM_ERROR_NOSUCHFILE && tscp->fileType == CM_SCACHETYPE_SYMLINK)
***************
*** 1437,1447 ****
                          return code;
                  }
                  haveComponent = 0;	/* component done */
                  dirScp = tscp;		/* for some symlinks */
!                 tscp = nscp;	/* already held */
                  if (tc == 0 && !(flags & CM_FLAG_FOLLOW) && phase == 2) {
                      code = 0;
!                     cm_ReleaseSCache(dirScp);
                      break;
                  }
  
--- 1459,1475 ----
                          return code;
                  }
                  haveComponent = 0;	/* component done */
+                 if (dirScp)
+                     cm_ReleaseSCache(dirScp);
                  dirScp = tscp;		/* for some symlinks */
!                 tscp = nscp;	        /* already held */
!                 nscp = 0;
                  if (tc == 0 && !(flags & CM_FLAG_FOLLOW) && phase == 2) {
                      code = 0;
!                     if (dirScp) {
!                         cm_ReleaseSCache(dirScp);
!                         dirScp = 0;
!                     }
                      break;
                  }
  
***************
*** 1455,1461 ****
                  if (code) {
                      lock_ReleaseMutex(&tscp->mx);
                      cm_ReleaseSCache(tscp);
!                     cm_ReleaseSCache(dirScp);
                      break;
                  }
                  if (tscp->fileType == CM_SCACHETYPE_SYMLINK) {
--- 1483,1493 ----
                  if (code) {
                      lock_ReleaseMutex(&tscp->mx);
                      cm_ReleaseSCache(tscp);
!                     tscp = 0;
!                     if (dirScp) {
!                         cm_ReleaseSCache(dirScp);
!                         dirScp = 0;
!                     }
                      break;
                  }
                  if (tscp->fileType == CM_SCACHETYPE_SYMLINK) {
***************
*** 1463,1469 ****
                      lock_ReleaseMutex(&tscp->mx);
                      if (symlinkCount++ >= MAX_SYMLINK_COUNT) {
                          cm_ReleaseSCache(tscp);
!                         cm_ReleaseSCache(dirScp);
                          if (psp) 
                              cm_FreeSpace(psp);
                          return CM_ERROR_TOO_MANY_SYMLINKS;
--- 1495,1505 ----
                      lock_ReleaseMutex(&tscp->mx);
                      if (symlinkCount++ >= MAX_SYMLINK_COUNT) {
                          cm_ReleaseSCache(tscp);
!                         tscp = 0;
!                         if (dirScp) {
!                             cm_ReleaseSCache(dirScp);
!                             dirScp = 0;
!                         }
                          if (psp) 
                              cm_FreeSpace(psp);
                          return CM_ERROR_TOO_MANY_SYMLINKS;
***************
*** 1476,1482 ****
                      if (code) {
                          /* something went wrong */
                          cm_ReleaseSCache(tscp);
!                         cm_ReleaseSCache(dirScp);
                          break;
                      }
  
--- 1512,1522 ----
                      if (code) {
                          /* something went wrong */
                          cm_ReleaseSCache(tscp);
!                         tscp = 0;
!                         if (dirScp) {
!                             cm_ReleaseSCache(dirScp);
!                             dirScp = 0;
!                         }
                          break;
                      }
  
***************
*** 1493,1499 ****
                      psp = tempsp;
                      tp = psp->data;
                      cm_ReleaseSCache(tscp);
!                     tscp = linkScp;	
                      /* already held
                       * by AssembleLink
                       * now, if linkScp is null, that's
--- 1533,1540 ----
                      psp = tempsp;
                      tp = psp->data;
                      cm_ReleaseSCache(tscp);
!                     tscp = linkScp;
!                     linkScp = 0;
                      /* already held
                       * by AssembleLink
                       * now, if linkScp is null, that's
***************
*** 1505,1515 ****
                       * dir hierarchy.
                       */
                      if (tscp == NULL) {
-                         cm_HoldSCache(dirScp);
                          tscp = dirScp;
                      }
!                 }	/* if we have a sym link */
!                 else {
                      /* not a symlink, we may be done */
                      lock_ReleaseMutex(&tscp->mx);
                      if (tc == 0) {
--- 1546,1555 ----
                       * dir hierarchy.
                       */
                      if (tscp == NULL) {
                          tscp = dirScp;
+                         dirScp = 0;
                      }
!                 } else {
                      /* not a symlink, we may be done */
                      lock_ReleaseMutex(&tscp->mx);
                      if (tc == 0) {
***************
*** 1518,1539 ****
                              tp = pathp;
                              continue;
                          }
!                         cm_ReleaseSCache(dirScp);
                          code = 0;
                          break;
                      }
                  }
!                 cm_ReleaseSCache(dirScp);
              } /* end of a component */
!             else *cp++ = tc;
          } /* we have a component */
      } /* big while loop over all components */
  
      /* already held */
      if (psp) 
          cm_FreeSpace(psp);
      if (code == 0) 
          *outScpp = tscp;
      return code;
  }
  
--- 1558,1590 ----
                              tp = pathp;
                              continue;
                          }
!                         if (dirScp) {
!                             cm_ReleaseSCache(dirScp);
!                             dirScp = 0;
!                         }
                          code = 0;
                          break;
                      }
                  }
!                 if (dirScp) {
!                     cm_ReleaseSCache(dirScp);
!                     dirScp = 0;
!                 }
              } /* end of a component */
!             else 
!                 *cp++ = tc;
          } /* we have a component */
      } /* big while loop over all components */
  
      /* already held */
+     if (dirScp)
+         cm_ReleaseSCache(dirScp);
      if (psp) 
          cm_FreeSpace(psp);
      if (code == 0) 
          *outScpp = tscp;
+     else if (tscp)
+         cm_ReleaseSCache(tscp);
      return code;
  }
  
***************
*** 1577,1582 ****
--- 1628,1636 ----
                       CM_FLAG_CASEFOLD | CM_FLAG_FOLLOW | CM_FLAG_DIRSEARCH,
                       userp, NULL, reqp, outScpp);
  
+ 	if (code == CM_ERROR_NOSUCHFILE)
+ 		code = CM_ERROR_NOSUCHPATH;
+ 
      /* this stuff is allocated no matter what happened on the namei call,
       * so free it */
      cm_FreeSpace(spacep);
***************
*** 1624,1630 ****
      if (bsp->counter >= CM_BULKMAX)
          return CM_ERROR_STOPNOW;
  
!     thyper.LowPart = buf_bufferSize;
      thyper.HighPart = 0;
      thyper = LargeIntegerAdd(thyper, bsp->bufOffset);
  
--- 1678,1684 ----
      if (bsp->counter >= CM_BULKMAX)
          return CM_ERROR_STOPNOW;
  
!     thyper.LowPart = cm_data.buf_blockSize;
      thyper.HighPart = 0;
      thyper = LargeIntegerAdd(thyper, bsp->bufOffset);
  
***************
*** 1710,1716 ****
      osi_Log1(afsd_logp, "cm_TryBulkStat dir 0x%x", (long) dscp);
  
      /* should be on a buffer boundary */
!     osi_assert((offsetp->LowPart & (buf_bufferSize - 1)) == 0);
  
      bb.counter = 0;
      bb.bufOffset = *offsetp;
--- 1764,1770 ----
      osi_Log1(afsd_logp, "cm_TryBulkStat dir 0x%x", (long) dscp);
  
      /* should be on a buffer boundary */
!     osi_assert((offsetp->LowPart & (cm_data.buf_blockSize - 1)) == 0);
  
      bb.counter = 0;
      bb.bufOffset = *offsetp;
Index: openafs/src/WINNT/afsd/cm_vnodeops.h
diff -c openafs/src/WINNT/afsd/cm_vnodeops.h:1.5.2.4 openafs/src/WINNT/afsd/cm_vnodeops.h:1.5.2.5
*** openafs/src/WINNT/afsd/cm_vnodeops.h:1.5.2.4	Fri Nov  5 14:21:45 2004
--- openafs/src/WINNT/afsd/cm_vnodeops.h	Fri Mar 11 01:58:43 2005
***************
*** 114,119 ****
--- 114,123 ----
  extern long cm_SymLink(cm_scache_t *dscp, char *namep, char *contentsp,
  	long flags, cm_attr_t *attrp, cm_user_t *userp, cm_req_t *reqp);
  
+ extern long cm_AssembleLink(cm_scache_t *linkScp, char *pathSuffixp,
+                             cm_scache_t **newRootScpp, cm_space_t **newSpaceBufferp,
+                             cm_user_t *userp, cm_req_t *reqp);
+ 
  extern int cm_ExpandSysName(char *inp, char *outp, long outSize,
                              unsigned int sysNameIndex);
  
Index: openafs/src/WINNT/afsd/cm_volume.c
diff -c openafs/src/WINNT/afsd/cm_volume.c:1.8.2.3 openafs/src/WINNT/afsd/cm_volume.c:1.8.2.4
*** openafs/src/WINNT/afsd/cm_volume.c:1.8.2.3	Mon Dec 13 09:13:09 2004
--- openafs/src/WINNT/afsd/cm_volume.c	Fri Mar 11 01:58:43 2005
***************
*** 25,40 ****
  #include "afsd.h"
  
  osi_rwlock_t cm_volumeLock;
- cm_volume_t *cm_allVolumesp;
  
! void cm_InitVolume(void)
  {
! 	static osi_once_t once;
! 	if (osi_Once(&once)) {
! 		lock_InitializeRWLock(&cm_volumeLock, "cm global volume lock");
!                 cm_allVolumesp = NULL;
! 		osi_EndOnce(&once);
          }
  }
  
  /*
--- 25,105 ----
  #include "afsd.h"
  
  osi_rwlock_t cm_volumeLock;
  
! long 
! cm_ValidateVolume(void)
  {
!     cm_volume_t * volp;
!     afs_uint32 count;
! 
!     for (volp = cm_data.allVolumesp, count = 0; volp; volp=volp->nextp, count++) {
!         if ( volp->magic != CM_VOLUME_MAGIC ) {
!             afsi_log("cm_ValidateVolume failure: volp->magic != CM_VOLUME_MAGIC");
!             fprintf(stderr, "cm_ValidateVolume failure: volp->magic != CM_VOLUME_MAGIC\n");
!             return -1;
!         }
!         if ( volp->cellp && volp->cellp->magic != CM_CELL_MAGIC ) {
!             afsi_log("cm_ValidateVolume failure: volp->cellp->magic != CM_CELL_MAGIC");
!             fprintf(stderr, "cm_ValidateVolume failure: volp->cellp->magic != CM_CELL_MAGIC\n");
!             return -2;
!         }
!         if ( volp->nextp && volp->nextp->magic != CM_VOLUME_MAGIC ) {
!             afsi_log("cm_ValidateVolume failure: volp->nextp->magic != CM_VOLUME_MAGIC");
!             fprintf(stderr, "cm_ValidateVolume failure: volp->nextp->magic != CM_VOLUME_MAGIC\n");
!             return -3;
!         }
!         if ( count != 0 && volp == cm_data.allVolumesp || 
!              count > cm_data.maxVolumes ) {
!             afsi_log("cm_ValidateVolume failure: cm_data.allVolumep loop detected");
!             fprintf(stderr, "cm_ValidateVolume failure: cm_data.allVolumep loop detected\n");
!             return -4;
!         }
!     }
! 
!     if ( count != cm_data.currentVolumes ) {
!         afsi_log("cm_ValidateVolume failure: count != cm_data.currentVolumes");
!         fprintf(stderr, "cm_ValidateVolume failure: count != cm_data.currentVolumes\n");
!         return -5;
!     }
!     
!     return 0;
! }
! 
! long
! cm_ShutdownVolume(void)
! {
!     cm_volume_t * volp;
! 
!     for (volp = cm_data.allVolumesp; volp; volp=volp->nextp)
!         lock_FinalizeMutex(&volp->mx);
! 
!     return 0;
! }
! 
! void cm_InitVolume(int newFile, long maxVols)
! {
!     static osi_once_t once;
! 
!     if (osi_Once(&once)) {
!         lock_InitializeRWLock(&cm_volumeLock, "cm global volume lock");
! 
!         if ( newFile ) {
!             cm_data.allVolumesp = NULL;
!             cm_data.currentVolumes = 0;
!             cm_data.maxVolumes = maxVols;
!         } else {
!             cm_volume_t * volp;
! 
!             for (volp = cm_data.allVolumesp; volp; volp=volp->nextp) {
!                 lock_InitializeMutex(&volp->mx, "cm_volume_t mutex");
!                 volp->flags |= CM_VOLUMEFLAG_RESET;
!                 volp->rwServersp = NULL;
!                 volp->roServersp = NULL;
!                 volp->bkServersp = NULL;
!             }
          }
+         osi_EndOnce(&once);
+     }
  }
  
  /*
***************
*** 84,115 ****
      long code;
  
      /* clear out old bindings */
!     cm_FreeServerList(&volp->rwServersp);
!     cm_FreeServerList(&volp->roServersp);
!     cm_FreeServerList(&volp->bkServersp);
! 
!     /* now we have volume structure locked and held; make RPC to fill it */
!     do {
!         code = cm_ConnByMServers(cellp->vlServersp, userp, reqp, &connp);
!         if (code) 
!             continue;
!         osi_Log1(afsd_logp, "CALL VL_GetEntryByName{UNO} name %s", volp->namep);
  #ifdef MULTIHOMED
!         code = VL_GetEntryByNameU(connp->callp, volp->namep, &uvldbEntry);
! 		type = 2;
!         if ( code == RXGEN_OPCODE ) 
  #endif
!         {
!             code = VL_GetEntryByNameN(connp->callp, volp->namep, &nvldbEntry);
!             type = 1;
!         }
!         if ( code == RXGEN_OPCODE ) {
!             code = VL_GetEntryByNameO(connp->callp, volp->namep, &vldbEntry);
!             type = 0;
!         }
!     } while (cm_Analyze(connp, userp, reqp, NULL, NULL, cellp->vlServersp, NULL, code));
!     code = cm_MapVLRPCError(code, reqp);
! 
      if (code == 0) {
          afs_int32 flags;
          afs_int32 nServers;
--- 149,194 ----
      long code;
  
      /* clear out old bindings */
!     if (volp->rwServersp)
!         cm_FreeServerList(&volp->rwServersp);
!     if (volp->roServersp)
!         cm_FreeServerList(&volp->roServersp);
!     if (volp->bkServersp)
!         cm_FreeServerList(&volp->bkServersp);
! 
! #ifdef AFS_FREELANCE_CLIENT
!     if ( cellp->cellID == AFS_FAKE_ROOT_CELL_ID && atoi(volp->namep)==AFS_FAKE_ROOT_VOL_ID ) 
!     {
!         memset(&vldbEntry, 0, sizeof(vldbEntry));
!         vldbEntry.flags |= VLF_RWEXISTS;
!         vldbEntry.volumeId[0] = AFS_FAKE_ROOT_VOL_ID;
!         code = 0;
!         type = 0;
!     } else
! #endif
!     {
!         /* now we have volume structure locked and held; make RPC to fill it */
!         do {
!             code = cm_ConnByMServers(cellp->vlServersp, userp, reqp, &connp);
!             if (code) 
!                 continue;
!             osi_Log1(afsd_logp, "CALL VL_GetEntryByName{UNO} name %s", volp->namep);
  #ifdef MULTIHOMED
!             code = VL_GetEntryByNameU(connp->callp, volp->namep, &uvldbEntry);
!             type = 2;
!             if ( code == RXGEN_OPCODE ) 
  #endif
!             {
!                 code = VL_GetEntryByNameN(connp->callp, volp->namep, &nvldbEntry);
!                 type = 1;
!             }
!             if ( code == RXGEN_OPCODE ) {
!                 code = VL_GetEntryByNameO(connp->callp, volp->namep, &vldbEntry);
!                 type = 0;
!             }
!         } while (cm_Analyze(connp, userp, reqp, NULL, NULL, cellp->vlServersp, NULL, code));
!         code = cm_MapVLRPCError(code, reqp);
!     }
      if (code == 0) {
          afs_int32 flags;
          afs_int32 nServers;
***************
*** 153,159 ****
                  if ( !(uvldbEntry.serverFlags[i] & VLSERVER_FLAG_UUID) ) {
                      serverFlags[j] = uvldbEntry.serverFlags[i];
                      serverNumber[j] = uvldbEntry.serverNumber[i].time_low;
! 					j++;
                  } else {
                      afs_uint32 * addrp, nentries, code, unique;
                      bulkaddrs  addrs;
--- 232,238 ----
                  if ( !(uvldbEntry.serverFlags[i] & VLSERVER_FLAG_UUID) ) {
                      serverFlags[j] = uvldbEntry.serverFlags[i];
                      serverNumber[j] = uvldbEntry.serverNumber[i].time_low;
!                     j++;
                  } else {
                      afs_uint32 * addrp, nentries, code, unique;
                      bulkaddrs  addrs;
***************
*** 189,195 ****
                      free(addrs.bulkaddrs_val);  /* This is wrong */
                  }
              }
! 			nServers = j;					/* update the server count */
              break;
  #endif
          }
--- 268,274 ----
                      free(addrs.bulkaddrs_val);  /* This is wrong */
                  }
              }
!             nServers = j;					/* update the server count */
              break;
  #endif
          }
***************
*** 287,293 ****
          long code;
  
          lock_ObtainWrite(&cm_volumeLock);
! 	for(volp = cm_allVolumesp; volp; volp=volp->nextp) {
  		if (cellp == volp->cellp &&
                  	((unsigned) volumeID == volp->rwID ||
                  	 (unsigned) volumeID == volp->roID ||
--- 366,372 ----
          long code;
  
          lock_ObtainWrite(&cm_volumeLock);
! 	for(volp = cm_data.allVolumesp; volp; volp=volp->nextp) {
  		if (cellp == volp->cellp &&
                  	((unsigned) volumeID == volp->rwID ||
                  	 (unsigned) volumeID == volp->roID ||
***************
*** 336,362 ****
  	code = 0;
  
  	lock_ObtainWrite(&cm_volumeLock);
!         for(volp = cm_allVolumesp; volp; volp=volp->nextp) {
! 		if (cellp == volp->cellp && strcmp(volumeNamep, volp->namep) == 0) {
! 			break;
!                 }
          }
          
          /* otherwise, get from VLDB */
  	if (!volp) {
! 		volp = malloc(sizeof(*volp));
! 	        memset(volp, 0, sizeof(*volp));
! 	        volp->cellp = cellp;
! 	        volp->nextp = cm_allVolumesp;
! 	        cm_allVolumesp = volp;
! 	        volp->namep = malloc(strlen(volumeNamep)+1);
! 	        strcpy(volp->namep, volumeNamep);
! 	        lock_InitializeMutex(&volp->mx, "cm_volume_t mutex");
! 	        volp->refCount = 1;	/* starts off held */
!                 volp->flags |= CM_VOLUMEFLAG_RESET;
  	}
          else {
!         	volp->refCount++;
  	}
          
  	/* next should work since no one could have gotten ptr to this structure yet */
--- 415,445 ----
  	code = 0;
  
  	lock_ObtainWrite(&cm_volumeLock);
!         for (volp = cm_data.allVolumesp; volp; volp=volp->nextp) {
!             if (cellp == volp->cellp && strcmp(volumeNamep, volp->namep) == 0) {
!                 break;
!             }
          }
          
          /* otherwise, get from VLDB */
  	if (!volp) {
!             if ( cm_data.currentVolumes >= cm_data.maxVolumes )
!                 osi_panic("Exceeded Max Volumes", __FILE__, __LINE__);
! 
!             volp = &cm_data.volumeBaseAddress[cm_data.currentVolumes++];
!             memset(volp, 0, sizeof(cm_volume_t));
!             volp->magic = CM_VOLUME_MAGIC;
!             volp->cellp = cellp;
!             volp->nextp = cm_data.allVolumesp;
!             cm_data.allVolumesp = volp;
!             strncpy(volp->namep, volumeNamep, VL_MAXNAMELEN);
!             volp->namep[VL_MAXNAMELEN-1] = '\0';
!             lock_InitializeMutex(&volp->mx, "cm_volume_t mutex");
!             volp->refCount = 1;	/* starts off held */
!             volp->flags |= CM_VOLUMEFLAG_RESET;
  	}
          else {
!             volp->refCount++;
  	}
          
  	/* next should work since no one could have gotten ptr to this structure yet */
***************
*** 364,376 ****
  	lock_ObtainMutex(&volp->mx);
          
  	if (volp->flags & CM_VOLUMEFLAG_RESET) {
! 		code = cm_UpdateVolume(cellp, userp, reqp, volp);
! 		if (code == 0)
! 			volp->flags &= ~CM_VOLUMEFLAG_RESET;
  	}
  
  	if (code == 0)
! 	       	*outVolpp = volp;
          lock_ReleaseMutex(&volp->mx);
          return code;
  }
--- 447,459 ----
  	lock_ObtainMutex(&volp->mx);
          
  	if (volp->flags & CM_VOLUMEFLAG_RESET) {
!             code = cm_UpdateVolume(cellp, userp, reqp, volp);
!             if (code == 0)
!                 volp->flags &= ~CM_VOLUMEFLAG_RESET;
  	}
  
  	if (code == 0)
!             *outVolpp = volp;
          lock_ReleaseMutex(&volp->mx);
          return code;
  }
***************
*** 379,385 ****
  {
  	cm_cell_t *cellp;
  	cm_volume_t *volp;
- 	long code;
  
  	if (!fidp) return;
  
--- 462,467 ----
***************
*** 388,394 ****
  
  	/* search for the volume */
          lock_ObtainWrite(&cm_volumeLock);
! 	for(volp = cm_allVolumesp; volp; volp=volp->nextp) {
  		if (cellp == volp->cellp &&
                  	(fidp->volume == volp->rwID ||
                  	 fidp->volume == volp->roID ||
--- 470,476 ----
  
  	/* search for the volume */
          lock_ObtainWrite(&cm_volumeLock);
! 	for(volp = cm_data.allVolumesp; volp; volp=volp->nextp) {
  		if (cellp == volp->cellp &&
                  	(fidp->volume == volp->rwID ||
                  	 fidp->volume == volp->roID ||
***************
*** 401,407 ****
          lock_ReleaseWrite(&cm_volumeLock);
  
  	/* update it */
! 	cm_mountRootGen++;
  	lock_ObtainMutex(&volp->mx);
  	volp->flags |= CM_VOLUMEFLAG_RESET;
  #ifdef COMMENT
--- 483,489 ----
          lock_ReleaseWrite(&cm_volumeLock);
  
  	/* update it */
! 	cm_data.mountRootGen = time(NULL);
  	lock_ObtainMutex(&volp->mx);
  	volp->flags |= CM_VOLUMEFLAG_RESET;
  #ifdef COMMENT
***************
*** 477,485 ****
  {
  	cm_volume_t *volp;
  
! 	cm_mountRootGen++;
          lock_ObtainWrite(&cm_volumeLock);
! 	for(volp = cm_allVolumesp; volp; volp=volp->nextp) {
  		volp->refCount++;
                  lock_ReleaseWrite(&cm_volumeLock);
                  lock_ObtainMutex(&volp->mx);
--- 559,567 ----
  {
  	cm_volume_t *volp;
  
! 	cm_data.mountRootGen = time(NULL);
          lock_ObtainWrite(&cm_volumeLock);
! 	for (volp = cm_data.allVolumesp; volp; volp=volp->nextp) {
  		volp->refCount++;
                  lock_ReleaseWrite(&cm_volumeLock);
                  lock_ObtainMutex(&volp->mx);
***************
*** 506,512 ****
  
  	/* find volumes which might have RO copy on server*/
  	lock_ObtainWrite(&cm_volumeLock);
! 	for(volp = cm_allVolumesp; volp; volp=volp->nextp)
  	{
  		code = 1 ;	/* assume that list is unchanged */
  		volp->refCount++;
--- 588,594 ----
  
  	/* find volumes which might have RO copy on server*/
  	lock_ObtainWrite(&cm_volumeLock);
! 	for(volp = cm_data.allVolumesp; volp; volp=volp->nextp)
  	{
  		code = 1 ;	/* assume that list is unchanged */
  		volp->refCount++;
Index: openafs/src/WINNT/afsd/cm_volume.h
diff -c openafs/src/WINNT/afsd/cm_volume.h:1.3.2.1 openafs/src/WINNT/afsd/cm_volume.h:1.3.2.2
*** openafs/src/WINNT/afsd/cm_volume.h:1.3.2.1	Mon Oct 18 00:09:27 2004
--- openafs/src/WINNT/afsd/cm_volume.h	Fri Mar 11 01:58:43 2005
***************
*** 10,34 ****
  #ifndef __CM_VOLUME_H_ENV__
  #define __CM_VOLUME_H_ENV__ 1
  
  typedef struct cm_volume {
! 	struct cm_cell *cellp;		/* never changes */
!     char *namep;			/* by cm_volumeLock */
! 	unsigned long rwID;		/* by cm_volumeLock */
! 	unsigned long roID;		/* by cm_volumeLock */
! 	unsigned long bkID;		/* by cm_volumeLock */
!     struct cm_volume *nextp;	/* by cm_volumeLock */
! 	struct cm_fid *dotdotFidp;	/* parent of volume root */
      osi_mutex_t mx;
!     long flags;			/* by mx */
!     unsigned long refCount;			/* by cm_volumeLock */
!     cm_serverRef_t *rwServersp;	/* by mx */
!     cm_serverRef_t *roServersp;	/* by mx */
!     cm_serverRef_t *bkServersp;	/* by mx */
  } cm_volume_t;
  
  #define CM_VOLUMEFLAG_RESET	1	/* reload this info on next use */
  
! extern void cm_InitVolume(void);
  
  extern long cm_GetVolumeByName(struct cm_cell *, char *, struct cm_user *,
  	struct cm_req *, long, cm_volume_t **);
--- 10,39 ----
  #ifndef __CM_VOLUME_H_ENV__
  #define __CM_VOLUME_H_ENV__ 1
  
+ #define VL_MAXNAMELEN                   65
+ 
+ #define CM_VOLUME_MAGIC    ('V' | 'O' <<8 | 'L'<<16 | 'M'<<24)
+ 
  typedef struct cm_volume {
!     afs_uint32  magic;
!     cm_cell_t *cellp;		        /* never changes */
!     char namep[VL_MAXNAMELEN];		/* by cm_volumeLock */
!     unsigned long rwID;		        /* by cm_volumeLock */
!     unsigned long roID;		        /* by cm_volumeLock */
!     unsigned long bkID;		        /* by cm_volumeLock */
!     struct cm_volume *nextp;	        /* by cm_volumeLock */
!     struct cm_fid dotdotFid;	        /* parent of volume root */
      osi_mutex_t mx;
!     long flags;			        /* by mx */
!     unsigned long refCount;		/* by cm_volumeLock */
!     cm_serverRef_t *rwServersp;	        /* by mx */
!     cm_serverRef_t *roServersp;	        /* by mx */
!     cm_serverRef_t *bkServersp;	        /* by mx */
  } cm_volume_t;
  
  #define CM_VOLUMEFLAG_RESET	1	/* reload this info on next use */
  
! extern void cm_InitVolume(int newFile, long maxVols);
  
  extern long cm_GetVolumeByName(struct cm_cell *, char *, struct cm_user *,
  	struct cm_req *, long, cm_volume_t **);
***************
*** 49,52 ****
--- 54,60 ----
  
  extern void cm_CheckVolumes(void);
  
+ extern long cm_ValidateVolume(void);
+ 
+ extern long cm_ShutdownVolume(void);
  #endif /*  __CM_VOLUME_H_ENV__ */
Index: openafs/src/WINNT/afsd/cmdebug.c
diff -c /dev/null openafs/src/WINNT/afsd/cmdebug.c:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:19 2005
--- openafs/src/WINNT/afsd/cmdebug.c	Fri Mar 11 02:22:40 2005
***************
*** 0 ****
--- 1,536 ----
+ /*
+  * Copyright 2000, International Business Machines Corporation and others.
+  * All Rights Reserved.
+  * 
+  * This software has been released under the terms of the IBM Public
+  * License.  For details, see the LICENSE file in the top-level source
+  * directory or online at http://www.openafs.org/dl/license10.html
+  */
+ 
+ #include <afsconfig.h>
+ #include <afs/param.h>
+ 
+ RCSID
+     ("$Header: /cvs/openafs/src/WINNT/afsd/cmdebug.c,v 1.1.2.1 2005/03/11 07:22:40 shadow Exp $");
+ 
+ 
+ #include <sys/types.h>
+ #ifdef AFS_NT40_ENV
+ #include <winsock2.h>
+ #include <rpc.h>
+ #else
+ #ifdef HAVE_NETINET_IN_H
+ #include <netinet/in.h>
+ #endif
+ #include <sys/socket.h>
+ #include <netdb.h>
+ #endif
+ #include <stdio.h>
+ #ifdef HAVE_STRING_H
+ #include <string.h>
+ #else
+ #ifdef HAVE_STRINGS_H
+ #include <strings.h>
+ #endif
+ #endif
+ #ifdef	AFS_AIX32_ENV
+ #include <signal.h>
+ #endif
+ #include <afs/afscbint.h>
+ #include <afs/cmd.h>
+ #include <rx/rx.h>
+ #include <lock.h>
+ #include <afs/afs_args.h>
+ 
+ extern struct hostent *hostutil_GetHostByName();
+ 
+ static int
+ PrintCacheConfig(struct rx_connection *aconn)
+ {
+     struct cacheConfig c;
+     afs_uint32 srv_ver, conflen;
+     int code;
+ 
+     c.cacheConfig_len = 0;
+     c.cacheConfig_val = NULL;
+     code = RXAFSCB_GetCacheConfig(aconn, 1, &srv_ver, &conflen, &c);
+     if (code) {
+ 	printf("cmdebug: error checking cache config: %s\n",
+ 	       error_message(code));
+ 	return 0;
+     }
+ 
+     if (srv_ver == AFS_CLIENT_RETRIEVAL_FIRST_EDITION) {
+ 	struct cm_initparams_v1 *c1;
+ 
+ 	if (c.cacheConfig_len != sizeof(*c1) / sizeof(afs_uint32)) {
+ 	    printf("cmdebug: configuration data size mismatch (%d != %d)\n",
+ 		   c.cacheConfig_len, sizeof(*c1) / sizeof(afs_uint32));
+ 	    return 0;
+ 	}
+ 
+ 	c1 = (struct cm_initparams_v1 *)c.cacheConfig_val;
+ 	printf("Chunk files:   %d\n", c1->nChunkFiles);
+ 	printf("Stat caches:   %d\n", c1->nStatCaches);
+ 	printf("Data caches:   %d\n", c1->nDataCaches);
+ 	printf("Volume caches: %d\n", c1->nVolumeCaches);
+ 	printf("Chunk size:    %d", c1->otherChunkSize);
+ 	if (c1->firstChunkSize != c1->otherChunkSize)
+ 	    printf(" (first: %d)", c1->firstChunkSize);
+ 	printf("\n");
+ 	printf("Cache size:    %d kB\n", c1->cacheSize);
+ 	printf("Set time:      %s\n", c1->setTime ? "yes" : "no");
+ 	printf("Cache type:    %s\n", c1->memCache ? "memory" : "disk");
+     } else {
+ 	printf("cmdebug: unsupported server version %d\n", srv_ver);
+     }
+ }
+ 
+ static int
+ PrintInterfaces(struct rx_connection *aconn)
+ {
+     struct interfaceAddr addr;
+     char * p;
+     int i, code;
+ 
+     code = RXAFSCB_WhoAreYou(aconn, &addr);
+     if (code) {
+ 	printf("cmdebug: error checking interfaces: %s\n",
+ 	       error_message(code));
+ 	return 0;
+     }
+ 
+     UuidToString((UUID *)&addr.uuid, &p);
+     printf("UUID: %s\n",p);
+     RpcStringFree(&p);
+ 
+     printf("Host interfaces:\n");
+     for (i = 0; i < addr.numberOfInterfaces; i++) {
+ 	printf("%s", afs_inet_ntoa(htonl(addr.addr_in[i])));
+ 	if (addr.subnetmask[i])
+ 	    printf(", netmask %s", afs_inet_ntoa(htonl(addr.subnetmask[i])));
+ 	if (addr.mtu[i])
+ 	    printf(", MTU %d", addr.mtu[i]);
+ 	printf("\n");
+     }
+ 
+     return 0;
+ }
+ 
+ static int
+ IsLocked(register struct AFSDBLockDesc *alock)
+ {
+     if (alock->waitStates || alock->exclLocked || alock->numWaiting
+ 	|| alock->readersReading)
+ 	return 1;
+     return 0;
+ }
+ 
+ static int
+ PrintLock(register struct AFSDBLockDesc *alock)
+ {
+     printf("(");
+     if (alock->waitStates) {
+ 	if (alock->waitStates & READ_LOCK)
+ 	    printf("reader_waiting");
+ 	if (alock->waitStates & WRITE_LOCK)
+ 	    printf("writer_waiting");
+ 	if (alock->waitStates & SHARED_LOCK)
+ 	    printf("upgrade_waiting");
+     } else
+ 	printf("none_waiting");
+     if (alock->exclLocked) {
+ 	if (alock->exclLocked & WRITE_LOCK)
+ 	    printf(", write_locked");
+ 	if (alock->exclLocked & SHARED_LOCK)
+ 	    printf(", upgrade_locked");
+ 	printf("(pid:%d at:%d)", alock->pid_writer, alock->src_indicator);
+     }
+     if (alock->readersReading)
+ 	printf(", %d read_locks(pid:%d)", alock->readersReading,
+ 	       alock->pid_last_reader);
+     if (alock->numWaiting)
+ 	printf(", %d waiters", alock->numWaiting);
+     printf(")");
+     return 0;
+ }
+ 
+ static int
+ PrintLocks(register struct rx_connection *aconn, int aint32)
+ {
+     register int i;
+     struct AFSDBLock lock;
+     afs_int32 code;
+ 
+     for (i = 0; i < 1000; i++) {
+ 	code = RXAFSCB_GetLock(aconn, i, &lock);
+ 	if (code) {
+ 	    if (code == 1)
+ 		break;
+ 	    /* otherwise we have an unrecognized error */
+ 	    printf("cmdebug: error checking locks: %s\n",
+ 		   error_message(code));
+ 	    return code;
+ 	}
+ 	/* here we have the lock information, so display it, perhaps */
+ 	if (aint32 || IsLocked(&lock.lock)) {
+ 	    printf("Lock %s status: ", lock.name);
+ 	    PrintLock(&lock.lock);
+ 	    printf("\n");
+ 	}
+     }
+     return 0;
+ }
+ 
+ struct cell_cache {
+     afs_int32 cellnum;
+     char *cellname;
+     struct cell_cache *next;
+ };
+ 
+ static char *
+ GetCellName(struct rx_connection *aconn, afs_int32 cellnum)
+ {
+     static int no_getcellbynum;
+     static struct cell_cache *cache;
+     struct cell_cache *tcp;
+     int code;
+     char *cellname;
+     serverList sl;
+ 
+     if (no_getcellbynum)
+ 	return NULL;
+ 
+     for (tcp = cache; tcp; tcp = tcp->next)
+ 	if (tcp->cellnum == cellnum)
+ 	    return tcp->cellname;
+ 
+     cellname = NULL;
+     sl.serverList_len = 0;
+     sl.serverList_val = NULL;
+     code = RXAFSCB_GetCellByNum(aconn, cellnum, &cellname, &sl);
+     if (code) {
+ 	if (code == RXGEN_OPCODE)
+ 	    no_getcellbynum = 1;
+ 	return NULL;
+     }
+ 
+     if (sl.serverList_val)
+ 	free(sl.serverList_val);
+     tcp = malloc(sizeof(struct cell_cache));
+     tcp->next = cache;
+     tcp->cellnum = cellnum;
+     tcp->cellname = cellname;
+     cache = tcp;
+ 
+     return cellname;
+ }
+ 
+ static int
+ PrintCacheEntries32(struct rx_connection *aconn, int aint32)
+ {
+     register int i;
+     register afs_int32 code;
+     struct AFSDBCacheEntry centry;
+     char *cellname;
+ 
+     for (i = 0; i < 10000; i++) {
+ 	code = RXAFSCB_GetCE(aconn, i, &centry);
+ 	if (code) {
+ 	    if (code == 1)
+ 		break;
+ 	    printf("cmdebug: failed to get cache entry %d (%s)\n", i,
+ 		   error_message(code));
+ 	    return code;
+ 	}
+ 
+ 	if (centry.addr == 0) {
+ 	    /* PS output */
+ 	    printf("Proc %4d sleeping at %08x, pri %3d\n",
+ 		   centry.netFid.Vnode, centry.netFid.Volume,
+ 		   centry.netFid.Unique - 25);
+ 	    continue;
+ 	}
+ 
+ 	if (aint32 == 0 && !IsLocked(&centry.lock) ||
+             aint32 == 2 && centry.refCount == 0 ||
+             aint32 == 4 && centry.callback == 0)
+ 	    continue;
+ 
+ 	/* otherwise print this entry */
+ 	printf("** Cache entry @ 0x%08x for %d.%d.%d.%d", centry.addr,
+ 	       centry.cell, centry.netFid.Volume, centry.netFid.Vnode,
+ 	       centry.netFid.Unique);
+ 
+ 	cellname = GetCellName(aconn, centry.cell);
+ 	if (cellname)
+ 	    printf(" [%s]\n", cellname);
+ 	else
+ 	    printf("\n");
+ 
+ 	if (IsLocked(&centry.lock)) {
+ 	    printf("    locks: ");
+ 	    PrintLock(&centry.lock);
+ 	    printf("\n");
+ 	}
+ 	printf("    %012d bytes  DV %012d  refcnt %05d\n", centry.Length,
+ 	       centry.DataVersion, centry.refCount);
+ 	printf("    callback %08x\texpires %u\n", centry.callback,
+ 	       centry.cbExpires);
+ 	printf("    %d opens\t%d writers\n", centry.opens, centry.writers);
+ 
+ 	/* now display states */
+ 	printf("    ");
+ 	if (centry.mvstat == 0)
+ 	    printf("normal file");
+ 	else if (centry.mvstat == 1)
+ 	    printf("mount point");
+ 	else if (centry.mvstat == 2)
+ 	    printf("volume root");
+ 	else if (centry.mvstat == 3)
+ 	    printf("directory");
+ 	else if (centry.mvstat == 4)
+ 	    printf("symlink");
+ 	else if (centry.mvstat == 5)
+ 	    printf("microsoft dfs link");
+ 	else if (centry.mvstat == 6)
+ 	    printf("invalid link");
+ 	else
+ 	    printf("bogus mvstat %d", centry.mvstat);
+ 	printf("\n    states (0x%x)", centry.states);
+ 	if (centry.states & 1)
+ 	    printf(", stat'd");
+ 	if (centry.states & 2)
+ 	    printf(", backup");
+ 	if (centry.states & 4)
+ 	    printf(", read-only");
+ 	if (centry.states & 8)
+ 	    printf(", mt pt valid");
+ 	if (centry.states & 0x10)
+ 	    printf(", pending core");
+ 	if (centry.states & 0x40)
+ 	    printf(", wait-for-store");
+ 	if (centry.states & 0x80)
+ 	    printf(", mapped");
+ 	printf("\n");
+     }
+     return 0;
+ }
+ 
+ static int
+ PrintCacheEntries64(struct rx_connection *aconn, int aint32)
+ {
+     register int i;
+     register afs_int32 code;
+     struct AFSDBCacheEntry64 centry;
+     char *cellname;
+     int ce64 = 0;
+ 
+     for (i = 0; i < 10000; i++) {
+ 	code = RXAFSCB_GetCE64(aconn, i, &centry);
+ 	if (code) {
+ 	    if (code == 1)
+ 		break;
+ 	    printf("cmdebug: failed to get cache entry %d (%s)\n", i,
+ 		   error_message(code));
+ 	    return code;
+ 	}
+ 
+ 	if (centry.addr == 0) {
+ 	    /* PS output */
+ 	    printf("Proc %4d sleeping at %08x, pri %3d\n",
+ 		   centry.netFid.Vnode, centry.netFid.Volume,
+ 		   centry.netFid.Unique - 25);
+ 	    continue;
+ 	}
+ 
+ 	if (aint32 == 0 && !IsLocked(&centry.lock) ||
+             aint32 == 2 && centry.refCount == 0 ||
+             aint32 == 4 && centry.callback == 0)
+ 	    continue;
+ 
+ 	/* otherwise print this entry */
+ 	printf("** Cache entry @ 0x%08x for %d.%d.%d.%d", centry.addr,
+ 	       centry.cell, centry.netFid.Volume, centry.netFid.Vnode,
+ 	       centry.netFid.Unique);
+ 
+ 	cellname = GetCellName(aconn, centry.cell);
+ 	if (cellname)
+ 	    printf(" [%s]\n", cellname);
+ 	else
+ 	    printf("\n");
+ 
+ 	if (IsLocked(&centry.lock)) {
+ 	    printf("    locks: ");
+ 	    PrintLock(&centry.lock);
+ 	    printf("\n");
+ 	}
+ #ifdef AFS_64BIT_ENV
+ 	printf("    %012I64d bytes  DV %012d  refcnt %05d\n", centry.Length,
+ 	       centry.DataVersion, centry.refCount);
+ #else
+ 	printf("    %012d bytes  DV %012d  refcnt %05d\n", centry.Length,
+ 	       centry.DataVersion, centry.refCount);
+ #endif
+ 	printf("    callback %08x\texpires %u\n", centry.callback,
+ 	       centry.cbExpires);
+ 	printf("    %d opens\t%d writers\n", centry.opens, centry.writers);
+ 
+ 	/* now display states */
+ 	printf("    ");
+ 	if (centry.mvstat == 0)
+ 	    printf("normal file");
+ 	else if (centry.mvstat == 1)
+ 	    printf("mount point");
+ 	else if (centry.mvstat == 2)
+ 	    printf("volume root");
+ 	else if (centry.mvstat == 3)
+ 	    printf("directory");
+ 	else if (centry.mvstat == 4)
+ 	    printf("symlink");
+ 	else if (centry.mvstat == 5)
+ 	    printf("microsoft dfs link");
+ 	else if (centry.mvstat == 6)
+ 	    printf("invalid link");
+         else
+ 	    printf("bogus mvstat %d", centry.mvstat);
+ 	printf("\n    states (0x%x)", centry.states);
+ 	if (centry.states & 1)
+ 	    printf(", stat'd");
+ 	if (centry.states & 2)
+ 	    printf(", backup");
+ 	if (centry.states & 4)
+ 	    printf(", read-only");
+ 	if (centry.states & 8)
+ 	    printf(", mt pt valid");
+ 	if (centry.states & 0x10)
+ 	    printf(", pending core");
+ 	if (centry.states & 0x40)
+ 	    printf(", wait-for-store");
+ 	if (centry.states & 0x80)
+ 	    printf(", mapped");
+ 	printf("\n");
+     }
+     return 0;
+ }
+ 
+ static int
+ PrintCacheEntries(struct rx_connection *aconn, int aint32)
+ {
+     register afs_int32 code;
+     struct AFSDBCacheEntry64 centry64;
+ 
+     code = RXAFSCB_GetCE64(aconn, 0, &centry64);
+     if (code != RXGEN_OPCODE)
+ 	return PrintCacheEntries64(aconn, aint32);
+     else
+ 	return PrintCacheEntries32(aconn, aint32);
+ }
+ 
+ static int
+ CommandProc(struct cmd_syndesc *as)
+ {
+     struct rx_connection *conn;
+     register char *hostName;
+     register struct hostent *thp;
+     afs_int32 port;
+     struct rx_securityClass *secobj;
+     int int32p;
+     afs_int32 addr;
+ 
+     hostName = as->parms[0].items->data;
+     if (as->parms[1].items)
+ 	port = atoi(as->parms[1].items->data);
+     else
+ 	port = 7001;
+     thp = hostutil_GetHostByName(hostName);
+     if (!thp) {
+ 	printf("cmdebug: can't resolve address for host %s.\n", hostName);
+ 	exit(1);
+     }
+     memcpy(&addr, thp->h_addr, sizeof(afs_int32));
+     secobj = rxnull_NewServerSecurityObject();
+     conn = rx_NewConnection(addr, htons(port), 1, secobj, 0);
+     if (!conn) {
+ 	printf("cmdebug: failed to create connection for host %s\n",
+ 	       hostName);
+ 	exit(1);
+     }
+     if (as->parms[5].items) {
+ 	/* -addrs */
+ 	PrintInterfaces(conn);
+ 	return 0;
+     }
+     if (as->parms[6].items) {
+ 	/* -cache */
+ 	PrintCacheConfig(conn);
+ 	return 0;
+     }
+     if (as->parms[2].items)
+         /* -long */
+ 	int32p = 1;
+     else if (as->parms[3].items)
+         /* -refcounts */
+         int32p = 2;
+     else if (as->parms[4].items)
+         /* -callbacks */
+         int32p = 4;
+     else
+ 	int32p = 0;
+ 
+     if (int32p == 0 || int32p == 1)
+         PrintLocks(conn, int32p);
+     if (int32p >= 0 || int32p <= 4)
+         PrintCacheEntries(conn, int32p);
+     return 0;
+ }
+ 
+ #ifndef AFS_NT40_ENV
+ #include "AFS_component_version_number.c"
+ #endif
+ 
+ int
+ main(int argc, char **argv)
+ {
+     register struct cmd_syndesc *ts;
+ 
+ #ifdef	AFS_AIX32_ENV
+     /*
+      * The following signal action for AIX is necessary so that in case of a 
+      * crash (i.e. core is generated) we can include the user's data section 
+      * in the core dump. Unfortunately, by default, only a partial core is
+      * generated which, in many cases, isn't too useful.
+      */
+     struct sigaction nsa;
+ 
+     sigemptyset(&nsa.sa_mask);
+     nsa.sa_handler = SIG_DFL;
+     nsa.sa_flags = SA_FULLDUMP;
+     sigaction(SIGSEGV, &nsa, NULL);
+ #endif
+ 
+ #ifdef AFS_NT40_ENV
+     if (afs_winsockInit() < 0) {
+         printf("%s: Couldn't initialize winsock. Exiting...\n", argv[0]);
+         return 1;
+     }
+ #endif
+ 
+     rx_Init(0);
+ 
+     ts = cmd_CreateSyntax(NULL, CommandProc, 0, "probe unik server");
+     cmd_AddParm(ts, "-servers", CMD_SINGLE, CMD_REQUIRED, "server machine");
+     cmd_AddParm(ts, "-port", CMD_SINGLE, CMD_OPTIONAL, "IP port");
+     cmd_AddParm(ts, "-long", CMD_FLAG, CMD_OPTIONAL, "print all info");
+     cmd_AddParm(ts, "-refcounts", CMD_FLAG, CMD_OPTIONAL, 
+                  "print only cache entries with positive reference counts");
+     cmd_AddParm(ts, "-callbacks", CMD_FLAG, CMD_OPTIONAL, 
+                  "print only cache entries with callbacks");
+     cmd_AddParm(ts, "-addrs", CMD_FLAG, CMD_OPTIONAL,
+ 		"print only host interfaces");
+     cmd_AddParm(ts, "-cache", CMD_FLAG, CMD_OPTIONAL,
+ 		"print only cache configuration");
+ 
+     cmd_Dispatch(argc, argv);
+     exit(0);
+ }
Index: openafs/src/WINNT/afsd/cmdebug.rc
diff -c /dev/null openafs/src/WINNT/afsd/cmdebug.rc:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:20 2005
--- openafs/src/WINNT/afsd/cmdebug.rc	Fri Mar 11 02:22:40 2005
***************
*** 0 ****
--- 1,17 ----
+ /*
+  * Copyright 2000, International Business Machines Corporation and others.
+  * All Rights Reserved.
+  * 
+  * This software has been released under the terms of the IBM Public
+  * License.  For details, see the LICENSE file in the top-level source
+  * directory or online at http://www.openafs.org/dl/license10.html
+  */
+ 
+ /* Define VERSIONINFO resource */
+ 
+ #define  AFS_VERINFO_FILE_DESCRIPTION "AFS Cache Manager Debug Command"
+ #define AFS_VERINFO_NAME "cmdebug"
+ #define AFS_VERINFO_FILENAME "cmdebug.exe"
+ 
+ #include "AFS_component_version_number.h"
+ #include "..\..\config\NTVersioninfo.rc"
Index: openafs/src/WINNT/afsd/fs.c
diff -c openafs/src/WINNT/afsd/fs.c:1.16.2.5 openafs/src/WINNT/afsd/fs.c:1.16.2.6
*** openafs/src/WINNT/afsd/fs.c:1.16.2.5	Sun Jan 30 23:09:42 2005
--- openafs/src/WINNT/afsd/fs.c	Fri Mar 11 01:58:43 2005
***************
*** 25,30 ****
--- 25,31 ----
  #include <afsint.h>
  #include <afs/ptserver.h>
  #include <afs/ptuser.h>
+ #include <WINNT\afsreg.h>
  
  #include "fs.h"
  #include "fs_utils.h"
***************
*** 3670,3676 ****
          char *policy;
  
          RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                         "SOFTWARE\\OpenAFS\\Client\\CSCPolicy",
                          0, 
                          "AFS", 
                          REG_OPTION_NON_VOLATILE,
--- 3671,3677 ----
          char *policy;
  
          RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                          AFSREG_CLT_OPENAFS_SUBKEY "\\CSCPolicy",
                          0, 
                          "AFS", 
                          REG_OPTION_NON_VOLATILE,
***************
*** 3718,3724 ****
          /* list current csc policies */
  
          RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                         "SOFTWARE\\OpenAFS\\Client\\CSCPolicy",
                          0, 
                          "AFS", 
                          REG_OPTION_NON_VOLATILE,
--- 3719,3725 ----
          /* list current csc policies */
  
          RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                         AFSREG_CLT_OPENAFS_SUBKEY "\\CSCPolicy",
                          0, 
                          "AFS", 
                          REG_OPTION_NON_VOLATILE,
Index: openafs/src/WINNT/afsd/fs_utils.c
diff -c openafs/src/WINNT/afsd/fs_utils.c:1.7.2.1 openafs/src/WINNT/afsd/fs_utils.c:1.7.2.2
*** openafs/src/WINNT/afsd/fs_utils.c:1.7.2.1	Sun Jan 30 23:05:02 2005
--- openafs/src/WINNT/afsd/fs_utils.c	Fri Mar 11 01:58:44 2005
***************
*** 25,31 ****
  #include "smb.h"
  #include "cmd.h"
  #include <fs_utils.h>
! 
  
  long fs_ExtractDriveLetter(char *inPathp, char *outPathp)
  {
--- 25,31 ----
  #include "smb.h"
  #include "cmd.h"
  #include <fs_utils.h>
! #include <WINNT\afsreg.h>
  
  long fs_ExtractDriveLetter(char *inPathp, char *outPathp)
  {
***************
*** 225,231 ****
  char *cm_mount_root="afs"; 
  char *cm_slash_mount_root="/afs";
  char *cm_back_slash_mount_root="\\afs";
- #define AFSCONFIGKEYNAME TEXT("SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters")
  
  void fs_utils_InitMountRoot()
  {
--- 225,230 ----
***************
*** 234,240 ****
      char *pmount=mountRoot;
      DWORD len=sizeof(mountRoot)-1;
      printf("int mountroot \n");
!     if ((RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSCONFIGKEYNAME,0, KEY_QUERY_VALUE, &parmKey)!= ERROR_SUCCESS) 
           || (RegQueryValueEx(parmKey, "Mountroot", NULL, NULL,(LPBYTE)(mountRoot), &len)!= ERROR_SUCCESS)
           || (len==sizeof(mountRoot)-1)
           ) 
--- 233,239 ----
      char *pmount=mountRoot;
      DWORD len=sizeof(mountRoot)-1;
      printf("int mountroot \n");
!     if ((RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY, 0, KEY_QUERY_VALUE, &parmKey)!= ERROR_SUCCESS) 
           || (RegQueryValueEx(parmKey, "Mountroot", NULL, NULL,(LPBYTE)(mountRoot), &len)!= ERROR_SUCCESS)
           || (len==sizeof(mountRoot)-1)
           ) 
Index: openafs/src/WINNT/afsd/lanahelper.cpp
diff -c openafs/src/WINNT/afsd/lanahelper.cpp:1.8.2.1 openafs/src/WINNT/afsd/lanahelper.cpp:1.8.2.3
*** openafs/src/WINNT/afsd/lanahelper.cpp:1.8.2.1	Sun Oct  3 09:35:15 2004
--- openafs/src/WINNT/afsd/lanahelper.cpp	Fri Mar 11 13:17:34 2005
***************
*** 35,40 ****
--- 35,41 ----
  #include <malloc.h>
  #include <stdio.h>
  #include <lanahelper.h>
+ #include <WINNT\afsreg.h>
  
  #define NOLOGGING
  #ifndef NOLOGGING
***************
*** 55,65 ****
  }
  #endif
  
- static const char *szAFSConfigKeyName = "SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters";
  static const char *szNetbiosNameValue = "NetbiosName";
  static const char *szIsGatewayValue = "IsGateway";
  static const char *szLanAdapterValue = "LanAdapter";
  static const char *szNoFindLanaByName = "NoFindLanaByName";
  
  // Use the IShellFolder API to get the connection name for the given Guid.
  static HRESULT lana_ShellGetNameFromGuidW(WCHAR *wGuid, WCHAR *wName, int NameSize)
--- 56,66 ----
  }
  #endif
  
  static const char *szNetbiosNameValue = "NetbiosName";
  static const char *szIsGatewayValue = "IsGateway";
  static const char *szLanAdapterValue = "LanAdapter";
  static const char *szNoFindLanaByName = "NoFindLanaByName";
+ static const char *szForceLanaLoopback = "ForceLanaLoopback";
  
  // Use the IShellFolder API to get the connection name for the given Guid.
  static HRESULT lana_ShellGetNameFromGuidW(WCHAR *wGuid, WCHAR *wName, int NameSize)
***************
*** 312,320 ****
          if ((lanamap[i].flags & 1) == 0)
              continue;
  
! 		// check for an IPv4 binding
! 		if(!strstr(pBind,"_Tcpip_"))
! 			continue;
  
          // Find the beginning of the GUID.
          guid = strchr(pBind, '{');
--- 313,321 ----
          if ((lanamap[i].flags & 1) == 0)
              continue;
  
!         // check for an IPv4 binding
!         if(!strstr(pBind,"_Tcpip_"))
!             continue;
  
          // Find the beginning of the GUID.
          guid = strchr(pBind, '{');
***************
*** 435,440 ****
--- 436,454 ----
      } astat;
      unsigned char kWLA_MAC[6] = { 0x02, 0x00, 0x4c, 0x4f, 0x4f, 0x50 };
      int status;
+     HKEY hkConfig;
+     LONG rv;
+     int regLana = -1;
+     DWORD dummyLen;
+ 
+     rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE,AFSREG_CLT_SVC_PARAM_SUBKEY,0,KEY_READ,&hkConfig);
+     if (rv == ERROR_SUCCESS) {
+         rv = RegQueryValueEx(hkConfig, szForceLanaLoopback, NULL, NULL, (LPBYTE) &regLana, &dummyLen);
+         RegCloseKey(hkConfig);
+ 
+         if (regLana == lana)
+             return TRUE;
+     }
  
      // Reset the adapter: in Win32, this is required for every process, and
      // acts as an init call, not as a real hardware reset.
***************
*** 496,504 ****
  // buffer is assumed to hold at least MAX_NB_NAME_LENGTH bytes.
  //
  // flags :
! //        LANA_NETBIOS_NAME_IN : Use the values of *pLana and *pIsGateway as [in] parameters.
! //        LANA_NETBIOS_NAME_SUFFIX : Only return the suffix of netbios name
! //		  LANA_NETBIOS_NAME_FULL : Return full netbios name
  extern "C" long lana_GetUncServerNameEx(char *buffer, lana_number_t * pLana, int * pIsGateway, int flags) {
      HKEY hkConfig;
  	DWORD dummyLen;
--- 510,518 ----
  // buffer is assumed to hold at least MAX_NB_NAME_LENGTH bytes.
  //
  // flags :
! //      LANA_NETBIOS_NAME_IN : Use the values of *pLana and *pIsGateway as [in] parameters.
! //      LANA_NETBIOS_NAME_SUFFIX : Only return the suffix of netbios name
! //      LANA_NETBIOS_NAME_FULL : Return full netbios name
  extern "C" long lana_GetUncServerNameEx(char *buffer, lana_number_t * pLana, int * pIsGateway, int flags) {
      HKEY hkConfig;
  	DWORD dummyLen;
***************
*** 509,515 ****
  	TCHAR nbName[MAX_NB_NAME_LENGTH];
  	TCHAR hostname[MAX_COMPUTERNAME_LENGTH+1];
  
! 	rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE,szAFSConfigKeyName,0,KEY_READ,&hkConfig);
  	if(rv == ERROR_SUCCESS) {
  		if(!(flags & LANA_NETBIOS_NAME_IN) || !pLana) {
  			dummyLen = sizeof(regLana);
--- 523,529 ----
  	TCHAR nbName[MAX_NB_NAME_LENGTH];
  	TCHAR hostname[MAX_COMPUTERNAME_LENGTH+1];
  
! 	rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE,AFSREG_CLT_SVC_PARAM_SUBKEY,0,KEY_READ,&hkConfig);
  	if(rv == ERROR_SUCCESS) {
  		if(!(flags & LANA_NETBIOS_NAME_IN) || !pLana) {
  			dummyLen = sizeof(regLana);
***************
*** 655,661 ****
              return;
          }
  
! 		if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,szAFSConfigKeyName,0,KEY_READ,&hkCfg) == ERROR_SUCCESS) {
  			dummyLen = sizeof(name);
  			if(RegQueryValueEx(hkCfg,TEXT("Gateway"),NULL,NULL,(LPBYTE) name,&dummyLen) == ERROR_SUCCESS)
  				name[0] = _T('\0');
--- 669,675 ----
              return;
          }
  
! 		if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,AFSREG_CLT_SVC_PARAM_SUBKEY,0,KEY_READ,&hkCfg) == ERROR_SUCCESS) {
  			dummyLen = sizeof(name);
  			if(RegQueryValueEx(hkCfg,TEXT("Gateway"),NULL,NULL,(LPBYTE) name,&dummyLen) == ERROR_SUCCESS)
  				name[0] = _T('\0');
Index: openafs/src/WINNT/afsd/lanahelper.h
diff -c openafs/src/WINNT/afsd/lanahelper.h:1.3.2.1 openafs/src/WINNT/afsd/lanahelper.h:1.3.2.2
*** openafs/src/WINNT/afsd/lanahelper.h:1.3.2.1	Sun Oct  3 09:35:15 2004
--- openafs/src/WINNT/afsd/lanahelper.h	Fri Mar 11 01:58:44 2005
***************
*** 37,44 ****
  
  #define LANA_INVALID 0xff
  
-   int lana_GetNameFromGuid(char *Guid, char **Name);
- 
      struct LANAINFO
      {
          lana_number_t lana_number;
--- 37,42 ----
***************
*** 53,77 ****
  
  #define LANA_NETBIOS_NAME_IN 2
  
!   int lana_GetNameFromGuid(char *Guid, char **Name);
  
!   struct LANAINFO * lana_FindLanaByName(const char *LanaName);
  
!   lana_number_t lana_FindLoopback(void);
  
!   BOOL lana_OnlyLoopback(void);
  
!   BOOL lana_IsLoopback(lana_number_t lana);
  
!   long lana_GetUncServerNameEx(char *buffer, lana_number_t * pLana, int * pIsGateway, int flags);
  
!   void lana_GetUncServerNameDynamic(int lanaNumber, BOOL isGateway, TCHAR *name, int type);
  
!   void lana_GetUncServerName(TCHAR *name, int type);
  
!   void lana_GetAfsNameString(int lanaNumber, BOOL isGateway, TCHAR* name);
  
!   void lana_GetNetbiosName(LPTSTR pszName, int type);
  
  #ifdef __cplusplus
  }
--- 51,75 ----
  
  #define LANA_NETBIOS_NAME_IN 2
  
!     int lana_GetNameFromGuid(char *Guid, char **Name);
  
!     struct LANAINFO * lana_FindLanaByName(const char *LanaName);
  
!     lana_number_t lana_FindLoopback(void);
  
!     BOOL lana_OnlyLoopback(void);
  
!     BOOL lana_IsLoopback(lana_number_t lana);
  
!     long lana_GetUncServerNameEx(char *buffer, lana_number_t * pLana, int * pIsGateway, int flags);
  
!     void lana_GetUncServerNameDynamic(int lanaNumber, BOOL isGateway, TCHAR *name, int type);
  
!     void lana_GetUncServerName(TCHAR *name, int type);
  
!     void lana_GetAfsNameString(int lanaNumber, BOOL isGateway, TCHAR* name);
  
!     void lana_GetNetbiosName(LPTSTR pszName, int type);
  
  #ifdef __cplusplus
  }
Index: openafs/src/WINNT/afsd/libafsconf.def
diff -c openafs/src/WINNT/afsd/libafsconf.def:1.3 openafs/src/WINNT/afsd/libafsconf.def:1.3.2.1
*** openafs/src/WINNT/afsd/libafsconf.def:1.3	Thu Jul 22 05:23:52 2004
--- openafs/src/WINNT/afsd/libafsconf.def	Fri Mar 11 02:15:45 2005
***************
*** 17,24 ****
  	cm_AppendNewCell		@10
  	cm_AppendNewCellLine		@11
  	cm_CloseCellFile		@12
!      cm_SearchCellByDNS       @13
!      getAFSServer             @14
!      cm_InitDNS               @15
!      cm_GetConfigDir          @16
    
\ No newline at end of file
--- 17,26 ----
  	cm_AppendNewCell		@10
  	cm_AppendNewCellLine		@11
  	cm_CloseCellFile		@12
!         cm_SearchCellByDNS              @13
!         getAFSServer                    @14
!         cm_InitDNS                      @15
!         cm_GetConfigDir                 @16
!         afs_uuid_create                 @17
!         afs_uuid_equal                  @18
    
\ No newline at end of file
Index: openafs/src/WINNT/afsd/smb.c
diff -c openafs/src/WINNT/afsd/smb.c:1.55.2.11 openafs/src/WINNT/afsd/smb.c:1.55.2.16
*** openafs/src/WINNT/afsd/smb.c:1.55.2.11	Sun Jan 30 23:17:43 2005
--- openafs/src/WINNT/afsd/smb.c	Mon Mar 21 11:28:33 2005
***************
*** 7,20 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
- //#define NOTSERVICE 1
- #define LOG_PACKET 1
- 
  #include <afs/param.h>
  #include <afs/stds.h>
  
  #ifndef DJGPP
  #include <windows.h>
  #else
  #include <sys/timeb.h>
  #include <tzfile.h>
--- 7,18 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
  #include <afs/param.h>
  #include <afs/stds.h>
  
  #ifndef DJGPP
  #include <windows.h>
+ #include <ntstatus.h>
  #else
  #include <sys/timeb.h>
  #include <tzfile.h>
***************
*** 27,35 ****
  #include <time.h>
  
  #include <osi.h>
- #include <ntstatus.h>
  
  #include "afsd.h"
  
  #include "smb.h"
  #include "lanahelper.h"
--- 25,33 ----
  #include <time.h>
  
  #include <osi.h>
  
  #include "afsd.h"
+ #include <WINNT\afsreg.h>
  
  #include "smb.h"
  #include "lanahelper.h"
***************
*** 97,102 ****
--- 95,101 ----
  #define NCBmax MAXIMUM_WAIT_OBJECTS
  EVENT_HANDLE NCBavails[NCBmax], NCBevents[NCBmax];
  EVENT_HANDLE **NCBreturns;
+ EVENT_HANDLE **NCBShutdown;
  EVENT_HANDLE *smb_ServerShutdown;
  DWORD NCBsessions[NCBmax];
  NCB *NCBs[NCBmax];
***************
*** 196,202 ****
  #ifdef LOG_PACKET
  void smb_LogPacket(smb_packet_t *packet);
  #endif /* LOG_PACKET */
- extern char AFSConfigKeyName[];
  
  char smb_ServerDomainName[MAX_COMPUTERNAME_LENGTH + 1] = ""; /* domain name */
  int smb_ServerDomainNameLength = 0;
--- 195,200 ----
***************
*** 395,406 ****
      unsigned int attrs;
  
      if ( scp->fileType == CM_SCACHETYPE_DIRECTORY ||
!          scp->fileType == CM_SCACHETYPE_MOUNTPOINT) 
      {
          attrs = SMB_ATTR_DIRECTORY;
  #ifdef SPECIAL_FOLDERS
          attrs |= SMB_ATTR_SYSTEM;		/* FILE_ATTRIBUTE_SYSTEM */
  #endif /* SPECIAL_FOLDERS */
      } else
          attrs = 0;
  
--- 393,407 ----
      unsigned int attrs;
  
      if ( scp->fileType == CM_SCACHETYPE_DIRECTORY ||
!          scp->fileType == CM_SCACHETYPE_MOUNTPOINT ||
!          scp->fileType == CM_SCACHETYPE_INVALID)
      {
          attrs = SMB_ATTR_DIRECTORY;
  #ifdef SPECIAL_FOLDERS
          attrs |= SMB_ATTR_SYSTEM;		/* FILE_ATTRIBUTE_SYSTEM */
  #endif /* SPECIAL_FOLDERS */
+     } else if (scp->fileType == CM_SCACHETYPE_DFSLINK) {
+         attrs = SMB_ATTR_DIRECTORY | SMB_ATTR_SPARSE_FILE;
      } else
          attrs = 0;
  
***************
*** 410,418 ****
       */
  #ifdef notdef
      if ((scp->unixModeBits & 0222) == 0 || (scp->flags & CM_SCACHEFLAG_RO))
  #endif
- 	if ((scp->unixModeBits & 0222) == 0)
-             attrs |= SMB_ATTR_READONLY;	/* turn on read-only flag */
  
      return attrs;
  }
--- 411,421 ----
       */
  #ifdef notdef
      if ((scp->unixModeBits & 0222) == 0 || (scp->flags & CM_SCACHEFLAG_RO))
+         attrs |= SMB_ATTR_READONLY;	/* turn on read-only flag */
+ #else
+     if ((scp->unixModeBits & 0222) == 0)
+         attrs |= SMB_ATTR_READONLY;	/* turn on read-only flag */
  #endif
  
      return attrs;
  }
***************
*** 804,813 ****
              /* We must obtain a challenge for extended auth 
               * in case the client negotiates smb v3 
               */
!             NTSTATUS nts,ntsEx;
              MSV1_0_LM20_CHALLENGE_REQUEST lsaReq;
              PMSV1_0_LM20_CHALLENGE_RESPONSE lsaResp;
!             ULONG lsaRespSize;
  
              lsaReq.MessageType = MsV1_0Lm20ChallengeRequest;
  
--- 807,816 ----
              /* We must obtain a challenge for extended auth 
               * in case the client negotiates smb v3 
               */
!             NTSTATUS nts = STATUS_UNSUCCESSFUL, ntsEx = STATUS_UNSUCCESSFUL;
              MSV1_0_LM20_CHALLENGE_REQUEST lsaReq;
              PMSV1_0_LM20_CHALLENGE_RESPONSE lsaResp;
!             ULONG lsaRespSize = 0;
  
              lsaReq.MessageType = MsV1_0Lm20ChallengeRequest;
  
***************
*** 818,823 ****
--- 821,829 ----
                                                  &lsaResp,
                                                  &lsaRespSize,
                                                  &ntsEx);
+             if (nts != STATUS_SUCCESS)
+                 osi_Log4(smb_logp,"MsV1_0Lm20ChallengeRequest failure: nts 0x%x ntsEx 0x%x respSize is %u needs %u",
+                          nts, ntsEx, sizeof(lsaReq), lsaRespSize);
              osi_assert(nts == STATUS_SUCCESS); /* this had better work! */
  
              memcpy(vcp->encKey, lsaResp->ChallengeToClient, MSV1_0_CHALLENGE_LENGTH);
***************
*** 844,868 ****
  
  void smb_ReleaseVCNoLock(smb_vc_t *vcp)
  {
!     osi_assert(vcp->refCount-- > 0);
  }       
  
  void smb_ReleaseVC(smb_vc_t *vcp)
  {
      lock_ObtainWrite(&smb_rctLock);
!     osi_assert(vcp->refCount-- > 0);
      lock_ReleaseWrite(&smb_rctLock);
  }       
  
  void smb_HoldVCNoLock(smb_vc_t *vcp)
  {
      vcp->refCount++;
  }       
  
  void smb_HoldVC(smb_vc_t *vcp)
  {
      lock_ObtainWrite(&smb_rctLock);
      vcp->refCount++;
      lock_ReleaseWrite(&smb_rctLock);
  }       
  
--- 850,886 ----
  
  void smb_ReleaseVCNoLock(smb_vc_t *vcp)
  {
!     osi_Log2(smb_logp,"smb_ReleaseVCNoLock vcp %x ref %d",vcp, vcp->refCount);
! #ifdef DEBUG
!     osi_assert(vcp->refCount-- != 0);
! #else
!     vcp->refCount--;
! #endif
  }       
  
  void smb_ReleaseVC(smb_vc_t *vcp)
  {
      lock_ObtainWrite(&smb_rctLock);
!     osi_Log2(smb_logp,"smb_ReleaseVC       vcp %x ref %d",vcp, vcp->refCount);
! #ifdef DEBUG
!     osi_assert(vcp->refCount-- != 0);
! #else
!     vcp->refCount--;
! #endif
      lock_ReleaseWrite(&smb_rctLock);
  }       
  
  void smb_HoldVCNoLock(smb_vc_t *vcp)
  {
      vcp->refCount++;
+     osi_Log2(smb_logp,"smb_HoldVCNoLock vcp %x ref %d",vcp, vcp->refCount);
  }       
  
  void smb_HoldVC(smb_vc_t *vcp)
  {
      lock_ObtainWrite(&smb_rctLock);
      vcp->refCount++;
+     osi_Log2(smb_logp,"smb_HoldVC       vcp %x ref %d",vcp, vcp->refCount);
      lock_ReleaseWrite(&smb_rctLock);
  }       
  
***************
*** 903,909 ****
      osi_assert(tidp->refCount-- > 0);
      if (tidp->refCount == 0 && (tidp->flags & SMB_TIDFLAG_DELETE)) {
          ltpp = &tidp->vcp->tidsp;
!         for (tp = *ltpp; tp; ltpp = &tp->nextp, tp = *ltpp) {
              if (tp == tidp) 
                  break;
          }
--- 921,927 ----
      osi_assert(tidp->refCount-- > 0);
      if (tidp->refCount == 0 && (tidp->flags & SMB_TIDFLAG_DELETE)) {
          ltpp = &tidp->vcp->tidsp;
!         for(tp = *ltpp; tp; ltpp = &tp->nextp, tp = *ltpp) {
              if (tp == tidp) 
                  break;
          }
***************
*** 913,919 ****
          userp = tidp->userp;	/* remember to drop ref later */
          tidp->userp = NULL;
          smb_ReleaseVCNoLock(tidp->vcp);
!         tidp->vcp = NULL;
      }
      lock_ReleaseWrite(&smb_rctLock);
      if (userp)
--- 931,937 ----
          userp = tidp->userp;	/* remember to drop ref later */
          tidp->userp = NULL;
          smb_ReleaseVCNoLock(tidp->vcp);
!         tidp->vcp = 0;
      }
      lock_ReleaseWrite(&smb_rctLock);
      if (userp)
***************
*** 1006,1018 ****
      if (uidp->refCount == 0 && (uidp->flags & SMB_USERFLAG_DELETE)) {
          lupp = &uidp->vcp->usersp;
          for(up = *lupp; up; lupp = &up->nextp, up = *lupp) {
!             if (up == uidp) break;
          }
          osi_assert(up != NULL);
          *lupp = up->nextp;
          lock_FinalizeMutex(&uidp->mx);
          if (uidp->unp) {
!             userp = uidp->unp->userp;	/* avoid deadlock by releasing */
              uidp->unp->userp = NULL;    /* after releasing the lock */
          }       
          smb_ReleaseVCNoLock(uidp->vcp);
--- 1024,1037 ----
      if (uidp->refCount == 0 && (uidp->flags & SMB_USERFLAG_DELETE)) {
          lupp = &uidp->vcp->usersp;
          for(up = *lupp; up; lupp = &up->nextp, up = *lupp) {
!             if (up == uidp) 
!                 break;
          }
          osi_assert(up != NULL);
          *lupp = up->nextp;
          lock_FinalizeMutex(&uidp->mx);
          if (uidp->unp) {
!             userp = uidp->unp->userp;   /* avoid deadlock by releasing */
              uidp->unp->userp = NULL;    /* after releasing the lock */
          }       
          smb_ReleaseVCNoLock(uidp->vcp);
***************
*** 1025,1030 ****
--- 1044,1050 ----
      }	
  }	
  
+ 
  /* retrieve a held reference to a user structure corresponding to an incoming
   * request.
   * corresponding release function is cm_ReleaseUser.
***************
*** 1063,1069 ****
      if (!tidp) {
          *treepath = NULL;
      } else {
!         if(tidp->flags & SMB_TIDFLAG_IPC) {
              code = CM_ERROR_TIDIPC;
              /* tidp->pathname would be NULL, but that's fine */
          }
--- 1083,1089 ----
      if (!tidp) {
          *treepath = NULL;
      } else {
!         if (tidp->flags & SMB_TIDFLAG_IPC) {
              code = CM_ERROR_TIDIPC;
              /* tidp->pathname would be NULL, but that's fine */
          }
***************
*** 1112,1118 ****
      }
  
    retry:
!     for (fidp = vcp->fidsp; fidp; fidp = (smb_fid_t *) osi_QNext(&fidp->q)) {
          if (fid == fidp->fid) {
              if (newFid) {
                  fid++;
--- 1132,1138 ----
      }
  
    retry:
!     for(fidp = vcp->fidsp; fidp; fidp = (smb_fid_t *) osi_QNext(&fidp->q)) {
          if (fid == fidp->fid) {
              if (newFid) {
                  fid++;
***************
*** 1172,1182 ****
      osi_assert(fidp->refCount-- > 0);
      if (fidp->refCount == 0 && (fidp->flags & SMB_FID_DELETE)) {
          vcp = fidp->vcp;
!         fidp->vcp = NULL;
!         if (!(fidp->flags & SMB_FID_IOCTL)) {
!             scp = fidp->scp;
!             fidp->scp = NULL;
!         }
  
          osi_QRemove((osi_queue_t **) &vcp->fidsp, &fidp->q);
          thrd_CloseHandle(fidp->raw_write_event);
--- 1192,1200 ----
      osi_assert(fidp->refCount-- > 0);
      if (fidp->refCount == 0 && (fidp->flags & SMB_FID_DELETE)) {
          vcp = fidp->vcp;
!         fidp->vcp = 0;
!         scp = fidp->scp;    /* release after lock is released */
!         fidp->scp = 0;
  
          osi_QRemove((osi_queue_t **) &vcp->fidsp, &fidp->q);
          thrd_CloseHandle(fidp->raw_write_event);
***************
*** 1184,1194 ****
          /* and see if there is ioctl stuff to free */
          ioctlp = fidp->ioctlp;
          if (ioctlp) {
!             if (ioctlp->prefix) 
                  cm_FreeSpace(ioctlp->prefix);
!             if (ioctlp->inAllocp) 
                  free(ioctlp->inAllocp);
!             if (ioctlp->outAllocp) 
                  free(ioctlp->outAllocp);
              free(ioctlp);
          }       
--- 1202,1212 ----
          /* and see if there is ioctl stuff to free */
          ioctlp = fidp->ioctlp;
          if (ioctlp) {
!             if (ioctlp->prefix)
                  cm_FreeSpace(ioctlp->prefix);
!             if (ioctlp->inAllocp)
                  free(ioctlp->inAllocp);
!             if (ioctlp->outAllocp)
                  free(ioctlp->outAllocp);
              free(ioctlp);
          }       
***************
*** 1357,1363 ****
       * This is to allow sites that want to restrict access to the 
       * world to do so.
       */
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSConfigKeyName,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          len = sizeof(allSubmount);
--- 1375,1381 ----
       * This is to allow sites that want to restrict access to the 
       * world to do so.
       */
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY,
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          len = sizeof(allSubmount);
***************
*** 1391,1397 ****
      }
  
  #ifndef DJGPP
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\OpenAFS\\Client\\Submounts",
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          len = sizeof(pathName);
--- 1409,1415 ----
      }
  
  #ifndef DJGPP
!     code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_OPENAFS_SUBKEY "\\Submounts",
                           0, KEY_QUERY_VALUE, &parmKey);
      if (code == ERROR_SUCCESS) {
          len = sizeof(pathName);
***************
*** 1478,1487 ****
          vrock.match = NULL;
          vrock.matchType = 0;
  
!         cm_HoldSCache(cm_rootSCachep);
!         code = cm_ApplyDir(cm_rootSCachep, smb_FindShareProc, &vrock, &thyper,
              (uidp? (uidp->unp ? uidp->unp->userp : NULL) : NULL), &req, NULL);
!         cm_ReleaseSCache(cm_rootSCachep);
  
          if (vrock.matchType) {
              sprintf(pathName,"/%s/",vrock.match);
--- 1496,1505 ----
          vrock.match = NULL;
          vrock.matchType = 0;
  
!         cm_HoldSCache(cm_data.rootSCachep);
!         code = cm_ApplyDir(cm_data.rootSCachep, smb_FindShareProc, &vrock, &thyper,
              (uidp? (uidp->unp ? uidp->unp->userp : NULL) : NULL), &req, NULL);
!         cm_ReleaseSCache(cm_data.rootSCachep);
  
          if (vrock.matchType) {
              sprintf(pathName,"/%s/",vrock.match);
***************
*** 1531,1537 ****
      int  retval = CSC_POLICY_MANUAL;
  
      RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                     "SOFTWARE\\OpenAFS\\Client\\CSCPolicy",
                      0, 
                      "AFS", 
                      REG_OPTION_NON_VOLATILE,
--- 1549,1555 ----
      int  retval = CSC_POLICY_MANUAL;
  
      RegCreateKeyEx( HKEY_LOCAL_MACHINE, 
!                     AFSREG_CLT_OPENAFS_SUBKEY "\\CSCPolicy",
                      0, 
                      "AFS", 
                      REG_OPTION_NON_VOLATILE,
***************
*** 1574,1581 ****
              if (dsp != smb_firstDirSearchp) {
                  /* move to head of LRU queue, too, if we're not already there */
                  if (smb_lastDirSearchp == (smb_dirSearch_t *) &dsp->q)
!                     smb_lastDirSearchp = (smb_dirSearch_t *)
!                         osi_QPrev(&dsp->q);
                  osi_QRemove((osi_queue_t **) &smb_firstDirSearchp, &dsp->q);
                  osi_QAdd((osi_queue_t **) &smb_firstDirSearchp, &dsp->q);
                  if (!smb_lastDirSearchp)
--- 1592,1598 ----
              if (dsp != smb_firstDirSearchp) {
                  /* move to head of LRU queue, too, if we're not already there */
                  if (smb_lastDirSearchp == (smb_dirSearch_t *) &dsp->q)
!                     smb_lastDirSearchp = (smb_dirSearch_t *) osi_QPrev(&dsp->q);
                  osi_QRemove((osi_queue_t **) &smb_firstDirSearchp, &dsp->q);
                  osi_QAdd((osi_queue_t **) &smb_firstDirSearchp, &dsp->q);
                  if (!smb_lastDirSearchp)
***************
*** 1587,1592 ****
--- 1604,1616 ----
              break;
          }
      }
+ 
+     if (dsp == NULL) {
+         osi_Log1(smb_logp,"smb_FindDirSearch(%d) == NULL",cookie);
+         for (dsp = smb_firstDirSearchp; dsp; dsp = (smb_dirSearch_t *) osi_QNext(&dsp->q)) {
+             osi_Log1(smb_logp,"... valid id: %d", dsp->cookie);
+         }
+     }
      return dsp;
  }       
  
***************
*** 1611,1619 ****
  /* Must be called with the smb_globalLock held */
  void smb_ReleaseDirSearchNoLock(smb_dirSearch_t *dsp)
  {
!     cm_scache_t *scp;
!         
!     scp = NULL;
  
      lock_ObtainMutex(&dsp->mx);
      osi_assert(dsp->refCount-- > 0);
--- 1635,1641 ----
  /* Must be called with the smb_globalLock held */
  void smb_ReleaseDirSearchNoLock(smb_dirSearch_t *dsp)
  {
!     cm_scache_t *scp = NULL;
  
      lock_ObtainMutex(&dsp->mx);
      osi_assert(dsp->refCount-- > 0);
***************
*** 1701,1712 ****
--- 1723,1740 ----
      smb_dirSearch_t *dsp;
      int counter;
      int maxAllowed;
+     int start;
+     int wrapped = 0;
  
      lock_ObtainWrite(&smb_globalLock);
      counter = 0;
  
      /* what's the biggest ID allowed in this version of the protocol */
      maxAllowed = isV3 ? 65535 : 255;
+     if (smb_dirSearchCounter > maxAllowed)
+         smb_dirSearchCounter = 1;
+ 
+     start = smb_dirSearchCounter;
  
      while (1) {
          /* twice so we have enough tries to find guys we GC after one pass;
***************
*** 1717,1724 ****
  
          if (smb_dirSearchCounter > maxAllowed) {	
              smb_dirSearchCounter = 1;
!             smb_GCDirSearches(isV3);	/* GC some */
!         }	
          dsp = smb_FindDirSearchNoLock(smb_dirSearchCounter);
          if (dsp) {
              /* don't need to watch for refcount zero and deleted, since
--- 1745,1756 ----
  
          if (smb_dirSearchCounter > maxAllowed) {	
              smb_dirSearchCounter = 1;
!         }
!         if (smb_dirSearchCounter == start) {
!             if (wrapped)
!                 smb_GCDirSearches(isV3);
!             wrapped++;
!         }
          dsp = smb_FindDirSearchNoLock(smb_dirSearchCounter);
          if (dsp) {
              /* don't need to watch for refcount zero and deleted, since
***************
*** 1733,1746 ****
  
          dsp = malloc(sizeof(*dsp));
          memset(dsp, 0, sizeof(*dsp));
-         osi_QAdd((osi_queue_t **) &smb_firstDirSearchp, &dsp->q);
-         if (!smb_lastDirSearchp) 
-             smb_lastDirSearchp = (smb_dirSearch_t *) &dsp->q;
          dsp->cookie = smb_dirSearchCounter;
          ++smb_dirSearchCounter;
          dsp->refCount = 1;
          lock_InitializeMutex(&dsp->mx, "cm_dirSearch_t");
          dsp->lastTime = osi_Time();
          break;
      }	
      lock_ReleaseWrite(&smb_globalLock);
--- 1765,1778 ----
  
          dsp = malloc(sizeof(*dsp));
          memset(dsp, 0, sizeof(*dsp));
          dsp->cookie = smb_dirSearchCounter;
          ++smb_dirSearchCounter;
          dsp->refCount = 1;
          lock_InitializeMutex(&dsp->mx, "cm_dirSearch_t");
          dsp->lastTime = osi_Time();
+         osi_QAdd((osi_queue_t **) &smb_firstDirSearchp, &dsp->q);
+         if (!smb_lastDirSearchp) 
+             smb_lastDirSearchp = (smb_dirSearch_t *) &dsp->q;
          break;
      }	
      lock_ReleaseWrite(&smb_globalLock);
***************
*** 1809,1814 ****
--- 1841,1847 ----
      tbp = GetPacket();
      memcpy(tbp, pkt, sizeof(smb_packet_t));
      tbp->wctp = tbp->data + ((unsigned int)pkt->wctp - (unsigned int)pkt->data);
+     smb_HoldVC(tbp->vcp);
      return tbp;
  }
  
***************
*** 1863,1869 ****
  void smb_FreePacket(smb_packet_t *tbp)
  {
      smb_vc_t * vcp = NULL;
- 
      osi_assert(tbp->magic == SMB_PACKETMAGIC);
          
      lock_ObtainWrite(&smb_globalLock);
--- 1896,1901 ----
***************
*** 1956,1962 ****
                       1, smbp->ncb_length, ptbuf, smbp);
          DeregisterEventSource(h);
  #endif
!         osi_Log0(smb_logp, osi_LogSaveString(smb_logp, s));
          osi_panic(s, __FILE__, __LINE__);
      }
      parmDatap = smbp->wctp + (2*parm) + 1;
--- 1988,1995 ----
                       1, smbp->ncb_length, ptbuf, smbp);
          DeregisterEventSource(h);
  #endif
!         osi_Log3(smb_logp,"Bad SMB param %d out of %d, ncb len %d",
!                  parm, parmCount, smbp->ncb_length);
          osi_panic(s, __FILE__, __LINE__);
      }
      parmDatap = smbp->wctp + (2*parm) + 1;
***************
*** 1987,1993 ****
                      1, smbp->ncb_length, ptbuf, smbp);
          DeregisterEventSource(h);
  #endif
!         osi_Log0(smb_logp, osi_LogSaveString(smb_logp, s));
          osi_panic(s, __FILE__, __LINE__);
      }
      parmDatap = smbp->wctp + (2*parm) + 1 + offset;
--- 2020,2027 ----
                      1, smbp->ncb_length, ptbuf, smbp);
          DeregisterEventSource(h);
  #endif
!         osi_Log4(smb_logp, "Bad SMB param %d offset %d out of %d, ncb len %d",
!                 parm, offset, parmCount, smbp->ncb_length);
          osi_panic(s, __FILE__, __LINE__);
      }
      parmDatap = smbp->wctp + (2*parm) + 1 + offset;
***************
*** 2131,2137 ****
          outp->res[1] = inSmbp->res[1];
          op->inCom = inSmbp->com;
      }
!     outp->reb = 0x80;	/* SERVER_RESP */
      outp->flg2 = SMB_FLAGS2_KNOWS_LONG_NAMES;
  
      /* copy fields in generic packet area */
--- 2165,2171 ----
          outp->res[1] = inSmbp->res[1];
          op->inCom = inSmbp->com;
      }
!     outp->reb = SMB_FLAGS_SERVER_TO_CLIENT | SMB_FLAGS_CANONICAL_PATHNAMES;
      outp->flg2 = SMB_FLAGS2_KNOWS_LONG_NAMES;
  
      /* copy fields in generic packet area */
***************
*** 2320,2326 ****
          NTStatus = 0xC0000022L; /* Access Denied */
  #endif
      }
!     else {
          NTStatus = 0xC0982001L;	/* SMB non-specific error */
      }
  
--- 2354,2365 ----
          NTStatus = 0xC0000022L; /* Access Denied */
  #endif
      }
!     else if (code == CM_ERROR_PATH_NOT_COVERED) {
!         NTStatus = 0xC0000257L; /* Path Not Covered */
!     } 
!     else if (code == CM_ERROR_ALLBUSY) {
!         NTStatus = 0xC00000BFL; /* Network Busy */
!     } else {
          NTStatus = 0xC0982001L;	/* SMB non-specific error */
      }
  
***************
*** 2476,2481 ****
--- 2515,2524 ----
          class = 2;
          error = 2; /* bad password */
      }
+     else if (code == CM_ERROR_PATH_NOT_COVERED) {
+         class = 2;
+         error = 3;     /* bad path */
+     }
      else {
          class = 2;
          error = 1;
***************
*** 2928,2942 ****
      NCB *ncbp;
      long code = 0;
  
!     while (1) {
          lock_ObtainWrite(&smb_globalLock);
          nwL = smb_allWaitingLocks;
          if (nwL == NULL) {
              osi_SleepW((long)&smb_allWaitingLocks, &smb_globalLock);
              thrd_Sleep(1000);
              continue;
!         }
!         else first = 1;
          do {
              if (first)
                  first = 0;
--- 2971,2986 ----
      NCB *ncbp;
      long code = 0;
  
!     while (smbShutdownFlag == 0) {
          lock_ObtainWrite(&smb_globalLock);
          nwL = smb_allWaitingLocks;
          if (nwL == NULL) {
              osi_SleepW((long)&smb_allWaitingLocks, &smb_globalLock);
              thrd_Sleep(1000);
              continue;
!         } else 
!             first = 1;
! 
          do {
              if (first)
                  first = 0;
***************
*** 2954,2959 ****
--- 2998,3004 ----
                      goto endWait;
                  continue;
              }
+ 
            endWait:
              vcp = wL->vcp;
              inp = wL->inp;
***************
*** 2980,2990 ****
              cm_FreeSpace(inp->spacep);
              smb_FreePacket(inp);
              smb_FreePacket(outp);
!             if (vcp)
!                 smb_ReleaseVC(vcp);
              FreeNCB(ncbp);
              free(wL);
!         } while (nwL);
          thrd_Sleep(1000);
      }
  }
--- 3025,3034 ----
              cm_FreeSpace(inp->spacep);
              smb_FreePacket(inp);
              smb_FreePacket(outp);
!             smb_ReleaseVC(vcp);
              FreeNCB(ncbp);
              free(wL);
!         } while (nwL && smbShutdownFlag == 0);
          thrd_Sleep(1000);
      }
  }
***************
*** 3359,3367 ****
      int returnedNames;
      long nextEntryCookie;
      int numDirChunks;		/* # of 32 byte dir chunks in this entry */
!     char resByte;			/* reserved byte from the cookie */
      char *op;			/* output data ptr */
!     char *origOp;			/* original value of op */
      cm_space_t *spacep;		/* for pathname buffer */
      int starPattern;
      int rootPath = 0;
--- 3403,3411 ----
      int returnedNames;
      long nextEntryCookie;
      int numDirChunks;		/* # of 32 byte dir chunks in this entry */
!     char resByte;		/* reserved byte from the cookie */
      char *op;			/* output data ptr */
!     char *origOp;		/* original value of op */
      cm_space_t *spacep;		/* for pathname buffer */
      int starPattern;
      int rootPath = 0;
***************
*** 3431,3436 ****
--- 3475,3482 ----
          dsp = smb_FindDirSearch(inCookiep[12]);
          if (!dsp) {
              /* can't find dir search status; fatal error */
+             osi_Log3(smb_logp, "SMB receive search dir bad cookie: cookie %d nextCookie %u [%s]",
+                      inCookiep[12], nextCookie, osi_LogSaveString(smb_logp, pathp));
              return CM_ERROR_BADFD;
          }
          attribute = dsp->attribute;
***************
*** 3449,3455 ****
          starPattern = 1;
      }
  
!     osi_Log3(smb_logp, "SMB dir search cookie 0x%x, connection %d, attr 0x%x",
               nextCookie, dsp->cookie, attribute);
  
      userp = smb_GetUser(vcp, inp);
--- 3495,3501 ----
          starPattern = 1;
      }
  
!     osi_Log3(smb_logp, "SMB search dir cookie 0x%x, connection %d, attr 0x%x",
               nextCookie, dsp->cookie, attribute);
  
      userp = smb_GetUser(vcp, inp);
***************
*** 3460,3467 ****
          scp = dsp->scp;
          cm_HoldSCache(scp);
          code = 0;
!     }
!     else {
          spacep = inp->spacep;
          smb_StripLastComponent(spacep->data, NULL, pathp);
          code = smb_LookupTIDPath(vcp, ((smb_t *)inp)->tid, &tidPathp);
--- 3506,3512 ----
          scp = dsp->scp;
          cm_HoldSCache(scp);
          code = 0;
!     } else {
          spacep = inp->spacep;
          smb_StripLastComponent(spacep->data, NULL, pathp);
          code = smb_LookupTIDPath(vcp, ((smb_t *)inp)->tid, &tidPathp);
***************
*** 3472,3482 ****
              smb_ReleaseDirSearch(dsp);
              return CM_ERROR_NOFILES;
          }
!         code = cm_NameI(cm_rootSCachep, spacep->data,
                          caseFold | CM_FLAG_FOLLOW, userp, tidPathp, &req, &scp);
          if (code == 0) {
!             if (dsp->scp != 0) 
!                 cm_ReleaseSCache(dsp->scp);
              dsp->scp = scp;
              /* we need one hold for the entry we just stored into,
               * and one for our own processing.  When we're done with this
--- 3517,3539 ----
              smb_ReleaseDirSearch(dsp);
              return CM_ERROR_NOFILES;
          }
!         code = cm_NameI(cm_data.rootSCachep, spacep->data,
                          caseFold | CM_FLAG_FOLLOW, userp, tidPathp, &req, &scp);
          if (code == 0) {
! #ifdef DFS_SUPPORT
!             if (scp->fileType == CM_SCACHETYPE_DFSLINK) {
!                 cm_ReleaseSCache(scp);
!                 lock_ReleaseMutex(&dsp->mx);
!                 cm_ReleaseUser(userp);
!                 smb_DeleteDirSearch(dsp);
!                 smb_ReleaseDirSearch(dsp);
!                 if ( WANTS_DFS_PATHNAMES(inp) )
!                     return CM_ERROR_PATH_NOT_COVERED;
!                 else
!                     return CM_ERROR_BADSHARENAME;
!             }
! #endif /* DFS_SUPPORT */
! 
              dsp->scp = scp;
              /* we need one hold for the entry we just stored into,
               * and one for our own processing.  When we're done with this
***************
*** 3559,3566 ****
          /* check if we've returned all the names that will fit in the
           * response packet.
           */
!         if (returnedNames >= maxCount) 
              break;
                  
          /* check if we've passed the dir's EOF */
          if (LargeIntegerGreaterThanOrEqualTo(curOffset, dirLength)) break;
--- 3616,3626 ----
          /* check if we've returned all the names that will fit in the
           * response packet.
           */
!         if (returnedNames >= maxCount) {
!             osi_Log2(smb_logp, "SMB search dir returnedNames %d >= maxCount %d",
!                       returnedNames, maxCount);
              break;
+         }
                  
          /* check if we've passed the dir's EOF */
          if (LargeIntegerGreaterThanOrEqualTo(curOffset, dirLength)) break;
***************
*** 3570,3576 ****
           * of the buffer we have.  If not, get the buffer.
           */
          thyper.HighPart = curOffset.HighPart;
!         thyper.LowPart = curOffset.LowPart & ~(buf_bufferSize-1);
          if (!bufferp || !LargeIntegerEqualTo(thyper, bufferOffset)) {
              /* wrong buffer */
              if (bufferp) {
--- 3630,3636 ----
           * of the buffer we have.  If not, get the buffer.
           */
          thyper.HighPart = curOffset.HighPart;
!         thyper.LowPart = curOffset.LowPart & ~(cm_data.buf_blockSize-1);
          if (!bufferp || !LargeIntegerEqualTo(thyper, bufferOffset)) {
              /* wrong buffer */
              if (bufferp) {
***************
*** 3605,3612 ****
                  lock_ObtainMutex(&scp->mx);
              }
              lock_ReleaseMutex(&dsp->mx);
!             if (code) 
                  break;
  
              bufferOffset = thyper;
  
--- 3665,3674 ----
                  lock_ObtainMutex(&scp->mx);
              }
              lock_ReleaseMutex(&dsp->mx);
!             if (code) {
!                 osi_Log2(smb_logp, "SMB search dir buf_Get scp %x failed %d", scp, code);
                  break;
+             }
  
              bufferOffset = thyper;
  
***************
*** 3616,3628 ****
                                   PRSFS_LOOKUP,
                                   CM_SCACHESYNC_NEEDCALLBACK |
                                   CM_SCACHESYNC_READ);
!                 if (code) break;
                                  
!                 if (cm_HaveBuffer(scp, bufferp, 0)) break;
  
                  /* otherwise, load the buffer and try again */
                  code = cm_GetBuffer(scp, bufferp, NULL, userp, &req);
!                 if (code) break;
              }
              if (code) {
                  buf_Release(bufferp);
--- 3678,3700 ----
                                   PRSFS_LOOKUP,
                                   CM_SCACHESYNC_NEEDCALLBACK |
                                   CM_SCACHESYNC_READ);
!                 if (code) {
!                     osi_Log2(smb_logp, "SMB search dir cm_SyncOp scp %x failed %d", scp, code);
!                     break;
!                 }
                                  
!                 if (cm_HaveBuffer(scp, bufferp, 0)) {
!                     osi_Log2(smb_logp, "SMB search dir !HaveBuffer scp %x bufferp %x", scp, bufferp);
!                     break;
!                 }
  
                  /* otherwise, load the buffer and try again */
                  code = cm_GetBuffer(scp, bufferp, NULL, userp, &req);
!                 if (code) {
!                     osi_Log3(smb_logp, "SMB search dir cm_GetBuffer failed scp %x bufferp %x code %d", 
!                               scp, bufferp, code);
!                     break;
!                 }
              }
              if (code) {
                  buf_Release(bufferp);
***************
*** 3635,3647 ****
           * it out if it represents a non-deleted entry.
           */
          entryInDir = curOffset.LowPart & (2048-1);
!         entryInBuffer = curOffset.LowPart & (buf_bufferSize - 1);
  
          /* page header will help tell us which entries are free.  Page header
           * can change more often than once per buffer, since AFS 3 dir page size
           * may be less than (but not more than a buffer package buffer.
           */
!         temp = curOffset.LowPart & (buf_bufferSize - 1);  /* only look intra-buffer */
          temp &= ~(2048 - 1);	/* turn off intra-page bits */
          pageHeaderp = (cm_pageHeader_t *) (bufferp->datap + temp);
  
--- 3707,3719 ----
           * it out if it represents a non-deleted entry.
           */
          entryInDir = curOffset.LowPart & (2048-1);
!         entryInBuffer = curOffset.LowPart & (cm_data.buf_blockSize - 1);
  
          /* page header will help tell us which entries are free.  Page header
           * can change more often than once per buffer, since AFS 3 dir page size
           * may be less than (but not more than a buffer package buffer.
           */
!         temp = curOffset.LowPart & (cm_data.buf_blockSize - 1);  /* only look intra-buffer */
          temp &= ~(2048 - 1);	/* turn off intra-page bits */
          pageHeaderp = (cm_pageHeader_t *) (bufferp->datap + temp);
  
***************
*** 3677,3682 ****
--- 3749,3758 ----
              actualName = shortName;
          }
  
+         osi_Log3(smb_logp, "SMB search dir vn %d name %s (%s)",
+                   dep->fid.vnode, osi_LogSaveString(smb_logp, dep->name),
+                   osi_LogSaveString(smb_logp, actualName));
+ 
          if (dep->fid.vnode != 0 && smb_Match8Dot3Mask(actualName, mask)) {
              /* this is one of the entries to use: it is not deleted
               * and it matches the star pattern we're looking for.
***************
*** 3686,3693 ****
               * attributes */
  
              /* no hidden files */
!             if (smb_hideDotFiles && !(dsp->attribute & SMB_ATTR_HIDDEN) && smb_IsDotFile(actualName))
                  goto nextEntry;
  
              if (!(dsp->attribute & SMB_ATTR_DIRECTORY))  /* no directories */
              {
--- 3762,3771 ----
               * attributes */
  
              /* no hidden files */
!             if (smb_hideDotFiles && !(dsp->attribute & SMB_ATTR_HIDDEN) && smb_IsDotFile(actualName)) {
!                 osi_Log0(smb_logp, "SMB search dir skipping hidden");
                  goto nextEntry;
+             }
  
              if (!(dsp->attribute & SMB_ATTR_DIRECTORY))  /* no directories */
              {
***************
*** 3700,3707 ****
                  osi_Log2(smb_logp, "smb_ReceiveCoreSearchDir: file %s "
                           "has filetype %d", osi_LogSaveString(smb_logp, dep->name),
                            fileType);
!                 if (fileType == CM_SCACHETYPE_DIRECTORY)
!                     goto nextEntry;
              }
  
              *op++ = resByte;
--- 3778,3788 ----
                  osi_Log2(smb_logp, "smb_ReceiveCoreSearchDir: file %s "
                           "has filetype %d", osi_LogSaveString(smb_logp, dep->name),
                            fileType);
!                 if (fileType == CM_SCACHETYPE_DIRECTORY ||
!                     fileType == CM_SCACHETYPE_DFSLINK ||
!                     fileType == CM_SCACHETYPE_INVALID)
!                     osi_Log0(smb_logp, "SMB search dir skipping directory or bad link");
!                 goto nextEntry;
              }
  
              *op++ = resByte;
***************
*** 3759,3765 ****
                  CharToOem(op, op);
  
              /* Uppercase if requested by client */
!             if ((((smb_t *)inp)->flg2 & SMB_FLAGS2_KNOWS_LONG_NAMES) == 0)
                  _strupr(op);
  
              op += 13;
--- 3840,3846 ----
                  CharToOem(op, op);
  
              /* Uppercase if requested by client */
!             if (!KNOWS_LONG_NAMES(inp))
                  _strupr(op);
  
              op += 13;
***************
*** 3847,3853 ****
      osi_Log1(smb_logp, "SMB receive check path %s",
               osi_LogSaveString(smb_logp, pathp));
          
!     rootScp = cm_rootSCachep;
          
      userp = smb_GetUser(vcp, inp);
  
--- 3928,3934 ----
      osi_Log1(smb_logp, "SMB receive check path %s",
               osi_LogSaveString(smb_logp, pathp));
          
!     rootScp = cm_data.rootSCachep;
          
      userp = smb_GetUser(vcp, inp);
  
***************
*** 3867,3872 ****
--- 3948,3964 ----
          return code;
      }
          
+ #ifdef DFS_SUPPORT
+     if (newScp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(newScp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(inp) )
+             return CM_ERROR_PATH_NOT_COVERED;
+         else
+             return CM_ERROR_BADSHARENAME;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      /* now lock the vnode with a callback; returns with newScp locked */
      lock_ObtainMutex(&newScp->mx);
      code = cm_SyncOp(newScp, NULL, userp, &req, PRSFS_LOOKUP,
***************
*** 3880,3886 ****
  
      attrs = smb_Attributes(newScp);
  
!     if (!(attrs & 0x10))
          code = CM_ERROR_NOTDIR;
  
      lock_ReleaseMutex(&newScp->mx);
--- 3972,3978 ----
  
      attrs = smb_Attributes(newScp);
  
!     if (!(attrs & SMB_ATTR_DIRECTORY))
          code = CM_ERROR_NOTDIR;
  
      lock_ReleaseMutex(&newScp->mx);
***************
*** 3920,3926 ****
      osi_Log2(smb_logp, "SMB receive setfile attributes time %d, attr 0x%x",
               dosTime, attribute);
  
!     rootScp = cm_rootSCachep;
          
      userp = smb_GetUser(vcp, inp);
  
--- 4012,4018 ----
      osi_Log2(smb_logp, "SMB receive setfile attributes time %d, attr 0x%x",
               dosTime, attribute);
  
!     rootScp = cm_data.rootSCachep;
          
      userp = smb_GetUser(vcp, inp);
  
***************
*** 3939,3944 ****
--- 4031,4047 ----
          return code;
      }
  	
+ #ifdef DFS_SUPPORT
+     if (newScp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(newScp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(inp) )
+             return CM_ERROR_PATH_NOT_COVERED;
+         else
+             return CM_ERROR_BADSHARENAME;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      /* now lock the vnode with a callback; returns with newScp locked; we
       * need the current status to determine what the new status is, in some
       * cases.
***************
*** 4022,4028 ****
      osi_Log1(smb_logp, "SMB receive getfile attributes path %s",
               osi_LogSaveString(smb_logp, pathp));
  
!     rootScp = cm_rootSCachep;
          
      userp = smb_GetUser(vcp, inp);
  
--- 4125,4131 ----
      osi_Log1(smb_logp, "SMB receive getfile attributes path %s",
               osi_LogSaveString(smb_logp, pathp));
  
!     rootScp = cm_data.rootSCachep;
          
      userp = smb_GetUser(vcp, inp);
  
***************
*** 4060,4067 ****
                          caseFold | CM_FLAG_DIRSEARCH | CM_FLAG_FOLLOW,
                          userp, tidPathp, &req, &dscp);
          if (code == 0) {
!             if (dscp->fileType == CM_SCACHETYPE_MOUNTPOINT &&
!                 !dscp->mountRootFidp)
                  code = CM_ERROR_NOSUCHFILE;
              else if (dscp->fileType == CM_SCACHETYPE_DIRECTORY) {
                  cm_buf_t *bp = buf_Find(dscp, &hzero);
--- 4163,4177 ----
                          caseFold | CM_FLAG_DIRSEARCH | CM_FLAG_FOLLOW,
                          userp, tidPathp, &req, &dscp);
          if (code == 0) {
! #ifdef DFS_SUPPORT
!             if (dscp->fileType == CM_SCACHETYPE_DFSLINK) {
!                 if ( WANTS_DFS_PATHNAMES(inp) )
!                     return CM_ERROR_PATH_NOT_COVERED;
!                 else
!                     return CM_ERROR_BADSHARENAME;
!             } else
! #endif /* DFS_SUPPORT */
!             if (dscp->fileType == CM_SCACHETYPE_MOUNTPOINT && !dscp->mountRootFid.volume)
                  code = CM_ERROR_NOSUCHFILE;
              else if (dscp->fileType == CM_SCACHETYPE_DIRECTORY) {
                  cm_buf_t *bp = buf_Find(dscp, &hzero);
***************
*** 4086,4091 ****
--- 4196,4212 ----
          return code;
      }
          
+ #ifdef DFS_SUPPORT
+     if (newScp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(newScp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(inp) )
+             return CM_ERROR_PATH_NOT_COVERED;
+         else
+             return CM_ERROR_BADSHARENAME;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      /* now lock the vnode with a callback; returns with newScp locked */
      lock_ObtainMutex(&newScp->mx);
      code = cm_SyncOp(newScp, NULL, userp, &req, 0,
***************
*** 4219,4225 ****
          cm_ReleaseUser(userp);
          return CM_ERROR_NOSUCHPATH;
      }
!     code = cm_NameI(cm_rootSCachep, pathp, caseFold | CM_FLAG_FOLLOW, userp,
                      tidPathp, &req, &scp);
          
      if (code) {
--- 4340,4346 ----
          cm_ReleaseUser(userp);
          return CM_ERROR_NOSUCHPATH;
      }
!     code = cm_NameI(cm_data.rootSCachep, pathp, caseFold | CM_FLAG_FOLLOW, userp,
                      tidPathp, &req, &scp);
          
      if (code) {
***************
*** 4227,4232 ****
--- 4348,4364 ----
          return code;
      }
  
+ #ifdef DFS_SUPPORT
+     if (scp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(scp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(inp) )
+             return CM_ERROR_PATH_NOT_COVERED;
+         else
+             return CM_ERROR_BADSHARENAME;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      code = cm_CheckOpen(scp, share & 0x7, 0, userp, &req);
      if (code) {
          cm_ReleaseSCache(scp);
***************
*** 4376,4389 ****
          cm_ReleaseUser(userp);
          return CM_ERROR_NOSUCHPATH;
      }
!     code = cm_NameI(cm_rootSCachep, spacep->data, caseFold, userp, tidPathp,
                      &req, &dscp);
- 
      if (code) {
          cm_ReleaseUser(userp);
          return code;
      }
          
      /* otherwise, scp points to the parent directory. */
      if (!lastNamep) 
          lastNamep = pathp;
--- 4508,4531 ----
          cm_ReleaseUser(userp);
          return CM_ERROR_NOSUCHPATH;
      }
!     code = cm_NameI(cm_data.rootSCachep, spacep->data, caseFold, userp, tidPathp,
                      &req, &dscp);
      if (code) {
          cm_ReleaseUser(userp);
          return code;
      }
          
+ #ifdef DFS_SUPPORT
+     if (dscp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(dscp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(inp) )
+             return CM_ERROR_PATH_NOT_COVERED;
+         else
+             return CM_ERROR_BADSHARENAME;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      /* otherwise, scp points to the parent directory. */
      if (!lastNamep) 
          lastNamep = pathp;
***************
*** 4519,4534 ****
       *	caseFold = CM_FLAG_CASEFOLD;
       */
      caseFold = CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD;
!     code = cm_NameI(cm_rootSCachep, spacep->data, caseFold,
                      userp, tidPathp, &req, &oldDscp);
- 
      if (code) {
          cm_ReleaseUser(userp);
          return code;
      }
          
      smb_StripLastComponent(spacep->data, &newLastNamep, newPathp);
!     code = cm_NameI(cm_rootSCachep, spacep->data, caseFold,
                      userp, tidPathp, &req, &newDscp);
  
      if (code) {
--- 4661,4686 ----
       *	caseFold = CM_FLAG_CASEFOLD;
       */
      caseFold = CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD;
!     code = cm_NameI(cm_data.rootSCachep, spacep->data, caseFold,
                      userp, tidPathp, &req, &oldDscp);
      if (code) {
          cm_ReleaseUser(userp);
          return code;
      }
          
+ #ifdef DFS_SUPPORT
+     if (oldDscp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(oldDscp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(inp) )
+             return CM_ERROR_PATH_NOT_COVERED;
+         else
+             return CM_ERROR_BADSHARENAME;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      smb_StripLastComponent(spacep->data, &newLastNamep, newPathp);
!     code = cm_NameI(cm_data.rootSCachep, spacep->data, caseFold,
                      userp, tidPathp, &req, &newDscp);
  
      if (code) {
***************
*** 4536,4542 ****
          cm_ReleaseUser(userp);
          return code;
      }
!         
      /* otherwise, oldDscp and newDscp point to the corresponding directories.
       * next, get the component names, and lower case them.
       */
--- 4688,4707 ----
          cm_ReleaseUser(userp);
          return code;
      }
! 
! #ifdef DFS_SUPPORT
!     if (newDscp->fileType == CM_SCACHETYPE_DFSLINK) {
!         cm_ReleaseSCache(oldDscp);
!         cm_ReleaseSCache(newDscp);
!         cm_ReleaseUser(userp);
!         if ( WANTS_DFS_PATHNAMES(inp) )
!             return CM_ERROR_PATH_NOT_COVERED;
!         else
!             return CM_ERROR_BADSHARENAME;
!     }
! #endif /* DFS_SUPPORT */
! 
! 
      /* otherwise, oldDscp and newDscp point to the corresponding directories.
       * next, get the component names, and lower case them.
       */
***************
*** 4676,4690 ****
      spacep = inp->spacep;
      smb_StripLastComponent(spacep->data, &oldLastNamep, oldPathp);
      
!     code = cm_NameI(cm_rootSCachep, spacep->data, caseFold,
                      userp, tidPathp, &req, &oldDscp);
      if (code) {
          cm_ReleaseUser(userp);
          return code;
      }
          
      smb_StripLastComponent(spacep->data, &newLastNamep, newPathp);
!     code = cm_NameI(cm_rootSCachep, spacep->data, caseFold,
                      userp, tidPathp, &req, &newDscp);
      if (code) {
          cm_ReleaseSCache(oldDscp);
--- 4841,4866 ----
      spacep = inp->spacep;
      smb_StripLastComponent(spacep->data, &oldLastNamep, oldPathp);
      
!     code = cm_NameI(cm_data.rootSCachep, spacep->data, caseFold,
                      userp, tidPathp, &req, &oldDscp);
      if (code) {
          cm_ReleaseUser(userp);
          return code;
      }
          
+ #ifdef DFS_SUPPORT
+     if (oldDscp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(oldDscp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(inp) )
+             return CM_ERROR_PATH_NOT_COVERED;
+         else
+             return CM_ERROR_BADSHARENAME;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      smb_StripLastComponent(spacep->data, &newLastNamep, newPathp);
!     code = cm_NameI(cm_data.rootSCachep, spacep->data, caseFold,
                      userp, tidPathp, &req, &newDscp);
      if (code) {
          cm_ReleaseSCache(oldDscp);
***************
*** 4692,4697 ****
--- 4868,4885 ----
          return code;
      }
  
+ #ifdef DFS_SUPPORT
+     if (newDscp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(newDscp);
+         cm_ReleaseSCache(oldDscp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(inp) )
+             return CM_ERROR_PATH_NOT_COVERED;
+         else
+             return CM_ERROR_BADSHARENAME;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      /* Now, although we did two lookups for the two directories (because the same
       * directory can be referenced through different paths), we only allow hard links
       * within the same directory. */
***************
*** 4877,4883 ****
          cm_ReleaseUser(userp);
          return CM_ERROR_NOSUCHPATH;
      }
!     code = cm_NameI(cm_rootSCachep, spacep->data, caseFold | CM_FLAG_FOLLOW,
                      userp, tidPathp, &req, &dscp);
  
      if (code) {
--- 5065,5071 ----
          cm_ReleaseUser(userp);
          return CM_ERROR_NOSUCHPATH;
      }
!     code = cm_NameI(cm_data.rootSCachep, spacep->data, caseFold | CM_FLAG_FOLLOW,
                      userp, tidPathp, &req, &dscp);
  
      if (code) {
***************
*** 4885,4890 ****
--- 5073,5089 ----
          return code;
      }
          
+ #ifdef DFS_SUPPORT
+     if (dscp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(dscp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(inp) )
+             return CM_ERROR_PATH_NOT_COVERED;
+         else
+             return CM_ERROR_BADSHARENAME;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      /* otherwise, scp points to the parent directory. */
      if (!lastNamep) 
          lastNamep = pathp;
***************
*** 5170,5176 ****
  
          /* otherwise, load up a buffer of data */
          thyper.HighPart = offset.HighPart;
!         thyper.LowPart = offset.LowPart & ~(buf_bufferSize-1);
          if (!bufferp || !LargeIntegerEqualTo(thyper, bufferOffset)) {
              /* wrong buffer */
              if (bufferp) {
--- 5369,5375 ----
  
          /* otherwise, load up a buffer of data */
          thyper.HighPart = offset.HighPart;
!         thyper.LowPart = offset.LowPart & ~(cm_data.buf_blockSize-1);
          if (!bufferp || !LargeIntegerEqualTo(thyper, bufferOffset)) {
              /* wrong buffer */
              if (bufferp) {
***************
*** 5210,5219 ****
          /* now we have the right buffer loaded.  Copy out the
           * data from here to the user's buffer.
           */
!         bufIndex = offset.LowPart & (buf_bufferSize - 1);
  
          /* and figure out how many bytes we want from this buffer */
!         nbytes = buf_bufferSize - bufIndex;	/* what remains in buffer */
          if (nbytes > count) nbytes = count;	/* don't go past EOF */
  
          /* now copy the data */
--- 5409,5418 ----
          /* now we have the right buffer loaded.  Copy out the
           * data from here to the user's buffer.
           */
!         bufIndex = offset.LowPart & (cm_data.buf_blockSize - 1);
  
          /* and figure out how many bytes we want from this buffer */
!         nbytes = cm_data.buf_blockSize - bufIndex;	/* what remains in buffer */
          if (nbytes > count) nbytes = count;	/* don't go past EOF */
  
          /* now copy the data */
***************
*** 5353,5359 ****
  
          /* otherwise, load up a buffer of data */
          thyper.HighPart = offset.HighPart;
!         thyper.LowPart = offset.LowPart & ~(buf_bufferSize-1);
          if (!bufferp || !LargeIntegerEqualTo(thyper, bufferOffset)) {
              /* wrong buffer */
              if (bufferp) {
--- 5552,5558 ----
  
          /* otherwise, load up a buffer of data */
          thyper.HighPart = offset.HighPart;
!         thyper.LowPart = offset.LowPart & ~(cm_data.buf_blockSize-1);
          if (!bufferp || !LargeIntegerEqualTo(thyper, bufferOffset)) {
              /* wrong buffer */
              if (bufferp) {
***************
*** 5401,5414 ****
                   */
                  if (LargeIntegerGreaterThanOrEqualTo(bufferp->offset, minLength)
                       || LargeIntegerEqualTo(offset, bufferp->offset)
!                      && (count >= buf_bufferSize
                            || LargeIntegerGreaterThanOrEqualTo(LargeIntegerAdd(offset,
                                                                                 ConvertLongToLargeInteger(count)),
                                                                 minLength))) {
!                     if (count < buf_bufferSize
                           && bufferp->dataVersion == -1)
                          memset(bufferp->datap, 0,
!                                 buf_bufferSize);
                      bufferp->dataVersion = scp->dataVersion;
                  }
  
--- 5600,5613 ----
                   */
                  if (LargeIntegerGreaterThanOrEqualTo(bufferp->offset, minLength)
                       || LargeIntegerEqualTo(offset, bufferp->offset)
!                      && (count >= cm_data.buf_blockSize
                            || LargeIntegerGreaterThanOrEqualTo(LargeIntegerAdd(offset,
                                                                                 ConvertLongToLargeInteger(count)),
                                                                 minLength))) {
!                     if (count < cm_data.buf_blockSize
                           && bufferp->dataVersion == -1)
                          memset(bufferp->datap, 0,
!                                 cm_data.buf_blockSize);
                      bufferp->dataVersion = scp->dataVersion;
                  }
  
***************
*** 5434,5443 ****
          /* now we have the right buffer loaded.  Copy out the
           * data from here to the user's buffer.
           */
!         bufIndex = offset.LowPart & (buf_bufferSize - 1);
  
          /* and figure out how many bytes we want from this buffer */
!         nbytes = buf_bufferSize - bufIndex;	/* what remains in buffer */
          if (nbytes > count) 
              nbytes = count;	/* don't go past end of request */
  
--- 5633,5642 ----
          /* now we have the right buffer loaded.  Copy out the
           * data from here to the user's buffer.
           */
!         bufIndex = offset.LowPart & (cm_data.buf_blockSize - 1);
  
          /* and figure out how many bytes we want from this buffer */
!         nbytes = cm_data.buf_blockSize - bufIndex;	/* what remains in buffer */
          if (nbytes > count) 
              nbytes = count;	/* don't go past end of request */
  
***************
*** 5904,5910 ****
          return CM_ERROR_NOSUCHPATH;
      }
  
!     code = cm_NameI(cm_rootSCachep, spacep->data,
                      caseFold | CM_FLAG_FOLLOW | CM_FLAG_CHECKPATH,
                      userp, tidPathp, &req, &dscp);
  
--- 6103,6109 ----
          return CM_ERROR_NOSUCHPATH;
      }
  
!     code = cm_NameI(cm_data.rootSCachep, spacep->data,
                      caseFold | CM_FLAG_FOLLOW | CM_FLAG_CHECKPATH,
                      userp, tidPathp, &req, &dscp);
  
***************
*** 5913,5918 ****
--- 6112,6128 ----
          return code;
      }
          
+ #ifdef DFS_SUPPORT
+     if (dscp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(dscp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(inp) )
+             return CM_ERROR_PATH_NOT_COVERED;
+         else
+             return CM_ERROR_BADSHARENAME;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      /* otherwise, scp points to the parent directory.  Do a lookup, and
       * fail if we find it.  Otherwise, we do the create.
       */
***************
*** 6016,6022 ****
          cm_ReleaseUser(userp);
          return CM_ERROR_NOSUCHPATH;
      }
!     code = cm_NameI(cm_rootSCachep, spacep->data, caseFold | CM_FLAG_FOLLOW,
                      userp, tidPathp, &req, &dscp);
  
      if (code) {
--- 6226,6232 ----
          cm_ReleaseUser(userp);
          return CM_ERROR_NOSUCHPATH;
      }
!     code = cm_NameI(cm_data.rootSCachep, spacep->data, caseFold | CM_FLAG_FOLLOW,
                      userp, tidPathp, &req, &dscp);
  
      if (code) {
***************
*** 6024,6029 ****
--- 6234,6250 ----
          return code;
      }
          
+ #ifdef DFS_SUPPORT
+     if (dscp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(dscp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(inp) )
+             return CM_ERROR_PATH_NOT_COVERED;
+         else
+             return CM_ERROR_BADSHARENAME;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      /* otherwise, scp points to the parent directory.  Do a lookup, and
       * truncate the file if we find it, otherwise we create the file.
       */
***************
*** 6298,6304 ****
                                                   rwcp);
              else {
                  osi_LogEvent("AFS Dispatch %s",(myCrt_Dispatch(inp->inCom)),"vcp[%x] lana[%d] lsn[%d]",(int)vcp,vcp->lana,vcp->lsn);
!                 osi_Log4(smb_logp,"Dispatch %s vcp[%x] lana[%d] lsn[%d]",(myCrt_Dispatch(inp->inCom)),vcp,vcp->lana,vcp->lsn);
                  code = (*(dp->procp)) (vcp, inp, outp);
                  osi_LogEvent("AFS Dispatch return",NULL,"Code[%d]",(code==0)?0:code-CM_ERROR_BASE);
                  osi_Log1(smb_logp,"Dispatch return  code[%d]",(code==0)?0:code-CM_ERROR_BASE);
--- 6519,6525 ----
                                                   rwcp);
              else {
                  osi_LogEvent("AFS Dispatch %s",(myCrt_Dispatch(inp->inCom)),"vcp[%x] lana[%d] lsn[%d]",(int)vcp,vcp->lana,vcp->lsn);
!                 osi_Log4(smb_logp,"Dispatch %s vcp[%x] lana[%d] lsn[%d]",myCrt_Dispatch(inp->inCom),vcp,vcp->lana,vcp->lsn);
                  code = (*(dp->procp)) (vcp, inp, outp);
                  osi_LogEvent("AFS Dispatch return",NULL,"Code[%d]",(code==0)?0:code-CM_ERROR_BASE);
                  osi_Log1(smb_logp,"Dispatch return  code[%d]",(code==0)?0:code-CM_ERROR_BASE);
***************
*** 6403,6409 ****
                  smbp->reh = (unsigned char) ((NTStatus >> 8) & 0xff);
                  smbp->errLow = (unsigned char) ((NTStatus >> 16) & 0xff);
                  smbp->errHigh = (unsigned char) ((NTStatus >> 24) & 0xff);
!                 smbp->flg2 |= SMB_FLAGS2_ERR_STATUS;
                  break;
              }
              else {
--- 6624,6630 ----
                  smbp->reh = (unsigned char) ((NTStatus >> 8) & 0xff);
                  smbp->errLow = (unsigned char) ((NTStatus >> 16) & 0xff);
                  smbp->errHigh = (unsigned char) ((NTStatus >> 24) & 0xff);
!                 smbp->flg2 |= SMB_FLAGS2_32BIT_STATUS;
                  break;
              }
              else {
***************
*** 6482,6502 ****
      /* now send the output packet, and return */
      if (!noSend)
          smb_SendPacket(vcp, outp);
! 	thrd_Decrement(&ongoingOps);
  
! 	if (!(vcp->flags & SMB_VCFLAG_ALREADYDEAD)) {
!         if (active_vcp) {
!             smb_ReleaseVC(active_vcp);
!             osi_Log2(smb_logp,
                        "Replacing active_vcp %x with %x", active_vcp, vcp);
!         }
!         smb_HoldVC(vcp);
              active_vcp = vcp;
!             last_msg_time = GetCurrentTime();
! 	}       
! 	else if (active_vcp == vcp) {
!             smb_ReleaseVC(active_vcp);
!             active_vcp = NULL;
      }
  
      return;
--- 6703,6724 ----
      /* now send the output packet, and return */
      if (!noSend)
          smb_SendPacket(vcp, outp);
!     thrd_Decrement(&ongoingOps);
  
!     if (!(vcp->flags & SMB_VCFLAG_ALREADYDEAD)) {
!         if (active_vcp != vcp) {
!             if (active_vcp) {
!                 smb_ReleaseVC(active_vcp);
!                 osi_Log2(smb_logp,
                        "Replacing active_vcp %x with %x", active_vcp, vcp);
!             }
!             smb_HoldVC(vcp);
              active_vcp = vcp;
!         }
!         last_msg_time = GetCurrentTime();
!     } else if (active_vcp == vcp) {
!         smb_ReleaseVC(active_vcp);
!         active_vcp = NULL;
      }
  
      return;
***************
*** 6513,6527 ****
      DWORD code;
      int   idx;
  
!     while (1) {
          code = thrd_WaitForMultipleObjects_Event(numNCBs, NCBevents,
                                                   FALSE, INFINITE);
!         if (code == WAIT_OBJECT_0) {
!             if (smbShutdownFlag == 1)
!                 break;
!             else
!                 continue;
!         }
  
          /* error checking */
          if (code >= WAIT_ABANDONED_0 && code < (WAIT_ABANDONED_0 + numNCBs))
--- 6735,6745 ----
      DWORD code;
      int   idx;
  
!     while (smbShutdownFlag == 0) {
          code = thrd_WaitForMultipleObjects_Event(numNCBs, NCBevents,
                                                   FALSE, INFINITE);
!         if (code == WAIT_OBJECT_0)
!             continue;
  
          /* error checking */
          if (code >= WAIT_ABANDONED_0 && code < (WAIT_ABANDONED_0 + numNCBs))
***************
*** 6575,6590 ****
      dos_ptr dos_ncb;
  #endif /* DJGPP */
  
!     while (1) {
          /* Get a session */
          code = thrd_WaitForMultipleObjects_Event(numSessions, SessionEvents,
                                                   FALSE, INFINITE);
!         if (code == WAIT_OBJECT_0) {
!             if ( smbShutdownFlag == 1 )
!                 break;
!             else
!                 continue;
!         }
  
          if (code >= WAIT_ABANDONED_0 && code < (WAIT_ABANDONED_0 + numSessions))
          {
--- 6793,6804 ----
      dos_ptr dos_ncb;
  #endif /* DJGPP */
  
!     while (smbShutdownFlag == 0) {
          /* Get a session */
          code = thrd_WaitForMultipleObjects_Event(numSessions, SessionEvents,
                                                   FALSE, INFINITE);
!         if (code == WAIT_OBJECT_0)
!             continue;
  
          if (code >= WAIT_ABANDONED_0 && code < (WAIT_ABANDONED_0 + numSessions))
          {
***************
*** 6623,6629 ****
          code = thrd_WaitForMultipleObjects_Event(numNCBs, NCBavails,
                                                   FALSE, INFINITE);
          if (code == WAIT_OBJECT_0) {
!             if ( smbShutdownFlag == 1 ) 
                  break;
              else
                  goto NCBretry;
--- 6837,6843 ----
          code = thrd_WaitForMultipleObjects_Event(numNCBs, NCBavails,
                                                   FALSE, INFINITE);
          if (code == WAIT_OBJECT_0) {
!             if (smbShutdownFlag == 1) 
                  break;
              else
                  goto NCBretry;
***************
*** 6769,6779 ****
          idx_session = NCBsessions[idx_NCB];
          rc = ncbp->ncb_retcode;
  
!         if (rc != NRC_PENDING && rc != NRC_GOODRET)
!             osi_Log1(smb_logp, "NCBRECV failure code %d", rc);
  
          switch (rc) {
!         case NRC_GOODRET: break;
  
          case NRC_PENDING:
              /* Can this happen? Or is it just my
--- 6983,7110 ----
          idx_session = NCBsessions[idx_NCB];
          rc = ncbp->ncb_retcode;
  
!         if (rc != NRC_PENDING && rc != NRC_GOODRET) {
!             switch (rc) {
!             case 0x01:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: illegal buffer length", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x03:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: illegal command", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x05:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: command timed out", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x06:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: message incomplete, issue another command", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x07:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: illegal buffer address", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x08:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: lsn %d session number out of range", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x09:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: no resource available", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x0a:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: lsn %d session closed", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x0b:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: command cancelled", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x0d:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: duplicate name", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x0e:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: name table full", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x0f:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: no deletions, name has active lsn %d sessions", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x11:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: local lsn %d session table full", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x12:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: remote lsn %d session table full", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x13:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: illegal name number", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x14:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: no callname", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x15:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: cannot put * in NCB_NAME", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x16:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: name in use on remote adapter", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x17:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: name deleted", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x18:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: lsn %d session ended abnormally", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x19:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: name conflict detected", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x21:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: interface busy, IRET before retrying", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x22:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: too many commands outstanding, retry later", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x23:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: ncb_lana_num field invalid", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x24:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: command completed while cancel occurring", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x26:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: command not valid to cancel", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x30:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: name defined by anther local process", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x34:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: environment undefined. RESET required", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x35:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: required OS resources exhausted", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x36:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: max number of applications exceeded", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x37:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: no saps available for netbios", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x38:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: requested resources are not available", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x39:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: invalid ncb address or length > segment", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x3B:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: invalid NCB DDID", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x3C:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: lock of user area failed", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x3f:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: NETBIOS not loaded", ncbp->ncb_lsn, idx_session);
!                 break;
!             case 0x40:
!                 osi_Log2(smb_logp, "NCBRECV failure lsn %d session %d: system error", ncbp->ncb_lsn, idx_session);
!                 break;
!             default:
!                 osi_Log3(smb_logp, "NCBRECV failure lsn %d session %d code %d", ncbp->ncb_lsn, idx_session, rc);
!                 break;
!             }
!         }
  
          switch (rc) {
!         case NRC_GOODRET: 
!             break;
  
          case NRC_PENDING:
              /* Can this happen? Or is it just my
***************
*** 6784,6793 ****
          case NRC_SCLOSED:
          case NRC_SNUMOUT:
              /* Client closed session */
-             if (reportSessionStartups) 
-             {
-                 osi_Log1(smb_logp, "session [ %d ] closed", idx_session);
-             }
              dead_sessions[idx_session] = TRUE;
              if (vcp)
                  smb_ReleaseVC(vcp);
--- 7115,7120 ----
***************
*** 6804,6810 ****
                      osi_Log1(smb_logp,
                               "dead_vcp already set, %x",
                               dead_vcp);
!                 if (!dead_vcp && !(vcp->flags & SMB_VCFLAG_ALREADYDEAD)) {
                      osi_Log2(smb_logp,
                               "setting dead_vcp %x, user struct %x",
                               vcp, vcp->usersp);
--- 7131,7137 ----
                      osi_Log1(smb_logp,
                               "dead_vcp already set, %x",
                               dead_vcp);
!                 else if (!(vcp->flags & SMB_VCFLAG_ALREADYDEAD)) {
                      osi_Log2(smb_logp,
                               "setting dead_vcp %x, user struct %x",
                               vcp, vcp->usersp);
***************
*** 7001,7007 ****
  
          smb_concurrentCalls--;
  
! doneWithNCB:
          thrd_SetEvent(NCBavails[idx_NCB]);
      }
      if (vcp)
--- 7328,7334 ----
  
          smb_concurrentCalls--;
  
!       doneWithNCB:
          thrd_SetEvent(NCBavails[idx_NCB]);
      }
      if (vcp)
***************
*** 7081,7087 ****
      long code = 0;
      long len;
      long i, j;
!     smb_vc_t *vcp;
      int flags = 0;
      char rname[NCBNAMSZ+1];
      char cname[MAX_COMPUTERNAME_LENGTH+1];
--- 7408,7414 ----
      long code = 0;
      long len;
      long i, j;
!     smb_vc_t *vcp = 0;
      int flags = 0;
      char rname[NCBNAMSZ+1];
      char cname[MAX_COMPUTERNAME_LENGTH+1];
***************
*** 7224,7229 ****
--- 7551,7557 ----
          vcp = smb_FindVC(ncbp->ncb_lsn, SMB_FLAG_CREATE, ncbp->ncb_lana_num);
          vcp->flags |= flags;
          strcpy(vcp->rname, rname);
+         smb_ReleaseVC(vcp);
  
          /* Allocate slot in session arrays */
          /* Re-use dead session if possible, otherwise add one more */
***************
*** 7290,7299 ****
      int lana_found = 0;
      OSVERSIONINFO Version;
  
-     /* AFAIK, this is the default for the ms loopback adapter.*/
-     unsigned char kWLA_MAC[6] = { 0x02, 0x00, 0x4c, 0x4f, 0x4f, 0x50 };
-     /*******************************************************************/
- 
      /* Get the version of Windows */
      memset(&Version, 0x00, sizeof(Version));
      Version.dwOSVersionInfoSize = sizeof(Version);
--- 7618,7623 ----
***************
*** 7312,7319 ****
          ncbp->ncb_length = sizeof(lana_list);
          code = Netbios(ncbp);
          if (code != 0) {
!             sprintf(s, "Netbios NCBENUM error code %d", code);
!             osi_Log0(smb_logp, osi_LogSaveString(smb_logp, s));
              osi_panic(s, __FILE__, __LINE__);
          }
      }
--- 7636,7642 ----
          ncbp->ncb_length = sizeof(lana_list);
          code = Netbios(ncbp);
          if (code != 0) {
!             osi_Log1(smb_logp, "Netbios NCBENUM error code %d", code);
              osi_panic(s, __FILE__, __LINE__);
          }
      }
***************
*** 7334,7345 ****
          if (code == 0) 
              code = ncbp->ncb_retcode;
          if (code != 0) {
!             sprintf(s, "Netbios NCBRESET lana %d error code %d", lana_list.lana[i], code);
!             osi_Log0(smb_logp, osi_LogSaveString(smb_logp, s));
              lana_list.lana[i] = 255;  /* invalid lana */
          } else {
!             sprintf(s, "Netbios NCBRESET lana %d succeeded", lana_list.lana[i]);
!             osi_Log0(smb_logp, osi_LogSaveString(smb_logp, s));
          }
      }
  #else
--- 7657,7666 ----
          if (code == 0) 
              code = ncbp->ncb_retcode;
          if (code != 0) {
!             osi_Log2(smb_logp, "Netbios NCBRESET lana %d error code %d", lana_list.lana[i], code);
              lana_list.lana[i] = 255;  /* invalid lana */
          } else {
!             osi_Log1(smb_logp, "Netbios NCBRESET lana %d succeeded", lana_list.lana[i]);
          }
      }
  #else
***************
*** 7361,7368 ****
      len=lstrlen(smb_localNamep);
      memset(smb_sharename,' ',NCBNAMSZ);
      memcpy(smb_sharename,smb_localNamep,len);
!     sprintf(s, "lana_list.length %d", lana_list.length);
!     osi_Log0(smb_logp, osi_LogSaveString(smb_logp, s));
  
      /* Keep the name so we can unregister it later */
      for (l = 0; l < lana_list.length; l++) {
--- 7682,7688 ----
      len=lstrlen(smb_localNamep);
      memset(smb_sharename,' ',NCBNAMSZ);
      memcpy(smb_sharename,smb_localNamep,len);
!     osi_Log1(smb_logp, "lana_list.length %d", lana_list.length);
  
      /* Keep the name so we can unregister it later */
      for (l = 0; l < lana_list.length; l++) {
***************
*** 7396,7403 ****
  #endif	  
          }
          else {
!             sprintf(s, "Netbios NCBADDNAME lana %d error code %d", lana, code);
!             osi_Log0(smb_logp, osi_LogSaveString(smb_logp, s));
              if (code == NRC_BRIDGE) {    /* invalid LANA num */
                  lana_list.lana[l] = 255;
                  continue;
--- 7716,7722 ----
  #endif	  
          }
          else {
!             osi_Log2(smb_logp, "Netbios NCBADDNAME lana %d error code %d", lana, code);
              if (code == NRC_BRIDGE) {    /* invalid LANA num */
                  lana_list.lana[l] = 255;
                  continue;
***************
*** 7416,7423 ****
                  if (code == 0) 
                      code = ncbp->ncb_retcode;
                  else {
!                     sprintf(s, "Netbios NCBDELNAME lana %d error code %d\n", lana, code);
!                     osi_Log0(smb_logp, s);
                  }
                  if (code != 0 || delname_tried) {
                      lana_list.lana[l] = 255;
--- 7735,7741 ----
                  if (code == 0) 
                      code = ncbp->ncb_retcode;
                  else {
!                     osi_Log2(smb_logp, "Netbios NCBDELNAME lana %d error code %d\n", lana, code);
                  }
                  if (code != 0 || delname_tried) {
                      lana_list.lana[l] = 255;
***************
*** 7431,7438 ****
                  }
              }
              else {
!                 sprintf(s, "Netbios NCBADDNAME lana %d error code %d", lana, code);
!                 osi_Log0(smb_logp, osi_LogSaveString(smb_logp, s));
                  lana_list.lana[l] = 255;  /* invalid lana */
                  osi_panic(s, __FILE__, __LINE__);
              }
--- 7749,7755 ----
                  }
              }
              else {
!                 osi_Log2(smb_logp, "Netbios NCBADDNAME lana %d error code %d", lana, code);
                  lana_list.lana[l] = 255;  /* invalid lana */
                  osi_panic(s, __FILE__, __LINE__);
              }
***************
*** 7447,7454 ****
  
      osi_assert(lana_list.length >= 0);
      if (!lana_found) {
!         sprintf(s, "No valid LANA numbers found!");
!         osi_panic(s, __FILE__, __LINE__);
      }
          
      /* we're done with the NCB now */
--- 7764,7770 ----
  
      osi_assert(lana_list.length >= 0);
      if (!lana_found) {
!         osi_panic("No valid LANA numbers found!", __FILE__, __LINE__);
      }
          
      /* we're done with the NCB now */
***************
*** 7584,7590 ****
      NCBevents[0] = thrd_CreateEvent(NULL, FALSE, FALSE, eventName);
      if ( GetLastError() == ERROR_ALREADY_EXISTS )
          afsi_log("Event Object Already Exists: %s", eventName);
!     NCBreturns = malloc(nThreads * sizeof(EVENT_HANDLE *));
      sprintf(eventName, "NCBreturns[0<=i<smb_NumServerThreads][0]");
      retHandle = thrd_CreateEvent(NULL, FALSE, FALSE, eventName);
      if ( GetLastError() == ERROR_ALREADY_EXISTS )
--- 7900,7906 ----
      NCBevents[0] = thrd_CreateEvent(NULL, FALSE, FALSE, eventName);
      if ( GetLastError() == ERROR_ALREADY_EXISTS )
          afsi_log("Event Object Already Exists: %s", eventName);
!     NCBreturns = malloc(smb_NumServerThreads * sizeof(EVENT_HANDLE *));
      sprintf(eventName, "NCBreturns[0<=i<smb_NumServerThreads][0]");
      retHandle = thrd_CreateEvent(NULL, FALSE, FALSE, eventName);
      if ( GetLastError() == ERROR_ALREADY_EXISTS )
***************
*** 7600,7610 ****
          smb_ServerShutdown[i] = thrd_CreateEvent(NULL, FALSE, FALSE, eventName);
          if ( GetLastError() == ERROR_ALREADY_EXISTS )
              afsi_log("Event Object Already Exists: %s", eventName);
      }
! 
!     for (i = 1; i <= nThreads; i++)
!         InitNCBslot(i);
!     numNCBs = nThreads + 1;
  
      /* Initialize dispatch table */
      memset(&smb_dispatchTable, 0, sizeof(smb_dispatchTable));
--- 7916,7924 ----
          smb_ServerShutdown[i] = thrd_CreateEvent(NULL, FALSE, FALSE, eventName);
          if ( GetLastError() == ERROR_ALREADY_EXISTS )
              afsi_log("Event Object Already Exists: %s", eventName);
+         InitNCBslot(i+1);
      }
!     numNCBs = smb_NumServerThreads + 1;
  
      /* Initialize dispatch table */
      memset(&smb_dispatchTable, 0, sizeof(smb_dispatchTable));
***************
*** 7716,7722 ****
  
      /* if we are doing SMB authentication we have register outselves as a logon process */
      if (smb_authType != SMB_AUTH_NONE) {
!         NTSTATUS nts;
          LSA_STRING afsProcessName;
          LSA_OPERATIONAL_MODE dummy; /*junk*/
  
--- 8030,8036 ----
  
      /* if we are doing SMB authentication we have register outselves as a logon process */
      if (smb_authType != SMB_AUTH_NONE) {
!         NTSTATUS nts = STATUS_UNSUCCESSFUL, ntsEx = STATUS_UNSUCCESSFUL;
          LSA_STRING afsProcessName;
          LSA_OPERATIONAL_MODE dummy; /*junk*/
  
***************
*** 7734,7739 ****
--- 8048,8090 ----
              packageName.MaximumLength = packageName.Length + 1;
              nts = LsaLookupAuthenticationPackage(smb_lsaHandle, &packageName , &smb_lsaSecPackage);
              if (nts == STATUS_SUCCESS) {
+                 /* BEGIN 
+                  * This code forces Windows to authenticate against the Logon Cache 
+                  * first instead of attempting to authenticate against the Domain 
+                  * Controller.  When the Windows logon cache is enabled this improves
+                  * performance by removing the network access and works around a bug
+                  * seen at sites which are using a MIT Kerberos principal to login
+                  * to machines joined to a non-root domain in a multi-domain forest.
+                  */
+                 PVOID pResponse = NULL;
+                 ULONG cbResponse = 0;
+                 MSV1_0_SETPROCESSOPTION_REQUEST OptionsRequest;
+ 
+                 RtlZeroMemory(&OptionsRequest, sizeof(OptionsRequest));
+                 OptionsRequest.MessageType = (MSV1_0_PROTOCOL_MESSAGE_TYPE) MsV1_0SetProcessOption;
+                 OptionsRequest.ProcessOptions = MSV1_0_OPTION_TRY_CACHE_FIRST; 
+                 OptionsRequest.DisableOptions = FALSE;
+ 
+                 nts = LsaCallAuthenticationPackage( smb_lsaHandle,
+                                                     smb_lsaSecPackage,
+                                                     &OptionsRequest,
+                                                     sizeof(OptionsRequest),
+                                                     &pResponse,
+                                                     &cbResponse,
+                                                     &ntsEx
+                                                     );
+ 
+                 if (nts != STATUS_SUCCESS && ntsEx != STATUS_SUCCESS) {
+                     osi_Log2(smb_logp,"MsV1_0SetProcessOption failure: nts 0x%x ntsEx 0x%x",
+                               nts, ntsEx);
+                     OutputDebugString("MsV1_0SetProcessOption failure: nts 0x%x ntsEx 0x%x",
+                                        nts, ntsEx);
+                 } else {
+                     osi_Log0(smb_logp,"MsV1_0SetProcessOption success");
+                     OutputDebugString("MsV1_0SetProcessOption success");
+                 }
+                 /* END - code from Larry */
+ 
                  smb_lsaLogonOrigin.Buffer = "OpenAFS";
                  smb_lsaLogonOrigin.Length = strlen(smb_lsaLogonOrigin.Buffer);
                  smb_lsaLogonOrigin.MaximumLength = smb_lsaLogonOrigin.Length + 1;
***************
*** 7789,7795 ****
      /* Start listeners, waiters, servers, and daemons */
  
      for (i = 0; i < lana_list.length; i++) {
!         if (lana_list.lana[i] == 255) continue;
          phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_Listener,
                                 (void*)lana_list.lana[i], 0, &lpid, "smb_Listener");
          osi_assert(phandle != NULL);
--- 8140,8147 ----
      /* Start listeners, waiters, servers, and daemons */
  
      for (i = 0; i < lana_list.length; i++) {
!         if (lana_list.lana[i] == 255) 
!             continue;
          phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_Listener,
                                 (void*)lana_list.lana[i], 0, &lpid, "smb_Listener");
          osi_assert(phandle != NULL);
***************
*** 7808,7814 ****
      osi_assert(phandle != NULL);
      thrd_CloseHandle(phandle);
  
!     for (i=0; i<nThreads; i++) {
          phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_Server,
                                (void *) i, 0, &lpid, "smb_Server");
          osi_assert(phandle != NULL);
--- 8160,8166 ----
      osi_assert(phandle != NULL);
      thrd_CloseHandle(phandle);
  
!     for (i=0; i<smb_NumServerThreads; i++) {
          phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_Server,
                                (void *) i, 0, &lpid, "smb_Server");
          osi_assert(phandle != NULL);
***************
*** 7840,7845 ****
--- 8192,8198 ----
  #endif
      long code = 0;
      int i;
+     smb_vc_t *vcp;
  
      /*fprintf(stderr, "Entering smb_Shutdown\n");*/
          
***************
*** 7876,7881 ****
--- 8229,8252 ----
          }
      }
  
+     /* Trigger the shutdown of all SMB threads */                                
+     for (i = 0; i < smb_NumServerThreads; i++)                                   
+         thrd_SetEvent(NCBreturns[i][0]);                                         
+                                                                                  
+     thrd_SetEvent(NCBevents[0]);                                                 
+     thrd_SetEvent(SessionEvents[0]);                                             
+     thrd_SetEvent(NCBavails[0]);                                                 
+                                                                                  
+     for (i = 0;i < smb_NumServerThreads; i++) {                                  
+         DWORD code = thrd_WaitForSingleObject_Event(smb_ServerShutdown[i], 500); 
+         if (code == WAIT_OBJECT_0) {                                             
+             continue;                                                            
+         } else {                                                                 
+             afsi_log("smb_Shutdown thread [%d] did not stop; retry ...",i);      
+             thrd_SetEvent(NCBreturns[i--][0]);                                   
+         }                                                                        
+     }                                                                            
+ 
      /* Delete Netbios name */
      memset((char *)ncbp, 0, sizeof(NCB));
      for (i = 0; i < lana_list.length; i++) {
***************
*** 7897,7918 ****
          fflush(stderr);
      }
  
!     /* Trigger the shutdown of all SMB threads */
!     for (i = 0; i < smb_NumServerThreads; i++)
!         thrd_SetEvent(NCBreturns[i][0]);
! 
!     thrd_SetEvent(NCBevents[0]);
!     thrd_SetEvent(SessionEvents[0]);
!     thrd_SetEvent(NCBavails[0]);
  
!     for (i = 0;i < smb_NumServerThreads; i++) {
!         DWORD code = thrd_WaitForSingleObject_Event(smb_ServerShutdown[i], INFINITE);
!         if (code == WAIT_OBJECT_0) {
!             continue;
!         } else {
!             afsi_log("smb_Shutdown[%d] wait error",i);
          }
      }
  }
  
  /* Get the UNC \\<servername>\<sharename> prefix. */
--- 8268,8308 ----
          fflush(stderr);
      }
  
!     /* Release the reference counts held by the VCs */
!     lock_ObtainWrite(&smb_rctLock);
!     for (vcp = smb_allVCsp; vcp; vcp=vcp->nextp) 
!     {
!         smb_fid_t *fidp;
!         smb_tid_t *tidp;
!      
!         for (fidp = vcp->fidsp; fidp; fidp = (smb_fid_t *) osi_QNext(&fidp->q))
!         {
!             if (fidp->scp != NULL) {
!                 cm_scache_t * scp;
  
!                 lock_ObtainMutex(&fidp->mx);
!                 if (fidp->scp != NULL) {
!                     scp = fidp->scp;
!                     fidp->scp = NULL;
!                     cm_ReleaseSCache(scp);
!                 }
!                 lock_ReleaseMutex(&fidp->mx);
!             }
!         }
! 
!         for (tidp = vcp->tidsp; tidp; tidp = tidp->nextp) {
!             if (tidp->vcp)
!                 smb_ReleaseVCNoLock(tidp->vcp);
!             if (tidp->userp) {
!                 cm_user_t *userp = tidp->userp;
!                 tidp->userp = NULL;
!                 lock_ReleaseWrite(&smb_rctLock);
!                 cm_ReleaseUser(userp);
!                 lock_ObtainWrite(&smb_rctLock);
!             }
          }
      }
+     lock_ReleaseWrite(&smb_rctLock);
  }
  
  /* Get the UNC \\<servername>\<sharename> prefix. */
***************
*** 7996,8014 ****
  #endif /* LOG_PACKET */
  
  
! int smb_DumpVCP(FILE *outputFile, char *cookie)
  {
      int zilch;
      char output[1024];
    
      smb_vc_t *vcp;
    
!     lock_ObtainRead(&smb_rctLock);
    
!     sprintf(output, "begin dumping vcpsp\n");
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
  
!     for(vcp = smb_allVCsp; vcp; vcp=vcp->nextp) 
      {
          smb_fid_t *fidp;
        
--- 8386,8405 ----
  #endif /* LOG_PACKET */
  
  
! int smb_DumpVCP(FILE *outputFile, char *cookie, int lock)
  {
      int zilch;
      char output[1024];
    
      smb_vc_t *vcp;
    
!     if (lock)
!         lock_ObtainRead(&smb_rctLock);
    
!     sprintf(output, "begin dumping smb_vc_t\n");
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
  
!     for (vcp = smb_allVCsp; vcp; vcp=vcp->nextp) 
      {
          smb_fid_t *fidp;
        
***************
*** 8016,8040 ****
                   cookie, vcp, vcp->refCount, vcp->flags, vcp->vcID, vcp->lsn, vcp->uidCounter, vcp->tidCounter, vcp->fidCounter);
          WriteFile(outputFile, output, strlen(output), &zilch, NULL);
        
!         sprintf(output, "begin dumping fidsp\n");
          WriteFile(outputFile, output, strlen(output), &zilch, NULL);
  
          for (fidp = vcp->fidsp; fidp; fidp = (smb_fid_t *) osi_QNext(&fidp->q))
          {
!             sprintf(output, "%s -- fidp=0x%08X, refCount=%d, fid=%d, vcp=0x%08X, scp=0x%08X, ioctlp=0x%08X, NTopen_pathp=%s, NTopen_wholepathp=%s\n", 
                       cookie, fidp, fidp->refCount, fidp->fid, fidp->vcp, fidp->scp, fidp->ioctlp, 
                       fidp->NTopen_pathp ? fidp->NTopen_pathp : "NULL", 
                       fidp->NTopen_wholepathp ? fidp->NTopen_wholepathp : "NULL");
              WriteFile(outputFile, output, strlen(output), &zilch, NULL);
          }
        
!         sprintf(output, "done dumping fidsp\n");
          WriteFile(outputFile, output, strlen(output), &zilch, NULL);
      }
  
!     sprintf(output, "done dumping vcpsp\n");
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
    
!     lock_ReleaseRead(&smb_rctLock);
      return 0;
  }
--- 8407,8432 ----
                   cookie, vcp, vcp->refCount, vcp->flags, vcp->vcID, vcp->lsn, vcp->uidCounter, vcp->tidCounter, vcp->fidCounter);
          WriteFile(outputFile, output, strlen(output), &zilch, NULL);
        
!         sprintf(output, "begin dumping smb_fid_t\n");
          WriteFile(outputFile, output, strlen(output), &zilch, NULL);
  
          for (fidp = vcp->fidsp; fidp; fidp = (smb_fid_t *) osi_QNext(&fidp->q))
          {
!             sprintf(output, "%s -- smb_fidp=0x%08X, refCount=%d, fid=%d, vcp=0x%08X, scp=0x%08X, ioctlp=0x%08X, NTopen_pathp=%s, NTopen_wholepathp=%s\n", 
                       cookie, fidp, fidp->refCount, fidp->fid, fidp->vcp, fidp->scp, fidp->ioctlp, 
                       fidp->NTopen_pathp ? fidp->NTopen_pathp : "NULL", 
                       fidp->NTopen_wholepathp ? fidp->NTopen_wholepathp : "NULL");
              WriteFile(outputFile, output, strlen(output), &zilch, NULL);
          }
        
!         sprintf(output, "done dumping smb_fid_t\n");
          WriteFile(outputFile, output, strlen(output), &zilch, NULL);
      }
  
!     sprintf(output, "done dumping smb_vc_t\n");
      WriteFile(outputFile, output, strlen(output), &zilch, NULL);
    
!     if (lock)
!         lock_ReleaseRead(&smb_rctLock);
      return 0;
  }
Index: openafs/src/WINNT/afsd/smb.h
diff -c openafs/src/WINNT/afsd/smb.h:1.14.2.8 openafs/src/WINNT/afsd/smb.h:1.14.2.10
*** openafs/src/WINNT/afsd/smb.h:1.14.2.8	Sun Jan 30 23:17:45 2005
--- openafs/src/WINNT/afsd/smb.h	Fri Mar 11 13:17:37 2005
***************
*** 35,40 ****
--- 35,50 ----
      unsigned char vdata[1];
  } smb_t;
  
+ 
+ /* reb values */
+ #define SMB_FLAGS_SUPPORT_LOCKREAD         0x01
+ #define SMB_FLAGS_CLIENT_BUF_AVAIL         0x02
+ #define SMB_FLAGS_CASELESS_PATHNAMES       0x08
+ #define SMB_FLAGS_CANONICAL_PATHNAMES      0x10
+ #define SMB_FLAGS_REQUEST_OPLOCK           0x20
+ #define SMB_FLAGS_REQUEST_BATCH_OPLOCK     0x40
+ #define SMB_FLAGS_SERVER_TO_CLIENT         0x80           
+ 
  /* flg2 values */
  
  #define SMB_FLAGS2_KNOWS_LONG_NAMES        0x0001
***************
*** 43,53 ****
  #define SMB_FLAGS2_RESERVED1               0x0008
  #define SMB_FLAGS2_IS_LONG_NAME            0x0040
  #define SMB_FLAGS2_EXT_SEC                 0x0800
! #define SMB_FLAGS2_DFS                     0x1000
  #define SMB_FLAGS2_PAGING_IO               0x2000
! #define SMB_FLAGS2_ERR_STATUS              0x4000
  #define SMB_FLAGS2_UNICODE                 0x8000
  
  /* Information Levels */
  #define SMB_INFO_STANDARD               1
  #define SMB_INFO_QUERY_EA_SIZE          2
--- 53,66 ----
  #define SMB_FLAGS2_RESERVED1               0x0008
  #define SMB_FLAGS2_IS_LONG_NAME            0x0040
  #define SMB_FLAGS2_EXT_SEC                 0x0800
! #define SMB_FLAGS2_DFS_PATHNAMES           0x1000
  #define SMB_FLAGS2_PAGING_IO               0x2000
! #define SMB_FLAGS2_32BIT_STATUS            0x4000
  #define SMB_FLAGS2_UNICODE                 0x8000
  
+ #define KNOWS_LONG_NAMES(inp) ((((smb_t *)inp)->flg2 & SMB_FLAGS2_KNOWS_LONG_NAMES)?1:0)
+ #define WANTS_DFS_PATHNAMES(inp) ((((smb_t *)inp)->flg2 & SMB_FLAGS2_DFS_PATHNAMES)?1:0)
+ 
  /* Information Levels */
  #define SMB_INFO_STANDARD               1
  #define SMB_INFO_QUERY_EA_SIZE          2
***************
*** 106,111 ****
--- 119,127 ----
  #define NTNEGOTIATE_CAPABILITY_NTFIND			0x00000200L
  #define NTNEGOTIATE_CAPABILITY_DFS			0x00001000L
  #define NTNEGOTIATE_CAPABILITY_NT_INFO_PASSTHRU		0x00002000L
+ #define NTNEGOTIATE_CAPABILITY_LARGE_READX		0x00004000L
+ #define NTNEGOTIATE_CAPABILITY_LARGE_WRITEX		0x00008000L
+ #define NTNEGOTIATE_CAPABILITY_UNIX     		0x00800000L
  #define NTNEGOTIATE_CAPABILITY_BULK_TRANSFER		0x20000000L
  #define NTNEGOTIATE_CAPABILITY_COMPRESSED		0x40000000L
  #define NTNEGOTIATE_CAPABILITY_EXTENDED_SECURITY	0x80000000L
***************
*** 342,348 ****
  #define SMB_ATTR_DEVICE         0x0040
  #define SMB_ATTR_NORMAL         0x0080 /* normal file. Only valid if used alone */
  #define SMB_ATTR_TEMPORARY      0x0100
! #define SMB_ATTR_SPARSE_FILE    0x0200
  #define SMB_ATTR_REPARSE_POINT  0x0400
  #define SMB_ATTR_COMPRESSED     0x0800 /* file or dir is compressed */
  #define SMB_ATTR_OFFLINE        0x1000
--- 358,364 ----
  #define SMB_ATTR_DEVICE         0x0040
  #define SMB_ATTR_NORMAL         0x0080 /* normal file. Only valid if used alone */
  #define SMB_ATTR_TEMPORARY      0x0100
! #define SMB_ATTR_SPARSE_FILE    0x0200 /* used with dfs links */
  #define SMB_ATTR_REPARSE_POINT  0x0400
  #define SMB_ATTR_COMPRESSED     0x0800 /* file or dir is compressed */
  #define SMB_ATTR_OFFLINE        0x1000
***************
*** 356,362 ****
      unsigned long refCount;		/* reference count */
      long cookie;			/* value returned to the caller */
      struct cm_scache *scp;		/* vnode of the dir we're searching */
!     time_t lastTime;		        /* last time we used this */
      long flags;			        /* flags (see below);
  					 * locked by smb_globalLock */
      unsigned short attribute;	        /* search attribute
--- 372,378 ----
      unsigned long refCount;		/* reference count */
      long cookie;			/* value returned to the caller */
      struct cm_scache *scp;		/* vnode of the dir we're searching */
!     unsigned long lastTime;		/* last time we used this (osi_Time) */
      long flags;			        /* flags (see below);
  					 * locked by smb_globalLock */
      unsigned short attribute;	        /* search attribute
***************
*** 626,629 ****
--- 642,659 ----
  #ifdef NOTSERVICE
  extern void smb_LogPacket(smb_packet_t *packet);
  #endif /* NOTSERVICE */
+ 
+ #ifndef MSV1_0_OPTION_ALLOW_BLANK_PASSWORD
+ #define MSV1_0_OPTION_ALLOW_BLANK_PASSWORD      0x1
+ #define MSV1_0_OPTION_DISABLE_ADMIN_LOCKOUT     0x2
+ #define MSV1_0_OPTION_DISABLE_FORCE_GUEST       0x4
+ #define MSV1_0_OPTION_TRY_CACHE_FIRST           0x10
+ 
+ typedef struct _MSV1_0_SETPROCESSOPTION_REQUEST {
+     MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType;
+     ULONG ProcessOptions;
+     BOOLEAN DisableOptions;
+ } MSV1_0_SETPROCESSOPTION_REQUEST, *PMSV1_0_SETPROCESSOPTION_REQUEST; 
+ #endif
+ 
  #endif /* whole file */
Index: openafs/src/WINNT/afsd/smb3.c
diff -c openafs/src/WINNT/afsd/smb3.c:1.42.2.20 openafs/src/WINNT/afsd/smb3.c:1.42.2.22
*** openafs/src/WINNT/afsd/smb3.c:1.42.2.20	Sun Feb 20 20:16:40 2005
--- openafs/src/WINNT/afsd/smb3.c	Fri Mar 11 13:17:37 2005
***************
*** 12,17 ****
--- 12,18 ----
  
  #ifndef DJGPP
  #include <windows.h>
+ #include <ntstatus.h>
  #define SECURITY_WIN32
  #include <security.h>
  #include <lmaccess.h>
***************
*** 24,29 ****
--- 25,31 ----
  #include <osi.h>
  
  #include "afsd.h"
+ #include <WINNT\afsreg.h>
  
  #include "smb.h"
  
***************
*** 71,82 ****
      unsigned long attrs;
  
      if (scp->fileType == CM_SCACHETYPE_DIRECTORY ||
!         scp->fileType == CM_SCACHETYPE_MOUNTPOINT) 
      {
          attrs = SMB_ATTR_DIRECTORY;
  #ifdef SPECIAL_FOLDERS
          attrs |= SMB_ATTR_SYSTEM;		/* FILE_ATTRIBUTE_SYSTEM */
  #endif /* SPECIAL_FOLDERS */
      } else
          attrs = 0;
      /*
--- 73,87 ----
      unsigned long attrs;
  
      if (scp->fileType == CM_SCACHETYPE_DIRECTORY ||
!         scp->fileType == CM_SCACHETYPE_MOUNTPOINT ||
!         scp->fileType == CM_SCACHETYPE_INVALID)
      {
          attrs = SMB_ATTR_DIRECTORY;
  #ifdef SPECIAL_FOLDERS
          attrs |= SMB_ATTR_SYSTEM;		/* FILE_ATTRIBUTE_SYSTEM */
  #endif /* SPECIAL_FOLDERS */
+     } else if (scp->fileType == CM_SCACHETYPE_DFSLINK) {
+         attrs = SMB_ATTR_DIRECTORY | SMB_ATTR_SPARSE_FILE;
      } else
          attrs = 0;
      /*
***************
*** 85,93 ****
       */
  #ifdef notdef
      if ((scp->unixModeBits & 0222) == 0 || (scp->flags & CM_SCACHEFLAG_RO))
  #endif
- 	if ((scp->unixModeBits & 0222) == 0)
-             attrs |= SMB_ATTR_READONLY;		/* Read-only */
  
      if (attrs == 0)
          attrs = SMB_ATTR_NORMAL;		/* FILE_ATTRIBUTE_NORMAL */
--- 90,100 ----
       */
  #ifdef notdef
      if ((scp->unixModeBits & 0222) == 0 || (scp->flags & CM_SCACHEFLAG_RO))
+         attrs |= SMB_ATTR_READONLY;		/* Read-only */
+ #else
+     if ((scp->unixModeBits & 0222) == 0)
+         attrs |= SMB_ATTR_READONLY;		/* Read-only */
  #endif
  
      if (attrs == 0)
          attrs = SMB_ATTR_NORMAL;		/* FILE_ATTRIBUTE_NORMAL */
***************
*** 576,581 ****
--- 583,592 ----
                          &quotaLimits,
                          &ntsEx);
  
+     if (nts != STATUS_SUCCESS || ntsEx != STATUS_SUCCESS)
+         osi_Log2(smb_logp,"LsaLogonUser failure: nts %u ntsEx %u",
+                   nts, ntsEx);
+ 
      OutputDebugF("Return from LsaLogonUser is 0x%lX", nts);
      OutputDebugF("Extended status is 0x%lX", ntsEx);
  
***************
*** 930,936 ****
          if (s1 == NULL) {s1 = s2; s2 = " ";}
  
          osi_Log4(smb_logp, "SMB3 user logoffX uid %d name %s%s%s", uidp->userID,
!                   osi_LogSaveString(smb_logp, (uidp->unp) ? uidp->unp->name: " "), s1, s2);
  
          lock_ObtainMutex(&uidp->mx);
          uidp->flags |= SMB_USERFLAG_DELETE;
--- 941,948 ----
          if (s1 == NULL) {s1 = s2; s2 = " ";}
  
          osi_Log4(smb_logp, "SMB3 user logoffX uid %d name %s%s%s", uidp->userID,
!                   osi_LogSaveString(smb_logp, (uidp->unp) ? uidp->unp->name: " "), 
!                   osi_LogSaveString(smb_logp,s1), osi_LogSaveString(smb_logp,s2));
  
          lock_ObtainMutex(&uidp->mx);
          uidp->flags |= SMB_USERFLAG_DELETE;
***************
*** 1038,1048 ****
      ((smb_t *)inp)->tid = newTid;
      tp = smb_GetSMBData(outp, NULL);
      if (!ipc) {
!         /* XXX - why is this a drive letter? - jaltman */
          *tp++ = 'A';
          *tp++ = ':';
          *tp++ = 0;
!         smb_SetSMBDataLength(outp, 3);
      } else {
          strcpy(tp, "IPC");
          smb_SetSMBDataLength(outp, 4);
--- 1050,1065 ----
      ((smb_t *)inp)->tid = newTid;
      tp = smb_GetSMBData(outp, NULL);
      if (!ipc) {
!         /* XXX - why is this a drive letter? */
          *tp++ = 'A';
          *tp++ = ':';
          *tp++ = 0;
!         *tp++ = 'N';
!         *tp++ = 'T';
!         *tp++ = 'F';
!         *tp++ = 'S';
!         *tp++ = 0;
!         smb_SetSMBDataLength(outp, 8);
      } else {
          strcpy(tp, "IPC");
          smb_SetSMBDataLength(outp, 4);
***************
*** 1191,1197 ****
          smbp->reh = (unsigned char) ((NTStatus >> 8) & 0xff);
          smbp->errLow = (unsigned char) ((NTStatus >> 16) & 0xff);
          smbp->errHigh = (unsigned char) ((NTStatus >> 24) & 0xff);
!         smbp->flg2 |= SMB_FLAGS2_ERR_STATUS;
      }
      else {
          smbp->rcls = errClass;
--- 1208,1214 ----
          smbp->reh = (unsigned char) ((NTStatus >> 8) & 0xff);
          smbp->errLow = (unsigned char) ((NTStatus >> 16) & 0xff);
          smbp->errHigh = (unsigned char) ((NTStatus >> 24) & 0xff);
!         smbp->flg2 |= SMB_FLAGS2_32BIT_STATUS;
      }
      else {
          smbp->rcls = errClass;
***************
*** 1491,1497 ****
      }
  
      /* first figure out how many shares there are */
!     rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSConfigKeyName, 0,
                        KEY_QUERY_VALUE, &hkParam);
      if (rv == ERROR_SUCCESS) {
          len = sizeof(allSubmount);
--- 1508,1514 ----
      }
  
      /* first figure out how many shares there are */
!     rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY, 0,
                        KEY_QUERY_VALUE, &hkParam);
      if (rv == ERROR_SUCCESS) {
          len = sizeof(allSubmount);
***************
*** 1503,1509 ****
          RegCloseKey (hkParam);
      }
  
!     rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\OpenAFS\\Client\\Submounts",
                        0, KEY_QUERY_VALUE, &hkSubmount);
      if (rv == ERROR_SUCCESS) {
          rv = RegQueryInfoKey(hkSubmount, NULL, NULL, NULL, NULL,
--- 1520,1526 ----
          RegCloseKey (hkParam);
      }
  
!     rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_OPENAFS_SUBKEY "\\Submounts",
                        0, KEY_QUERY_VALUE, &hkSubmount);
      if (rv == ERROR_SUCCESS) {
          rv = RegQueryInfoKey(hkSubmount, NULL, NULL, NULL, NULL,
***************
*** 1526,1534 ****
      thyper.HighPart = 0;
      thyper.LowPart = 0;
  
!     cm_HoldSCache(cm_rootSCachep);
!     cm_ApplyDir(cm_rootSCachep, smb_rapCollectSharesProc, &rootShares, &thyper, userp, &req, NULL);
!     cm_ReleaseSCache(cm_rootSCachep);
  
      cm_ReleaseUser(userp);
  
--- 1543,1551 ----
      thyper.HighPart = 0;
      thyper.LowPart = 0;
  
!     cm_HoldSCache(cm_data.rootSCachep);
!     cm_ApplyDir(cm_data.rootSCachep, smb_rapCollectSharesProc, &rootShares, &thyper, userp, &req, NULL);
!     cm_ReleaseSCache(cm_data.rootSCachep);
  
      cm_ReleaseUser(userp);
  
***************
*** 1652,1658 ****
      outp = smb_GetTran2ResponsePacket(vcp, p, op, totalParam, totalData);
  
      if(!stricmp(shareName,"all")) {
!         rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSConfigKeyName, 0,
                            KEY_QUERY_VALUE, &hkParam);
          if (rv == ERROR_SUCCESS) {
              len = sizeof(allSubmount);
--- 1669,1675 ----
      outp = smb_GetTran2ResponsePacket(vcp, p, op, totalParam, totalData);
  
      if(!stricmp(shareName,"all")) {
!         rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY, 0,
                            KEY_QUERY_VALUE, &hkParam);
          if (rv == ERROR_SUCCESS) {
              len = sizeof(allSubmount);
***************
*** 1668,1674 ****
              shareFound = TRUE;
  
      } else {
!         rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\OpenAFS\\Client\\Submounts", 0,
                            KEY_QUERY_VALUE, &hkSubmount);
          if (rv == ERROR_SUCCESS) {
              rv = RegQueryValueEx(hkSubmount, shareName, NULL, NULL, NULL, NULL);
--- 1685,1691 ----
              shareFound = TRUE;
  
      } else {
!         rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY "\\Submounts", 0,
                            KEY_QUERY_VALUE, &hkSubmount);
          if (rv == ERROR_SUCCESS) {
              rv = RegQueryValueEx(hkSubmount, shareName, NULL, NULL, NULL, NULL);
***************
*** 2077,2083 ****
          
      /* compute initial mode bits based on read-only flag in attributes */
      initialModeBits = 0666;
!     if (attributes & 1) initialModeBits &= ~0222;
          
      pathp = (char *) (&p->parmsp[14]);
      if (smb_StoreAnsiFilenames)
--- 2094,2101 ----
          
      /* compute initial mode bits based on read-only flag in attributes */
      initialModeBits = 0666;
!     if (attributes & 1) 
!         initialModeBits &= ~0222;
          
      pathp = (char *) (&p->parmsp[14]);
      if (smb_StoreAnsiFilenames)
***************
*** 2097,2122 ****
  
          /* copy out remainder of the parms */
          parmSlot = 0;
!         outp->parmsp[parmSlot] = fidp->fid; parmSlot++;
          if (extraInfo) {
!             outp->parmsp[parmSlot] = /* attrs */ 0; parmSlot++;
!             outp->parmsp[parmSlot] = 0; parmSlot++;	/* mod time */
!             outp->parmsp[parmSlot] = 0; parmSlot++;
!             outp->parmsp[parmSlot] = 0; parmSlot++;	/* len */
!             outp->parmsp[parmSlot] = 0x7fff; parmSlot++;
!             outp->parmsp[parmSlot] = openMode; parmSlot++;
!             outp->parmsp[parmSlot] = 0; parmSlot++; /* file type 0 ==> normal file or dir */
!             outp->parmsp[parmSlot] = 0; parmSlot++; /* IPC junk */
          }   
          /* and the final "always present" stuff */
!         outp->parmsp[parmSlot] = /* openAction found existing file */ 1; parmSlot++;
          /* next write out the "unique" ID */
!         outp->parmsp[parmSlot] = 0x1234; parmSlot++;
!         outp->parmsp[parmSlot] = 0x5678; parmSlot++;
!         outp->parmsp[parmSlot] = 0; parmSlot++;
          if (returnEALength) {
!             outp->parmsp[parmSlot] = 0; parmSlot++;
!             outp->parmsp[parmSlot] = 0; parmSlot++;
          }       
                  
          outp->totalData = 0;
--- 2115,2140 ----
  
          /* copy out remainder of the parms */
          parmSlot = 0;
!         outp->parmsp[parmSlot++] = fidp->fid;
          if (extraInfo) {
!             outp->parmsp[parmSlot++] = 0;       /* attrs */
!             outp->parmsp[parmSlot++] = 0;       /* mod time */
!             outp->parmsp[parmSlot++] = 0; 
!             outp->parmsp[parmSlot++] = 0;       /* len */
!             outp->parmsp[parmSlot++] = 0x7fff;
!             outp->parmsp[parmSlot++] = openMode;
!             outp->parmsp[parmSlot++] = 0;       /* file type 0 ==> normal file or dir */
!             outp->parmsp[parmSlot++] = 0;       /* IPC junk */
          }   
          /* and the final "always present" stuff */
!         outp->parmsp[parmSlot++] = 1;           /* openAction found existing file */
          /* next write out the "unique" ID */
!         outp->parmsp[parmSlot++] = 0x1234;
!         outp->parmsp[parmSlot++] = 0x5678;
!         outp->parmsp[parmSlot++] = 0;
          if (returnEALength) {
!             outp->parmsp[parmSlot++] = 0;
!             outp->parmsp[parmSlot++] = 0;
          }       
                  
          outp->totalData = 0;
***************
*** 2151,2171 ****
  
      code = smb_LookupTIDPath(vcp, p->tid, &tidPathp);
      if (code == CM_ERROR_TIDIPC) {
!         /* Attempt to use TID allocated for IPC.  The client is
!            probably trying to locate DCE RPC end points, which
!            we don't support. */
          osi_Log0(smb_logp, "Tran2Open received IPC TID");
          cm_ReleaseUser(userp);
          smb_FreeTran2Packet(outp);
          return CM_ERROR_NOSUCHPATH;
      }
  
      dscp = NULL;
!     code = cm_NameI(cm_rootSCachep, pathp,
                       CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                       userp, tidPathp, &req, &scp);
      if (code != 0) {
!         code = cm_NameI(cm_rootSCachep, spacep->data,
                           CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                           userp, tidPathp, &req, &dscp);
          cm_FreeSpace(spacep);
--- 2169,2193 ----
  
      code = smb_LookupTIDPath(vcp, p->tid, &tidPathp);
      if (code == CM_ERROR_TIDIPC) {
!         /* Attempt to use a TID allocated for IPC.  The client
!          * is probably looking for DCE RPC end points which we
!          * don't support OR it could be looking to make a DFS
!          * referral request. 
!          */
          osi_Log0(smb_logp, "Tran2Open received IPC TID");
+ #ifndef DFS_SUPPORT
          cm_ReleaseUser(userp);
          smb_FreeTran2Packet(outp);
          return CM_ERROR_NOSUCHPATH;
+ #endif
      }
  
      dscp = NULL;
!     code = cm_NameI(cm_data.rootSCachep, pathp,
                       CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                       userp, tidPathp, &req, &scp);
      if (code != 0) {
!         code = cm_NameI(cm_data.rootSCachep, spacep->data,
                           CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                           userp, tidPathp, &req, &dscp);
          cm_FreeSpace(spacep);
***************
*** 2176,2181 ****
--- 2198,2215 ----
              return code;
          }
          
+ #ifdef DFS_SUPPORT
+         if (dscp->fileType == CM_SCACHETYPE_DFSLINK) {
+             cm_ReleaseSCache(dscp);
+             cm_ReleaseUser(userp);
+             smb_FreeTran2Packet(outp);
+             if ( WANTS_DFS_PATHNAMES(p) )
+                 return CM_ERROR_PATH_NOT_COVERED;
+             else
+                 return CM_ERROR_BADSHARENAME;
+         }
+ #endif /* DFS_SUPPORT */
+ 
          /* otherwise, scp points to the parent directory.  Do a lookup,
           * and truncate the file if we find it, otherwise we create the
           * file.
***************
*** 2192,2199 ****
              smb_FreeTran2Packet(outp);
              return code;
          }
!     }
!     else {
          cm_FreeSpace(spacep);
      }
          
--- 2226,2245 ----
              smb_FreeTran2Packet(outp);
              return code;
          }
!     } else {
! #ifdef DFS_SUPPORT
!         if (scp->fileType == CM_SCACHETYPE_DFSLINK) {
!             cm_ReleaseSCache(scp);
!             cm_ReleaseUser(userp);
!             smb_FreeTran2Packet(outp);
!             if ( WANTS_DFS_PATHNAMES(p) )
!                 return CM_ERROR_PATH_NOT_COVERED;
!             else
!                 return CM_ERROR_BADSHARENAME;
!         }
! #endif /* DFS_SUPPORT */
! 
!         /* macintosh is expensive to program for it */
          cm_FreeSpace(spacep);
      }
          
***************
*** 2203,2209 ****
      if (code == 0) {
          code = cm_CheckOpen(scp, openMode, trunc, userp, &req);
          if (code) {
!             if (dscp) cm_ReleaseSCache(dscp);
              cm_ReleaseSCache(scp);
              cm_ReleaseUser(userp);
              smb_FreeTran2Packet(outp);
--- 2249,2256 ----
      if (code == 0) {
          code = cm_CheckOpen(scp, openMode, trunc, userp, &req);
          if (code) {
!             if (dscp) 
!                 cm_ReleaseSCache(dscp);
              cm_ReleaseSCache(scp);
              cm_ReleaseUser(userp);
              smb_FreeTran2Packet(outp);
***************
*** 2212,2218 ****
  
          if (excl) {
              /* oops, file shouldn't be there */
!             if (dscp) cm_ReleaseSCache(dscp);
              cm_ReleaseSCache(scp);
              cm_ReleaseUser(userp);
              smb_FreeTran2Packet(outp);
--- 2259,2266 ----
  
          if (excl) {
              /* oops, file shouldn't be there */
!             if (dscp) 
!                 cm_ReleaseSCache(dscp);
              cm_ReleaseSCache(scp);
              cm_ReleaseUser(userp);
              smb_FreeTran2Packet(outp);
***************
*** 2229,2237 ****
          else 
              openAction = 1;	/* found existing file */
      }
!     else if (!(openFun & SMB_ATTR_DIRECTORY)) {
          /* don't create if not found */
!         if (dscp) cm_ReleaseSCache(dscp);
          osi_assert(scp == NULL);
          cm_ReleaseUser(userp);
          smb_FreeTran2Packet(outp);
--- 2277,2286 ----
          else 
              openAction = 1;	/* found existing file */
      }
!     else if (!(openFun & 0x10)) {
          /* don't create if not found */
!         if (dscp) 
!             cm_ReleaseSCache(dscp);
          osi_assert(scp == NULL);
          cm_ReleaseUser(userp);
          smb_FreeTran2Packet(outp);
***************
*** 2270,2280 ****
      }
          
      /* we don't need this any longer */
!     if (dscp) cm_ReleaseSCache(dscp);
  
      if (code) {
          /* something went wrong creating or truncating the file */
!         if (scp) cm_ReleaseSCache(scp);
          cm_ReleaseUser(userp);
          smb_FreeTran2Packet(outp);
          return code;
--- 2319,2331 ----
      }
          
      /* we don't need this any longer */
!     if (dscp) 
!         cm_ReleaseSCache(dscp);
  
      if (code) {
          /* something went wrong creating or truncating the file */
!         if (scp) 
!             cm_ReleaseSCache(scp);
          cm_ReleaseUser(userp);
          smb_FreeTran2Packet(outp);
          return code;
***************
*** 2288,2296 ****
              code = cm_EvaluateSymLink(dscp, scp, &targetScp, userp, &req);
              if (code == 0) {
                  /* we have a more accurate file to use (the
!                 * target of the symbolic link).  Otherwise,
!                 * we'll just use the symlink anyway.
!                 */
                  osi_Log2(smb_logp, "symlink vp %x to vp %x",
                            scp, targetScp);
                  cm_ReleaseSCache(scp);
--- 2339,2347 ----
              code = cm_EvaluateSymLink(dscp, scp, &targetScp, userp, &req);
              if (code == 0) {
                  /* we have a more accurate file to use (the
!                  * target of the symbolic link).  Otherwise,
!                  * we'll just use the symlink anyway.
!                  */
                  osi_Log2(smb_logp, "symlink vp %x to vp %x",
                            scp, targetScp);
                  cm_ReleaseSCache(scp);
***************
*** 2323,2352 ****
  
      /* copy out remainder of the parms */
      parmSlot = 0;
!     outp->parmsp[parmSlot] = fidp->fid; parmSlot++;
      lock_ObtainMutex(&scp->mx);
      if (extraInfo) {
!         outp->parmsp[parmSlot] = smb_Attributes(scp); parmSlot++;
          smb_SearchTimeFromUnixTime(&dosTime, scp->clientModTime);
!         outp->parmsp[parmSlot] = (unsigned short)(dosTime & 0xffff); parmSlot++;
!         outp->parmsp[parmSlot] = (unsigned short)((dosTime>>16) & 0xffff); parmSlot++;
!         outp->parmsp[parmSlot] = (unsigned short) (scp->length.LowPart & 0xffff);
!         parmSlot++;
!         outp->parmsp[parmSlot] = (unsigned short) ((scp->length.LowPart >> 16) & 0xffff);
!         parmSlot++;
!         outp->parmsp[parmSlot] = openMode; parmSlot++;
!         outp->parmsp[parmSlot] = 0; parmSlot++; /* file type 0 ==> normal file or dir */
!         outp->parmsp[parmSlot] = 0; parmSlot++; /* IPC junk */
      }   
      /* and the final "always present" stuff */
!     outp->parmsp[parmSlot] = openAction; parmSlot++;
      /* next write out the "unique" ID */
!     outp->parmsp[parmSlot] = (unsigned short) (scp->fid.vnode & 0xffff); parmSlot++;
!     outp->parmsp[parmSlot] = (unsigned short) (scp->fid.volume & 0xffff); parmSlot++;
!     outp->parmsp[parmSlot] = 0; parmSlot++;
      if (returnEALength) {
!         outp->parmsp[parmSlot] = 0; parmSlot++;
!         outp->parmsp[parmSlot] = 0; parmSlot++;
      }   
      lock_ReleaseMutex(&scp->mx);
      outp->totalData = 0;		/* total # of data bytes */
--- 2374,2401 ----
  
      /* copy out remainder of the parms */
      parmSlot = 0;
!     outp->parmsp[parmSlot++] = fidp->fid;
      lock_ObtainMutex(&scp->mx);
      if (extraInfo) {
!         outp->parmsp[parmSlot++] = smb_Attributes(scp);
          smb_SearchTimeFromUnixTime(&dosTime, scp->clientModTime);
!         outp->parmsp[parmSlot++] = (unsigned short)(dosTime & 0xffff);
!         outp->parmsp[parmSlot++] = (unsigned short)((dosTime>>16) & 0xffff);
!         outp->parmsp[parmSlot++] = (unsigned short) (scp->length.LowPart & 0xffff);
!         outp->parmsp[parmSlot++] = (unsigned short) ((scp->length.LowPart >> 16) & 0xffff);
!         outp->parmsp[parmSlot++] = openMode;
!         outp->parmsp[parmSlot++] = 0;   /* file type 0 ==> normal file or dir */
!         outp->parmsp[parmSlot++] = 0;   /* IPC junk */
      }   
      /* and the final "always present" stuff */
!     outp->parmsp[parmSlot++] = openAction;
      /* next write out the "unique" ID */
!     outp->parmsp[parmSlot++] = (unsigned short) (scp->fid.vnode & 0xffff); 
!     outp->parmsp[parmSlot++] = (unsigned short) (scp->fid.volume & 0xffff); 
!     outp->parmsp[parmSlot++] = 0; 
      if (returnEALength) {
!         outp->parmsp[parmSlot++] = 0; 
!         outp->parmsp[parmSlot++] = 0; 
      }   
      lock_ReleaseMutex(&scp->mx);
      outp->totalData = 0;		/* total # of data bytes */
***************
*** 2516,2525 ****
      spacep = cm_GetSpace();
      smb_StripLastComponent(spacep->data, &lastNamep, pathp);
  
!     code = cm_NameI(cm_rootSCachep, spacep->data, caseFold, userp, tidPathp,
                       reqp, &dscp);
      cm_FreeSpace(spacep);
!     if (code) return code;
  
      if (!lastNamep) lastNamep = pathp;
      else lastNamep++;
--- 2565,2583 ----
      spacep = cm_GetSpace();
      smb_StripLastComponent(spacep->data, &lastNamep, pathp);
  
!     code = cm_NameI(cm_data.rootSCachep, spacep->data, caseFold, userp, tidPathp,
                       reqp, &dscp);
      cm_FreeSpace(spacep);
!     if (code) 
!         return code;
! 
! #ifdef DFS_SUPPORT
!     if (dscp->fileType == CM_SCACHETYPE_DFSLINK) {
!         cm_ReleaseSCache(dscp);
!         cm_ReleaseUser(userp);
!         return CM_ERROR_PATH_NOT_COVERED;
!     }
! #endif /* DFS_SUPPORT */
  
      if (!lastNamep) lastNamep = pathp;
      else lastNamep++;
***************
*** 2642,2655 ****
          /* Make sure that lastComp is not NULL */
          if (lastComp) {
              if (stricmp(lastComp, "\\desktop.ini") == 0) {
!                 code = cm_NameI(cm_rootSCachep, spacep->data,
                                   CM_FLAG_CASEFOLD
                                   | CM_FLAG_DIRSEARCH
                                   | CM_FLAG_FOLLOW,
                                   userp, tidPathp, &req, &dscp);
                  if (code == 0) {
!                     if (dscp->fileType == CM_SCACHETYPE_MOUNTPOINT
!                          && !dscp->mountRootFidp)
                          code = CM_ERROR_NOSUCHFILE;
                      else if (dscp->fileType == CM_SCACHETYPE_DIRECTORY) {
                          cm_buf_t *bp = buf_Find(dscp, &hzero);
--- 2700,2720 ----
          /* Make sure that lastComp is not NULL */
          if (lastComp) {
              if (stricmp(lastComp, "\\desktop.ini") == 0) {
!                 code = cm_NameI(cm_data.rootSCachep, spacep->data,
                                   CM_FLAG_CASEFOLD
                                   | CM_FLAG_DIRSEARCH
                                   | CM_FLAG_FOLLOW,
                                   userp, tidPathp, &req, &dscp);
                  if (code == 0) {
! #ifdef DFS_SUPPORT
!                     if (dscp->fileType == CM_SCACHETYPE_DFSLINK) {
!                         if ( WANTS_DFS_PATHNAMES(p) )
!                             code = CM_ERROR_PATH_NOT_COVERED;
!                         else
!                             code = CM_ERROR_BADSHARENAME;
!                     } else
! #endif /* DFS_SUPPORT */
!                     if (dscp->fileType == CM_SCACHETYPE_MOUNTPOINT && !dscp->mountRootFid.volume)
                          code = CM_ERROR_NOSUCHFILE;
                      else if (dscp->fileType == CM_SCACHETYPE_DIRECTORY) {
                          cm_buf_t *bp = buf_Find(dscp, &hzero);
***************
*** 2675,2681 ****
      }
  
      /* now do namei and stat, and copy out the info */
!     code = cm_NameI(cm_rootSCachep, (char *)(&p->parmsp[3]),
                       CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD, userp, tidPathp, &req, &scp);
  
      if (code) {
--- 2740,2746 ----
      }
  
      /* now do namei and stat, and copy out the info */
!     code = cm_NameI(cm_data.rootSCachep, (char *)(&p->parmsp[3]),
                       CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD, userp, tidPathp, &req, &scp);
  
      if (code) {
***************
*** 2685,2690 ****
--- 2750,2769 ----
          return 0;
      }
  
+ #ifdef DFS_SUPPORT
+     if (scp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(scp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(p) )
+             code = CM_ERROR_PATH_NOT_COVERED;
+         else
+             code = CM_ERROR_BADSHARENAME;
+         smb_SendTran2Error(vcp, p, opx, code);
+         smb_FreeTran2Packet(outp);
+         return 0;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      lock_ObtainMutex(&scp->mx);
      code = cm_SyncOp(scp, NULL, userp, &req, 0,
                        CM_SCACHESYNC_NEEDCALLBACK | CM_SCACHESYNC_GETSTATUS);
***************
*** 3079,3086 ****
      return CM_ERROR_BADOP;
  }
  
  long 
! smb_ReceiveTran2GetDFSReferral(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *outp)
  {
      /* This is a UNICODE only request (bit15 of Flags2) */
      /* The TID must be IPC$ */
--- 3158,3175 ----
      return CM_ERROR_BADOP;
  }
  
+ struct smb_v2_referral {
+     USHORT ServerType;
+     USHORT ReferralFlags;
+     ULONG  Proximity;
+     ULONG  TimeToLive;
+     USHORT DfsPathOffset;
+     USHORT DfsAlternativePathOffset;
+     USHORT NetworkAddressOffset;
+ };
+ 
  long 
! smb_ReceiveTran2GetDFSReferral(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *op)
  {
      /* This is a UNICODE only request (bit15 of Flags2) */
      /* The TID must be IPC$ */
***************
*** 3091,3099 ****
      /* ServerType = 0; indicates the next server should be queried for the file */
      /* ReferralFlags = 0x01; PathConsumed characters should be stripped */
      /* Node = UnicodeString of UNC path of the next share name */
  
!     osi_Log0(smb_logp,"ReceiveTran2GetDFSReferral - NOT_SUPPORTED");
      return CM_ERROR_BADOP;
  }
  
  long 
--- 3180,3275 ----
      /* ServerType = 0; indicates the next server should be queried for the file */
      /* ReferralFlags = 0x01; PathConsumed characters should be stripped */
      /* Node = UnicodeString of UNC path of the next share name */
+ #ifdef DFS_SUPPORT
+     long code = 0;
+     int maxReferralLevel = 0;
+     char requestFileName[1024] = "";
+     smb_tran2Packet_t *outp = 0;
+     cm_user_t *userp = 0;
+     cm_scache_t *scp;
+     cm_req_t req;
+     CPINFO CodePageInfo;
+     int i, nbnLen, reqLen;
+     int idx;
+ 
+     cm_InitReq(&req);
+ 
+     maxReferralLevel = p->parmsp[0];
  
!     GetCPInfo(CP_ACP, &CodePageInfo);
!     WideCharToMultiByte(CP_ACP, 0, (LPCWSTR) &p->parmsp[1], -1, 
!                         requestFileName, 1024, NULL, NULL);
! 
!     osi_Log2(smb_logp,"ReceiveTran2GetDfsReferral [%d][%s]", 
!              maxReferralLevel, osi_LogSaveString(smb_logp, requestFileName));
! 
!     nbnLen = strlen(cm_NetbiosName);
!     reqLen = strlen(requestFileName);
! 
!     if (reqLen == nbnLen + 5 &&
!         requestFileName[0] == '\\' &&
!         !_strnicmp(cm_NetbiosName,&requestFileName[1],nbnLen) &&
!         requestFileName[nbnLen+1] == '\\' &&
!         !_strnicmp("all",&requestFileName[nbnLen+2],3)) 
!     {
!         USHORT * sp;
!         struct smb_v2_referral * v2ref;
!         outp = smb_GetTran2ResponsePacket(vcp, p, op, 0, 2 * (reqLen + 8));
! 
!         sp = (USHORT *)outp->datap;
!         idx = 0;
!         sp[idx++] = reqLen;   /* path consumed */
!         sp[idx++] = 1;        /* number of referrals */
!         sp[idx++] = 0x03;     /* flags */
! #ifdef DFS_VERSION_1
!         sp[idx++] = 1;        /* Version Number */
!         sp[idx++] = reqLen + 4;  /* Referral Size */ 
!         sp[idx++] = 1;        /* Type = SMB Server */
!         sp[idx++] = 0;        /* Do not strip path consumed */
!         for ( i=0;i<=reqLen; i++ )
!             sp[i+idx] = requestFileName[i];
! #else /* DFS_VERSION_2 */
!         sp[idx++] = 2;      /* Version Number */
!         sp[idx++] = sizeof(struct smb_v2_referral);     /* Referral Size */
!         idx += (sizeof(struct smb_v2_referral) / 2);
!         v2ref = (struct smb_v2_referral *) &sp[5];
!         v2ref->ServerType = 1;  /* SMB Server */
!         v2ref->ReferralFlags = 0x03;
!         v2ref->Proximity = 0;   /* closest */
!         v2ref->TimeToLive = 3600; /* seconds */
!         v2ref->DfsPathOffset = idx * 2;
!         v2ref->DfsAlternativePathOffset = idx * 2;
!         v2ref->NetworkAddressOffset = 0;
!         for ( i=0;i<=reqLen; i++ )
!             sp[i+idx] = requestFileName[i];
! #endif
!     } else {
!         userp = smb_GetTran2User(vcp, p);
!         if (!userp) {
!             osi_Log1(smb_logp,"ReceiveTran2GetDfsReferral unable to resolve user [%d]", p->uid);
!             code = CM_ERROR_BADSMB;
!             goto done;
!         }   
! 
! 		/* not done yet */
!         code = CM_ERROR_NOSUCHPATH;
!     }
! 
!   done:
!     if (userp)
!         cm_ReleaseUser(userp);
!     if (code == 0) 
!         smb_SendTran2Packet(vcp, outp, op);
!     else 
!         smb_SendTran2Error(vcp, p, op, code);
!     if (outp)
!         smb_FreeTran2Packet(outp);
!  
!     return 0;
! #else /* DFS_SUPPORT */
!     osi_Log0(smb_logp,"ReceiveTran2GetDfsReferral - NOT_SUPPORTED"); 
      return CM_ERROR_BADOP;
+ #endif /* DFS_SUPPORT */
  }
  
  long 
***************
*** 3262,3274 ****
  
              /* Copy attributes */
              lattr = smb_ExtAttributes(scp);
              /* merge in hidden (dot file) attribute */
!             if ( patchp->flags & SMB_DIRLISTPATCH_DOTFILE )
!                 lattr |= SMB_ATTR_HIDDEN;
              *((u_long *)dptr) = lattr;
              dptr += 4;
!         }
!         else {
              /* get dos time */
              smb_SearchTimeFromUnixTime(&dosTime, scp->clientModTime);
  
--- 3438,3459 ----
  
              /* Copy attributes */
              lattr = smb_ExtAttributes(scp);
+             if (code == CM_ERROR_NOSUCHPATH && scp->fileType == CM_SCACHETYPE_SYMLINK) {
+                 if (lattr == SMB_ATTR_NORMAL)
+                     lattr = SMB_ATTR_DIRECTORY;
+                 else
+                     lattr |= SMB_ATTR_DIRECTORY;
+             }
              /* merge in hidden (dot file) attribute */
!             if ( patchp->flags & SMB_DIRLISTPATCH_DOTFILE ) {
!                 if (lattr == SMB_ATTR_NORMAL)
!                     lattr = SMB_ATTR_HIDDEN;
!                 else
!                     lattr |= SMB_ATTR_HIDDEN;
!             }
              *((u_long *)dptr) = lattr;
              dptr += 4;
!         } else {
              /* get dos time */
              smb_SearchTimeFromUnixTime(&dosTime, scp->clientModTime);
  
***************
*** 3313,3320 ****
              /* finally copy out attributes as short */
              attr = smb_Attributes(scp);
              /* merge in hidden (dot file) attribute */
!             if ( patchp->flags & SMB_DIRLISTPATCH_DOTFILE )
!                 attr |= SMB_ATTR_HIDDEN;
              *dptr++ = attr & 0xff;
              *dptr++ = (attr >> 8) & 0xff;
          }
--- 3498,3509 ----
              /* finally copy out attributes as short */
              attr = smb_Attributes(scp);
              /* merge in hidden (dot file) attribute */
!             if ( patchp->flags & SMB_DIRLISTPATCH_DOTFILE ) {
!                 if (lattr == SMB_ATTR_NORMAL)
!                     lattr = SMB_ATTR_HIDDEN;
!                 else
!                     lattr |= SMB_ATTR_HIDDEN;
!             }
              *dptr++ = attr & 0xff;
              *dptr++ = (attr >> 8) & 0xff;
          }
***************
*** 3601,3607 ****
      int attribute;
      long nextCookie;
      char *tp;
!     long code = 0;
      char *pathp;
      cm_dirEntry_t *dep;
      int maxCount;
--- 3790,3796 ----
      int attribute;
      long nextCookie;
      char *tp;
!     long code = 0, code2 = 0;
      char *pathp;
      cm_dirEntry_t *dep;
      int maxCount;
***************
*** 3676,3689 ****
          osi_assert(p->opcode == 2);
          /* find next; obtain basic parameters from request or open dir file */
          dsp = smb_FindDirSearch(p->parmsp[0]);
-         if (!dsp) 
-             return CM_ERROR_BADFD;
-         attribute = dsp->attribute;
          maxCount = p->parmsp[1];
          infoLevel = p->parmsp[2];
          searchFlags = p->parmsp[5];
          pathp = NULL;
-         nextCookie = p->parmsp[3] | (p->parmsp[4] << 16);
          maskp = dsp->mask;
          starPattern = 1;	/* assume, since required a Find Next */
      }
--- 3865,3881 ----
          osi_assert(p->opcode == 2);
          /* find next; obtain basic parameters from request or open dir file */
          dsp = smb_FindDirSearch(p->parmsp[0]);
          maxCount = p->parmsp[1];
          infoLevel = p->parmsp[2];
+         nextCookie = p->parmsp[3] | (p->parmsp[4] << 16);
          searchFlags = p->parmsp[5];
+         if (!dsp) {
+             osi_Log2(smb_logp, "T2 search dir bad search ID: id %d nextCookie 0x%x",
+                      p->parmsp[0], nextCookie);
+             return CM_ERROR_BADFD;
+         }
+         attribute = dsp->attribute;
          pathp = NULL;
          maskp = dsp->mask;
          starPattern = 1;	/* assume, since required a Find Next */
      }
***************
*** 3692,3699 ****
                "T2 search dir attr 0x%x, info level %d, max count %d, flags 0x%x",
                attribute, infoLevel, maxCount, searchFlags);
  
!     osi_Log2(smb_logp, "...T2 search op %d, nextCookie 0x%x",
!               p->opcode, nextCookie);
  
      if (infoLevel >= 0x101)
          searchFlags &= ~4;	/* no resume keys */
--- 3884,3891 ----
                "T2 search dir attr 0x%x, info level %d, max count %d, flags 0x%x",
                attribute, infoLevel, maxCount, searchFlags);
  
!     osi_Log3(smb_logp, "...T2 search op %d, id %d, nextCookie 0x%x",
!               p->opcode, dsp->cookie, nextCookie);
  
      if (infoLevel >= 0x101)
          searchFlags &= ~4;	/* no resume keys */
***************
*** 3714,3721 ****
      outp = smb_GetTran2ResponsePacket(vcp, p, opx, maxReturnParms,
                                        maxReturnData);
  
!     osi_Log1(smb_logp, "T2 receive search dir %s",
!              osi_LogSaveString(smb_logp, pathp));
          
      /* bail out if request looks bad */
      if (p->opcode == 1 && !pathp) {
--- 3906,3913 ----
      outp = smb_GetTran2ResponsePacket(vcp, p, opx, maxReturnParms,
                                        maxReturnData);
  
!     osi_Log2(smb_logp, "T2 receive search dir count %d [%s]",
!              maxCount, osi_LogSaveString(smb_logp, pathp));
          
      /* bail out if request looks bad */
      if (p->opcode == 1 && !pathp) {
***************
*** 3724,3735 ****
          return CM_ERROR_BADSMB;
      }
          
!     osi_Log2(smb_logp, "T2 dir search cookie 0x%x, connection %d",
!              nextCookie, dsp->cookie);
  
      userp = smb_GetTran2User(vcp, p);
      if (!userp) {
!     	osi_Log1(smb_logp, "T2 dir search unable to resolve user [%d]", p->uid);
      	smb_ReleaseDirSearch(dsp);
      	smb_FreeTran2Packet(outp);
      	return CM_ERROR_BADSMB;
--- 3916,3927 ----
          return CM_ERROR_BADSMB;
      }
          
!     osi_Log3(smb_logp, "T2 search dir id %d, nextCookie 0x%x, attr 0x%x",
!              dsp->cookie, nextCookie, attribute);
  
      userp = smb_GetTran2User(vcp, p);
      if (!userp) {
!     	osi_Log1(smb_logp, "T2 search dir unable to resolve user [%d]", p->uid);
      	smb_ReleaseDirSearch(dsp);
      	smb_FreeTran2Packet(outp);
      	return CM_ERROR_BADSMB;
***************
*** 3741,3748 ****
          scp = dsp->scp;
          cm_HoldSCache(scp);
          code = 0;
!     }
!     else {
          spacep = cm_GetSpace();
          smb_StripLastComponent(spacep->data, NULL, pathp);
          code = smb_LookupTIDPath(vcp, p->tid, &tidPathp);
--- 3933,3939 ----
          scp = dsp->scp;
          cm_HoldSCache(scp);
          code = 0;
!     } else {
          spacep = cm_GetSpace();
          smb_StripLastComponent(spacep->data, NULL, pathp);
          code = smb_LookupTIDPath(vcp, p->tid, &tidPathp);
***************
*** 3755,3768 ****
              smb_ReleaseDirSearch(dsp);
              return 0;
          }
!         code = cm_NameI(cm_rootSCachep, spacep->data,
                          CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                          userp, tidPathp, &req, &scp);
          cm_FreeSpace(spacep);
  
          if (code == 0) {
!             if (dsp->scp != 0) 
!                 cm_ReleaseSCache(dsp->scp);
              dsp->scp = scp;
              /* we need one hold for the entry we just stored into,
               * and one for our own processing.  When we're done
--- 3946,3973 ----
              smb_ReleaseDirSearch(dsp);
              return 0;
          }
!         code = cm_NameI(cm_data.rootSCachep, spacep->data,
                          CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                          userp, tidPathp, &req, &scp);
          cm_FreeSpace(spacep);
  
          if (code == 0) {
! #ifdef DFS_SUPPORT_BUT_NOT_FIND_FIRST
!             if (scp->fileType == CM_SCACHETYPE_DFSLINK) {
!                 cm_ReleaseSCache(scp);
!                 cm_ReleaseUser(userp);
!                 if ( WANTS_DFS_PATHNAMES(p) )
!                     code = CM_ERROR_PATH_NOT_COVERED;
!                 else
!                     code = CM_ERROR_BADSHARENAME;
!                 smb_SendTran2Error(vcp, p, opx, code);
!                 smb_FreeTran2Packet(outp);
!                 lock_ReleaseMutex(&dsp->mx);
!                 smb_DeleteDirSearch(dsp);
!                 smb_ReleaseDirSearch(dsp);
!                 return 0;
!             }
! #endif /* DFS_SUPPORT */
              dsp->scp = scp;
              /* we need one hold for the entry we just stored into,
               * and one for our own processing.  When we're done
***************
*** 3778,3784 ****
                  dsp->flags |= SMB_DIRSEARCH_BULKST;
              }
              lock_ReleaseMutex(&scp->mx);
!         }       
      }
      lock_ReleaseMutex(&dsp->mx);
      if (code) {
--- 3983,3989 ----
                  dsp->flags |= SMB_DIRSEARCH_BULKST;
              }
              lock_ReleaseMutex(&scp->mx);
!         } 
      }
      lock_ReleaseMutex(&dsp->mx);
      if (code) {
***************
*** 3846,3851 ****
--- 4051,4057 ----
  
          /* check if we've passed the dir's EOF */
          if (LargeIntegerGreaterThanOrEqualTo(curOffset, dirLength)) {
+             osi_Log0(smb_logp, "T2 search dir passed eof");
              eos = 1;
              break;
          }
***************
*** 3856,3861 ****
--- 4062,4069 ----
           * the dir entry, since we'll need to check its size.
           */
          if (returnedNames >= maxCount) {
+             osi_Log2(smb_logp, "T2 search dir returnedNames %d >= maxCount %d",
+                       returnedNames, maxCount);
              break;
          }
  
***************
*** 3864,3870 ****
           * the offset of the buffer we have.  If not, get the buffer.
           */
          thyper.HighPart = curOffset.HighPart;
!         thyper.LowPart = curOffset.LowPart & ~(buf_bufferSize-1);
          if (!bufferp || !LargeIntegerEqualTo(thyper, bufferOffset)) {
              /* wrong buffer */
              if (bufferp) {
--- 4072,4078 ----
           * the offset of the buffer we have.  If not, get the buffer.
           */
          thyper.HighPart = curOffset.HighPart;
!         thyper.LowPart = curOffset.LowPart & ~(cm_data.buf_blockSize-1);
          if (!bufferp || !LargeIntegerEqualTo(thyper, bufferOffset)) {
              /* wrong buffer */
              if (bufferp) {
***************
*** 3900,3907 ****
                  lock_ObtainMutex(&scp->mx);
              }
              lock_ReleaseMutex(&dsp->mx);
!             if (code) 
                  break;
  
              bufferOffset = thyper;
  
--- 4108,4117 ----
                  lock_ObtainMutex(&scp->mx);
              }
              lock_ReleaseMutex(&dsp->mx);
!             if (code) {
!                 osi_Log2(smb_logp, "T2 search dir buf_Get scp %x failed %d", scp, code);
                  break;
+             }
  
              bufferOffset = thyper;
  
***************
*** 3911,3924 ****
                                   PRSFS_LOOKUP,
                                   CM_SCACHESYNC_NEEDCALLBACK
                                   | CM_SCACHESYNC_READ);
!                 if (code) break;
                                  
!                 if (cm_HaveBuffer(scp, bufferp, 0)) break;
  
                  /* otherwise, load the buffer and try again */
                  code = cm_GetBuffer(scp, bufferp, NULL, userp,
                                      &req);
!                 if (code) break;
              }
              if (code) {
                  buf_Release(bufferp);
--- 4121,4144 ----
                                   PRSFS_LOOKUP,
                                   CM_SCACHESYNC_NEEDCALLBACK
                                   | CM_SCACHESYNC_READ);
!                 if (code) {
!                     osi_Log2(smb_logp, "T2 search dir cm_SyncOp scp %x failed %d", scp, code);
!                     break;
!                 }
                                  
!                 if (cm_HaveBuffer(scp, bufferp, 0)) {
!                     osi_Log2(smb_logp, "T2 search dir !HaveBuffer scp %x bufferp %x", scp, bufferp);
!                     break;
!                 }
  
                  /* otherwise, load the buffer and try again */
                  code = cm_GetBuffer(scp, bufferp, NULL, userp,
                                      &req);
!                 if (code) {
!                     osi_Log3(smb_logp, "T2 search dir cm_GetBuffer failed scp %x bufferp %x code %d", 
!                               scp, bufferp, code);
!                     break;
!                 }
              }
              if (code) {
                  buf_Release(bufferp);
***************
*** 3931,3937 ****
           * in; copy it out if it represents a non-deleted entry.
           */
          entryInDir = curOffset.LowPart & (2048-1);
!         entryInBuffer = curOffset.LowPart & (buf_bufferSize - 1);
  
          /* page header will help tell us which entries are free.  Page
           * header can change more often than once per buffer, since
--- 4151,4157 ----
           * in; copy it out if it represents a non-deleted entry.
           */
          entryInDir = curOffset.LowPart & (2048-1);
!         entryInBuffer = curOffset.LowPart & (cm_data.buf_blockSize - 1);
  
          /* page header will help tell us which entries are free.  Page
           * header can change more often than once per buffer, since
***************
*** 3939,3945 ****
           * a buffer package buffer.
           */
          /* only look intra-buffer */
!         temp = curOffset.LowPart & (buf_bufferSize - 1);
          temp &= ~(2048 - 1);	/* turn off intra-page bits */
          pageHeaderp = (cm_pageHeader_t *) (bufferp->datap + temp);
  
--- 4159,4165 ----
           * a buffer package buffer.
           */
          /* only look intra-buffer */
!         temp = curOffset.LowPart & (cm_data.buf_blockSize - 1);
          temp &= ~(2048 - 1);	/* turn off intra-page bits */
          pageHeaderp = (cm_pageHeader_t *) (bufferp->datap + temp);
  
***************
*** 3978,3983 ****
--- 4198,4207 ----
              NeedShortName = 1;
          }
  
+         osi_Log3(smb_logp, "T2 search dir vn %u name %s (%s)",
+                   dep->fid.vnode, osi_LogSaveString(smb_logp, dep->name),
+                   NeedShortName ? osi_LogSaveString(smb_logp, shortName) : "");
+ 
          /* When matching, we are using doing a case fold if we have a wildcard mask.
           * If we get a non-wildcard match, it's a lookup for a specific file. 
           */
***************
*** 3988,3996 ****
  
              /* Eliminate entries that don't match requested attributes */
              if (smb_hideDotFiles && !(dsp->attribute & SMB_ATTR_HIDDEN) && 
!                  smb_IsDotFile(dep->name))
                  goto nextEntry; /* no hidden files */
!                     
              if (!(dsp->attribute & SMB_ATTR_DIRECTORY))  /* no directories */
              {
                  /* We have already done the cm_TryBulkStat above */
--- 4212,4221 ----
  
              /* Eliminate entries that don't match requested attributes */
              if (smb_hideDotFiles && !(dsp->attribute & SMB_ATTR_HIDDEN) && 
!                  smb_IsDotFile(dep->name)) {
!                 osi_Log0(smb_logp, "T2 search dir skipping hidden");
                  goto nextEntry; /* no hidden files */
!             }
              if (!(dsp->attribute & SMB_ATTR_DIRECTORY))  /* no directories */
              {
                  /* We have already done the cm_TryBulkStat above */
***************
*** 4002,4008 ****
                  /*osi_Log2(smb_logp, "smb_ReceiveTran2SearchDir: file %s "
                   "has filetype %d", dep->name,
                   fileType);*/
!                 if (fileType == CM_SCACHETYPE_DIRECTORY)
                      goto nextEntry;
              }
  
--- 4227,4236 ----
                  /*osi_Log2(smb_logp, "smb_ReceiveTran2SearchDir: file %s "
                   "has filetype %d", dep->name,
                   fileType);*/
!                 if (fileType == CM_SCACHETYPE_DIRECTORY ||
!                     fileType == CM_SCACHETYPE_DFSLINK ||
!                     fileType == CM_SCACHETYPE_INVALID)
!                     osi_Log0(smb_logp, "T2 search dir skipping directory or bad link");
                      goto nextEntry;
              }
  
***************
*** 4041,4048 ****
                  align = (4 - (orbytes & 3)) & 3;
              else
                  align = 0;
!             if (orbytes + bytesInBuffer + align > maxReturnData)
                  break;
  
              /* this is one of the entries to use: it is not deleted
               * and it matches the star pattern we're looking for.
--- 4269,4279 ----
                  align = (4 - (orbytes & 3)) & 3;
              else
                  align = 0;
!             if (orbytes + bytesInBuffer + align > maxReturnData) {
!                 osi_Log1(smb_logp, "T2 dir search exceed max return data %d",
!                           maxReturnData);
                  break;
+             }
  
              /* this is one of the entries to use: it is not deleted
               * and it matches the star pattern we're looking for.
***************
*** 4159,4174 ****
  
      /* release the mutex */
      lock_ReleaseMutex(&scp->mx);
!     if (bufferp) buf_Release(bufferp);
  
      /* apply and free last set of patches; if not doing a star match, this
       * will be empty, but better safe (and freeing everything) than sorry.
       */
!     smb_ApplyV3DirListPatches(scp, &dirListPatchesp, infoLevel, userp,
                                &req);
          
      /* now put out the final parameters */
!     if (returnedNames == 0) eos = 1;
      if (p->opcode == 1) {
          /* find first */
          outp->parmsp[0] = (unsigned short) dsp->cookie;
--- 4390,4407 ----
  
      /* release the mutex */
      lock_ReleaseMutex(&scp->mx);
!     if (bufferp) 
!         buf_Release(bufferp);
  
      /* apply and free last set of patches; if not doing a star match, this
       * will be empty, but better safe (and freeing everything) than sorry.
       */
!     code2 = smb_ApplyV3DirListPatches(scp, &dirListPatchesp, infoLevel, userp,
                                &req);
          
      /* now put out the final parameters */
!     if (returnedNames == 0) 
!         eos = 1;
      if (p->opcode == 1) {
          /* find first */
          outp->parmsp[0] = (unsigned short) dsp->cookie;
***************
*** 4195,4207 ****
      /* return # of bytes in the buffer */
      outp->totalData = bytesInBuffer;
  
-     osi_Log2(smb_logp, "T2 search dir done, %d names, code %d",
-              returnedNames, code);
- 
      /* Return error code if unsuccessful on first request */
      if (code == 0 && p->opcode == 1 && returnedNames == 0)
          code = CM_ERROR_NOSUCHFILE;
  
      /* if we're supposed to close the search after this request, or if
       * we're supposed to close the search if we're done, and we're done,
       * or if something went wrong, close the search.
--- 4428,4440 ----
      /* return # of bytes in the buffer */
      outp->totalData = bytesInBuffer;
  
      /* Return error code if unsuccessful on first request */
      if (code == 0 && p->opcode == 1 && returnedNames == 0)
          code = CM_ERROR_NOSUCHFILE;
  
+     osi_Log4(smb_logp, "T2 search dir done, opcode %d, id %d, %d names, code %d",
+              p->opcode, dsp->cookie, returnedNames, code);
+ 
      /* if we're supposed to close the search after this request, or if
       * we're supposed to close the search if we're done, and we're done,
       * or if something went wrong, close the search.
***************
*** 4212,4220 ****
          smb_DeleteDirSearch(dsp);
      if (code)
          smb_SendTran2Error(vcp, p, opx, code);
!     else {
          smb_SendTran2Packet(vcp, outp, opx);
!     }
      smb_FreeTran2Packet(outp);
      smb_ReleaseDirSearch(dsp);
      cm_ReleaseSCache(scp);
--- 4445,4453 ----
          smb_DeleteDirSearch(dsp);
      if (code)
          smb_SendTran2Error(vcp, p, opx, code);
!     else
          smb_SendTran2Packet(vcp, outp, opx);
! 
      smb_FreeTran2Packet(outp);
      smb_ReleaseDirSearch(dsp);
      cm_ReleaseSCache(scp);
***************
*** 4358,4376 ****
          cm_ReleaseUser(userp);
          return CM_ERROR_NOSUCHPATH;
      }
!     code = cm_NameI(cm_rootSCachep, pathp,
                      CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                      userp, tidPathp, &req, &scp);
      if (code != 0) {
!         code = cm_NameI(cm_rootSCachep, spacep->data,
                          CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                          userp, tidPathp, &req, &dscp);
- 
          if (code) {
              cm_ReleaseUser(userp);
              return code;
          }
!         
          /* otherwise, scp points to the parent directory.  Do a lookup,
           * and truncate the file if we find it, otherwise we create the
           * file.
--- 4591,4631 ----
          cm_ReleaseUser(userp);
          return CM_ERROR_NOSUCHPATH;
      }
!     code = cm_NameI(cm_data.rootSCachep, pathp,
                      CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                      userp, tidPathp, &req, &scp);
+ 
+ #ifdef DFS_SUPPORT
+     if (code == 0 && scp->fileType == CM_SCACHETYPE_DFSLINK) {
+         cm_ReleaseSCache(scp);
+         cm_ReleaseUser(userp);
+         if ( WANTS_DFS_PATHNAMES(inp) )
+             return CM_ERROR_PATH_NOT_COVERED;
+         else
+             return CM_ERROR_BADSHARENAME;
+     }
+ #endif /* DFS_SUPPORT */
+ 
      if (code != 0) {
!         code = cm_NameI(cm_data.rootSCachep, spacep->data,
                          CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                          userp, tidPathp, &req, &dscp);
          if (code) {
              cm_ReleaseUser(userp);
              return code;
          }
! 
! #ifdef DFS_SUPPORT
!         if (dscp->fileType == CM_SCACHETYPE_DFSLINK) {
!             cm_ReleaseSCache(dscp);
!             cm_ReleaseUser(userp);
!             if ( WANTS_DFS_PATHNAMES(inp) )
!                 return CM_ERROR_PATH_NOT_COVERED;
!             else
!                 return CM_ERROR_BADSHARENAME;
!         }
! #endif /* DFS_SUPPORT */
! 
          /* otherwise, scp points to the parent directory.  Do a lookup,
           * and truncate the file if we find it, otherwise we create the
           * file.
***************
*** 4382,4388 ****
          code = cm_Lookup(dscp, lastNamep, CM_FLAG_CASEFOLD, userp,
                            &req, &scp);
          if (code && code != CM_ERROR_NOSUCHFILE) {
! 			cm_ReleaseSCache(dscp);
              cm_ReleaseUser(userp);
              return code;
          }
--- 4637,4643 ----
          code = cm_Lookup(dscp, lastNamep, CM_FLAG_CASEFOLD, userp,
                            &req, &scp);
          if (code && code != CM_ERROR_NOSUCHFILE) {
!             cm_ReleaseSCache(dscp);
              cm_ReleaseUser(userp);
              return code;
          }
***************
*** 4396,4403 ****
      if (code == 0) {
          code = cm_CheckOpen(scp, openMode, trunc, userp, &req);
          if (code) {
!             if (dscp) 
!                 cm_ReleaseSCache(dscp);
              cm_ReleaseSCache(scp);
              cm_ReleaseUser(userp);
              return code;
--- 4651,4657 ----
      if (code == 0) {
          code = cm_CheckOpen(scp, openMode, trunc, userp, &req);
          if (code) {
!             if (dscp) cm_ReleaseSCache(dscp);
              cm_ReleaseSCache(scp);
              cm_ReleaseUser(userp);
              return code;
***************
*** 4421,4427 ****
          }
          else openAction = 1;	/* found existing file */
      }
!     else if (!(openFun & 0x10)) {
          /* don't create if not found */
          if (dscp) cm_ReleaseSCache(dscp);
          cm_ReleaseUser(userp);
--- 4675,4681 ----
          }
          else openAction = 1;	/* found existing file */
      }
!     else if (!(openFun & SMB_ATTR_DIRECTORY)) {
          /* don't create if not found */
          if (dscp) cm_ReleaseSCache(dscp);
          cm_ReleaseUser(userp);
***************
*** 4461,4471 ****
      }
          
      /* we don't need this any longer */
!     if (dscp) cm_ReleaseSCache(dscp);
  
      if (code) {
          /* something went wrong creating or truncating the file */
!         if (scp) cm_ReleaseSCache(scp);
          cm_ReleaseUser(userp);
          return code;
      }
--- 4715,4727 ----
      }
          
      /* we don't need this any longer */
!     if (dscp) 
!         cm_ReleaseSCache(dscp);
  
      if (code) {
          /* something went wrong creating or truncating the file */
!         if (scp) 
!             cm_ReleaseSCache(scp);
          cm_ReleaseUser(userp);
          return code;
      }
***************
*** 4485,4491 ****
      fidp->scp = scp;
          
      /* compute open mode */
!     if (openMode != 1) fidp->flags |= SMB_FID_OPENREAD;
      if (openMode == 1 || openMode == 2)
          fidp->flags |= SMB_FID_OPENWRITE;
  
--- 4741,4748 ----
      fidp->scp = scp;
          
      /* compute open mode */
!     if (openMode != 1) 
!         fidp->flags |= SMB_FID_OPENREAD;
      if (openMode == 1 || openMode == 2)
          fidp->flags |= SMB_FID_OPENWRITE;
  
***************
*** 4565,4649 ****
                        CM_SCACHESYNC_NEEDCALLBACK
  			 | CM_SCACHESYNC_GETSTATUS
  			 | CM_SCACHESYNC_LOCK);
! 	if (code) 
!             goto doneSync;
  
! 	LockType = smb_GetSMBParm(inp, 3) & 0xff;
! 	Timeout = (smb_GetSMBParm(inp, 5) << 16) + smb_GetSMBParm(inp, 4);
! 	NumberOfUnlocks = smb_GetSMBParm(inp, 6);
! 	NumberOfLocks = smb_GetSMBParm(inp, 7);
! 
! 	op = smb_GetSMBData(inp, NULL);
! 
! 	for (i=0; i<NumberOfUnlocks; i++) {
!             if (LockType & 0x10) {
!                 /* Large Files */
!                 LOffset.HighPart = *((LONG *)(op + 4));
!                 LOffset.LowPart = *((DWORD *)(op + 8));
!                 LLength.HighPart = *((LONG *)(op + 12));
!                 LLength.LowPart = *((DWORD *)(op + 16));
!                 op += 20;
!             }
!             else {
!                 /* Not Large Files */
!                 LOffset.HighPart = 0;
!                 LOffset.LowPart = *((DWORD *)(op + 2));
!                 LLength.HighPart = 0;
!                 LLength.LowPart = *((DWORD *)(op + 6));
!                 op += 10;
!             }
!             if (LargeIntegerNotEqualToZero(LOffset))
!                 continue;
!             /* Do not check length -- length check done in cm_Unlock */
  
!             code = cm_Unlock(scp, LockType, LOffset, LLength, userp, &req);
!             if (code) goto done;
! 	}       
! 
! 	for (i=0; i<NumberOfLocks; i++) {
!             if (LockType & 0x10) {
!                 /* Large Files */
!                 LOffset.HighPart = *((LONG *)(op + 4));
!                 LOffset.LowPart = *((DWORD *)(op + 8));
!                 LLength.HighPart = *((LONG *)(op + 12));
!                 LLength.LowPart = *((DWORD *)(op + 16));
!                 op += 20;
!             }
!             else {
!                 /* Not Large Files */
!                 LOffset.HighPart = 0;
!                 LOffset.LowPart = *((DWORD *)(op + 2));
!                 LLength.HighPart = 0;
!                 LLength.LowPart = *((DWORD *)(op + 6));
!                 op += 10;
!             }
!             if (LargeIntegerNotEqualToZero(LOffset))
!                 continue;
!             if (LargeIntegerLessThan(LOffset, scp->length))
!                 continue;
  
!             code = cm_Lock(scp, LockType, LOffset, LLength, Timeout,
!                             userp, &req, &lockp);
!             if (code == CM_ERROR_WOULDBLOCK && Timeout != 0) {
!                 /* Put on waiting list */
!                 waitingLock = malloc(sizeof(smb_waitingLock_t));
!                 waitingLock->vcp = vcp;
!                 smb_HoldVC(vcp);
!                 waitingLock->inp = smb_CopyPacket(inp);
!                 waitingLock->outp = smb_CopyPacket(outp);
!                 waitingLock->timeRemaining = Timeout;
!                 waitingLock->lockp = lockp;
!                 lock_ObtainWrite(&smb_globalLock);
!                 osi_QAdd((osi_queue_t **)&smb_allWaitingLocks,
!                           &waitingLock->q);
!                 osi_Wakeup((long) &smb_allWaitingLocks);
!                 lock_ReleaseWrite(&smb_globalLock);
!                 /* don't send reply immediately */
!                 outp->flags |= SMB_PACKETFLAG_NOSEND;
!             }
!             if (code) 
!                 break;
! 	}       
  
      if (code) {
          /* release any locks acquired before the failure */
--- 4822,4906 ----
                        CM_SCACHESYNC_NEEDCALLBACK
  			 | CM_SCACHESYNC_GETSTATUS
  			 | CM_SCACHESYNC_LOCK);
!     if (code) 
!         goto doneSync;
  
!     LockType = smb_GetSMBParm(inp, 3) & 0xff;
!     Timeout = (smb_GetSMBParm(inp, 5) << 16) + smb_GetSMBParm(inp, 4);
!     NumberOfUnlocks = smb_GetSMBParm(inp, 6);
!     NumberOfLocks = smb_GetSMBParm(inp, 7);
! 
!     op = smb_GetSMBData(inp, NULL);
! 
!     for (i=0; i<NumberOfUnlocks; i++) {
!         if (LockType & 0x10) {
!             /* Large Files */
!             LOffset.HighPart = *((LONG *)(op + 4));
!             LOffset.LowPart = *((DWORD *)(op + 8));
!             LLength.HighPart = *((LONG *)(op + 12));
!             LLength.LowPart = *((DWORD *)(op + 16));
!             op += 20;
!         }
!         else {
!             /* Not Large Files */
!             LOffset.HighPart = 0;
!             LOffset.LowPart = *((DWORD *)(op + 2));
!             LLength.HighPart = 0;
!             LLength.LowPart = *((DWORD *)(op + 6));
!             op += 10;
!         }
!         if (LargeIntegerNotEqualToZero(LOffset))
!             continue;
!         /* Do not check length -- length check done in cm_Unlock */
  
!         code = cm_Unlock(scp, LockType, LOffset, LLength, userp, &req);
!         if (code) goto done;
!     }       
  
!     for (i=0; i<NumberOfLocks; i++) {
!         if (LockType & 0x10) {
!             /* Large Files */
!             LOffset.HighPart = *((LONG *)(op + 4));
!             LOffset.LowPart = *((DWORD *)(op + 8));
!             LLength.HighPart = *((LONG *)(op + 12));
!             LLength.LowPart = *((DWORD *)(op + 16));
!             op += 20;
!         }
!         else {
!             /* Not Large Files */
!             LOffset.HighPart = 0;
!             LOffset.LowPart = *((DWORD *)(op + 2));
!             LLength.HighPart = 0;
!             LLength.LowPart = *((DWORD *)(op + 6));
!             op += 10;
!         }
!         if (LargeIntegerNotEqualToZero(LOffset))
!             continue;
!         if (LargeIntegerLessThan(LOffset, scp->length))
!             continue;
! 
!         code = cm_Lock(scp, LockType, LOffset, LLength, Timeout,
!                         userp, &req, &lockp);
!         if (code == CM_ERROR_WOULDBLOCK && Timeout != 0) {
!             /* Put on waiting list */
!             waitingLock = malloc(sizeof(smb_waitingLock_t));
!             waitingLock->vcp = vcp;
!             smb_HoldVC(vcp);
!             waitingLock->inp = smb_CopyPacket(inp);
!             waitingLock->outp = smb_CopyPacket(outp);
!             waitingLock->timeRemaining = Timeout;
!             waitingLock->lockp = lockp;
!             lock_ObtainWrite(&smb_globalLock);
!             osi_QAdd((osi_queue_t **)&smb_allWaitingLocks,
!                       &waitingLock->q);
!             osi_Wakeup((long) &smb_allWaitingLocks);
!             lock_ReleaseWrite(&smb_globalLock);
!             /* don't send reply immediately */
!             outp->flags |= SMB_PACKETFLAG_NOSEND;
!         }
!         if (code) 
!             break;
!     }           
  
      if (code) {
          /* release any locks acquired before the failure */
***************
*** 5016,5034 ****
      }
  
      if (baseFid == 0) {
!         baseDirp = cm_rootSCachep;
          code = smb_LookupTIDPath(vcp, ((smb_t *)inp)->tid, &tidPathp);
          if (code == CM_ERROR_TIDIPC) {
              /* Attempt to use a TID allocated for IPC.  The client
               * is probably looking for DCE RPC end points which we
!              * don't support. */
              osi_Log0(smb_logp, "NTCreateX received IPC TID");
              free(realPathp);
              cm_ReleaseUser(userp);
              return CM_ERROR_NOSUCHFILE;
          }
!     }
!     else {
          baseFidp = smb_FindFID(vcp, baseFid, 0);
          if (!baseFidp) {
              osi_Log1(smb_logp, "NTCreateX Invalid base fid [%d]", baseFid);
--- 5273,5294 ----
      }
  
      if (baseFid == 0) {
!         baseDirp = cm_data.rootSCachep;
          code = smb_LookupTIDPath(vcp, ((smb_t *)inp)->tid, &tidPathp);
          if (code == CM_ERROR_TIDIPC) {
              /* Attempt to use a TID allocated for IPC.  The client
               * is probably looking for DCE RPC end points which we
!              * don't support OR it could be looking to make a DFS
!              * referral request. 
!              */
              osi_Log0(smb_logp, "NTCreateX received IPC TID");
+ #ifndef DFS_SUPPORT
              free(realPathp);
              cm_ReleaseUser(userp);
              return CM_ERROR_NOSUCHFILE;
+ #endif /* DFS_SUPPORT */
          }
!     } else {
          baseFidp = smb_FindFID(vcp, baseFid, 0);
          if (!baseFidp) {
              osi_Log1(smb_logp, "NTCreateX Invalid base fid [%d]", baseFid);
***************
*** 5060,5065 ****
--- 5320,5336 ----
          code = cm_NameI(baseDirp, spacep->data, CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                          userp, tidPathp, &req, &dscp);
          if (code == 0) {
+ #ifdef DFS_SUPPORT
+             if (dscp->fileType == CM_SCACHETYPE_DFSLINK) {
+                 cm_ReleaseSCache(dscp);
+                 cm_ReleaseUser(userp);
+                 free(realPathp);
+                 if ( WANTS_DFS_PATHNAMES(inp) )
+                     return CM_ERROR_PATH_NOT_COVERED;
+                 else
+                     return CM_ERROR_BADSHARENAME;
+             }
+ #endif /* DFS_SUPPORT */
              code = cm_Lookup(dscp, (lastNamep)?(lastNamep+1):realPathp, CM_FLAG_FOLLOW,
                               userp, &req, &scp);
              if (code == CM_ERROR_NOSUCHFILE) {
***************
*** 5078,5083 ****
--- 5349,5365 ----
      } else {
          code = cm_NameI(baseDirp, realPathp, CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                          userp, tidPathp, &req, &scp);
+ #ifdef DFS_SUPPORT
+         if (code == 0 && scp->fileType == CM_SCACHETYPE_DFSLINK) {
+             cm_ReleaseSCache(scp);
+             cm_ReleaseUser(userp);
+             free(realPathp);
+             if ( WANTS_DFS_PATHNAMES(inp) )
+                 return CM_ERROR_PATH_NOT_COVERED;
+             else
+                 return CM_ERROR_BADSHARENAME;
+         }
+ #endif /* DFS_SUPPORT */
          /* we might have scp but not dscp */
      }
  
***************
*** 5101,5106 ****
--- 5383,5402 ----
                               CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                               userp, tidPathp, &req, &dscp);
  
+ #ifdef DFS_SUPPORT
+                 if (code == 0 && dscp->fileType == CM_SCACHETYPE_DFSLINK) {
+                     if (scp)
+                         cm_ReleaseSCache(scp);
+                     cm_ReleaseSCache(dscp);
+                     cm_ReleaseUser(userp);
+                     free(realPathp);
+                     if ( WANTS_DFS_PATHNAMES(inp) )
+                         return CM_ERROR_PATH_NOT_COVERED;
+                     else
+                         return CM_ERROR_BADSHARENAME;
+                 }
+ #endif /* DFS_SUPPORT */
+ 
                  if (code && 
                       (tp = strrchr(spacep->data,'\\')) &&
                       (createDisp == FILE_CREATE) &&
***************
*** 5248,5255 ****
          /* don't create if not found */
          if (dscp)
              cm_ReleaseSCache(dscp);
!         if (scp)
!             cm_ReleaseSCache(scp);
          cm_ReleaseUser(userp);
          free(realPathp);
          return CM_ERROR_NOSUCHFILE;
--- 5544,5551 ----
          /* don't create if not found */
          if (dscp)
              cm_ReleaseSCache(dscp);
! 		if (scp)
! 			cm_ReleaseSCache(scp);
          cm_ReleaseUser(userp);
          free(realPathp);
          return CM_ERROR_NOSUCHFILE;
***************
*** 5422,5429 ****
      /* (only applies to single component case) */
      if (realDirFlag == 1 && scp->fileType == CM_SCACHETYPE_FILE) {
          cm_ReleaseSCache(scp);
!         if (dscp)
!             cm_ReleaseSCache(dscp);
          cm_ReleaseUser(userp);
          free(realPathp);
          return CM_ERROR_NOTDIR;
--- 5718,5724 ----
      /* (only applies to single component case) */
      if (realDirFlag == 1 && scp->fileType == CM_SCACHETYPE_FILE) {
          cm_ReleaseSCache(scp);
!         cm_ReleaseSCache(dscp);
          cm_ReleaseUser(userp);
          free(realPathp);
          return CM_ERROR_NOTDIR;
***************
*** 5491,5497 ****
      return 0;
  }       
  
- 
  /*
   * A lot of stuff copied verbatim from NT Create&X to NT Tran Create.
   * Instead, ultimately, would like to use a subroutine for common code.
--- 5786,5791 ----
***************
*** 5638,5656 ****
      }
  
      if (baseFid == 0) {
!         baseDirp = cm_rootSCachep;
          code = smb_LookupTIDPath(vcp, ((smb_t *)inp)->tid, &tidPathp);
!         if(code == CM_ERROR_TIDIPC) {
!             /* Attempt to use TID allocated for IPC.  The client is
!              * probably trying to locate DCE RPC endpoints, which we
!              * don't support. */
              osi_Log0(smb_logp, "NTTranCreate received IPC TID");
              free(realPathp);
              cm_ReleaseUser(userp);
              return CM_ERROR_NOSUCHPATH;
          }
!     }
!     else {
          baseFidp = smb_FindFID(vcp, baseFid, 0);
          if (!baseFidp) {
          	osi_Log1(smb_logp, "NTTranCreate Invalid fid [%d]", baseFid);
--- 5932,5953 ----
      }
  
      if (baseFid == 0) {
!         baseDirp = cm_data.rootSCachep;
          code = smb_LookupTIDPath(vcp, ((smb_t *)inp)->tid, &tidPathp);
!         if (code == CM_ERROR_TIDIPC) {
!             /* Attempt to use a TID allocated for IPC.  The client
!              * is probably looking for DCE RPC end points which we
!              * don't support OR it could be looking to make a DFS
!              * referral request. 
!              */
              osi_Log0(smb_logp, "NTTranCreate received IPC TID");
+ #ifndef DFS_SUPPORT
              free(realPathp);
              cm_ReleaseUser(userp);
              return CM_ERROR_NOSUCHPATH;
+ #endif 
          }
!     } else {
          baseFidp = smb_FindFID(vcp, baseFid, 0);
          if (!baseFidp) {
          	osi_Log1(smb_logp, "NTTranCreate Invalid fid [%d]", baseFid);
***************
*** 5679,5684 ****
--- 5976,5992 ----
          code = cm_NameI(baseDirp, spacep->data, CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                          userp, tidPathp, &req, &dscp);
          if (code == 0) {
+ #ifdef DFS_SUPPORT
+             if (dscp->fileType == CM_SCACHETYPE_DFSLINK) {
+                 cm_ReleaseSCache(dscp);
+                 cm_ReleaseUser(userp);
+                 free(realPathp);
+                 if ( WANTS_DFS_PATHNAMES(inp) )
+                     return CM_ERROR_PATH_NOT_COVERED;
+                 else
+                     return CM_ERROR_BADSHARENAME;
+             }
+ #endif /* DFS_SUPPORT */
              code = cm_Lookup(dscp, (lastNamep)?(lastNamep+1):realPathp, CM_FLAG_FOLLOW,
                               userp, &req, &scp);
              if (code == CM_ERROR_NOSUCHFILE) {
***************
*** 5697,5713 ****
      } else {
          code = cm_NameI(baseDirp, realPathp, CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                          userp, tidPathp, &req, &scp);
      }
  
      if (code == 0) 
          foundscp = TRUE;
!     if (code != 0
!          || (fidflags & (SMB_FID_OPENDELETE | SMB_FID_OPENWRITE))) {
          /* look up parent directory */
          if ( !dscp ) {
              code = cm_NameI(baseDirp, spacep->data,
                               CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                               userp, tidPathp, &req, &dscp);
          } else
              code = 0;
          
--- 6005,6043 ----
      } else {
          code = cm_NameI(baseDirp, realPathp, CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                          userp, tidPathp, &req, &scp);
+ #ifdef DFS_SUPPORT
+         if (code == 0 && scp->fileType == CM_SCACHETYPE_DFSLINK) {
+             cm_ReleaseSCache(scp);
+             cm_ReleaseUser(userp);
+             free(realPathp);
+             if ( WANTS_DFS_PATHNAMES(inp) )
+                 return CM_ERROR_PATH_NOT_COVERED;
+             else
+                 return CM_ERROR_BADSHARENAME;
+         }
+ #endif /* DFS_SUPPORT */
      }
  
      if (code == 0) 
          foundscp = TRUE;
! 
!     if (code != 0 || (fidflags & (SMB_FID_OPENDELETE | SMB_FID_OPENWRITE))) {
          /* look up parent directory */
          if ( !dscp ) {
              code = cm_NameI(baseDirp, spacep->data,
                               CM_FLAG_FOLLOW | CM_FLAG_CASEFOLD,
                               userp, tidPathp, &req, &dscp);
+ #ifdef DFS_SUPPORT
+             if (code == 0 && dscp->fileType == CM_SCACHETYPE_DFSLINK) {
+                 cm_ReleaseSCache(dscp);
+                 cm_ReleaseUser(userp);
+                 free(realPathp);
+                 if ( WANTS_DFS_PATHNAMES(inp) )
+                     return CM_ERROR_PATH_NOT_COVERED;
+                 else
+                     return CM_ERROR_BADSHARENAME;
+             }
+ #endif /* DFS_SUPPORT */
          } else
              code = 0;
          
***************
*** 5746,5753 ****
                  return code;
              }
          }
!     }
!     else {
          if (baseFid != 0) {
              smb_ReleaseFID(baseFidp);
              baseFidp = 0;
--- 6076,6082 ----
                  return code;
              }
          }
!     } else {
          if (baseFid != 0) {
              smb_ReleaseFID(baseFidp);
              baseFidp = 0;
***************
*** 5862,5869 ****
                  }       
              }	/* lookup succeeded */
          }
!     }
!     else {
          /* create directory */
          osi_assert(dscp != NULL);
          osi_Log1(smb_logp,
--- 6191,6197 ----
                  }       
              }	/* lookup succeeded */
          }
!     } else {
          /* create directory */
          osi_assert(dscp != NULL);
          osi_Log1(smb_logp,
***************
*** 6308,6314 ****
          lock_ReleaseMutex(&dscp->mx);
  
          /* Convert to response packet */
!         ((smb_t *) watch)->reb = 0x80;
          ((smb_t *) watch)->wct = 0;
  
          /* out parms */
--- 6636,6642 ----
          lock_ReleaseMutex(&dscp->mx);
  
          /* Convert to response packet */
!         ((smb_t *) watch)->reb = SMB_FLAGS_SERVER_TO_CLIENT | SMB_FLAGS_CANONICAL_PATHNAMES;
          ((smb_t *) watch)->wct = 0;
  
          /* out parms */
***************
*** 6398,6404 ****
              ((smb_t *) watch)->errLow = 0;
              ((smb_t *) watch)->errHigh = 0;
              /* Set NT Status codes flag */
!             ((smb_t *) watch)->flg2 |= SMB_FLAGS2_ERR_STATUS;
          }
  
          smb_SendPacket(vcp, watch);
--- 6726,6732 ----
              ((smb_t *) watch)->errLow = 0;
              ((smb_t *) watch)->errHigh = 0;
              /* Set NT Status codes flag */
!             ((smb_t *) watch)->flg2 |= SMB_FLAGS2_32BIT_STATUS;
          }
  
          smb_SendPacket(vcp, watch);
***************
*** 6466,6472 ****
              ((smb_t *)watch)->reh = 0x1;
              ((smb_t *)watch)->errLow = 0;
              ((smb_t *)watch)->errHigh = 0xC0;
!             ((smb_t *)watch)->flg2 |= SMB_FLAGS2_ERR_STATUS;
              smb_SendPacket(vcp, watch);
              smb_FreePacket(watch);
              return 0;
--- 6794,6800 ----
              ((smb_t *)watch)->reh = 0x1;
              ((smb_t *)watch)->errLow = 0;
              ((smb_t *)watch)->errHigh = 0xC0;
!             ((smb_t *)watch)->flg2 |= SMB_FLAGS2_32BIT_STATUS;
              smb_SendPacket(vcp, watch);
              smb_FreePacket(watch);
              return 0;
***************
*** 6540,6546 ****
          lock_ObtainMutex(&unp->mx);
          unp->userp = cm_NewUser();
          lock_ReleaseMutex(&unp->mx);
! 		osi_Log2(smb_logp,"smb_FindCMUserByName New user name[%s] machine[%s]",osi_LogSaveString(smb_logp,usern),osi_LogSaveString(smb_logp,machine));
          osi_LogEvent("AFS smb_FindCMUserByName : New User",NULL,"name[%s] machine[%s]",usern,machine);
      }  else	{
          osi_Log2(smb_logp,"smb_FindCMUserByName Not found name[%s] machine[%s]",osi_LogSaveString(smb_logp,usern),osi_LogSaveString(smb_logp,machine));
--- 6868,6874 ----
          lock_ObtainMutex(&unp->mx);
          unp->userp = cm_NewUser();
          lock_ReleaseMutex(&unp->mx);
!         osi_Log2(smb_logp,"smb_FindCMUserByName New user name[%s] machine[%s]",osi_LogSaveString(smb_logp,usern),osi_LogSaveString(smb_logp,machine));
          osi_LogEvent("AFS smb_FindCMUserByName : New User",NULL,"name[%s] machine[%s]",usern,machine);
      }  else	{
          osi_Log2(smb_logp,"smb_FindCMUserByName Not found name[%s] machine[%s]",osi_LogSaveString(smb_logp,usern),osi_LogSaveString(smb_logp,machine));
Index: openafs/src/WINNT/afsd/smb3.h
diff -c openafs/src/WINNT/afsd/smb3.h:1.7.2.2 openafs/src/WINNT/afsd/smb3.h:1.7.2.3
*** openafs/src/WINNT/afsd/smb3.h:1.7.2.2	Mon Dec 13 09:13:10 2004
--- openafs/src/WINNT/afsd/smb3.h	Fri Mar 11 01:58:52 2005
***************
*** 12,18 ****
  
  typedef struct smb_tran2Packet {
  	osi_queue_t q;			/* queue of all packets */
! 		int com;			/* Trans or Trans2 (0x25 or 0x32) */
          int totalData;			/* total # of expected data bytes */
          int totalParms;			/* total # of expected parm bytes */
  	int oldTotalParms;		/* initial estimate of parm bytes */
--- 12,18 ----
  
  typedef struct smb_tran2Packet {
  	osi_queue_t q;			/* queue of all packets */
!         int com;			/* Trans or Trans2 (0x25 or 0x32) */
          int totalData;			/* total # of expected data bytes */
          int totalParms;			/* total # of expected parm bytes */
  	int oldTotalParms;		/* initial estimate of parm bytes */
Index: openafs/src/WINNT/afsd/smb_iocons.h
diff -c openafs/src/WINNT/afsd/smb_iocons.h:1.6 openafs/src/WINNT/afsd/smb_iocons.h:1.6.2.1
*** openafs/src/WINNT/afsd/smb_iocons.h:1.6	Fri Nov 21 02:59:45 2003
--- openafs/src/WINNT/afsd/smb_iocons.h	Fri Mar 11 01:58:52 2005
***************
*** 87,95 ****
  #define VIOC_LISTSYMLINK		0x24
  #define VIOC_DELSYMLINK			0x25
  #define VIOC_MAKESUBMOUNT		0x26
- #define VIOC_SHUTDOWN           0x27
- 
  #define VIOC_GETRXKCRYPT		0x27
  #define VIOC_SETRXKCRYPT		0x28
! #define VIOC_TRACEMEMDUMP       0x29
  #endif /*  __SMB_IOCONS_H_ENV_ */
--- 87,94 ----
  #define VIOC_LISTSYMLINK		0x24
  #define VIOC_DELSYMLINK			0x25
  #define VIOC_MAKESUBMOUNT		0x26
  #define VIOC_GETRXKCRYPT		0x27
  #define VIOC_SETRXKCRYPT		0x28
! #define VIOC_TRACEMEMDUMP               0x29
! #define VIOC_SHUTDOWN                   0x2a
  #endif /*  __SMB_IOCONS_H_ENV_ */
Index: openafs/src/WINNT/afsd/smb_ioctl.c
diff -c openafs/src/WINNT/afsd/smb_ioctl.c:1.14 openafs/src/WINNT/afsd/smb_ioctl.c:1.14.2.1
*** openafs/src/WINNT/afsd/smb_ioctl.c:1.14	Mon Jul 26 19:22:21 2004
--- openafs/src/WINNT/afsd/smb_ioctl.c	Fri Mar 11 01:58:52 2005
***************
*** 79,102 ****
  /* called to make a fid structure into an IOCTL fid structure */
  void smb_SetupIoctlFid(smb_fid_t *fidp, cm_space_t *prefix)
  {
! 	smb_ioctl_t *iop;
! 	cm_space_t *copyPrefix;
  
! 	lock_ObtainMutex(&fidp->mx);
! 	fidp->flags |= SMB_FID_IOCTL;
! 	fidp->scp = &cm_fakeSCache;
!         if (fidp->ioctlp == NULL) {
! 		iop = malloc(sizeof(*iop));
!                 memset(iop, 0, sizeof(*iop));
!                 fidp->ioctlp = iop;
! 				iop->fidp = fidp;
!         }
! 	if (prefix) {
! 		copyPrefix = cm_GetSpace();
! 		strcpy(copyPrefix->data, prefix->data);
! 		fidp->ioctlp->prefix = copyPrefix;
! 	}
! 	lock_ReleaseMutex(&fidp->mx);
  }
  
  /* called when we receive a read call, does the send of the received data if
--- 79,103 ----
  /* called to make a fid structure into an IOCTL fid structure */
  void smb_SetupIoctlFid(smb_fid_t *fidp, cm_space_t *prefix)
  {
!     smb_ioctl_t *iop;
!     cm_space_t *copyPrefix;
  
!     lock_ObtainMutex(&fidp->mx);
!     fidp->flags |= SMB_FID_IOCTL;
!     fidp->scp = &cm_data.fakeSCache;
!     cm_HoldSCache(fidp->scp);
!     if (fidp->ioctlp == NULL) {
!         iop = malloc(sizeof(*iop));
!         memset(iop, 0, sizeof(*iop));
!         fidp->ioctlp = iop;
!         iop->fidp = fidp;
!     }
!     if (prefix) {
!         copyPrefix = cm_GetSpace();
!         strcpy(copyPrefix->data, prefix->data);
!         fidp->ioctlp->prefix = copyPrefix;
!     }
!     lock_ReleaseMutex(&fidp->mx);
  }
  
  /* called when we receive a read call, does the send of the received data if
***************
*** 105,144 ****
   */
  smb_IoctlPrepareRead(smb_fid_t *fidp, smb_ioctl_t *ioctlp, cm_user_t *userp)
  {
! 	long opcode;
!         smb_ioctlProc_t *procp;
!         long code;
  
! 	if (ioctlp->flags & SMB_IOCTLFLAG_DATAIN) {
! 		ioctlp->flags &= ~SMB_IOCTLFLAG_DATAIN;
!                 
!                 /* do the call now, or fail if we didn't get an opcode, or
!                  * enough of an opcode.
!                  */
!                 if (ioctlp->inCopied < sizeof(long)) return CM_ERROR_INVAL;
!                 memcpy(&opcode, ioctlp->inDatap, sizeof(long));
!                 ioctlp->inDatap += sizeof(long);
! 
!                 osi_Log1(afsd_logp, "Ioctl opcode %d", opcode);
! 
! 		/* check for opcode out of bounds */
!                 if (opcode < 0 || opcode >= SMB_IOCTL_MAXPROCS)
!                 	return CM_ERROR_TOOBIG;
! 		
!                 /* check for no such proc */
!                 procp = smb_ioctlProcsp[opcode];
!                 if (procp == NULL) return CM_ERROR_BADOP;
! 
! 		/* otherwise, make the call */
! 		ioctlp->outDatap += sizeof(long);	/* reserve room for return code */
!                 code = (*procp)(ioctlp, userp);
  
! 		osi_Log1(afsd_logp, "Ioctl return code %d", code);
  
! 		/* copy in return code */
!                 memcpy(ioctlp->outAllocp, &code, sizeof(long));
!         }
!         return 0;
  }
  
  /* called when we receive a write call.  If this is the first write call after
--- 106,147 ----
   */
  smb_IoctlPrepareRead(smb_fid_t *fidp, smb_ioctl_t *ioctlp, cm_user_t *userp)
  {
!     long opcode;
!     smb_ioctlProc_t *procp;
!     long code;
  
!     if (ioctlp->flags & SMB_IOCTLFLAG_DATAIN) {
!         ioctlp->flags &= ~SMB_IOCTLFLAG_DATAIN;
  
!         /* do the call now, or fail if we didn't get an opcode, or
!          * enough of an opcode.
!          */
!         if (ioctlp->inCopied < sizeof(long)) 
!             return CM_ERROR_INVAL;
!         memcpy(&opcode, ioctlp->inDatap, sizeof(long));
!         ioctlp->inDatap += sizeof(long);
! 
!         osi_Log1(afsd_logp, "Ioctl opcode 0x%x", opcode);
! 
!         /* check for opcode out of bounds */
!         if (opcode < 0 || opcode >= SMB_IOCTL_MAXPROCS)
!             return CM_ERROR_TOOBIG;
! 
!         /* check for no such proc */
!         procp = smb_ioctlProcsp[opcode];
!         if (procp == NULL) 
!             return CM_ERROR_BADOP;
! 
!         /* otherwise, make the call */
!         ioctlp->outDatap += sizeof(long);	/* reserve room for return code */
!         code = (*procp)(ioctlp, userp);
  
!         osi_Log1(afsd_logp, "Ioctl return code 0x%x", code);
! 
!         /* copy in return code */
!         memcpy(ioctlp->outAllocp, &code, sizeof(long));
!     }
!     return 0;
  }
  
  /* called when we receive a write call.  If this is the first write call after
Index: openafs/src/WINNT/afslegal/lang/ja_JP/afslegal.rc
diff -c openafs/src/WINNT/afslegal/lang/ja_JP/afslegal.rc:1.3 openafs/src/WINNT/afslegal/lang/ja_JP/afslegal.rc:1.3.2.1
*** openafs/src/WINNT/afslegal/lang/ja_JP/afslegal.rc:1.3	Thu Jun 19 15:00:50 2003
--- openafs/src/WINNT/afslegal/lang/ja_JP/afslegal.rc	Fri Mar 11 01:58:54 2005
***************
*** 7,132 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #ifndef APSTUDIO_INVOKED
! #define AFS_VERINFO_FILE_DESCRIPTION "AFS サーバー始動メッセージ"
  #define AFS_VERINFO_NAME "afslegal"
  #define AFS_VERINFO_FILENAME "afslegal.exe"
  #define AFS_VERINFO_LANG_CODE 0x411
  #define AFS_VERINFO_CHARSET 932
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! #endif // APSTUDIO_INVOKED
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
! #ifdef _WIN32
! LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_LAWYER DIALOG DISCARDABLE  0, 0, 299, 120
! STYLE DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS サーバー"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "(このテキストは実行時に設定されます)",IDC_MESSAGE,7,22,285,91
!     CTEXT           "U.S. Government Restricted Rights ",IDC_TITLE,7,7,285,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_LAWYER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 292
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 113
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include <windows.h>\r\n"
!     "#ifndef APSTUDIO_INVOKED\r\n"
!     "#define AFS_VERINFO_FILE_DESCRIPTION ""AFS サーバー始動メッセージ""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "#endif // APSTUDIO_INVOKED\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_MESSAGE_1           "If you are licensing the Software on behalf of the U.S. Government (""Government""), the following provisions apply to you. If the Software is supplied to the Department of Defense (""DoD""), +"
!     IDS_MESSAGE_2           "it is classified as ""Commercial Computer Software"" under paragraph 252.227-7014 of the DoD Supplement to the Federal Acquisition Regulations (""DFARS"") (or any successor regulations) +"
!     IDS_MESSAGE_3           "and the Government is acquiring only the license rights granted herein (the license rights customarily provided to non-Government users). If the Software is supplied to any unit or agency +"
!     IDS_MESSAGE_4           "of the Government other than DoD, it is classified as ""Restricted Computer Software"" and the Government's rights in the Software are defined in paragraph 52.227-19 of the Federal Acquisition +"
!     IDS_MESSAGE_5           "Regulations (""FAR"") (or any successor regulations) or, in the case of NASA, in paragraph 18.52.227-86 of the NASA Supplement in the FAR (or any successor regulations)."
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 7,132 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #ifndef APSTUDIO_INVOKED
! #define AFS_VERINFO_FILE_DESCRIPTION "AFS サーバー始動メッセージ"
  #define AFS_VERINFO_NAME "afslegal"
  #define AFS_VERINFO_FILENAME "afslegal.exe"
  #define AFS_VERINFO_LANG_CODE 0x411
  #define AFS_VERINFO_CHARSET 932
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! #endif // APSTUDIO_INVOKED
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
! #ifdef _WIN32
! LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_LAWYER DIALOG DISCARDABLE  0, 0, 299, 120
! STYLE DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS サーバー"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "(このテキストは実行時に設定されます)",IDC_MESSAGE,7,22,285,91
!     CTEXT           "U.S. Government Restricted Rights ",IDC_TITLE,7,7,285,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_LAWYER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 292
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 113
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include <windows.h>\r\n"
!     "#ifndef APSTUDIO_INVOKED\r\n"
!     "#define AFS_VERINFO_FILE_DESCRIPTION ""AFS サーバー始動メッセージ""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "#endif // APSTUDIO_INVOKED\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_MESSAGE_1           "If you are licensing the Software on behalf of the U.S. Government (""Government""), the following provisions apply to you. If the Software is supplied to the Department of Defense (""DoD""), +"
!     IDS_MESSAGE_2           "it is classified as ""Commercial Computer Software"" under paragraph 252.227-7014 of the DoD Supplement to the Federal Acquisition Regulations (""DFARS"") (or any successor regulations) +"
!     IDS_MESSAGE_3           "and the Government is acquiring only the license rights granted herein (the license rights customarily provided to non-Government users). If the Software is supplied to any unit or agency +"
!     IDS_MESSAGE_4           "of the Government other than DoD, it is classified as ""Restricted Computer Software"" and the Government's rights in the Software are defined in paragraph 52.227-19 of the Federal Acquisition +"
!     IDS_MESSAGE_5           "Regulations (""FAR"") (or any successor regulations) or, in the case of NASA, in paragraph 18.52.227-86 of the NASA Supplement in the FAR (or any successor regulations)."
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
Index: openafs/src/WINNT/afslegal/lang/ko_KR/afslegal.rc
diff -c openafs/src/WINNT/afslegal/lang/ko_KR/afslegal.rc:1.3 openafs/src/WINNT/afslegal/lang/ko_KR/afslegal.rc:1.3.2.1
*** openafs/src/WINNT/afslegal/lang/ko_KR/afslegal.rc:1.3	Thu Jun 19 15:00:51 2003
--- openafs/src/WINNT/afslegal/lang/ko_KR/afslegal.rc	Fri Mar 11 01:58:56 2005
***************
*** 7,132 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #ifndef APSTUDIO_INVOKED
! #define AFS_VERINFO_FILE_DESCRIPTION "AFS ｼｭｹ ｽﾃｵｿ ｸﾞｽﾃﾁ"
  #define AFS_VERINFO_NAME "afslegal"
  #define AFS_VERINFO_FILENAME "afslegal.exe"
  #define AFS_VERINFO_LANG_CODE 0x412
  #define AFS_VERINFO_CHARSET 949
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! #endif // APSTUDIO_INVOKED
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // Korean resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
! #ifdef _WIN32
! LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_LAWYER DIALOG DISCARDABLE  0, 0, 299, 120
! STYLE DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS ｼｭｹ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     LTEXT           "(ﾀﾌ ﾅﾘｽｺﾆｮｴﾂ ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾋｴﾏｴﾙ)",IDC_MESSAGE,7,22,285,
!                     91
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_LAWYER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 292
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 113
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include <windows.h>\r\n"
!     "#ifndef APSTUDIO_INVOKED\r\n"
!     "#define AFS_VERINFO_FILE_DESCRIPTION ""AFS ｼｭｹ ｽﾃｵｿ ｸﾞｽﾃﾁ""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "#endif // APSTUDIO_INVOKED\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_MESSAGE_1           "If you are licensing the Software on behalf of the U.S. Government (""Government""), the following provisions apply to you. If the Software is supplied to the Department of Defense (""DoD""), +"
!     IDS_MESSAGE_2           "it is classified as ""Commercial Computer Software"" under paragraph 252.227-7014 of the DoD Supplement to the Federal Acquisition Regulations (""DFARS"") (or any successor regulations) +"
!     IDS_MESSAGE_3           "and the Government is acquiring only the license rights granted herein (the license rights customarily provided to non-Government users). If the Software is supplied to any unit or agency +"
!     IDS_MESSAGE_4           "of the Government other than DoD, it is classified as ""Restricted Computer Software"" and the Government's rights in the Software are defined in paragraph 52.227-19 of the Federal Acquisition +"
!     IDS_MESSAGE_5           "Regulations (""FAR"") (or any successor regulations) or, in the case of NASA, in paragraph 18.52.227-86 of the NASA Supplement in the FAR (or any successor regulations)."
! END
! 
! #endif    // Korean resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 7,132 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #ifndef APSTUDIO_INVOKED
! #define AFS_VERINFO_FILE_DESCRIPTION "AFS ｼｭｹ ｽﾃｵｿ ｸﾞｽﾃﾁ"
  #define AFS_VERINFO_NAME "afslegal"
  #define AFS_VERINFO_FILENAME "afslegal.exe"
  #define AFS_VERINFO_LANG_CODE 0x412
  #define AFS_VERINFO_CHARSET 949
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! #endif // APSTUDIO_INVOKED
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // Korean resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
! #ifdef _WIN32
! LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_LAWYER DIALOG DISCARDABLE  0, 0, 299, 120
! STYLE DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS ｼｭｹ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     LTEXT           "(ﾀﾌ ﾅﾘｽｺﾆｮｴﾂ ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾋｴﾏｴﾙ)",IDC_MESSAGE,7,22,285,
!                     91
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_LAWYER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 292
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 113
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include <windows.h>\r\n"
!     "#ifndef APSTUDIO_INVOKED\r\n"
!     "#define AFS_VERINFO_FILE_DESCRIPTION ""AFS ｼｭｹ ｽﾃｵｿ ｸﾞｽﾃﾁ""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "#endif // APSTUDIO_INVOKED\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_MESSAGE_1           "If you are licensing the Software on behalf of the U.S. Government (""Government""), the following provisions apply to you. If the Software is supplied to the Department of Defense (""DoD""), +"
!     IDS_MESSAGE_2           "it is classified as ""Commercial Computer Software"" under paragraph 252.227-7014 of the DoD Supplement to the Federal Acquisition Regulations (""DFARS"") (or any successor regulations) +"
!     IDS_MESSAGE_3           "and the Government is acquiring only the license rights granted herein (the license rights customarily provided to non-Government users). If the Software is supplied to any unit or agency +"
!     IDS_MESSAGE_4           "of the Government other than DoD, it is classified as ""Restricted Computer Software"" and the Government's rights in the Software are defined in paragraph 52.227-19 of the Federal Acquisition +"
!     IDS_MESSAGE_5           "Regulations (""FAR"") (or any successor regulations) or, in the case of NASA, in paragraph 18.52.227-86 of the NASA Supplement in the FAR (or any successor regulations)."
! END
! 
! #endif    // Korean resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
Index: openafs/src/WINNT/afsreg/NTMakefile
diff -c openafs/src/WINNT/afsreg/NTMakefile:1.6 openafs/src/WINNT/afsreg/NTMakefile:1.6.2.1
*** openafs/src/WINNT/afsreg/NTMakefile:1.6	Fri Nov 21 02:59:47 2003
--- openafs/src/WINNT/afsreg/NTMakefile	Fri Mar 11 01:58:59 2005
***************
*** 27,33 ****
      $(C2OBJ) $**
  
  $(LIBFILE): $(LIBOBJS)
! 	$(LIBARCH)
  
  install_headers: $(INCFILES)
  
--- 27,33 ----
      $(C2OBJ) $**
  
  $(LIBFILE): $(LIBOBJS)
! 	$(LIBARCH) Iphlpapi.lib
  
  install_headers: $(INCFILES)
  
Index: openafs/src/WINNT/afsreg/afsreg.h
diff -c openafs/src/WINNT/afsreg/afsreg.h:1.3 openafs/src/WINNT/afsreg/afsreg.h:1.3.2.1
*** openafs/src/WINNT/afsreg/afsreg.h:1.3	Wed Jul 21 10:06:12 2004
--- openafs/src/WINNT/afsreg/afsreg.h	Fri Mar 11 01:58:59 2005
***************
*** 66,73 ****
   *                                   EVENTLOG_INFORMATION_TYPE>
   */
  
! #define AFSREG_APPLOG_KEY \
! "HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\EventLog\\Application"
  
  /* AFS event source subkey and subkey values -- client and server services */
  #define AFSREG_SVR_APPLOG_SUBKEY         "AFS Service"
--- 66,74 ----
   *                                   EVENTLOG_INFORMATION_TYPE>
   */
  
! #define AFSREG_APPLOG_SUBKEY \
!        "System\\CurrentControlSet\\Services\\EventLog\\Application"
! #define AFSREG_APPLOG_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_APPLOG_SUBKEY
  
  /* AFS event source subkey and subkey values -- client and server services */
  #define AFSREG_SVR_APPLOG_SUBKEY         "AFS Service"
***************
*** 88,97 ****
   *         PatchLevel:REG_DWORD:<patch level>
   */
  
! #define AFSREG_SVR_SW_KEY \
! "HKEY_LOCAL_MACHINE\\Software\\TransarcCorporation\\" AFSREG_SVR_SW_NAME
  
  #define AFSREG_SVR_SW_VERSION_KEY  AFSREG_SVR_SW_KEY "\\CurrentVersion"
  
  /* AFSREG_SVR_SW_VERSION_KEY values */
  #define AFSREG_SVR_SW_VERSION_DIR_VALUE   "PathName"
--- 89,100 ----
   *         PatchLevel:REG_DWORD:<patch level>
   */
  
! #define AFSREG_SVR_SW_SUBKEY \
!      "Software\\TransarcCorporation\\" AFSREG_SVR_SW_NAME
! #define AFSREG_SVR_SW_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_SVR_SW_SUBKEY
  
  #define AFSREG_SVR_SW_VERSION_KEY  AFSREG_SVR_SW_KEY "\\CurrentVersion"
+ #define AFSREG_SVR_SW_VERSION_SUBKEY  AFSREG_SVR_SW_SUBKEY "\\CurrentVersion"
  
  /* AFSREG_SVR_SW_VERSION_KEY values */
  #define AFSREG_SVR_SW_VERSION_DIR_VALUE   "PathName"
***************
*** 109,118 ****
   *         PatchLevel:REG_DWORD:<patch level>
   */
  
! #define AFSREG_CLT_SW_KEY \
! "HKEY_LOCAL_MACHINE\\Software\\TransarcCorporation\\" AFSREG_CLT_SW_NAME
  
  #define AFSREG_CLT_SW_VERSION_KEY  AFSREG_CLT_SW_KEY "\\CurrentVersion"
  
  /* AFSREG_CLT_SW_VERSION_KEY values */
  #define AFSREG_CLT_SW_VERSION_DIR_VALUE   "PathName"
--- 112,123 ----
   *         PatchLevel:REG_DWORD:<patch level>
   */
  
! #define AFSREG_CLT_SW_SUBKEY \
!     "Software\\TransarcCorporation\\" AFSREG_CLT_SW_NAME
! #define AFSREG_CLT_SW_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_CLT_SW_SUBKEY
  
  #define AFSREG_CLT_SW_VERSION_KEY  AFSREG_CLT_SW_KEY "\\CurrentVersion"
+ #define AFSREG_CLT_SW_VERSION_SUBKEY  AFSREG_CLT_SW_SUBKEY "\\CurrentVersion"
  
  /* AFSREG_CLT_SW_VERSION_KEY values */
  #define AFSREG_CLT_SW_VERSION_DIR_VALUE   "PathName"
***************
*** 137,145 ****
  #define AFSREG_SVR_SVC_DISPLAYNAME_DATA  "IBM AFS Server"
  #define AFSREG_SVR_SVC_IMAGENAME_DATA "bosctlsvc.exe"
  
! 
! #define AFSREG_SVR_SVC_KEY \
! "HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\" AFSREG_SVR_SVC_NAME
  
  #define AFSREG_SVR_SVC_AFSTAB_KEY   AFSREG_SVR_SVC_KEY "\\Afstab"
  
--- 142,149 ----
  #define AFSREG_SVR_SVC_DISPLAYNAME_DATA  "IBM AFS Server"
  #define AFSREG_SVR_SVC_IMAGENAME_DATA "bosctlsvc.exe"
  
! #define AFSREG_SVR_SVC_SUBKEY "System\\CurrentControlSet\\Services\\" AFSREG_SVR_SVC_NAME
! #define AFSREG_SVR_SVC_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_SVR_SVC_SUBKEY
  
  #define AFSREG_SVR_SVC_AFSTAB_KEY   AFSREG_SVR_SVC_KEY "\\Afstab"
  
***************
*** 159,176 ****
  #define AFSREG_CLT_SVC_DISPLAYNAME_DATA  "IBM AFS Client"
  #define AFSREG_CLT_SVC_IMAGENAME_DATA "afsd_service.exe"
  
! 
! #define AFSREG_CLT_SVC_KEY \
! "HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\" AFSREG_CLT_SVC_NAME
  
  #define AFSREG_CLT_SVC_PARAM_KEY   AFSREG_CLT_SVC_KEY "\\Parameters"
  
  /* AFSREG_CLT_SVC_PARAM_KEY values */
  #define AFSREG_CLT_SVC_PARAM_CELL_VALUE      "Cell"
  
! #define AFSREG_CLT_OPENAFS_KEY "HKEY_LOCAL_MACHINE\\Software\\OpenAFS\\Client"
  #define AFSREG_CLT_OPENAFS_CELLSERVDB_DIR_VALUE  "CellServDBDir"
  
  
  /* Extended (alternative) versions of registry access functions */
  
--- 163,186 ----
  #define AFSREG_CLT_SVC_DISPLAYNAME_DATA  "IBM AFS Client"
  #define AFSREG_CLT_SVC_IMAGENAME_DATA "afsd_service.exe"
  
! #define AFSREG_CLT_SVC_SUBKEY "System\\CurrentControlSet\\Services\\" AFSREG_CLT_SVC_NAME
! #define AFSREG_CLT_SVC_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_CLT_SVC_SUBKEY
  
  #define AFSREG_CLT_SVC_PARAM_KEY   AFSREG_CLT_SVC_KEY "\\Parameters"
+ #define AFSREG_CLT_SVC_PARAM_SUBKEY   AFSREG_CLT_SVC_SUBKEY "\\Parameters"
+ #define AFSREG_CLT_SVC_PROVIDER_KEY AFSREG_CLT_SVC_KEY "\\NetworkProvider"
+ #define AFSREG_CLT_SVC_PROVIDER_SUBKEY AFSREG_CLT_SVC_SUBKEY "\\NetworkProvider"
  
  /* AFSREG_CLT_SVC_PARAM_KEY values */
  #define AFSREG_CLT_SVC_PARAM_CELL_VALUE      "Cell"
  
! #define AFSREG_CLT_OPENAFS_SUBKEY "Software\\OpenAFS\\Client"
! #define AFSREG_CLT_OPENAFS_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_CLT_OPENAFS_SUBKEY
  #define AFSREG_CLT_OPENAFS_CELLSERVDB_DIR_VALUE  "CellServDBDir"
  
+ #define AFSREG_USER_OPENAFS_SUBKEY "Software\\OpenAFS\\Client"
+ #define AFSREG_USER_OPENAFS_KEY "HKEY_CURRENT_USER" AFSREG_USER_OPENAFS_SUBKEY
+ 
  
  /* Extended (alternative) versions of registry access functions */
  
Index: openafs/src/WINNT/afsreg/syscfg.c
diff -c openafs/src/WINNT/afsreg/syscfg.c:1.2 openafs/src/WINNT/afsreg/syscfg.c:1.2.20.1
*** openafs/src/WINNT/afsreg/syscfg.c:1.2	Sat Nov  4 05:01:48 2000
--- openafs/src/WINNT/afsreg/syscfg.c	Fri Mar 11 01:58:59 2005
***************
*** 9,31 ****
  
  /* Functions for accessing NT system configuration information. */
  
- #include <afs/param.h>
- #include <afs/stds.h>
- 
  #include <windows.h>
- #include <stddef.h>
  #include <stdlib.h>
- #include <stdio.h>
  #include <string.h>
  #include <winsock2.h>
  
  #include "afsreg.h"
  #include "syscfg.h"
  
! static int GetInterfaceList(HKEY skey, char **list);
! static char *GetNextInterface(char *iflist);
! static int GetIP(HKEY skey, char *ifname, int *addr, int *mask);
! 
  
  /* syscfg_GetIFInfo
   *
--- 9,26 ----
  
  /* Functions for accessing NT system configuration information. */
  
  #include <windows.h>
  #include <stdlib.h>
  #include <string.h>
  #include <winsock2.h>
+ #include <iphlpapi.h>
+ #include <iptypes.h>
+ #include <ipifcons.h>
  
  #include "afsreg.h"
  #include "syscfg.h"
  
! static int IsLoopback(char * guid);
  
  /* syscfg_GetIFInfo
   *
***************
*** 48,53 ****
--- 43,255 ----
  
  int syscfg_GetIFInfo(int *count, int *addrs, int *masks, int *mtus, int *flags)
  {
+     PMIB_IPADDRTABLE pIpAddrTable = NULL;
+     ULONG            dwSize;
+     DWORD            code;
+     DWORD            index;
+     DWORD            validAddrs = 0;
+ 
+     int maxCount = *count;
+     int nConfig = 0;
+     PIP_ADAPTER_ADDRESSES pAddresses, cAddress;
+     PMIB_IPADDRTABLE pIpTbl;
+     ULONG outBufLen = 0;
+     DWORD dwRetVal = 0;
+     int n = 0;
+     DWORD i;
+ 
+     HMODULE hIpHlp;
+     DWORD (WINAPI *pGetAdaptersAddresses)(ULONG, DWORD, PVOID, 
+                                           PIP_ADAPTER_ADDRESSES, PULONG) = 0;
+ 
+     hIpHlp = LoadLibrary("iphlpapi");
+     if (hIpHlp != NULL) {
+         (FARPROC) pGetAdaptersAddresses = GetProcAddress(hIpHlp, "GetAdaptersAddressess");
+         if (pGetAdaptersAddresses == NULL)
+             FreeLibrary(hIpHlp);
+     }
+ 
+     if (pGetAdaptersAddresses == NULL)
+         return syscfg_GetIFInfo_2000(count, addrs, masks, mtus, flags);
+ 
+     /* first pass to get the required size of the IP table */
+     pIpTbl = (PMIB_IPADDRTABLE) malloc(sizeof(MIB_IPADDRTABLE));
+     outBufLen = sizeof(MIB_IPADDRTABLE);
+     
+     dwRetVal = GetIpAddrTable(pIpTbl, &outBufLen, FALSE);
+     if (dwRetVal != ERROR_INSUFFICIENT_BUFFER) {
+         /* this should have failed with an insufficient buffer because we
+            didn't give any space to place the IP addresses */
+         free(pIpTbl);
+         *count = 0;
+         nConfig = -1;
+         goto done;
+     }
+     
+     /* second pass to get the actual data */
+     free(pIpTbl);
+     pIpTbl = (PMIB_IPADDRTABLE) malloc(outBufLen);
+     
+     dwRetVal = GetIpAddrTable(pIpTbl, &outBufLen, FALSE);
+     if (dwRetVal != NO_ERROR) {
+         free(pIpTbl);
+         *count = 0;
+         nConfig = -1;
+         goto done;
+     }
+     
+     pAddresses = (IP_ADAPTER_ADDRESSES*) malloc(sizeof(IP_ADAPTER_ADDRESSES));
+     
+     /* first call gets required buffer size */
+     if (pGetAdaptersAddresses(AF_INET, 
+                               0, 
+                               NULL, 
+                               pAddresses, 
+                               &outBufLen) == ERROR_BUFFER_OVERFLOW) 
+     {
+         free(pAddresses);
+         pAddresses = (IP_ADAPTER_ADDRESSES*) malloc(outBufLen);
+     } else {
+         free(pIpTbl);
+         *count = 0;
+         nConfig = -1;
+         goto done;
+     }
+     
+     /* second call to get the actual data */
+     if ((dwRetVal = pGetAdaptersAddresses(AF_INET, 
+                                           0, 
+                                           NULL, 
+                                           pAddresses, 
+                                           &outBufLen)) == NO_ERROR) 
+     {
+         /* we have a list of addresses.  go through them and figure out
+            the IP addresses */
+         for (cAddress = pAddresses; cAddress; cAddress = cAddress->Next) {
+             
+             /* skip software loopback adapters */
+             if (cAddress->IfType == IF_TYPE_SOFTWARE_LOOPBACK)
+                 continue;
+             
+             /* also skip interfaces that are not up */
+             if (cAddress->OperStatus != 1)
+                 continue;
+             
+             /* starting with the AdapterName, which is actually the adapter
+                instance GUID, check if this is a MS loopback device */
+             if (IsLoopback(cAddress->AdapterName))
+                 continue;
+             
+             /* ok. looks good.  Now fish out all the addresses from the
+                address table corresponding to the interface, and add them
+                to the list */
+             for (i=0;i<pIpTbl->dwNumEntries;i++) {
+                 if (pIpTbl->table[i].dwIndex == cAddress->IfIndex)
+                 {
+                     if (n < maxCount) {
+                         addrs[n] = ntohl(pIpTbl->table[i].dwAddr);
+                         masks[n] = ntohl(pIpTbl->table[i].dwMask);
+                         mtus[n] = cAddress->Mtu;
+                         flags[n] = 0;
+                         n++;
+                     }
+                     nConfig++;
+                 }
+             }
+         }
+         
+         free(pAddresses);
+         free(pIpTbl);
+         
+         *count = n;
+     } else { 
+         /* again. this is bad */
+         free(pAddresses);
+         free(pIpTbl);
+         *count = 0;
+         nConfig = -1;
+     }
+ 
+   done:
+     CloseHandle(hIpHlp);
+     return nConfig;
+ }
+ 
+ static int IsLoopback(char * guid)
+ {
+     int isloopback = FALSE;
+  
+     HKEY hkNet = NULL;
+     HKEY hkDev = NULL;
+     HKEY hkDevConn = NULL;
+     HKEY hkEnum = NULL;
+     HKEY hkAdapter = NULL;
+     
+     char pnpIns[MAX_PATH];
+     char hwId[MAX_PATH];
+     char service[MAX_PATH];
+     
+     DWORD size;
+     
+     /* Open the network adapters key */
+     if (FAILED(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Network\\{4D36E972-E325-11CE-BFC1-08002BE10318}", 0, KEY_READ, &hkNet)))
+         goto _exit;
+     
+     /* open the guid key */
+     if (FAILED(RegOpenKeyEx(hkNet, guid, 0, KEY_READ, &hkDev)))
+         goto _exit;
+     
+     /* then the connection */
+     if (FAILED(RegOpenKeyEx(hkDev, "Connection", 0, KEY_READ, &hkDevConn)))
+         goto _exit;
+     
+     /* and find out the plug-n-play instance ID */
+     size = MAX_PATH;
+     if (FAILED(RegQueryValueEx(hkDevConn, "PnpInstanceID", NULL, NULL, pnpIns, &size)))
+         goto _exit;
+     
+     /* now look in the device ENUM */
+     if (FAILED(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Enum", 0, KEY_READ, &hkEnum)))
+         goto _exit;
+     
+     /* for the instance that we found above */
+     if (FAILED(RegOpenKeyEx(hkEnum, pnpIns, 0, KEY_READ, &hkAdapter)))
+         goto _exit;
+     
+     /* and fetch the harware ID */
+     size = MAX_PATH;
+     if (FAILED(RegQueryValueEx(hkAdapter, "HardwareID", NULL, NULL, hwId, &size)))
+         goto _exit;
+     
+     size = MAX_PATH;
+     if (FAILED(RegQueryValueEx(hkAdapter, "Service", NULL, NULL, service, &size)))
+         goto _exit;
+     
+     /* and see if it is the loopback adapter */
+     if (!stricmp(hwId, "*msloop") || !stricmp(service, "msloop"))
+         isloopback = TRUE;
+     
+   _exit:
+     if (hkAdapter)
+         RegCloseKey(hkAdapter);
+     if (hkEnum)
+         RegCloseKey(hkEnum);
+     if (hkDevConn)
+         RegCloseKey(hkDevConn);
+     if (hkDev)
+         RegCloseKey(hkDev);
+     if (hkNet)
+         RegCloseKey(hkNet);
+  
+     return isloopback;
+ }
+ 
+ static int GetInterfaceList(HKEY skey, char **list);
+ static char *GetNextInterface(char *iflist);
+ static int GetIP(HKEY skey, char *ifname, int *addr, int *mask);
+ 
+ int syscfg_GetIFInfo_2000(int *count, int *addrs, int *masks, int *mtus, int *flags)
+ {
      int maxCount = *count;
      char *IFListBase = NULL;
      char *IFList, *ifname;
***************
*** 67,75 ****
      n = 0;
  
      while ((n < maxCount) && (ifname = GetNextInterface(IFList))) {
! 	if (GetIP(skey, ifname, &addrs[n], &masks[n]) == 0) {
! 	    n++ ;
! 	}
  	IFList = ifname;
      }
  
--- 269,279 ----
      n = 0;
  
      while ((n < maxCount) && (ifname = GetNextInterface(IFList))) {
! 	if (!IsLoopback(ifname) && GetIP(skey, ifname, &addrs[n], &masks[n]) == 0 && addrs[n] != 0) {
! 	    n++;
! 	} else {
!             maxCount--;
!         }
  	IFList = ifname;
      }
  
***************
*** 146,152 ****
  {
      char *ifname;
  
!     /* interface substrings are assumed to be of form \Device\<adapter name> */
      ifname = strrchr(iflist, '\\');
  
      if (!ifname) {
--- 350,358 ----
  {
      char *ifname;
  
!     /* interface substrings are assumed to be of form \Device\<adapter name> 
!      * \Tcpip\Parameters\Interfaces\<adapter name>
!      */
      ifname = strrchr(iflist, '\\');
  
      if (!ifname) {
***************
*** 180,185 ****
--- 386,394 ----
      char *ipStr = NULL;
      char *snMask = NULL;
      DWORD valType;
+     DWORD dwDHCP;
+     DWORD dwLease;
+     DWORD dwSize;
  
      len = strlen(ifname) + 1 + sizeof(AFSREG_IPSRV_ADAPTER_PARAM_SUBKEY);
      s = malloc(len);
***************
*** 194,208 ****
      if (status)
  	return -1;
  
!     status = RegQueryValueAlt(key, AFSREG_IPSRV_ADAPTER_PARAM_ADDR_VALUE,
! 			      &valType, &ipStr, NULL);
!     if (status || (valType != REG_SZ && valType != REG_MULTI_SZ)) {
! 	if (ipStr) free(ipStr);
! 	(void) RegCloseKey(key);
! 	return -1;
!     }
  
-     if (*ipStr != '0') {
  	status = RegQueryValueAlt(key, AFSREG_IPSRV_ADAPTER_PARAM_MASK_VALUE,
  				  &valType, &snMask, NULL);
  	if (status || (valType != REG_SZ && valType != REG_MULTI_SZ)) {
--- 403,423 ----
      if (status)
  	return -1;
  
!     dwSize = sizeof(DWORD);
!     status = RegQueryValueEx(key, "EnableDHCP", NULL,
! 			     &valType, &dwDHCP, &dwSize);
!     if (status || (valType != REG_DWORD))
!         dwDHCP = 0;
! 
!     if (dwDHCP == 0) {
!         status = RegQueryValueAlt(key, AFSREG_IPSRV_ADAPTER_PARAM_ADDR_VALUE,
!                                   &valType, &ipStr, NULL);
!         if (status || (valType != REG_SZ && valType != REG_MULTI_SZ)) {
!             if (ipStr) free(ipStr);
!             (void) RegCloseKey(key);
!             return -1;
!         }
  
  	status = RegQueryValueAlt(key, AFSREG_IPSRV_ADAPTER_PARAM_MASK_VALUE,
  				  &valType, &snMask, NULL);
  	if (status || (valType != REG_SZ && valType != REG_MULTI_SZ)) {
***************
*** 211,220 ****
  	}
      } else {
  	/* adapter configured via DHCP; address/mask in alternate values */
! 	free(ipStr);
! 	ipStr = NULL;
  
! 	status = RegQueryValueAlt(key,
  				  AFSREG_IPSRV_ADAPTER_PARAM_DHCPADDR_VALUE,
  				  &valType, &ipStr, NULL);
  
--- 426,440 ----
  	}
      } else {
  	/* adapter configured via DHCP; address/mask in alternate values */
!         dwSize = sizeof(DWORD);
!         status = RegQueryValueEx(key, "Lease", NULL,
!                                  &valType, &dwLease, &dwSize);
!         if (status || (valType != REG_DWORD) || dwLease == 0) {
!             (void) RegCloseKey(key);
!             return -1;
!         }
  
!         status = RegQueryValueAlt(key,
  				  AFSREG_IPSRV_ADAPTER_PARAM_DHCPADDR_VALUE,
  				  &valType, &ipStr, NULL);
  
***************
*** 251,253 ****
--- 471,474 ----
  
      return 0;
  }
+ 
Index: openafs/src/WINNT/afssvrcfg/.cvsignore
diff -c /dev/null openafs/src/WINNT/afssvrcfg/.cvsignore:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:21 2005
--- openafs/src/WINNT/afssvrcfg/.cvsignore	Fri Mar 11 02:22:43 2005
***************
*** 0 ****
--- 1 ----
+ AFS_component_version_number.h
Index: openafs/src/WINNT/afssvrcfg/NTMakefile
diff -c openafs/src/WINNT/afssvrcfg/NTMakefile:1.6.2.3 openafs/src/WINNT/afssvrcfg/NTMakefile:1.6.2.4
*** openafs/src/WINNT/afssvrcfg/NTMakefile:1.6.2.3	Tue Dec  7 01:00:57 2004
--- openafs/src/WINNT/afssvrcfg/NTMakefile	Fri Mar 11 01:59:01 2005
***************
*** 91,96 ****
--- 91,97 ----
  
  clean::
  	$(CD) lang
+         @if exist AFS_component_version_number.h del AFS_component_version_number.h
  	for /f %l in ('dir /B ??_??') do ( if exist @$(NTLANG) do @$(NTLANG) %l $(MAKECMD) /nologo /f NTMakefile clean )
  	$(CD) ..
  
Index: openafs/src/WINNT/afssvrcfg/lang/.cvsignore
diff -c /dev/null openafs/src/WINNT/afssvrcfg/lang/.cvsignore:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:21 2005
--- openafs/src/WINNT/afssvrcfg/lang/.cvsignore	Fri Mar 11 02:22:46 2005
***************
*** 0 ****
--- 1 ----
+ AFS_component_version_number.h
Index: openafs/src/WINNT/afssvrcfg/lang/de_DE/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/de_DE/afscfg.rc:1.3 openafs/src/WINNT/afssvrcfg/lang/de_DE/afscfg.rc:1.3.2.1
*** openafs/src/WINNT/afssvrcfg/lang/de_DE/afscfg.rc:1.3	Thu Jun 19 15:00:53 2003
--- openafs/src/WINNT/afssvrcfg/lang/de_DE/afscfg.rc	Fri Mar 11 01:59:04 2005
***************
*** 7,1212 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFSｮ Configuration-Anwendung und -Assistent"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x407
  #define AFS_VERINFO_CHARSET 1252
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 320, 246
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "AFSｮ Server Quick-Start-Assistent"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "&Abbrechen",IDCANCEL,101,225,50,14
!     PUSHBUTTON      "< &Zurck",IDBACK,155,225,50,14
!     DEFPUSHBUTTON   "&Weiter >",IDNEXT,209,225,50,14
!     PUSHBUTTON      "&Hilfe",9,263,225,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,214,305,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,103,7,210,200
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Ja, eine Partition erstellen.",IDC_CREATE_PARTITION,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,94,105,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,116,
!                     186,52,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,101,172,20,12,ES_AUTOHSCROLL
!     CONTROL         "&Nein, keine Partition erstellen.",
!                     IDC_DONT_CREATE_PARTITION,"Button",BS_AUTORADIOBUTTON,0,
!                     191,126,8
!     LTEXT           "Dieser Datei-Server speichert und liefert Dateien und Programme an AFS-Clients. Fr in diesem System gespeicherte Daten, die ber AFS gemeinsam benutzt werden, muﾟ mindestens ein NTFS-Volume als AFS-Partition gekennzeichnet sein.",
!                     -1,0,12,209,32
!     LTEXT           "&W臧len Sie das fr die Partition zu verwendende Volume:",
!                     IDC_SELECT_DRIVE,12,106,192,9
!     LTEXT           "Na&me der AFS-Partition: /vicep",IDC_NAME_LABEL,12,174,
!                     89,8
!     LTEXT           "Eine AFS-Partition auf diesem Datei-Server erstellen.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Eine AFS-Partition entspricht physisch einem NTFS-Volume, enth舁t aber auch spezielle Metadaten ber Struktur und Speicherort der Informationen zur Partition.",
!                     -1,0,48,209,25
!     LTEXT           "Mchten Sie auf diesem Datei-Server eine Partition erstellen?",
!                     IDC_ASK_CREATE_PARTITION,0,75,209,17
!     LTEXT           "Zur Laufzeit bei Bedarf erzeugte Nachricht.",
!                     IDC_PARTITION_MSG,0,166,210,34,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,210,92,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Ja, als File Server konfigurieren.",
!                     IDC_SHOULD_CONFIG_FILE_SERVER,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,114,10
!     CONTROL         "&Nein, nicht als File Server konfigurieren.",
!                     IDC_DONT_CONFIG_FILE_SERVER,"Button",BS_AUTORADIOBUTTON,
!                     0,190,143,10
!     LTEXT           "Der AFS File Service liefert angeforderte Dateien und Programme von diesem Server an AFS-Clients. Dieser Service fhrt weiterhin alle Operationen zur Volume-Verwaltung aus wie Erstellen, Lschen, Bewegen und Nachbilden von Volumes.",
!                     -1,0,38,210,34
!     LTEXT           "Diese Maschine als File Server konfigurieren.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Mchten Sie diese Maschine als File Server konfigurieren?",
!                     IDC_CREATE_FS_QUESTION,0,166,210,8
!     LTEXT           "Um diese Maschine als File Server zu konfigurieren, mssen Sie den File Service konfigurieren.",
!                     -1,0,14,210,17
!     LTEXT           "Hinweis: Diese Maschine hat zur Zeit kein Plattenlaufwerk, das fr das Speichern von Dateien in AFS verfgbar ist. Obwohl Sie diese Maschine als File Server konfigurieren knnen, werden Sie AFS-Daten auf der Maschine nicht speichern knnen.",
!                     IDC_NO_DRIVES_NOTE,0,77,210,32,NOT WS_VISIBLE
!     LTEXT           "Um Plattenlaufwerke zu erstellen, verwenden Sie den Windows NT Disk Administrator.",
!                     IDC_DISK_ADMIN_NOTE,0,112,210,16,NOT WS_VISIBLE
!     LTEXT           "Diese Maschine ist bereits als File Server konfiguriert.",
!                     IDC_MSG,0,166,209,34,NOT WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Willkommen beim AFS Server Quick Start-Assistenten. Dieser Assistent wird Sie beim schnellen Konfigurieren des AFS Servers auf diesem Windows NT-System untersttzen.",
!                     IDC_TITLE,0,0,209,52
!     LTEXT           "Drcken Sie Weiter, um mit der Konfiguration des AFS Servers zu beginnen.",
!                     IDC_STATIC,0,166,209,17
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Ja, die Root-Volumes nachbilden.",IDC_REPLICATE,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,115,10
!     CONTROL         "&Nein, die Root-Volumes nicht nachbilden.",
!                     IDC_DONT_REPLICATE,"Button",BS_AUTORADIOBUTTON,0,190,158,
!                     10
!     LTEXT           "Nachbildung ist der Prozeﾟ des Erstellens von Kopien eines Volumes mit Lesezugriff in mehreren Partitionen, blicherweise auf anderen Datei-Servern. Durch Nachbildung wird die Verfgbarkeit eines Volumes bei Ausfall eines Netzwerks oder",
!                     IDC_STATIC,0,36,209,25
!     LTEXT           "Mchten Sie die Root-Volumes nachbilden?",
!                     IDC_REPLICATE_QUESTION,0,148,209,17
!     LTEXT           "Nachbildung hilft ebenfalls, zu verhindern, daﾟ ein Server mit Anforderungen an h舫fig angesprochene Volumes berlastet wird.",
!                     IDC_STATIC,0,90,209,24
!     LTEXT           "Die Root-Volumes der Zelle nachbilden.",IDC_TITLE,0,0,
!                     209,8
!     LTEXT           "Wenn Sie andere Volumes in dieser AFS-Zelle nachbilden mchten, mssen Sie zuerst die Root-Volumes nachbilden.",
!                     IDC_STATIC,0,15,209,16
!     LTEXT           "eines Servers erhht, weil auf das Volume noch von einem anderen Server zugegriffen werden kann, wenn der Server, der das Volume beherbergt, ausf舁lt.",
!                     IDC_STATIC,0,60,209,25
!     LTEXT           "Zur Laufzeit bei Bedarf erzeugte Nachricht.",
!                     IDC_CANT_REPLICATE_MSG,0,166,209,34,NOT WS_VISIBLE | NOT 
!                     WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Ja, die Root-Volumes erstellen.",
!                     IDC_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,179,108,10
!     CONTROL         "&Nein, die Root-Volumes nicht erstellen.",
!                     IDC_DONT_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON,
!                     0,190,139,10
!     LTEXT           "In AFS sind Volumes Objektgruppen zusammengehrender Dateien, die als einzelne, leicht zu verwaltende Einheiten strukturiert sind, um die Systemverwaltung zu erleichtern.",
!                     IDC_STATIC,0,15,209,24
!     LTEXT           "Mchten Sie die Root-Volumes erstellen?",
!                     IDC_ROOT_AFS_QUESTION,0,166,209,8
!     LTEXT           "Die Root-Volumes der Zelle erstellen.",IDC_TITLE,0,0,
!                     209,8
!     LTEXT           "Einmal erstellt, sind die Root-Volumes im AFS-Dateibereich automatisch erreichbar.",
!                     IDC_STATIC,0,78,209,17
!     LTEXT           "Zur Laufzeit bei Bedarf erzeugte Nachricht.",
!                     IDC_ROOT_AFS_MSG,0,166,209,33,NOT WS_VISIBLE
!     LTEXT           "Das Volume root.afs ist das Root des AFS-Dateibereichs. Das Volume root.cell ist das Root der untergeordneten Baumstruktur des AFS-Dateibereichs der Zelle, worauf ber einen Mount-Punkt vom root.afs aus zugegriffen werden kann.",
!                     IDC_STATIC,0,42,209,34
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 84
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "Konfiguration des AFSｮ Servers"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,38,148,14
!     LTEXT           "Zur Laufzeit erzeugter Arbeitsfolgetext.",IDC_OPERATION,
!                     35,20,145,10
!     ICON            "",IDC_LOGO,7,7,20,20
!     PUSHBUTTON      "Abbrechen",IDCANCEL,73,63,50,14
!     LTEXT           "Ermitteln der aktuellen Konfiguration:",IDC_OPERATION2,
!                     35,7,156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Ja, als Backup-Server konfigurieren.",
!                     IDC_CONFIG_BACKUP_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,179,128,10
!     CONTROL         "&Nein, nicht als Backup-Server konfigurieren.",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,0,190,157,10
!     LTEXT           "Der Backup-Server kann nur auf Maschinen ausgefhrt werden, die als Database Server konfiguriert sind. Wird der Backup-Server auf einem Database Server in der Zelle ausgefhrt, so muﾟ er auf ALLEN Database Servern in der Zelle ausgefhrt werden.",
!                     -1,0,38,199,42
!     LTEXT           "Mchten Sie diese Maschine als Backup-Server konfigurieren?",
!                     IDC_BACKUP_SERVER_QUESTION,0,166,209,10
!     LTEXT           "Diese Maschine als Backup-Server konfigurieren.",
!                     IDC_TITLE,0,0,207,8
!     LTEXT           "Der Backup-Server ist eine Zusatzfunktion des Database Service.",
!                     -1,0,14,209,16
!     LTEXT           "Diese Maschine ist bereits als Database Server konfiguriert.",
!                     IDC_CANT_BACKUP_MSG,0,166,210,33,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Als den System Control &Server konfigurieren.",
!                     IDC_SYS_CONTROL_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,151,166,10
!     CONTROL         "Als einen System Control &Client konfigurieren.",
!                     IDC_SYS_CONTROL_CLIENT,"Button",BS_AUTORADIOBUTTON,0,164,
!                     173,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,90,174,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "&Nicht als System Control Client oder Server konfigurieren.",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON,0,190,199,
!                     9
!     LTEXT           "Der System Control Server stellt anderen AFS-Server-Maschinen, die als System Control Clients konfiguriert sind, allgemeine Konfigurationsdateien zur Verfgung. AFS-Zellen drfen nur einen einzigen System Control Server ausfhren.",
!                     -1,0,14,209,33
!     LTEXT           "Als System Control Server oder Client konfigurieren.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Mchten Sie diese Maschine als System Control Server oder Client konfigurieren?",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,0,131,207,17
!     LTEXT           "Ein System Control Client erh舁t vom System Control Server der Zelle alle verfgbaren Aktualisierungen zu seinen AFS-Konfigurationsdateien.",
!                     IDC_SYS_CONTROL_CLIENT_DESC,0,52,209,26
!     LTEXT           "S&ystem Control Server:",IDC_SYS_CONTROL_MACHINE_LABEL,
!                     15,176,73,8,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,0,166,210,34,NOT WS_VISIBLE
!     LTEXT           "WARNUNG: Standorte, die den Vertrieb von AFSｮ in den Vereinigten Staaten nicht nutzen, sollten Konfigurationsdateien nicht ber den System Control Server verteilen. Es wrden dabei sensible Systeminformationen in unverschlsselter Form bertragen.",
!                     -1,9,81,200,49
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Dies sind die gesamten Informationen, die zum Konfigurieren des AFS Servers in diesem System bentigt werden.",
!                     IDC_ALL_NEEDED_MSG,1,14,209,17
!     LTEXT           "Diese Maschine in die Zelle <zur Laufzeit erzeugt> konfigurieren",
!                     IDC_TITLE,1,0,208,8
!     LTEXT           "Die folgenden Konfigurationsschritte werden ausgefhrt:",
!                     IDC_FOLLOWING_STEPS_MSG,1,36,187,8
!     LTEXT           "Schritt 1 - zur Laufzeit erzeugter Text",IDC_STEP1,22,
!                     49,179,8,NOT WS_VISIBLE
!     LTEXT           "Schritt 3 - zur Laufzeit erzeugter Text",IDC_STEP3,22,
!                     73,179,8,NOT WS_VISIBLE
!     LTEXT           "Schritt 2 - zur Laufzeit erzeugter Text",IDC_STEP2,22,
!                     61,179,8,NOT WS_VISIBLE
!     LTEXT           "Schritt 4 - zur Laufzeit erzeugter Text",IDC_STEP4,22,
!                     85,179,8,NOT WS_VISIBLE
!     LTEXT           "Schritt 5 - zur Laufzeit erzeugter Text",IDC_STEP5,22,
!                     97,179,8,NOT WS_VISIBLE
!     LTEXT           "Schritt 6 - zur Laufzeit erzeugter Text",IDC_STEP6,22,
!                     109,179,8,NOT WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,178,200,11
!     LTEXT           "Schritt 8 - zur Laufzeit erzeugter Text",IDC_STEP8,22,
!                     133,179,8,NOT WS_VISIBLE
!     LTEXT           "Schritt 7 - zur Laufzeit erzeugter Text",IDC_STEP7,22,
!                     121,179,8,NOT WS_VISIBLE
!     LTEXT           "Zur Laufzeit bei Bedarf erzeugte Nachricht.",
!                     IDC_CANT_CONFIG_MSG,1,13,209,17,NOT WS_VISIBLE
!     LTEXT           "Vollst舅dig in Prozent:",IDC_PERCENT_COMPLETE_LABEL,1,
!                     191,76,8,NOT WS_VISIBLE
!     LTEXT           "Laufender Prozeﾟ:",IDC_CURRENT_STEP_LABEL,1,157,108,8,
!                     NOT WS_VISIBLE
!     LTEXT           "Beschreibung des laufenden Schrittes - zur Laufzeit erzeugt",
!                     IDC_CURRENT_STEP,1,167,208,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,92,191,49,8,NOT WS_VISIBLE
!     LTEXT           "Um mit der Konfiguration dieses Computers zu beginnen, drcken Sie Konfigurieren. Um die auszufhrenden Konfigurationsschritte zu ver舅dern, drcken Sie Zurck.",
!                     IDC_STATUS_MSG,1,159,208,41
!     LTEXT           "",IDC_STEP1_GRAPHIC,10,49,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,10,61,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,10,73,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,10,85,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,10,97,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,10,109,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,10,121,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,10,133,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,64,55,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,64,71,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,64,87,138,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,112,158,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,149,156,11,14
!     LTEXT           "Verwaltungsinformationen",IDC_TITLE,0,0,202,8
!     LTEXT           "&Name:",IDC_ADMIN_NAME_LABEL,7,57,22,8
!     LTEXT           "&Kennwort:",IDC_ADMIN_PW_LABEL,7,73,34,8
!     GROUPBOX        "Name und Kennwort des Kontos",IDC_ADMIN_INFO_FRAME,0,41,
!                     210,65
!     LTEXT           "&Prfkennwort:",IDC_VERIFY_ADMIN_PW_LABEL,7,90,52,8
!     LTEXT           "Die untenstehenden Informationen werden bentigt, um das Verwaltungskonto fr diese neue Zelle zu erstellen.",
!                     IDC_STATIC,0,15,209,17
!     CONTROL         "&Diese AFS UID verwenden:",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,159,99,10
!     CONTROL         "Die &n臘hste verfgbare AFS UID verwenden",
!                     IDC_USE_NEXT_UID,"Button",BS_AUTORADIOBUTTON,6,144,160,
!                     10
!     GROUPBOX        "AFS UID",IDC_STATIC,0,118,209,57
!     LTEXT           "Geben Sie die Benutzer-ID fr das AFS-Verwaltungskonto ein:",
!                     IDC_STATIC,6,130,196,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Ja, als Database Server konfigurieren.",
!                     IDC_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,131,134,10
!     CONTROL         "&Nein, nicht als Database Server konfigurieren.",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,0,
!                     188,160,10
!     LTEXT           "Der Database Service verwaltet die durch eine AFS-Zelle bentigte Gruppe nachgebildeter Datenbanken. Dieser Service verwaltet fr die Zelle alle Informationen zu Konten, Volume-Speicherorten und (optional) zur Sicherung.",
!                     -1,0,38,209,54
!     LTEXT           "Mchten Sie diese Maschine als Database Server konfigurieren?",
!                     IDC_DB_SERVER_QUESTION,0,108,209,10
!     LTEXT           "Diese Maschine als Database Server konfigurieren.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Um diese Maschine als Database Server zu konfigurieren, mssen Sie den Database Service konfigurieren.",
!                     -1,0,14,209,16
!     LTEXT           "Diese Maschine ist bereits als Database Server konfiguriert.",
!                     IDC_MSG,0,167,210,33,NOT WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,86,174,119,12,ES_AUTOHSCROLL
!     LTEXT           "S&ystem Control Server:",IDC_SYS_CONTROL_MACHINE_LABEL,
!                     12,176,73,8
!     LTEXT           "Wenn Ihre Zelle einen System Control Server besitzt, geben Sie seinen Hostnamen unter ein. Die AFS-Konfigurations-\ndateien werden ber diesen Server aktualisiert.",
!                     IDC_SCM_PROMPT,10,144,195,27
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     CONTROL         "Diesen Host zu einem Server in einer vorhandenen AFS-Zelle &machen",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON | 
!                     BS_MULTILINE,0,41,203,15
!     CONTROL         "&Dies wird der erste Server in einer neuen AFS-Zelle sein",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,0,59,197,8
!     EDITTEXT        IDC_CELL_NAME,64,96,139,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,64,166,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,64,180,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "Zellen- und Server-Informationen",IDC_TITLE,0,0,203,8
!     LTEXT           "&Zellenname:",IDC_CELL_NAME_LABEL,7,97,40,8
!     LTEXT           "&Kennwort:",IDC_SERVER_PW_LABEL,7,167,34,8,WS_DISABLED
!     LTEXT           "Geben Sie den Namen der AFS-Zelle ein:",
!                     IDC_CELL_NAME_PROMPT,8,86,195,9
!     LTEXT           "Geben Sie das Kennwort fr den AFS-Principal ein. Alle AFS Server erhalten Token als dieser Principal.",
!                     IDC_SERVER_PW_PROMPT,7,130,196,19,WS_DISABLED
!     GROUPBOX        "Zellenname",IDC_CELL_NAME_FRAME,0,75,210,43
!     GROUPBOX        "Server-Kennwort",IDC_SERVER_PW_FRAME,0,119,210,81,
!                     WS_DISABLED
!     LTEXT           "&Prfkennwort:",IDC_VERIFY_PW_LABEL,7,180,52,8,
!                     WS_DISABLED
!     LTEXT           "Eine AFS-Zelle ist eine Objektgruppe von Servern, die fr den Dateizugriff einen einheitlichen Namespace zur Verfgung stellen.",
!                     IDC_CELL_NAME_PROMPT2,1,13,202,24
!     LTEXT           "Name:",IDC_PRINCIPAL_LABEL,7,152,22,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,64,150,139,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,53,43,149,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,53,59,149,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,53,132,149,12,ES_AUTOHSCROLL
!     LTEXT           "Verwaltungsinformationen",IDC_TITLE,0,0,209,8
!     LTEXT           "Geben Sie die Verwaltungsinformationen zum Konto unten ein:",
!                     IDC_ADMIN_INFO_PROMPT,7,30,196,10
!     LTEXT           "&Name:",IDC_ADMIN_NAME_LABEL,7,46,22,8
!     LTEXT           "&Kennwort:",IDC_ADMIN_PW_LABEL,7,62,34,8
!     GROUPBOX        "Name und Kennwort des Kontos",IDC_ADMIN_INFO_FRAME,0,17,
!                     210,62
!     GROUPBOX        "Vorhandene AFS Server",IDC_HOSTNAME_FRAME,1,92,209,60
!     LTEXT           "AFS Server:",IDC_HOSTNAME_LABEL,9,134,43,8
!     LTEXT           "Geben Sie den Hostnamen eines anderen AFS Servers in der Zelle ein, die Sie verknpfen mchten. Von diesem Server werden die AFS-Konfigurationsdaten empfangen.",
!                     IDC_HOSTNAME_PROMPT,7,105,202,25
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 284
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "Services"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,20,281,45
!     GROUPBOX        "",IDC_STATIC,7,70,281,43
!     GROUPBOX        "",IDC_STATIC,7,119,281,45
!     GROUPBOX        "",IDC_STATIC,7,169,281,44
!     CONTROL         "File Service",IDC_FS_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,19,60,10
!     CONTROL         "Database Service",IDC_DB_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,69,82,10
!     PUSHBUTTON      "Einzeldaten...",IDC_DB_DETAILS,230,85,50,14,NOT 
!                     WS_VISIBLE
!     CONTROL         "Backup-Server",IDC_BK_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,118,71,10
!     CONTROL         "System Control Server",IDC_SCS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,168,98,10
!     EDITTEXT        IDC_SC_MACHINE,107,241,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "W臧len Sie die Services aus, die auf diesem AFS Server laufen sollen:",
!                     IDC_STATIC,7,7,217,8
!     LTEXT           "Der File Service ist zur Zeit aktiv.",IDC_FS_STATUS_MSG,
!                     14,32,261,8
!     LTEXT           "Der Database Service ist zur Zeit teilweise installiert.",
!                     IDC_DB_STATUS_MSG,14,82,195,8
!     LTEXT           "S&ystem Control Server:",IDC_SC_MACHINE_LABEL,31,243,73,
!                     8,WS_DISABLED
!     LTEXT           "Um den File Service zu stoppen, machen Sie die Markierung des obigen Fensters rckg舅gig.",
!                     IDC_FS_ACTION_MSG,14,44,262,17
!     LTEXT           "Fr weitere Informationen klicken Sie auf Einzeldaten.",
!                     IDC_DB_ACTION_MSG,14,93,212,15
!     LTEXT           "Der Backup-Server ist zur Zeit aktiv.",
!                     IDC_BK_STATUS_MSG,14,131,259,8
!     LTEXT           "Um den Backup-Server zu stoppen, machen Sie die Markierung des obigen Fensters rckg舅gig.",
!                     IDC_BK_ACTION_MSG,14,143,262,16
!     LTEXT           "Um diesen Server zu aktivieren, mssen Sie entweder den File Service oder den Database Service ausfhren.",
!                     IDC_SCS_ACTION_MSG,14,193,268,18
!     LTEXT           "Der Service System Control ist zur Zeit nicht aktiv.",
!                     IDC_SCS_STATUS_MSG,14,180,263,9
!     GROUPBOX        "",IDC_STATIC,7,220,281,57
!     CONTROL         "System Control Client",IDC_SCC,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,219,95,10
!     LTEXT           "Um diesen Server zu aktivieren, mssen Sie entweder den File Service oder den Database Service ausfhren.",
!                     IDC_SCC_ACTION_MSG,14,257,268,15
!     LTEXT           "Der Service System Control ist zur Zeit nicht aktiv.",
!                     IDC_SCC_STATUS_MSG,14,230,263,9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "Partitionen"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Die folgenden &AFS-Partitionen sind auf Ihrem Computer vorhanden:",
!                     IDC_STATIC,8,7,220,8
!     PUSHBUTTON      "&Erstellen...",IDC_CREATE_PARTITIONS,17,118,71,14
!     LTEXT           "Um eine Partition oder ein Volume auf einer Partition zurckzugewinnen, w臧len Sie in der Liste die Partition aus und klicken auf die obige Schaltfl臘he. Um alle Partitionen auf diesem Server zurckzugewinnen, klicken Sie auf die obige Schaltfl臘he.",
!                     IDC_SALVAGE_MSG,30,179,250,32
!     PUSHBUTTON      "&Zurckgewinnen...",IDC_SALVAGE,17,159,71,14
!     LTEXT           "Um eine Partition zu entfernen, w臧len Sie in der Liste die Partition aus und klicken auf die obige Schaltfl臘he.",
!                     IDC_REMOVE_MSG,30,235,253,17,WS_DISABLED
!     PUSHBUTTON      "&Entfernen",IDC_REMOVE,17,217,53,14,WS_DISABLED
!     GROUPBOX        "Partitionen",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
!                     281,79,WS_EX_CLIENTEDGE
!     LTEXT           "Um auf diesem Server eine neue Partition zu erstellen, klicken Sie auf die obige Schaltfl臘he.",
!                     IDC_CREATE_MSG,30,136,254,16
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 264, 177
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "AFS-Partition erstellen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "W臧len Sie aus der unten stehenden Liste ein NTFS-Volume aus, auf dem die neue Partition erstellt werden soll:",
!                     IDC_TITLE,7,5,250,18
!     LTEXT           "Name der AFS-Partition:",IDC_NAME_STATIC,14,131,76,8
!     EDITTEXT        IDC_PARTITION_NAME,123,129,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Erstellen",IDC_CREATE,96,158,50,14,WS_DISABLED
!     PUSHBUTTON      "&Schlieﾟen",IDC_CLOSE,152,158,50,14
!     PUSHBUTTON      "Hilfe",9,207,158,50,14
!     GROUPBOX        "Parameter der Partition",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,25,250,
!                     85,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,99,131,22,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 225, 159
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Konfiguration des AFSｮ Servers"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,59,33,151,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,59,49,151,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,59,113,151,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Konfigurieren",IDOK,108,138,50,14,WS_DISABLED
!     PUSHBUTTON      "Abbrechen",IDCANCEL,48,138,50,14
!     PUSHBUTTON      "Hilfe",9,168,138,50,14
!     LTEXT           "Geben Sie die Verwaltungsinformationen zum Konto unten ein:",
!                     IDC_ADMIN_INFO_PROMPT,14,20,196,10
!     LTEXT           "&Name:",IDC_ADMIN_NAME_LABEL,15,36,22,8
!     LTEXT           "&Kennwort:",IDC_ADMIN_PW_LABEL,15,52,34,8
!     GROUPBOX        "Name und Kennwort des Kontos",IDC_ADMIN_INFO_FRAME,7,7,
!                     211,62
!     GROUPBOX        "System Control Server",IDC_HOSTNAME_FRAME,7,73,211,59
!     LTEXT           "&Host-Name:",IDC_HOSTNAME_LABEL,15,115,40,8
!     LTEXT           "Wenn Ihre Zelle einen System Control Server besitzt, geben Sie seinen Hostnamen unter ein. Die AFS-Konfigurationsdateien werden ber diesen Server aktualisiert.",
!                     IDC_HOSTNAME_PROMPT,13,84,205,24
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime. In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,150,225,9,NOT WS_VISIBLE
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 257, 87
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Konfiguration des AFSｮ Servers"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "Abbrechen",IDCANCEL,103,66,50,14
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,37,200,11
!     LTEXT           "Vollst舅dig in Prozent:",IDC_PERCENT_COMPLETE_LABEL,40,
!                     50,76,8,NOT WS_VISIBLE
!     LTEXT           "Laufender Prozeﾟ:",IDC_CURRENT_STEP_LABEL,40,15,108,8,
!                     NOT WS_VISIBLE
!     LTEXT           "Beschreibung des laufenden Schrittes - zur Laufzeit erzeugt",
!                     IDC_CURRENT_STEP,40,26,210,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,117,50,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,7,20,20
!     LTEXT           "Um mit der Konfiguration dieses Computers zu beginnen, drcken Sie Konfigurieren. Um die auszufhrenden Konfigurationsschritte zu ver舅dern, drcken Sie Zurck.",
!                     IDC_STATUS_MSG,40,16,210,41
!     PUSHBUTTON      "Protokoll &anzeigen",IDNEXT,156,66,62,14,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "CellServCB-Aktualisierungsfehler"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LISTBOX         IDC_LIST,7,26,173,127,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "OK",IDOK,22,162,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "Hilfe",9,130,162,50,14
!     LTEXT           "Die Datei CellServDB auf den folgenden AFS-Servern konnte nicht automatisch aktualisiert werden:",
!                     IDC_STATIC,7,7,173,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 243, 188
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Wiederherstellung"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     DEFPUSHBUTTON   "OK",IDOK,78,97,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,132,97,50,14
!     PUSHBUTTON      "&Hilfe",9,186,97,50,14
!     CONTROL         "Alle Partitionen auf diesem Datei-Server &zurckgewinnen",
!                     IDC_SERVER,"Button",BS_AUTORADIOBUTTON,14,35,205,10
!     CONTROL         "Alle Volumes auf der ausgew臧lten &Partition zurckgewinnen",
!                     IDC_PARTITION,"Button",BS_AUTORADIOBUTTON,14,48,211,10
!     CONTROL         "Ein spezielles &Volume der ausgew臧lten Partition zurckgewinnen",
!                     IDC_VOLUME,"Button",BS_AUTORADIOBUTTON,14,61,222,10
!     EDITTEXT        IDC_VOLUME_NAME,76,74,97,12,ES_AUTOHSCROLL | WS_DISABLED
!     PUSHBUTTON      "<< &Erweitert",IDC_ADVANCED,7,97,50,14
!     GROUPBOX        "",IDC_STATIC,7,25,229,67
!     LTEXT           "Volume-&Name:",IDC_VOLUME_NAME_LABEL,27,75,47,8,
!                     WS_DISABLED
!     GROUPBOX        "Erweiterte Optionen zur Wiederherstellung ",
!                     IDC_ADVANCED_FRAME,7,119,229,62
!     LTEXT           "Pfad fr &Tempor舐dateien:",IDC_TEMP_DIR_LABEL,13,162,
!                     84,12
!     EDITTEXT        IDC_LOG_FILE,97,146,133,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,209,129,21,12,ES_AUTOHSCROLL
!     LTEXT           "Dateiname fr &Ergebnisprotokoll:",IDC_LOG_FILE_LABEL,
!                     13,144,68,16
!     EDITTEXT        IDC_TEMP_DIR,97,161,133,12,ES_AUTOHSCROLL
!     CONTROL         "Pa&rallele Wiederherstellungsoperationen; Anz. Prozesse:",
!                     IDC_NUM_PROCESSES_CHECKBOX,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,17,131,189,10
!     LTEXT           "W臧rend Sie den Server oder eine ganze Partition zurckgewinnen, ist der Server zeitweilig offline.",
!                     IDC_STATIC,50,7,186,17
!     LTEXT           "HINWEIS:",IDC_STATIC,7,7,38,8
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is\\bresized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,180,243,8,NOT WS_VISIBLE
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Kennwort des AFS-Principals"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_PW,48,42,142,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "OK",IDOK,31,61,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "Hilfe",9,140,61,50,14
!     LTEXT           "Der Schlssel eines AFS-Principals kann nicht von einem Authentifizierungs-Server mit einem Stand vor 3.5 abgerufen werden. Geben Sie bitte das Kennwort des AFS-Principals unten ein.",
!                     IDC_STATIC,7,7,183,34
!     LTEXT           "Kennwort:",IDC_STATIC,7,44,35,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "Wiederherstellung von Volumes - Ergebnisse"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "&Schlieﾟen",IDC_CLOSE,225,266,50,14,WS_DISABLED
!     PUSHBUTTON      "Hilfe",9,280,266,50,14
!     LTEXT           "<Zur Laufzeit erzeugt>",IDC_LOG_TITLE,7,38,263,8
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "<Zur Laufzeit erzeugt>",IDC_SALVAGE_STATUS,37,15,185,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 313
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 239
!         HORZGUIDE, 207
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 209
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 201
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 203
!         VERTGUIDE, 64
!         VERTGUIDE, 203
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 53
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 277
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 218
!         VERTGUIDE, 59
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 152
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 250
!         VERTGUIDE, 40
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 80
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 236
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 181
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""AFSｮ Configuration-Anwendung und -Assistent""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "&Weiter >"
!     IDS_FINISH              "&Fertigstellen"
!     IDS_HELP_TITLE          "Schaltfl臘he Hilfe gedrckt"
!     IDS_HELP_DESC           "Hilfe ist zur Zeit nicht verfgbar."
!     IDS_CANCEL_DESC         "Den AFS Quick-Start-Assistenten abbrechen?"
!     IDS_PARTITION_ALREADY_CREATED 
!                             "Auf dieser Maschine ist bereits eine AFS-Partition vorhanden."
!     IDS_NOT_A_FS_SERVER     "Diese Maschine ist nicht als File Server konfiguriert. Volumes knnen nur auf File Server-Maschinen erstellt werden."
!     IDS_ROOT_AFS_ALREADY_EXISTS "Die Root-Volumes sind bereits vorhanden."
!     IDS_NO_PARTITION_EXISTS "Es sind keine Partitionen vorhanden, auf denen die Root-Volumes \nerstellt werden knnen. Eine Partition muﾟ vorhanden sein, bevor die Root-Volumes erstellt \nwerden knnen."
!     IDS_ALREADY_REPLICATED  "Die Root-Volumes wurden bereits nachgebildet."
!     IDS_ROOT_AFS_DOESNT_EXIST 
!                             "Die Root-Volumes sind nicht vorhanden. Die Root-Volumes mssen vorhanden sein, bevor sie nachgebildet werden knnen."
!     IDS_ALREADY_CONFIGURED  "Diese Maschine ist bereits als AFS Server konfiguriert."
!     IDS_NOTHING_TO_CONFIGURE 
!                             "Sie haben fr die Konfiguration nichts ausgew臧lt."
!     IDS_EXIT                "Exit"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "Starten des File Service"
!     IDS_CANCEL_CONFIG_MSG   "Wenn Sie an diesem Punkt abbrechen, ist Computer nur teilweise als AFS-Server konfiguriert. Trotzdem abbrechen?"
!     IDS_WIZARD_APP_TITLE    "AFSｮ Server Quick Start-Assistent"
!     IDS_CANCEL_PENDING      "*** Abbruch l舫ft - einen Moment bitte... ***"
!     IDS_CHECK_FS_CONFIG     "ﾜberprfung des File Servers..."
!     IDS_CHECK_DB_CONFIG     "ﾜberprfung des Database Servers..."
!     IDS_CHECK_BAK_CONFIG    "ﾜberprfung des Backup-Servers..."
!     IDS_CHECK_PARTITION     "ﾜberprfung der AFS-Partition..."
!     IDS_CHECK_ROOT_AFS      "ﾜberprfung der Root-Volumes..."
!     IDS_CHECK_REP           "ﾜberprfung der Nachbildungen der Root-Volumes..."
!     IDS_CANCEL_GET_CONFIG   "Abbrechen...Einen Moment bitte..."
!     IDS_ALREADY_A_BACKUP_SERVER 
!                             "Diese Maschine ist bereits als Backup-Server konfiguriert."
!     IDS_NOT_A_DB_SERVER     "Diese Maschine ist nicht als Database Server konfiguriert. Backup-Server knnen nur auf Database Server-Maschinen ausgefhrt werden."
!     IDS_ALREADY_A_SYS_CONTROL_SERVER 
!                             "Diese Maschine ist bereits als System Control Server konfiguriert."
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT 
!                             "Diese Maschine ist bereits als System Control Client konfiguriert."
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "Diese Maschine ist nicht als Database oder File Server \nkonfiguriert. Ein Computer kann nur als System Control-Maschine konfiguriert werden, wenn er auch als Database oder File Server-Maschine konfiguriert ist."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "Volume"
!     IDS_NAME_OR_ERROR       "Name (oder Fehlernachricht)"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "Diese Maschine ist nicht als Database oder File Server \nkonfiguriert. Ein Computer kann nur als Binary Distribution-Maschine konfiguriert werden, wenn \ner auch als Database oder File Server-Maschine konfiguriert ist."
!     IDS_CHECK_SCS           "ﾜberprfung des System Control Servers..."
!     IDS_CHECK_SCC           "ﾜberprfung des System Control Clients..."
!     IDS_SIZE                "Grﾟe"
!     IDS_ERROR_SEP           ",   "
!     IDS_MUST_CONFIG_FS      "Wenn dies der erste AFS Server in der Zelle ist, wird der File Service standardm葹ig konfiguriert."
!     IDS_MUST_CONFIG_DB      "Wenn dies der erste AFS Server in der Zelle ist, wird der Database Service standardm葹ig konfiguriert."
!     IDS_MUST_MAKE_PARTITION "Wenn dies der erste AFS Server in der Zelle ist, muﾟ eine Partition erstellt werden."
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "Wenn dies der erste AFS Server in der Zelle ist, werden die Volumes root.afs und root.cell standardm葹ig erstellt."
!     IDS_MUST_REPLICATE      "Wenn dies der erste AFS Server in der Zelle ist, werden die Volumes root.afs und root.cell standardm葹ig nachgebildet."
!     IDS_CHECK_AFS_CLIENT    "ﾜberprfung der Installation des AFS Clients..."
!     IDS_ERROR_HOST_NAME     "Der Host-Name dieser Maschine konnte nicht ermittelt werden."
!     IDS_ERROR_DRIVE_COMPRESSED "Laufwerk ist komprimiert"
!     IDS_ERROR_CFG_HOST_OPEN "Die Server Configuration Library konnte nicht initialisiert werden."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "Stoppen des AFS Clients"
!     IDS_ERROR_LOCAL_HOST_NAME 
!                             "Der lokale Host-Name dieser Maschine konnte nicht ermittelt werden."
!     IDS_GET_TOKENS_ERROR    "Keine Token erhalten. ﾜberprfen Sie, ob Sie Benutzername und Kennwort korrekt eingegeben haben."
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "Wiederherstellung kann nicht durchgefhrt werden, weil der File \nService noch nicht gestartet worden ist. Bitte starten Sie den File Service und versuchen Sie \nes erneut."
!     IDS_SALVAGING           "Wiederherstellung in Bearbeitung. Bitte warten..."
!     IDS_CURRENT_SALVAGE_LOG "Aktueller Inhalt des Wiederherstellungsprotokolls:"
!     IDS_FINAL_SALVAGE_LOG   "Letzter Inhalt des Wiederherstellungsprotokolls:"
!     IDS_SALVAGE_COMPLETE    "Die Wiederherstellung ist beendet."
!     IDS_CANT_GET_SALVAGE_LOG 
!                             "Wiederherstellungsprotokoll konnte nicht abgerufen werden."
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK 
!                             "Wiederherstellungsprotokoll konnte nicht auf Platte gesichert werden."
!     IDS_VALIDATION_ERROR_TEMPLATE 
!                             "Angegebene(s) %1 ist ungltig. Bitte geben Sie %2 neu ein."
!     IDS_CELL_NAME_VALIDATION_TYPE "Zellenname"
!     IDS_SERVER_NAME_VALIDATION_TYPE "Server-Name"
!     IDS_PASSWORD_VALIDATION_TYPE "Kennwort"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "Benutzername"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "Der AFS Client ist nicht installiert. Der AFS Client muﾟ installiert sein, bevor der AFS Server konfiguriert werden kann."
!     IDS_ERROR_AFS_CLIENT_CHECK 
!                             "Es konnte nicht ermittelt werden, ob der AFS Client installiert ist."
!     IDS_ERROR_FS_IS_NOT_NTFS "Dateisystem ist kein NTFS-Dateisystem"
!     IDS_ERROR_DRIVE_HAS_DATA "Laufwerk enth舁t Daten"
!     IDS_PARTITION_STEP_DESC "AFS-Partition erstellen"
!     IDS_ERROR_DRIVE_CONTAINS_NT "Laufwerk enth舁t NT-Installation"
!     IDS_DB_STEP_DESC        "Database Service starten"
!     IDS_FS_STEP_DESC        "File Service starten"
!     IDS_SCC_STEP_DESC       "System Control Client starten"
!     IDS_SCS_STEP_DESC       "System Control Server starten"
!     IDS_ROOT_AFS_STEP_DESC  "Root-Volumes erstellen"
!     IDS_REP_STEP_DESC       "Root-Volumes nachbilden"
!     IDS_PARTITIONS_PAGE_TITLE "Partitionen"
!     IDS_CONFIGURE           "&Konfigurieren"
!     IDS_DB_AND_BK_STEP_DESC "Database Service starten (beinhaltet Backup-Server)"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "Erstellen der AFS-Partition"
!     IDS_CONFIG_COMMON_FUNCS "Konfigurieren der allen Services gemeinsamen Funktionen"
!     IDS_START_DB_STEP       "Starten des Database Service"
!     IDS_START_SCC_STEP      "Starten des System Control Service als System Control Client"
!     IDS_START_SCS_STEP      "Starten des System Control Service als System Control Server"
!     IDS_CREATE_ROOT_AFS_STEP "Erstellen des Volumes root.afs"
!     IDS_REP_STEP            "Nachbilden des Root-Volumes"
!     IDS_START_AUTH_STEP     "Abrufen von Token fr diesen Server"
!     IDS_SERVICES_PAGE_TITLE "Services"
!     IDS_CONFIG_SUCCEEDED    "Konfiguration war erfolgreich."
!     IDS_CONFIG_CANCELED     "Konfiguration wurde abgebrochen."
!     IDS_CONFIG_FAILED       "Konfiguration fehlgeschlagen.\r\n\r\nDie detaillierte Protokolldatei %1 ist an Adresse %2 erstellt worden."
!     IDS_ERROR_NO_LICENSE_NUM "Keine AFS-Lizenznummer gefunden."
!     IDS_VERIFY_CLIENT_INSTALL_STEP 
!                             "ﾜberprfen der Installation des AFS Clients"
!     IDS_SET_SERVER_LICENSE_STEP "Einstellung der Lizenz fr diesen Server"
!     IDS_DEFINE_CELL_NAME_STEP "Definieren des Namens fr diese Zelle"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP 
!                             "Aus diesem Server ein Mitglied der Zelle machen"
!     IDS_START_BOS_SERVER_STEP "Starten des BOS-Servers"
!     IDS_START_AUTH_SERVER_STEP "Starten des Authentifizierungs-Servers"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP 
!                             "Erstellen eines Principals und eines Schlssels fr diesen Server"
!     IDS_START_DB_AND_BK_STEP 
!                             "Starten des Database Service (beinhaltet Backup-Server)"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP "Erstellen des Principals cell admin"
!     IDS_START_CLIENT_STEP   "Starten des AFS Clients"
!     IDS_SET_ROOT_ACL_STEP   "Einstellung der ACL auf dem Volume root.afs"
!     IDS_CREATE_ROOT_CELL_STEP "Erstellen des Volumes root.cell"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP 
!                             "Anh舅gen des Volumes root.cell mit Hilfe eines Standard-Mount-Punktes"
!     IDS_SET_ROOT_CELL_ACL_STEP "Einstellung der ACL auf dem Volume root.cell"
!     IDS_MOUNT_ROOT_CELL_RW_STEP 
!                             "Anh舅gen des Volumes root.cell mit Hilfe eines Read/Write-Mount-Punktes"
!     IDS_ENABLE_AUTH_CHECKING_STEP 
!                             "Aktivieren der ﾜberprfung der Authentifizierung"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "Erlangen von Verwaltungs-Token"
!     IDS_RESTART_SERVERS_STEP 
!                             "Erneutes Starten aller Server auf dieser Maschine als authentifizierte Server"
!     IDS_ALREADY_A_FS_SERVER "Diese Maschine ist bereits als File Server konfiguriert."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "Diese Maschine ist bereits als Database Server konfiguriert."
!     IDS_INTRO_PAGE          "Einfhrung"
!     IDS_INFO_PAGE           "Zellen- und Serverinformationen"
!     IDS_FS_PAGE             "File Service"
!     IDS_DB_PAGE             "Database Service"
!     IDS_CFG_TOOL_APP_TITLE  "Konfiguration des AFSｮ Servers"
!     IDS_BK_PAGE             "Backup-Server"
!     IDS_ROOT_AFS_PAGE       "AFS-Root-Volumes"
!     IDS_NAME                "Name"
!     IDS_REP_PAGE            "Nachbildung"
!     IDS_SC_PAGE             "System Control Service"
!     IDS_CONFIG_PAGE         "Das System konfigurieren"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "AFS-Partition"
!     IDS_GRAPHIC_FONT        "Ms Sans Serif, 6, B"
!     IDS_CURRENT_STEP        "Aktueller Schritt:"
!     IDS_ADD_TO_CELLSERVDB_STEP "Hinzufgen dieses Servers zu CellServDB"
!     IDS_RESTART_ALL_DB_SERVERS_STEP 
!                             "Erneutes Starten aller Datenbank-Server in der Zelle"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "Konfiguration war erfolgreich. HINWEIS: Die Datei CellServDB aller \nAFS-Clients in Ihrer Zelle muﾟ aktualisiert werden. Gew臧rleisten Sie, daﾟ Sie den AFS Product \nSupport mit einer aktuellen Liste Ihrer Database Servers verwenden, wenn Sie Ihre Zelle fr \nandere Standorte zug舅glich machen."
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG 
!                             "Mchten Sie diese Maschine als System Control Server konfigurieren?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG 
!                             "&Nicht als System Control Server konfigurieren."
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "Konfiguration des AFS Servers erfordert, daﾟ der AFS Client in derselben Zelle wie der Server konfiguriert ist. Dies erfolgt automatisch."
!     IDS_INFO_PAGE2          "Informationen zur Verwaltung"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "Konfiguration war erfolgreich.\r\n\r\nHINWEIS: Gew臧rleisten Sie, daﾟ Sie den AFS Product Support mit einer Liste Ihrer Database Server verwenden, wenn Sie Ihre Zelle fr andere Standorte zug舅glich machen."
!     IDS_CONFIG_SCS          "Als System Control Server der Zelle konfigurieren."
!     IDS_CONFIG_INTO_CELL_MSG "Diesen Host konfigurieren in Zelle "
!     IDS_VIEW_LOG            "Protokoll &ffen"
!     IDS_VIEW_LOG_ERROR      "Die Protokolldatei kann nicht angezeigt werden"
!     IDS_ERROR_NO_LOG_FILE   "Die Protokolldatei ist nicht vorhanden."
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED 
!                             "Aktualisierter CellServDB auf Host "
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED 
!                             "Fehlgeschlagene Aktualisierung von CellServDB auf Host "
!     IDS_CELL_NAME_LEN_ERROR "Der von Ihnen eingegebene Zellenname ist zu lang. Zellennamen knnen nicht l舅ger als 64 Zeichen sein."
!     IDS_CONFIG_CHECK_FAILED "Die aktuelle Konfiguration auf dieser Maschine konnte nicht ermittelt werden."
!     IDS_YES                 "Ja"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "Nein"
!     IDS_FREE                "Freier Speicherbereich"
!     IDS_TOTAL               "Grﾟe insgesamt"
!     IDS_DRIVE2              "Laufwerk"
!     IDS_SERVICE_STATUS      "Status"
!     IDS_SERVICE             "Service"
!     IDS_FS_RUNNING          "Der File Service ist zur Zeit aktiv."
!     IDS_FS_STOPPED          "Der File Service ist zur Zeit nicht aktiv."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "Der Database Service ist zur Zeit aktiv."
!     IDS_DB_STOPPED          "Der Database Service ist zur Zeit nicht aktiv."
!     IDS_BK_RUNNING          "Der Backup-Service ist zur Zeit aktiv."
!     IDS_BK_STOPPED          "Der Backup-Service ist zur Zeit nicht aktiv."
!     IDS_SCS_STOPPED         "Der System Control Server ist zur Zeit nicht aktiv."
!     IDS_SCC_STOPPED         "Der System Contol Client ist zur Zeit nicht aktiv."
!     IDS_FS_HOW_TO_RUN       "Um den File Service zu starten, berprfen Sie das obige Fenster."
!     IDS_FS_HOW_TO_STOP      "Um den File Service zu stoppen, machen Sie die Markierung des \nobigen Fensters rckg舅gig."
!     IDS_DB_HOW_TO_RUN       "Um den Database Service zu starten, berprfen Sie das obige \nFenster."
!     IDS_DB_HOW_TO_STOP      "Um den Database Service zu stoppen, machen Sie die Markierung des \nobigen Fensters rckg舅gig."
!     IDS_BK_HOW_TO_RUN       "Um den Backup-Service zu starten, berprfen Sie das obige \nFenster."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "Um den Backup-Service zu stoppen, machen Sie die Markierung des \nobigen Fensters rckg舅gig."
!     IDS_SCS_HOW_TO_RUN      "Um den System Control Server zu starten, berprfen Sie das obige \nFenster."
!     IDS_SCS_HOW_TO_STOP     "Um den System Control Server zu stoppen, machen Sie die Markierung \ndes obigen Fensters rckg舅gig."
!     IDS_DB_PARTIAL_CONFIG   "Der Database Service ist teilweise konfiguriert."
!     IDS_DB_DETAILS          "Fr weitere Informationen klicken Sie auf Einzeldaten."
!     IDS_BK_DISABLED         "Der Backup-Service ist gesperrt."
!     IDS_BK_ENABLE           "Um den Backup-Service zu aktivieren, mssen Sie den Database Service ausfhren."
!     IDS_SC_DISABLED         "Dieser Server ist gesperrt."
!     IDS_SC_ENABLE           "Um diesen Server zu aktivieren, mssen Sie entweder den File Service oder den Database Service ausfhren."
!     IDS_FS_WILL_RUN         "Der File Service wird gestartet."
!     IDS_FS_WILL_STOP        "Der File Service wird gestoppt."
!     IDS_DB_WILL_RUN         "Der Database Service wird gestartet."
!     IDS_DB_WILL_STOP        "Der Database Service wird gestoppt."
!     IDS_BK_WILL_RUN         "Der Backup-Service wird gestartet."
!     IDS_BK_WILL_STOP        "Der Backup-Service wird gestoppt."
!     IDS_SCS_WILL_RUN        "Der System Control Server wird gestartet."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "Der System Control Server wird gestoppt."
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "Laufwerk ist bereits eine AFS-Partition"
!     IDS_VOLUME_HAS_NO_NAME  "<Volume hat keinen Namen>"
!     IDS_PARTITION_CREATED   "Eine neue AFS-Partition wurde erfolgreich erstellt."
!     IDS_PARTITION_EXISTS    "Der von Ihnen eingegebene Name der Partition wird bereits durch eine andere Partition benutzt."
!     IDS_SCS_RUNNING         "Der System Control Server ist zur Zeit aktiv."
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN 
!                             "Dieses Laufwerk enth舁t nur der Papierkorb."
!     IDS_SCC_WILL_RUN        "Der System Control Client wird gestartet."
!     IDS_SCC_WILL_STOP       "Der System Control Client wird gestoppt."
!     IDS_SCC_RUNNING         "Der System Control Client ist zur Zeit aktiv."
!     IDS_SCC_HOW_TO_RUN      "Um den System Control Client zu starten, berprfen Sie das obige \nFenster."
!     IDS_SCC_HOW_TO_STOP     "Um den System Control Client zu stoppen, machen Sie die Markierung \ndes obigen Fensters rckg舅gig."
!     IDS_SCS_ENABLE          "Um diesen Server zu aktivieren, mssen Sie den System Control \nClient stoppen."
!     IDS_SCC_ENABLE          "Um diesen Server zu aktivieren, mssen Sie den System Control \nServer stoppen."
!     IDS_UNCONFIG_DB_STEP    "Dekonfigurieren des Database Service"
!     IDS_UNCONFIG_DB_STEP_DESC "Database Service dekonfigurieren"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP 
!                             "Dekonfigurieren des Database Service (und Backup-Servers)"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC 
!                             "Database Service dekonfigurieren (und Backup-Server)"
!     IDS_UNCONFIG_BK_STEP    "Dekonfigurieren des Backup-Servers"
!     IDS_UNCONFIG_BK_STEP_DESC "Backup-Server dekonfigurieren"
!     IDS_UNCONFIG_FS_STEP    "Dekonfigurieren des File Service"
!     IDS_UNCONFIG_FS_STEP_DESC "File Service dekonfigurieren"
!     IDS_UNCONFIG_SCS_STEP   "Dekonfigurieren des System Control Servers"
!     IDS_UNCONFIG_SCS_STEP_DESC "System Control Server dekonfigurieren"
!     IDS_UNCONFIG_SCC_STEP   "Dekonfigurieren des System Control Clients"
!     IDS_UNCONFIG_SCC_STEP_DESC "System Control Client dekonfigurieren"
!     IDS_INVALIDATE_CONFIG_INFO_STEP 
!                             "Ungltigmachen der Konfigurationsdaten dieser Maschine"
!     IDS_CLOSE               "&Schlieﾟen"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "Die Datei CellServDB konnte auf den unten angegebenen AFS-Servern nicht aktualisiert werden. Dies ist ein behebbarer Fehler.\r\n"
!     IDS_DELETE_PARTITION_PROMPT "Partition '%1' wirklich lschen?"
!     IDS_INVALIDATE_CFG_INFO "Auf diesem Computer ist zur Zeit kein AFS-Server-Prozeﾟ aktiv. Mchten Sie die Konfigurationsdaten von dieser Maschine entfernen?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "Die Zelle existiert nicht mehr. Die Anwendung AFS Configuration kann nur verwendet werden, um bereits konfigurierte Server-Maschinen in eine AFS-Zelle zu konfigurieren. Der AFS Configuration-Assistent kann verwendet werden, um eine neue Zelle zu starten."
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "Die Anwendung AFS Configuration muﾟ jetzt beendet werden. Sie kann \nauf Maschinen ausgefhrt werden, die bereits als AFS Server konfiguriert sind. Um diese \nMaschine erneut als AFS Server zu konfigurieren, verwenden Sie den AFS \nConfiguration-Assistenten."
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "Die Maschine ist nicht mehr als AFS Server konfiguriert. Die \nAnwendung AFS Configuration kann nur verwendet werden, um AFS Server-Maschinen zu \nkonfigurieren. Der AFS Configuration-Assistent kann verwendet werden, um diese Maschine als \nAFS Server zu rekonfigurieren."
!     IDS_GET_TOKENS_FAILED   "Fr die angegebene Zelle konnten keine Token erlangt werden."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "Starten des Backup-Servers"
!     IDS_BK_STEP_DESC        "Backup-Server starten"
!     IDS_CONFIG_ERROR        "Ein Konfigurationsfehler ist aufgetreten"
!     IDS_CREATE_PARTITION_ERROR "Partition konnte nicht erstellt werden"
!     IDS_REMOVE_PARTITION_ERROR "Partition konnte nicht entfernt werden"
!     IDS_READ_PARTITIONS_ERROR "Partitionstabelle konnte nicht gelesen werden"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\nDer Aktualisierungsprozeﾟ fr CellServDB wurde vorzeitig beendet. Nicht alle Server konnten aktualisiert werden."
!     IDS_GET_PARTITION_LIST_ERROR 
!                             "Die Partitionen auf diesem Server konnten nicht ermittelt werden"
!     IDS_EXPORTED            "Exportiert"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "Exportierte Partitionen knnen nicht entfernt werden, w臧rend der File Service aktiv ist. Sie mssen den File Service vor dem Entfernen dieser Partition stoppen."
!     IDS_CHECK_CONFIG_INFO   "ﾜberprfung auf gltige Konfigurationsdaten..."
!     IDS_ERROR_CFG_HOST_CLOSE 
!                             "Die Server Configuration Library konnte nicht geschlossen werden."
!     IDS_FAILED_OPEN_CELL    "Die Zelle konnte nicht geffnet werden."
!     IDS_FAILED_OPEN_NULL_CELL 
!                             "Eine Zelle mit NULL-Kennung konnte nicht geffnet werden"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "Mchten Sie die Root-Volumes erstellen, wenn sie noch nicht vorhanden sind?"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "Mchten Sie die Root-Volumes nachbilden, wenn sie noch nicht nachgebildet  sind?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS Server"
!     IDS_CANT_INIT_ADMIN_LIBS 
!                             "Diese Anwendung kann nicht ausgefhrt werden: Initialisierung der Bibliothek ist fehlgeschlagen."
!     IDS_CANT_OPEN_LOG_FILE  "Die Protokolldatei konnte nicht geffnet werden."
!     IDS_NEED_CLIENT_INFO    "Die Anwendung AFS Configuration kann nicht ausgefhrt werden, weil AFS Client auf diesem Computer nicht konfiguriert ist. In dieser Situation kann der AFS Configuration-Assistent verwendet werden. Den AFS Configuration-Assistenten ausfhren?"
!     IDS_NEED_SERVER_INFO    "Die Maschine ist nicht als AFS Server konfiguriert. Der AFS Configuration-Assistent muﾟ verwendet werden, um einen AFS Server zum ersten Mal zu konfigurieren. Die Anwendung AFS Configuration kann dann verwendet werden. Den AFS Configuration-Assistenten ausfhren, um diesen Computer erstmalig zu konfigurieren?"
!     IDS_ADVANCED_OPEN       "<< &Erweitert"
!     IDS_ADVANCED_CLOSED     "&Erweitert >>"
!     IDS_BOS_OPEN_FAILED     "Verbindung zum Server konnte nicht hergestellt werden (bos open fehlgeschlagen)."
!     IDS_SALVAGE_ERROR       "Die Wiederherstellungsoperation ist fehlgeschlagen."
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "Die angegebene Anzahl der Wiederherstellungsprozesse ist ungltig. Die Anzahl der Wiederherstellungsprozesse muﾟ zwischen 1 und 32 liegen."
!     IDS_WRONG_CELL          "In einem vorhergegangenen Schritt haben Sie einen Server angegeben, von dem die Konfigurationsdaten abgerufen werden sollen. Der angegebene Server gehrt nicht zu der Zelle, die Sie verknpfen mchten!"
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "Die Datei CellServDB auf einigen Servern in der Zelle konnte nicht aktualisiert werden. Eine Liste mit Servern, die aktualisiert wurden oder nicht, enth舁t das Konfigurationsprotokoll in der Datei "
!     IDS_GET_CREDENTIALS_STEP "Erlangen von Verwaltungs-Token"
!     IDS_MUST_ENTER_SCS_NAME "Der Name einer System Control-Maschine muﾟ eingegeben werden, bevor die Konfiguration beginnen kann."
!     IDS_NOT_SAME_CELL       "Der AFS Client ist in eine andere Zelle als der AFS Server \nkonfiguriert. Vor dem Konfigurieren des AFS Servers mssen Sie zuerst den AFS Client in die \nZelle des Servers neu konfigurieren."
!     IDS_LAST_DB_SERVER      "Diese Maschine fhrt den letzten Database Server in der Zelle aus. \nWenn Sie fortsetzen und den Database Service auf dieser Maschine dekonfigurieren, wird die \nZelle nicht mehr existieren, und alle anderen auf dieser Maschine aktiven AFS-Services werden \ndekonfiguriert. Trotzdem fortsetzen?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "Das Kennwort fr den AFS-Principal ist ungltig."
!     IDS_ERROR_CLIENT_VERSION 
!                             "Die Version des AFS Clients auf diesem Computer ist mit dem AFS Server nicht kompatibel. Der AFS Server erfordert mindestens Version 3.5 des AFS Clients."
!     IDS_CANT_MAP_ROOT_AFS   "Um die ACLs auf den Root-Volumes einzustellen, muﾟ in AFS ein \nLaufwerkbuchstabe zugeordnet werden. Zur Zeit sind keine Laufwerkbuchstaben verfgbar. Bitte \nmachen Sie einen Laufwerkbuchstaben frei und drcken Sie dann OK."
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "Partitionsname"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "Datenbereichsname"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE 
!                             "Anzahl von Wiederherstellungsprozessen"
!     IDS_PATH_NAME_VALIDATION_TYPE "Pfadname"
!     IDS_FILE_NAME_VALIDATION_TYPE "Dateiname"
!     IDS_GENERIC_VALIDATION_TYPE "Wert"
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 7,1212 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFSｮ Configuration-Anwendung und -Assistent"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x407
  #define AFS_VERINFO_CHARSET 1252
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 320, 246
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "AFSｮ Server Quick-Start-Assistent"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "&Abbrechen",IDCANCEL,101,225,50,14
!     PUSHBUTTON      "< &Zurck",IDBACK,155,225,50,14
!     DEFPUSHBUTTON   "&Weiter >",IDNEXT,209,225,50,14
!     PUSHBUTTON      "&Hilfe",9,263,225,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,214,305,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,103,7,210,200
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Ja, eine Partition erstellen.",IDC_CREATE_PARTITION,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,94,105,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,116,
!                     186,52,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,101,172,20,12,ES_AUTOHSCROLL
!     CONTROL         "&Nein, keine Partition erstellen.",
!                     IDC_DONT_CREATE_PARTITION,"Button",BS_AUTORADIOBUTTON,0,
!                     191,126,8
!     LTEXT           "Dieser Datei-Server speichert und liefert Dateien und Programme an AFS-Clients. Fr in diesem System gespeicherte Daten, die ber AFS gemeinsam benutzt werden, muﾟ mindestens ein NTFS-Volume als AFS-Partition gekennzeichnet sein.",
!                     -1,0,12,209,32
!     LTEXT           "&W臧len Sie das fr die Partition zu verwendende Volume:",
!                     IDC_SELECT_DRIVE,12,106,192,9
!     LTEXT           "Na&me der AFS-Partition: /vicep",IDC_NAME_LABEL,12,174,
!                     89,8
!     LTEXT           "Eine AFS-Partition auf diesem Datei-Server erstellen.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Eine AFS-Partition entspricht physisch einem NTFS-Volume, enth舁t aber auch spezielle Metadaten ber Struktur und Speicherort der Informationen zur Partition.",
!                     -1,0,48,209,25
!     LTEXT           "Mchten Sie auf diesem Datei-Server eine Partition erstellen?",
!                     IDC_ASK_CREATE_PARTITION,0,75,209,17
!     LTEXT           "Zur Laufzeit bei Bedarf erzeugte Nachricht.",
!                     IDC_PARTITION_MSG,0,166,210,34,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,210,92,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Ja, als File Server konfigurieren.",
!                     IDC_SHOULD_CONFIG_FILE_SERVER,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,114,10
!     CONTROL         "&Nein, nicht als File Server konfigurieren.",
!                     IDC_DONT_CONFIG_FILE_SERVER,"Button",BS_AUTORADIOBUTTON,
!                     0,190,143,10
!     LTEXT           "Der AFS File Service liefert angeforderte Dateien und Programme von diesem Server an AFS-Clients. Dieser Service fhrt weiterhin alle Operationen zur Volume-Verwaltung aus wie Erstellen, Lschen, Bewegen und Nachbilden von Volumes.",
!                     -1,0,38,210,34
!     LTEXT           "Diese Maschine als File Server konfigurieren.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Mchten Sie diese Maschine als File Server konfigurieren?",
!                     IDC_CREATE_FS_QUESTION,0,166,210,8
!     LTEXT           "Um diese Maschine als File Server zu konfigurieren, mssen Sie den File Service konfigurieren.",
!                     -1,0,14,210,17
!     LTEXT           "Hinweis: Diese Maschine hat zur Zeit kein Plattenlaufwerk, das fr das Speichern von Dateien in AFS verfgbar ist. Obwohl Sie diese Maschine als File Server konfigurieren knnen, werden Sie AFS-Daten auf der Maschine nicht speichern knnen.",
!                     IDC_NO_DRIVES_NOTE,0,77,210,32,NOT WS_VISIBLE
!     LTEXT           "Um Plattenlaufwerke zu erstellen, verwenden Sie den Windows NT Disk Administrator.",
!                     IDC_DISK_ADMIN_NOTE,0,112,210,16,NOT WS_VISIBLE
!     LTEXT           "Diese Maschine ist bereits als File Server konfiguriert.",
!                     IDC_MSG,0,166,209,34,NOT WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Willkommen beim AFS Server Quick Start-Assistenten. Dieser Assistent wird Sie beim schnellen Konfigurieren des AFS Servers auf diesem Windows NT-System untersttzen.",
!                     IDC_TITLE,0,0,209,52
!     LTEXT           "Drcken Sie Weiter, um mit der Konfiguration des AFS Servers zu beginnen.",
!                     IDC_STATIC,0,166,209,17
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Ja, die Root-Volumes nachbilden.",IDC_REPLICATE,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,115,10
!     CONTROL         "&Nein, die Root-Volumes nicht nachbilden.",
!                     IDC_DONT_REPLICATE,"Button",BS_AUTORADIOBUTTON,0,190,158,
!                     10
!     LTEXT           "Nachbildung ist der Prozeﾟ des Erstellens von Kopien eines Volumes mit Lesezugriff in mehreren Partitionen, blicherweise auf anderen Datei-Servern. Durch Nachbildung wird die Verfgbarkeit eines Volumes bei Ausfall eines Netzwerks oder",
!                     IDC_STATIC,0,36,209,25
!     LTEXT           "Mchten Sie die Root-Volumes nachbilden?",
!                     IDC_REPLICATE_QUESTION,0,148,209,17
!     LTEXT           "Nachbildung hilft ebenfalls, zu verhindern, daﾟ ein Server mit Anforderungen an h舫fig angesprochene Volumes berlastet wird.",
!                     IDC_STATIC,0,90,209,24
!     LTEXT           "Die Root-Volumes der Zelle nachbilden.",IDC_TITLE,0,0,
!                     209,8
!     LTEXT           "Wenn Sie andere Volumes in dieser AFS-Zelle nachbilden mchten, mssen Sie zuerst die Root-Volumes nachbilden.",
!                     IDC_STATIC,0,15,209,16
!     LTEXT           "eines Servers erhht, weil auf das Volume noch von einem anderen Server zugegriffen werden kann, wenn der Server, der das Volume beherbergt, ausf舁lt.",
!                     IDC_STATIC,0,60,209,25
!     LTEXT           "Zur Laufzeit bei Bedarf erzeugte Nachricht.",
!                     IDC_CANT_REPLICATE_MSG,0,166,209,34,NOT WS_VISIBLE | NOT 
!                     WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Ja, die Root-Volumes erstellen.",
!                     IDC_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,179,108,10
!     CONTROL         "&Nein, die Root-Volumes nicht erstellen.",
!                     IDC_DONT_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON,
!                     0,190,139,10
!     LTEXT           "In AFS sind Volumes Objektgruppen zusammengehrender Dateien, die als einzelne, leicht zu verwaltende Einheiten strukturiert sind, um die Systemverwaltung zu erleichtern.",
!                     IDC_STATIC,0,15,209,24
!     LTEXT           "Mchten Sie die Root-Volumes erstellen?",
!                     IDC_ROOT_AFS_QUESTION,0,166,209,8
!     LTEXT           "Die Root-Volumes der Zelle erstellen.",IDC_TITLE,0,0,
!                     209,8
!     LTEXT           "Einmal erstellt, sind die Root-Volumes im AFS-Dateibereich automatisch erreichbar.",
!                     IDC_STATIC,0,78,209,17
!     LTEXT           "Zur Laufzeit bei Bedarf erzeugte Nachricht.",
!                     IDC_ROOT_AFS_MSG,0,166,209,33,NOT WS_VISIBLE
!     LTEXT           "Das Volume root.afs ist das Root des AFS-Dateibereichs. Das Volume root.cell ist das Root der untergeordneten Baumstruktur des AFS-Dateibereichs der Zelle, worauf ber einen Mount-Punkt vom root.afs aus zugegriffen werden kann.",
!                     IDC_STATIC,0,42,209,34
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 84
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "Konfiguration des AFSｮ Servers"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,38,148,14
!     LTEXT           "Zur Laufzeit erzeugter Arbeitsfolgetext.",IDC_OPERATION,
!                     35,20,145,10
!     ICON            "",IDC_LOGO,7,7,20,20
!     PUSHBUTTON      "Abbrechen",IDCANCEL,73,63,50,14
!     LTEXT           "Ermitteln der aktuellen Konfiguration:",IDC_OPERATION2,
!                     35,7,156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Ja, als Backup-Server konfigurieren.",
!                     IDC_CONFIG_BACKUP_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,179,128,10
!     CONTROL         "&Nein, nicht als Backup-Server konfigurieren.",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,0,190,157,10
!     LTEXT           "Der Backup-Server kann nur auf Maschinen ausgefhrt werden, die als Database Server konfiguriert sind. Wird der Backup-Server auf einem Database Server in der Zelle ausgefhrt, so muﾟ er auf ALLEN Database Servern in der Zelle ausgefhrt werden.",
!                     -1,0,38,199,42
!     LTEXT           "Mchten Sie diese Maschine als Backup-Server konfigurieren?",
!                     IDC_BACKUP_SERVER_QUESTION,0,166,209,10
!     LTEXT           "Diese Maschine als Backup-Server konfigurieren.",
!                     IDC_TITLE,0,0,207,8
!     LTEXT           "Der Backup-Server ist eine Zusatzfunktion des Database Service.",
!                     -1,0,14,209,16
!     LTEXT           "Diese Maschine ist bereits als Database Server konfiguriert.",
!                     IDC_CANT_BACKUP_MSG,0,166,210,33,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Als den System Control &Server konfigurieren.",
!                     IDC_SYS_CONTROL_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,151,166,10
!     CONTROL         "Als einen System Control &Client konfigurieren.",
!                     IDC_SYS_CONTROL_CLIENT,"Button",BS_AUTORADIOBUTTON,0,164,
!                     173,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,90,174,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "&Nicht als System Control Client oder Server konfigurieren.",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON,0,190,199,
!                     9
!     LTEXT           "Der System Control Server stellt anderen AFS-Server-Maschinen, die als System Control Clients konfiguriert sind, allgemeine Konfigurationsdateien zur Verfgung. AFS-Zellen drfen nur einen einzigen System Control Server ausfhren.",
!                     -1,0,14,209,33
!     LTEXT           "Als System Control Server oder Client konfigurieren.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Mchten Sie diese Maschine als System Control Server oder Client konfigurieren?",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,0,131,207,17
!     LTEXT           "Ein System Control Client erh舁t vom System Control Server der Zelle alle verfgbaren Aktualisierungen zu seinen AFS-Konfigurationsdateien.",
!                     IDC_SYS_CONTROL_CLIENT_DESC,0,52,209,26
!     LTEXT           "S&ystem Control Server:",IDC_SYS_CONTROL_MACHINE_LABEL,
!                     15,176,73,8,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,0,166,210,34,NOT WS_VISIBLE
!     LTEXT           "WARNUNG: Standorte, die den Vertrieb von AFSｮ in den Vereinigten Staaten nicht nutzen, sollten Konfigurationsdateien nicht ber den System Control Server verteilen. Es wrden dabei sensible Systeminformationen in unverschlsselter Form bertragen.",
!                     -1,9,81,200,49
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Dies sind die gesamten Informationen, die zum Konfigurieren des AFS Servers in diesem System bentigt werden.",
!                     IDC_ALL_NEEDED_MSG,1,14,209,17
!     LTEXT           "Diese Maschine in die Zelle <zur Laufzeit erzeugt> konfigurieren",
!                     IDC_TITLE,1,0,208,8
!     LTEXT           "Die folgenden Konfigurationsschritte werden ausgefhrt:",
!                     IDC_FOLLOWING_STEPS_MSG,1,36,187,8
!     LTEXT           "Schritt 1 - zur Laufzeit erzeugter Text",IDC_STEP1,22,
!                     49,179,8,NOT WS_VISIBLE
!     LTEXT           "Schritt 3 - zur Laufzeit erzeugter Text",IDC_STEP3,22,
!                     73,179,8,NOT WS_VISIBLE
!     LTEXT           "Schritt 2 - zur Laufzeit erzeugter Text",IDC_STEP2,22,
!                     61,179,8,NOT WS_VISIBLE
!     LTEXT           "Schritt 4 - zur Laufzeit erzeugter Text",IDC_STEP4,22,
!                     85,179,8,NOT WS_VISIBLE
!     LTEXT           "Schritt 5 - zur Laufzeit erzeugter Text",IDC_STEP5,22,
!                     97,179,8,NOT WS_VISIBLE
!     LTEXT           "Schritt 6 - zur Laufzeit erzeugter Text",IDC_STEP6,22,
!                     109,179,8,NOT WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,178,200,11
!     LTEXT           "Schritt 8 - zur Laufzeit erzeugter Text",IDC_STEP8,22,
!                     133,179,8,NOT WS_VISIBLE
!     LTEXT           "Schritt 7 - zur Laufzeit erzeugter Text",IDC_STEP7,22,
!                     121,179,8,NOT WS_VISIBLE
!     LTEXT           "Zur Laufzeit bei Bedarf erzeugte Nachricht.",
!                     IDC_CANT_CONFIG_MSG,1,13,209,17,NOT WS_VISIBLE
!     LTEXT           "Vollst舅dig in Prozent:",IDC_PERCENT_COMPLETE_LABEL,1,
!                     191,76,8,NOT WS_VISIBLE
!     LTEXT           "Laufender Prozeﾟ:",IDC_CURRENT_STEP_LABEL,1,157,108,8,
!                     NOT WS_VISIBLE
!     LTEXT           "Beschreibung des laufenden Schrittes - zur Laufzeit erzeugt",
!                     IDC_CURRENT_STEP,1,167,208,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,92,191,49,8,NOT WS_VISIBLE
!     LTEXT           "Um mit der Konfiguration dieses Computers zu beginnen, drcken Sie Konfigurieren. Um die auszufhrenden Konfigurationsschritte zu ver舅dern, drcken Sie Zurck.",
!                     IDC_STATUS_MSG,1,159,208,41
!     LTEXT           "",IDC_STEP1_GRAPHIC,10,49,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,10,61,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,10,73,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,10,85,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,10,97,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,10,109,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,10,121,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,10,133,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,64,55,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,64,71,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,64,87,138,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,112,158,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,149,156,11,14
!     LTEXT           "Verwaltungsinformationen",IDC_TITLE,0,0,202,8
!     LTEXT           "&Name:",IDC_ADMIN_NAME_LABEL,7,57,22,8
!     LTEXT           "&Kennwort:",IDC_ADMIN_PW_LABEL,7,73,34,8
!     GROUPBOX        "Name und Kennwort des Kontos",IDC_ADMIN_INFO_FRAME,0,41,
!                     210,65
!     LTEXT           "&Prfkennwort:",IDC_VERIFY_ADMIN_PW_LABEL,7,90,52,8
!     LTEXT           "Die untenstehenden Informationen werden bentigt, um das Verwaltungskonto fr diese neue Zelle zu erstellen.",
!                     IDC_STATIC,0,15,209,17
!     CONTROL         "&Diese AFS UID verwenden:",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,159,99,10
!     CONTROL         "Die &n臘hste verfgbare AFS UID verwenden",
!                     IDC_USE_NEXT_UID,"Button",BS_AUTORADIOBUTTON,6,144,160,
!                     10
!     GROUPBOX        "AFS UID",IDC_STATIC,0,118,209,57
!     LTEXT           "Geben Sie die Benutzer-ID fr das AFS-Verwaltungskonto ein:",
!                     IDC_STATIC,6,130,196,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Ja, als Database Server konfigurieren.",
!                     IDC_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,131,134,10
!     CONTROL         "&Nein, nicht als Database Server konfigurieren.",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,0,
!                     188,160,10
!     LTEXT           "Der Database Service verwaltet die durch eine AFS-Zelle bentigte Gruppe nachgebildeter Datenbanken. Dieser Service verwaltet fr die Zelle alle Informationen zu Konten, Volume-Speicherorten und (optional) zur Sicherung.",
!                     -1,0,38,209,54
!     LTEXT           "Mchten Sie diese Maschine als Database Server konfigurieren?",
!                     IDC_DB_SERVER_QUESTION,0,108,209,10
!     LTEXT           "Diese Maschine als Database Server konfigurieren.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Um diese Maschine als Database Server zu konfigurieren, mssen Sie den Database Service konfigurieren.",
!                     -1,0,14,209,16
!     LTEXT           "Diese Maschine ist bereits als Database Server konfiguriert.",
!                     IDC_MSG,0,167,210,33,NOT WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,86,174,119,12,ES_AUTOHSCROLL
!     LTEXT           "S&ystem Control Server:",IDC_SYS_CONTROL_MACHINE_LABEL,
!                     12,176,73,8
!     LTEXT           "Wenn Ihre Zelle einen System Control Server besitzt, geben Sie seinen Hostnamen unter ein. Die AFS-Konfigurations-\ndateien werden ber diesen Server aktualisiert.",
!                     IDC_SCM_PROMPT,10,144,195,27
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     CONTROL         "Diesen Host zu einem Server in einer vorhandenen AFS-Zelle &machen",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON | 
!                     BS_MULTILINE,0,41,203,15
!     CONTROL         "&Dies wird der erste Server in einer neuen AFS-Zelle sein",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,0,59,197,8
!     EDITTEXT        IDC_CELL_NAME,64,96,139,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,64,166,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,64,180,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "Zellen- und Server-Informationen",IDC_TITLE,0,0,203,8
!     LTEXT           "&Zellenname:",IDC_CELL_NAME_LABEL,7,97,40,8
!     LTEXT           "&Kennwort:",IDC_SERVER_PW_LABEL,7,167,34,8,WS_DISABLED
!     LTEXT           "Geben Sie den Namen der AFS-Zelle ein:",
!                     IDC_CELL_NAME_PROMPT,8,86,195,9
!     LTEXT           "Geben Sie das Kennwort fr den AFS-Principal ein. Alle AFS Server erhalten Token als dieser Principal.",
!                     IDC_SERVER_PW_PROMPT,7,130,196,19,WS_DISABLED
!     GROUPBOX        "Zellenname",IDC_CELL_NAME_FRAME,0,75,210,43
!     GROUPBOX        "Server-Kennwort",IDC_SERVER_PW_FRAME,0,119,210,81,
!                     WS_DISABLED
!     LTEXT           "&Prfkennwort:",IDC_VERIFY_PW_LABEL,7,180,52,8,
!                     WS_DISABLED
!     LTEXT           "Eine AFS-Zelle ist eine Objektgruppe von Servern, die fr den Dateizugriff einen einheitlichen Namespace zur Verfgung stellen.",
!                     IDC_CELL_NAME_PROMPT2,1,13,202,24
!     LTEXT           "Name:",IDC_PRINCIPAL_LABEL,7,152,22,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,64,150,139,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,53,43,149,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,53,59,149,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,53,132,149,12,ES_AUTOHSCROLL
!     LTEXT           "Verwaltungsinformationen",IDC_TITLE,0,0,209,8
!     LTEXT           "Geben Sie die Verwaltungsinformationen zum Konto unten ein:",
!                     IDC_ADMIN_INFO_PROMPT,7,30,196,10
!     LTEXT           "&Name:",IDC_ADMIN_NAME_LABEL,7,46,22,8
!     LTEXT           "&Kennwort:",IDC_ADMIN_PW_LABEL,7,62,34,8
!     GROUPBOX        "Name und Kennwort des Kontos",IDC_ADMIN_INFO_FRAME,0,17,
!                     210,62
!     GROUPBOX        "Vorhandene AFS Server",IDC_HOSTNAME_FRAME,1,92,209,60
!     LTEXT           "AFS Server:",IDC_HOSTNAME_LABEL,9,134,43,8
!     LTEXT           "Geben Sie den Hostnamen eines anderen AFS Servers in der Zelle ein, die Sie verknpfen mchten. Von diesem Server werden die AFS-Konfigurationsdaten empfangen.",
!                     IDC_HOSTNAME_PROMPT,7,105,202,25
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 284
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "Services"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,20,281,45
!     GROUPBOX        "",IDC_STATIC,7,70,281,43
!     GROUPBOX        "",IDC_STATIC,7,119,281,45
!     GROUPBOX        "",IDC_STATIC,7,169,281,44
!     CONTROL         "File Service",IDC_FS_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,19,60,10
!     CONTROL         "Database Service",IDC_DB_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,69,82,10
!     PUSHBUTTON      "Einzeldaten...",IDC_DB_DETAILS,230,85,50,14,NOT 
!                     WS_VISIBLE
!     CONTROL         "Backup-Server",IDC_BK_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,118,71,10
!     CONTROL         "System Control Server",IDC_SCS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,168,98,10
!     EDITTEXT        IDC_SC_MACHINE,107,241,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "W臧len Sie die Services aus, die auf diesem AFS Server laufen sollen:",
!                     IDC_STATIC,7,7,217,8
!     LTEXT           "Der File Service ist zur Zeit aktiv.",IDC_FS_STATUS_MSG,
!                     14,32,261,8
!     LTEXT           "Der Database Service ist zur Zeit teilweise installiert.",
!                     IDC_DB_STATUS_MSG,14,82,195,8
!     LTEXT           "S&ystem Control Server:",IDC_SC_MACHINE_LABEL,31,243,73,
!                     8,WS_DISABLED
!     LTEXT           "Um den File Service zu stoppen, machen Sie die Markierung des obigen Fensters rckg舅gig.",
!                     IDC_FS_ACTION_MSG,14,44,262,17
!     LTEXT           "Fr weitere Informationen klicken Sie auf Einzeldaten.",
!                     IDC_DB_ACTION_MSG,14,93,212,15
!     LTEXT           "Der Backup-Server ist zur Zeit aktiv.",
!                     IDC_BK_STATUS_MSG,14,131,259,8
!     LTEXT           "Um den Backup-Server zu stoppen, machen Sie die Markierung des obigen Fensters rckg舅gig.",
!                     IDC_BK_ACTION_MSG,14,143,262,16
!     LTEXT           "Um diesen Server zu aktivieren, mssen Sie entweder den File Service oder den Database Service ausfhren.",
!                     IDC_SCS_ACTION_MSG,14,193,268,18
!     LTEXT           "Der Service System Control ist zur Zeit nicht aktiv.",
!                     IDC_SCS_STATUS_MSG,14,180,263,9
!     GROUPBOX        "",IDC_STATIC,7,220,281,57
!     CONTROL         "System Control Client",IDC_SCC,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,219,95,10
!     LTEXT           "Um diesen Server zu aktivieren, mssen Sie entweder den File Service oder den Database Service ausfhren.",
!                     IDC_SCC_ACTION_MSG,14,257,268,15
!     LTEXT           "Der Service System Control ist zur Zeit nicht aktiv.",
!                     IDC_SCC_STATUS_MSG,14,230,263,9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "Partitionen"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Die folgenden &AFS-Partitionen sind auf Ihrem Computer vorhanden:",
!                     IDC_STATIC,8,7,220,8
!     PUSHBUTTON      "&Erstellen...",IDC_CREATE_PARTITIONS,17,118,71,14
!     LTEXT           "Um eine Partition oder ein Volume auf einer Partition zurckzugewinnen, w臧len Sie in der Liste die Partition aus und klicken auf die obige Schaltfl臘he. Um alle Partitionen auf diesem Server zurckzugewinnen, klicken Sie auf die obige Schaltfl臘he.",
!                     IDC_SALVAGE_MSG,30,179,250,32
!     PUSHBUTTON      "&Zurckgewinnen...",IDC_SALVAGE,17,159,71,14
!     LTEXT           "Um eine Partition zu entfernen, w臧len Sie in der Liste die Partition aus und klicken auf die obige Schaltfl臘he.",
!                     IDC_REMOVE_MSG,30,235,253,17,WS_DISABLED
!     PUSHBUTTON      "&Entfernen",IDC_REMOVE,17,217,53,14,WS_DISABLED
!     GROUPBOX        "Partitionen",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
!                     281,79,WS_EX_CLIENTEDGE
!     LTEXT           "Um auf diesem Server eine neue Partition zu erstellen, klicken Sie auf die obige Schaltfl臘he.",
!                     IDC_CREATE_MSG,30,136,254,16
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 264, 177
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "AFS-Partition erstellen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "W臧len Sie aus der unten stehenden Liste ein NTFS-Volume aus, auf dem die neue Partition erstellt werden soll:",
!                     IDC_TITLE,7,5,250,18
!     LTEXT           "Name der AFS-Partition:",IDC_NAME_STATIC,14,131,76,8
!     EDITTEXT        IDC_PARTITION_NAME,123,129,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Erstellen",IDC_CREATE,96,158,50,14,WS_DISABLED
!     PUSHBUTTON      "&Schlieﾟen",IDC_CLOSE,152,158,50,14
!     PUSHBUTTON      "Hilfe",9,207,158,50,14
!     GROUPBOX        "Parameter der Partition",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,25,250,
!                     85,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,99,131,22,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 225, 159
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Konfiguration des AFSｮ Servers"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,59,33,151,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,59,49,151,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,59,113,151,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Konfigurieren",IDOK,108,138,50,14,WS_DISABLED
!     PUSHBUTTON      "Abbrechen",IDCANCEL,48,138,50,14
!     PUSHBUTTON      "Hilfe",9,168,138,50,14
!     LTEXT           "Geben Sie die Verwaltungsinformationen zum Konto unten ein:",
!                     IDC_ADMIN_INFO_PROMPT,14,20,196,10
!     LTEXT           "&Name:",IDC_ADMIN_NAME_LABEL,15,36,22,8
!     LTEXT           "&Kennwort:",IDC_ADMIN_PW_LABEL,15,52,34,8
!     GROUPBOX        "Name und Kennwort des Kontos",IDC_ADMIN_INFO_FRAME,7,7,
!                     211,62
!     GROUPBOX        "System Control Server",IDC_HOSTNAME_FRAME,7,73,211,59
!     LTEXT           "&Host-Name:",IDC_HOSTNAME_LABEL,15,115,40,8
!     LTEXT           "Wenn Ihre Zelle einen System Control Server besitzt, geben Sie seinen Hostnamen unter ein. Die AFS-Konfigurationsdateien werden ber diesen Server aktualisiert.",
!                     IDC_HOSTNAME_PROMPT,13,84,205,24
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime. In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,150,225,9,NOT WS_VISIBLE
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 257, 87
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Konfiguration des AFSｮ Servers"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "Abbrechen",IDCANCEL,103,66,50,14
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,37,200,11
!     LTEXT           "Vollst舅dig in Prozent:",IDC_PERCENT_COMPLETE_LABEL,40,
!                     50,76,8,NOT WS_VISIBLE
!     LTEXT           "Laufender Prozeﾟ:",IDC_CURRENT_STEP_LABEL,40,15,108,8,
!                     NOT WS_VISIBLE
!     LTEXT           "Beschreibung des laufenden Schrittes - zur Laufzeit erzeugt",
!                     IDC_CURRENT_STEP,40,26,210,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,117,50,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,7,20,20
!     LTEXT           "Um mit der Konfiguration dieses Computers zu beginnen, drcken Sie Konfigurieren. Um die auszufhrenden Konfigurationsschritte zu ver舅dern, drcken Sie Zurck.",
!                     IDC_STATUS_MSG,40,16,210,41
!     PUSHBUTTON      "Protokoll &anzeigen",IDNEXT,156,66,62,14,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "CellServCB-Aktualisierungsfehler"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LISTBOX         IDC_LIST,7,26,173,127,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "OK",IDOK,22,162,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "Hilfe",9,130,162,50,14
!     LTEXT           "Die Datei CellServDB auf den folgenden AFS-Servern konnte nicht automatisch aktualisiert werden:",
!                     IDC_STATIC,7,7,173,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 243, 188
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Wiederherstellung"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     DEFPUSHBUTTON   "OK",IDOK,78,97,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,132,97,50,14
!     PUSHBUTTON      "&Hilfe",9,186,97,50,14
!     CONTROL         "Alle Partitionen auf diesem Datei-Server &zurckgewinnen",
!                     IDC_SERVER,"Button",BS_AUTORADIOBUTTON,14,35,205,10
!     CONTROL         "Alle Volumes auf der ausgew臧lten &Partition zurckgewinnen",
!                     IDC_PARTITION,"Button",BS_AUTORADIOBUTTON,14,48,211,10
!     CONTROL         "Ein spezielles &Volume der ausgew臧lten Partition zurckgewinnen",
!                     IDC_VOLUME,"Button",BS_AUTORADIOBUTTON,14,61,222,10
!     EDITTEXT        IDC_VOLUME_NAME,76,74,97,12,ES_AUTOHSCROLL | WS_DISABLED
!     PUSHBUTTON      "<< &Erweitert",IDC_ADVANCED,7,97,50,14
!     GROUPBOX        "",IDC_STATIC,7,25,229,67
!     LTEXT           "Volume-&Name:",IDC_VOLUME_NAME_LABEL,27,75,47,8,
!                     WS_DISABLED
!     GROUPBOX        "Erweiterte Optionen zur Wiederherstellung ",
!                     IDC_ADVANCED_FRAME,7,119,229,62
!     LTEXT           "Pfad fr &Tempor舐dateien:",IDC_TEMP_DIR_LABEL,13,162,
!                     84,12
!     EDITTEXT        IDC_LOG_FILE,97,146,133,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,209,129,21,12,ES_AUTOHSCROLL
!     LTEXT           "Dateiname fr &Ergebnisprotokoll:",IDC_LOG_FILE_LABEL,
!                     13,144,68,16
!     EDITTEXT        IDC_TEMP_DIR,97,161,133,12,ES_AUTOHSCROLL
!     CONTROL         "Pa&rallele Wiederherstellungsoperationen; Anz. Prozesse:",
!                     IDC_NUM_PROCESSES_CHECKBOX,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,17,131,189,10
!     LTEXT           "W臧rend Sie den Server oder eine ganze Partition zurckgewinnen, ist der Server zeitweilig offline.",
!                     IDC_STATIC,50,7,186,17
!     LTEXT           "HINWEIS:",IDC_STATIC,7,7,38,8
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is\\bresized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,180,243,8,NOT WS_VISIBLE
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Kennwort des AFS-Principals"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_PW,48,42,142,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "OK",IDOK,31,61,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "Hilfe",9,140,61,50,14
!     LTEXT           "Der Schlssel eines AFS-Principals kann nicht von einem Authentifizierungs-Server mit einem Stand vor 3.5 abgerufen werden. Geben Sie bitte das Kennwort des AFS-Principals unten ein.",
!                     IDC_STATIC,7,7,183,34
!     LTEXT           "Kennwort:",IDC_STATIC,7,44,35,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "Wiederherstellung von Volumes - Ergebnisse"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "&Schlieﾟen",IDC_CLOSE,225,266,50,14,WS_DISABLED
!     PUSHBUTTON      "Hilfe",9,280,266,50,14
!     LTEXT           "<Zur Laufzeit erzeugt>",IDC_LOG_TITLE,7,38,263,8
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "<Zur Laufzeit erzeugt>",IDC_SALVAGE_STATUS,37,15,185,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 313
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 239
!         HORZGUIDE, 207
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 209
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 201
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 203
!         VERTGUIDE, 64
!         VERTGUIDE, 203
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 53
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 277
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 218
!         VERTGUIDE, 59
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 152
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 250
!         VERTGUIDE, 40
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 80
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 236
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 181
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""AFSｮ Configuration-Anwendung und -Assistent""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "&Weiter >"
!     IDS_FINISH              "&Fertigstellen"
!     IDS_HELP_TITLE          "Schaltfl臘he Hilfe gedrckt"
!     IDS_HELP_DESC           "Hilfe ist zur Zeit nicht verfgbar."
!     IDS_CANCEL_DESC         "Den AFS Quick-Start-Assistenten abbrechen?"
!     IDS_PARTITION_ALREADY_CREATED 
!                             "Auf dieser Maschine ist bereits eine AFS-Partition vorhanden."
!     IDS_NOT_A_FS_SERVER     "Diese Maschine ist nicht als File Server konfiguriert. Volumes knnen nur auf File Server-Maschinen erstellt werden."
!     IDS_ROOT_AFS_ALREADY_EXISTS "Die Root-Volumes sind bereits vorhanden."
!     IDS_NO_PARTITION_EXISTS "Es sind keine Partitionen vorhanden, auf denen die Root-Volumes \nerstellt werden knnen. Eine Partition muﾟ vorhanden sein, bevor die Root-Volumes erstellt \nwerden knnen."
!     IDS_ALREADY_REPLICATED  "Die Root-Volumes wurden bereits nachgebildet."
!     IDS_ROOT_AFS_DOESNT_EXIST 
!                             "Die Root-Volumes sind nicht vorhanden. Die Root-Volumes mssen vorhanden sein, bevor sie nachgebildet werden knnen."
!     IDS_ALREADY_CONFIGURED  "Diese Maschine ist bereits als AFS Server konfiguriert."
!     IDS_NOTHING_TO_CONFIGURE 
!                             "Sie haben fr die Konfiguration nichts ausgew臧lt."
!     IDS_EXIT                "Exit"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "Starten des File Service"
!     IDS_CANCEL_CONFIG_MSG   "Wenn Sie an diesem Punkt abbrechen, ist Computer nur teilweise als AFS-Server konfiguriert. Trotzdem abbrechen?"
!     IDS_WIZARD_APP_TITLE    "AFSｮ Server Quick Start-Assistent"
!     IDS_CANCEL_PENDING      "*** Abbruch l舫ft - einen Moment bitte... ***"
!     IDS_CHECK_FS_CONFIG     "ﾜberprfung des File Servers..."
!     IDS_CHECK_DB_CONFIG     "ﾜberprfung des Database Servers..."
!     IDS_CHECK_BAK_CONFIG    "ﾜberprfung des Backup-Servers..."
!     IDS_CHECK_PARTITION     "ﾜberprfung der AFS-Partition..."
!     IDS_CHECK_ROOT_AFS      "ﾜberprfung der Root-Volumes..."
!     IDS_CHECK_REP           "ﾜberprfung der Nachbildungen der Root-Volumes..."
!     IDS_CANCEL_GET_CONFIG   "Abbrechen...Einen Moment bitte..."
!     IDS_ALREADY_A_BACKUP_SERVER 
!                             "Diese Maschine ist bereits als Backup-Server konfiguriert."
!     IDS_NOT_A_DB_SERVER     "Diese Maschine ist nicht als Database Server konfiguriert. Backup-Server knnen nur auf Database Server-Maschinen ausgefhrt werden."
!     IDS_ALREADY_A_SYS_CONTROL_SERVER 
!                             "Diese Maschine ist bereits als System Control Server konfiguriert."
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT 
!                             "Diese Maschine ist bereits als System Control Client konfiguriert."
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "Diese Maschine ist nicht als Database oder File Server \nkonfiguriert. Ein Computer kann nur als System Control-Maschine konfiguriert werden, wenn er auch als Database oder File Server-Maschine konfiguriert ist."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "Volume"
!     IDS_NAME_OR_ERROR       "Name (oder Fehlernachricht)"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "Diese Maschine ist nicht als Database oder File Server \nkonfiguriert. Ein Computer kann nur als Binary Distribution-Maschine konfiguriert werden, wenn \ner auch als Database oder File Server-Maschine konfiguriert ist."
!     IDS_CHECK_SCS           "ﾜberprfung des System Control Servers..."
!     IDS_CHECK_SCC           "ﾜberprfung des System Control Clients..."
!     IDS_SIZE                "Grﾟe"
!     IDS_ERROR_SEP           ",   "
!     IDS_MUST_CONFIG_FS      "Wenn dies der erste AFS Server in der Zelle ist, wird der File Service standardm葹ig konfiguriert."
!     IDS_MUST_CONFIG_DB      "Wenn dies der erste AFS Server in der Zelle ist, wird der Database Service standardm葹ig konfiguriert."
!     IDS_MUST_MAKE_PARTITION "Wenn dies der erste AFS Server in der Zelle ist, muﾟ eine Partition erstellt werden."
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "Wenn dies der erste AFS Server in der Zelle ist, werden die Volumes root.afs und root.cell standardm葹ig erstellt."
!     IDS_MUST_REPLICATE      "Wenn dies der erste AFS Server in der Zelle ist, werden die Volumes root.afs und root.cell standardm葹ig nachgebildet."
!     IDS_CHECK_AFS_CLIENT    "ﾜberprfung der Installation des AFS Clients..."
!     IDS_ERROR_HOST_NAME     "Der Host-Name dieser Maschine konnte nicht ermittelt werden."
!     IDS_ERROR_DRIVE_COMPRESSED "Laufwerk ist komprimiert"
!     IDS_ERROR_CFG_HOST_OPEN "Die Server Configuration Library konnte nicht initialisiert werden."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "Stoppen des AFS Clients"
!     IDS_ERROR_LOCAL_HOST_NAME 
!                             "Der lokale Host-Name dieser Maschine konnte nicht ermittelt werden."
!     IDS_GET_TOKENS_ERROR    "Keine Token erhalten. ﾜberprfen Sie, ob Sie Benutzername und Kennwort korrekt eingegeben haben."
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "Wiederherstellung kann nicht durchgefhrt werden, weil der File \nService noch nicht gestartet worden ist. Bitte starten Sie den File Service und versuchen Sie \nes erneut."
!     IDS_SALVAGING           "Wiederherstellung in Bearbeitung. Bitte warten..."
!     IDS_CURRENT_SALVAGE_LOG "Aktueller Inhalt des Wiederherstellungsprotokolls:"
!     IDS_FINAL_SALVAGE_LOG   "Letzter Inhalt des Wiederherstellungsprotokolls:"
!     IDS_SALVAGE_COMPLETE    "Die Wiederherstellung ist beendet."
!     IDS_CANT_GET_SALVAGE_LOG 
!                             "Wiederherstellungsprotokoll konnte nicht abgerufen werden."
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK 
!                             "Wiederherstellungsprotokoll konnte nicht auf Platte gesichert werden."
!     IDS_VALIDATION_ERROR_TEMPLATE 
!                             "Angegebene(s) %1 ist ungltig. Bitte geben Sie %2 neu ein."
!     IDS_CELL_NAME_VALIDATION_TYPE "Zellenname"
!     IDS_SERVER_NAME_VALIDATION_TYPE "Server-Name"
!     IDS_PASSWORD_VALIDATION_TYPE "Kennwort"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "Benutzername"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "Der AFS Client ist nicht installiert. Der AFS Client muﾟ installiert sein, bevor der AFS Server konfiguriert werden kann."
!     IDS_ERROR_AFS_CLIENT_CHECK 
!                             "Es konnte nicht ermittelt werden, ob der AFS Client installiert ist."
!     IDS_ERROR_FS_IS_NOT_NTFS "Dateisystem ist kein NTFS-Dateisystem"
!     IDS_ERROR_DRIVE_HAS_DATA "Laufwerk enth舁t Daten"
!     IDS_PARTITION_STEP_DESC "AFS-Partition erstellen"
!     IDS_ERROR_DRIVE_CONTAINS_NT "Laufwerk enth舁t NT-Installation"
!     IDS_DB_STEP_DESC        "Database Service starten"
!     IDS_FS_STEP_DESC        "File Service starten"
!     IDS_SCC_STEP_DESC       "System Control Client starten"
!     IDS_SCS_STEP_DESC       "System Control Server starten"
!     IDS_ROOT_AFS_STEP_DESC  "Root-Volumes erstellen"
!     IDS_REP_STEP_DESC       "Root-Volumes nachbilden"
!     IDS_PARTITIONS_PAGE_TITLE "Partitionen"
!     IDS_CONFIGURE           "&Konfigurieren"
!     IDS_DB_AND_BK_STEP_DESC "Database Service starten (beinhaltet Backup-Server)"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "Erstellen der AFS-Partition"
!     IDS_CONFIG_COMMON_FUNCS "Konfigurieren der allen Services gemeinsamen Funktionen"
!     IDS_START_DB_STEP       "Starten des Database Service"
!     IDS_START_SCC_STEP      "Starten des System Control Service als System Control Client"
!     IDS_START_SCS_STEP      "Starten des System Control Service als System Control Server"
!     IDS_CREATE_ROOT_AFS_STEP "Erstellen des Volumes root.afs"
!     IDS_REP_STEP            "Nachbilden des Root-Volumes"
!     IDS_START_AUTH_STEP     "Abrufen von Token fr diesen Server"
!     IDS_SERVICES_PAGE_TITLE "Services"
!     IDS_CONFIG_SUCCEEDED    "Konfiguration war erfolgreich."
!     IDS_CONFIG_CANCELED     "Konfiguration wurde abgebrochen."
!     IDS_CONFIG_FAILED       "Konfiguration fehlgeschlagen.\r\n\r\nDie detaillierte Protokolldatei %1 ist an Adresse %2 erstellt worden."
!     IDS_ERROR_NO_LICENSE_NUM "Keine AFS-Lizenznummer gefunden."
!     IDS_VERIFY_CLIENT_INSTALL_STEP 
!                             "ﾜberprfen der Installation des AFS Clients"
!     IDS_SET_SERVER_LICENSE_STEP "Einstellung der Lizenz fr diesen Server"
!     IDS_DEFINE_CELL_NAME_STEP "Definieren des Namens fr diese Zelle"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP 
!                             "Aus diesem Server ein Mitglied der Zelle machen"
!     IDS_START_BOS_SERVER_STEP "Starten des BOS-Servers"
!     IDS_START_AUTH_SERVER_STEP "Starten des Authentifizierungs-Servers"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP 
!                             "Erstellen eines Principals und eines Schlssels fr diesen Server"
!     IDS_START_DB_AND_BK_STEP 
!                             "Starten des Database Service (beinhaltet Backup-Server)"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP "Erstellen des Principals cell admin"
!     IDS_START_CLIENT_STEP   "Starten des AFS Clients"
!     IDS_SET_ROOT_ACL_STEP   "Einstellung der ACL auf dem Volume root.afs"
!     IDS_CREATE_ROOT_CELL_STEP "Erstellen des Volumes root.cell"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP 
!                             "Anh舅gen des Volumes root.cell mit Hilfe eines Standard-Mount-Punktes"
!     IDS_SET_ROOT_CELL_ACL_STEP "Einstellung der ACL auf dem Volume root.cell"
!     IDS_MOUNT_ROOT_CELL_RW_STEP 
!                             "Anh舅gen des Volumes root.cell mit Hilfe eines Read/Write-Mount-Punktes"
!     IDS_ENABLE_AUTH_CHECKING_STEP 
!                             "Aktivieren der ﾜberprfung der Authentifizierung"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "Erlangen von Verwaltungs-Token"
!     IDS_RESTART_SERVERS_STEP 
!                             "Erneutes Starten aller Server auf dieser Maschine als authentifizierte Server"
!     IDS_ALREADY_A_FS_SERVER "Diese Maschine ist bereits als File Server konfiguriert."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "Diese Maschine ist bereits als Database Server konfiguriert."
!     IDS_INTRO_PAGE          "Einfhrung"
!     IDS_INFO_PAGE           "Zellen- und Serverinformationen"
!     IDS_FS_PAGE             "File Service"
!     IDS_DB_PAGE             "Database Service"
!     IDS_CFG_TOOL_APP_TITLE  "Konfiguration des AFSｮ Servers"
!     IDS_BK_PAGE             "Backup-Server"
!     IDS_ROOT_AFS_PAGE       "AFS-Root-Volumes"
!     IDS_NAME                "Name"
!     IDS_REP_PAGE            "Nachbildung"
!     IDS_SC_PAGE             "System Control Service"
!     IDS_CONFIG_PAGE         "Das System konfigurieren"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "AFS-Partition"
!     IDS_GRAPHIC_FONT        "Ms Sans Serif, 6, B"
!     IDS_CURRENT_STEP        "Aktueller Schritt:"
!     IDS_ADD_TO_CELLSERVDB_STEP "Hinzufgen dieses Servers zu CellServDB"
!     IDS_RESTART_ALL_DB_SERVERS_STEP 
!                             "Erneutes Starten aller Datenbank-Server in der Zelle"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "Konfiguration war erfolgreich. HINWEIS: Die Datei CellServDB aller \nAFS-Clients in Ihrer Zelle muﾟ aktualisiert werden. Gew臧rleisten Sie, daﾟ Sie den AFS Product \nSupport mit einer aktuellen Liste Ihrer Database Servers verwenden, wenn Sie Ihre Zelle fr \nandere Standorte zug舅glich machen."
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG 
!                             "Mchten Sie diese Maschine als System Control Server konfigurieren?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG 
!                             "&Nicht als System Control Server konfigurieren."
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "Konfiguration des AFS Servers erfordert, daﾟ der AFS Client in derselben Zelle wie der Server konfiguriert ist. Dies erfolgt automatisch."
!     IDS_INFO_PAGE2          "Informationen zur Verwaltung"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "Konfiguration war erfolgreich.\r\n\r\nHINWEIS: Gew臧rleisten Sie, daﾟ Sie den AFS Product Support mit einer Liste Ihrer Database Server verwenden, wenn Sie Ihre Zelle fr andere Standorte zug舅glich machen."
!     IDS_CONFIG_SCS          "Als System Control Server der Zelle konfigurieren."
!     IDS_CONFIG_INTO_CELL_MSG "Diesen Host konfigurieren in Zelle "
!     IDS_VIEW_LOG            "Protokoll &ffen"
!     IDS_VIEW_LOG_ERROR      "Die Protokolldatei kann nicht angezeigt werden"
!     IDS_ERROR_NO_LOG_FILE   "Die Protokolldatei ist nicht vorhanden."
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED 
!                             "Aktualisierter CellServDB auf Host "
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED 
!                             "Fehlgeschlagene Aktualisierung von CellServDB auf Host "
!     IDS_CELL_NAME_LEN_ERROR "Der von Ihnen eingegebene Zellenname ist zu lang. Zellennamen knnen nicht l舅ger als 64 Zeichen sein."
!     IDS_CONFIG_CHECK_FAILED "Die aktuelle Konfiguration auf dieser Maschine konnte nicht ermittelt werden."
!     IDS_YES                 "Ja"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "Nein"
!     IDS_FREE                "Freier Speicherbereich"
!     IDS_TOTAL               "Grﾟe insgesamt"
!     IDS_DRIVE2              "Laufwerk"
!     IDS_SERVICE_STATUS      "Status"
!     IDS_SERVICE             "Service"
!     IDS_FS_RUNNING          "Der File Service ist zur Zeit aktiv."
!     IDS_FS_STOPPED          "Der File Service ist zur Zeit nicht aktiv."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "Der Database Service ist zur Zeit aktiv."
!     IDS_DB_STOPPED          "Der Database Service ist zur Zeit nicht aktiv."
!     IDS_BK_RUNNING          "Der Backup-Service ist zur Zeit aktiv."
!     IDS_BK_STOPPED          "Der Backup-Service ist zur Zeit nicht aktiv."
!     IDS_SCS_STOPPED         "Der System Control Server ist zur Zeit nicht aktiv."
!     IDS_SCC_STOPPED         "Der System Contol Client ist zur Zeit nicht aktiv."
!     IDS_FS_HOW_TO_RUN       "Um den File Service zu starten, berprfen Sie das obige Fenster."
!     IDS_FS_HOW_TO_STOP      "Um den File Service zu stoppen, machen Sie die Markierung des \nobigen Fensters rckg舅gig."
!     IDS_DB_HOW_TO_RUN       "Um den Database Service zu starten, berprfen Sie das obige \nFenster."
!     IDS_DB_HOW_TO_STOP      "Um den Database Service zu stoppen, machen Sie die Markierung des \nobigen Fensters rckg舅gig."
!     IDS_BK_HOW_TO_RUN       "Um den Backup-Service zu starten, berprfen Sie das obige \nFenster."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "Um den Backup-Service zu stoppen, machen Sie die Markierung des \nobigen Fensters rckg舅gig."
!     IDS_SCS_HOW_TO_RUN      "Um den System Control Server zu starten, berprfen Sie das obige \nFenster."
!     IDS_SCS_HOW_TO_STOP     "Um den System Control Server zu stoppen, machen Sie die Markierung \ndes obigen Fensters rckg舅gig."
!     IDS_DB_PARTIAL_CONFIG   "Der Database Service ist teilweise konfiguriert."
!     IDS_DB_DETAILS          "Fr weitere Informationen klicken Sie auf Einzeldaten."
!     IDS_BK_DISABLED         "Der Backup-Service ist gesperrt."
!     IDS_BK_ENABLE           "Um den Backup-Service zu aktivieren, mssen Sie den Database Service ausfhren."
!     IDS_SC_DISABLED         "Dieser Server ist gesperrt."
!     IDS_SC_ENABLE           "Um diesen Server zu aktivieren, mssen Sie entweder den File Service oder den Database Service ausfhren."
!     IDS_FS_WILL_RUN         "Der File Service wird gestartet."
!     IDS_FS_WILL_STOP        "Der File Service wird gestoppt."
!     IDS_DB_WILL_RUN         "Der Database Service wird gestartet."
!     IDS_DB_WILL_STOP        "Der Database Service wird gestoppt."
!     IDS_BK_WILL_RUN         "Der Backup-Service wird gestartet."
!     IDS_BK_WILL_STOP        "Der Backup-Service wird gestoppt."
!     IDS_SCS_WILL_RUN        "Der System Control Server wird gestartet."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "Der System Control Server wird gestoppt."
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "Laufwerk ist bereits eine AFS-Partition"
!     IDS_VOLUME_HAS_NO_NAME  "<Volume hat keinen Namen>"
!     IDS_PARTITION_CREATED   "Eine neue AFS-Partition wurde erfolgreich erstellt."
!     IDS_PARTITION_EXISTS    "Der von Ihnen eingegebene Name der Partition wird bereits durch eine andere Partition benutzt."
!     IDS_SCS_RUNNING         "Der System Control Server ist zur Zeit aktiv."
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN 
!                             "Dieses Laufwerk enth舁t nur der Papierkorb."
!     IDS_SCC_WILL_RUN        "Der System Control Client wird gestartet."
!     IDS_SCC_WILL_STOP       "Der System Control Client wird gestoppt."
!     IDS_SCC_RUNNING         "Der System Control Client ist zur Zeit aktiv."
!     IDS_SCC_HOW_TO_RUN      "Um den System Control Client zu starten, berprfen Sie das obige \nFenster."
!     IDS_SCC_HOW_TO_STOP     "Um den System Control Client zu stoppen, machen Sie die Markierung \ndes obigen Fensters rckg舅gig."
!     IDS_SCS_ENABLE          "Um diesen Server zu aktivieren, mssen Sie den System Control \nClient stoppen."
!     IDS_SCC_ENABLE          "Um diesen Server zu aktivieren, mssen Sie den System Control \nServer stoppen."
!     IDS_UNCONFIG_DB_STEP    "Dekonfigurieren des Database Service"
!     IDS_UNCONFIG_DB_STEP_DESC "Database Service dekonfigurieren"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP 
!                             "Dekonfigurieren des Database Service (und Backup-Servers)"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC 
!                             "Database Service dekonfigurieren (und Backup-Server)"
!     IDS_UNCONFIG_BK_STEP    "Dekonfigurieren des Backup-Servers"
!     IDS_UNCONFIG_BK_STEP_DESC "Backup-Server dekonfigurieren"
!     IDS_UNCONFIG_FS_STEP    "Dekonfigurieren des File Service"
!     IDS_UNCONFIG_FS_STEP_DESC "File Service dekonfigurieren"
!     IDS_UNCONFIG_SCS_STEP   "Dekonfigurieren des System Control Servers"
!     IDS_UNCONFIG_SCS_STEP_DESC "System Control Server dekonfigurieren"
!     IDS_UNCONFIG_SCC_STEP   "Dekonfigurieren des System Control Clients"
!     IDS_UNCONFIG_SCC_STEP_DESC "System Control Client dekonfigurieren"
!     IDS_INVALIDATE_CONFIG_INFO_STEP 
!                             "Ungltigmachen der Konfigurationsdaten dieser Maschine"
!     IDS_CLOSE               "&Schlieﾟen"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "Die Datei CellServDB konnte auf den unten angegebenen AFS-Servern nicht aktualisiert werden. Dies ist ein behebbarer Fehler.\r\n"
!     IDS_DELETE_PARTITION_PROMPT "Partition '%1' wirklich lschen?"
!     IDS_INVALIDATE_CFG_INFO "Auf diesem Computer ist zur Zeit kein AFS-Server-Prozeﾟ aktiv. Mchten Sie die Konfigurationsdaten von dieser Maschine entfernen?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "Die Zelle existiert nicht mehr. Die Anwendung AFS Configuration kann nur verwendet werden, um bereits konfigurierte Server-Maschinen in eine AFS-Zelle zu konfigurieren. Der AFS Configuration-Assistent kann verwendet werden, um eine neue Zelle zu starten."
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "Die Anwendung AFS Configuration muﾟ jetzt beendet werden. Sie kann \nauf Maschinen ausgefhrt werden, die bereits als AFS Server konfiguriert sind. Um diese \nMaschine erneut als AFS Server zu konfigurieren, verwenden Sie den AFS \nConfiguration-Assistenten."
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "Die Maschine ist nicht mehr als AFS Server konfiguriert. Die \nAnwendung AFS Configuration kann nur verwendet werden, um AFS Server-Maschinen zu \nkonfigurieren. Der AFS Configuration-Assistent kann verwendet werden, um diese Maschine als \nAFS Server zu rekonfigurieren."
!     IDS_GET_TOKENS_FAILED   "Fr die angegebene Zelle konnten keine Token erlangt werden."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "Starten des Backup-Servers"
!     IDS_BK_STEP_DESC        "Backup-Server starten"
!     IDS_CONFIG_ERROR        "Ein Konfigurationsfehler ist aufgetreten"
!     IDS_CREATE_PARTITION_ERROR "Partition konnte nicht erstellt werden"
!     IDS_REMOVE_PARTITION_ERROR "Partition konnte nicht entfernt werden"
!     IDS_READ_PARTITIONS_ERROR "Partitionstabelle konnte nicht gelesen werden"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\nDer Aktualisierungsprozeﾟ fr CellServDB wurde vorzeitig beendet. Nicht alle Server konnten aktualisiert werden."
!     IDS_GET_PARTITION_LIST_ERROR 
!                             "Die Partitionen auf diesem Server konnten nicht ermittelt werden"
!     IDS_EXPORTED            "Exportiert"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "Exportierte Partitionen knnen nicht entfernt werden, w臧rend der File Service aktiv ist. Sie mssen den File Service vor dem Entfernen dieser Partition stoppen."
!     IDS_CHECK_CONFIG_INFO   "ﾜberprfung auf gltige Konfigurationsdaten..."
!     IDS_ERROR_CFG_HOST_CLOSE 
!                             "Die Server Configuration Library konnte nicht geschlossen werden."
!     IDS_FAILED_OPEN_CELL    "Die Zelle konnte nicht geffnet werden."
!     IDS_FAILED_OPEN_NULL_CELL 
!                             "Eine Zelle mit NULL-Kennung konnte nicht geffnet werden"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "Mchten Sie die Root-Volumes erstellen, wenn sie noch nicht vorhanden sind?"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "Mchten Sie die Root-Volumes nachbilden, wenn sie noch nicht nachgebildet  sind?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS Server"
!     IDS_CANT_INIT_ADMIN_LIBS 
!                             "Diese Anwendung kann nicht ausgefhrt werden: Initialisierung der Bibliothek ist fehlgeschlagen."
!     IDS_CANT_OPEN_LOG_FILE  "Die Protokolldatei konnte nicht geffnet werden."
!     IDS_NEED_CLIENT_INFO    "Die Anwendung AFS Configuration kann nicht ausgefhrt werden, weil AFS Client auf diesem Computer nicht konfiguriert ist. In dieser Situation kann der AFS Configuration-Assistent verwendet werden. Den AFS Configuration-Assistenten ausfhren?"
!     IDS_NEED_SERVER_INFO    "Die Maschine ist nicht als AFS Server konfiguriert. Der AFS Configuration-Assistent muﾟ verwendet werden, um einen AFS Server zum ersten Mal zu konfigurieren. Die Anwendung AFS Configuration kann dann verwendet werden. Den AFS Configuration-Assistenten ausfhren, um diesen Computer erstmalig zu konfigurieren?"
!     IDS_ADVANCED_OPEN       "<< &Erweitert"
!     IDS_ADVANCED_CLOSED     "&Erweitert >>"
!     IDS_BOS_OPEN_FAILED     "Verbindung zum Server konnte nicht hergestellt werden (bos open fehlgeschlagen)."
!     IDS_SALVAGE_ERROR       "Die Wiederherstellungsoperation ist fehlgeschlagen."
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "Die angegebene Anzahl der Wiederherstellungsprozesse ist ungltig. Die Anzahl der Wiederherstellungsprozesse muﾟ zwischen 1 und 32 liegen."
!     IDS_WRONG_CELL          "In einem vorhergegangenen Schritt haben Sie einen Server angegeben, von dem die Konfigurationsdaten abgerufen werden sollen. Der angegebene Server gehrt nicht zu der Zelle, die Sie verknpfen mchten!"
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "Die Datei CellServDB auf einigen Servern in der Zelle konnte nicht aktualisiert werden. Eine Liste mit Servern, die aktualisiert wurden oder nicht, enth舁t das Konfigurationsprotokoll in der Datei "
!     IDS_GET_CREDENTIALS_STEP "Erlangen von Verwaltungs-Token"
!     IDS_MUST_ENTER_SCS_NAME "Der Name einer System Control-Maschine muﾟ eingegeben werden, bevor die Konfiguration beginnen kann."
!     IDS_NOT_SAME_CELL       "Der AFS Client ist in eine andere Zelle als der AFS Server \nkonfiguriert. Vor dem Konfigurieren des AFS Servers mssen Sie zuerst den AFS Client in die \nZelle des Servers neu konfigurieren."
!     IDS_LAST_DB_SERVER      "Diese Maschine fhrt den letzten Database Server in der Zelle aus. \nWenn Sie fortsetzen und den Database Service auf dieser Maschine dekonfigurieren, wird die \nZelle nicht mehr existieren, und alle anderen auf dieser Maschine aktiven AFS-Services werden \ndekonfiguriert. Trotzdem fortsetzen?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "Das Kennwort fr den AFS-Principal ist ungltig."
!     IDS_ERROR_CLIENT_VERSION 
!                             "Die Version des AFS Clients auf diesem Computer ist mit dem AFS Server nicht kompatibel. Der AFS Server erfordert mindestens Version 3.5 des AFS Clients."
!     IDS_CANT_MAP_ROOT_AFS   "Um die ACLs auf den Root-Volumes einzustellen, muﾟ in AFS ein \nLaufwerkbuchstabe zugeordnet werden. Zur Zeit sind keine Laufwerkbuchstaben verfgbar. Bitte \nmachen Sie einen Laufwerkbuchstaben frei und drcken Sie dann OK."
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "Partitionsname"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "Datenbereichsname"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE 
!                             "Anzahl von Wiederherstellungsprozessen"
!     IDS_PATH_NAME_VALIDATION_TYPE "Pfadname"
!     IDS_FILE_NAME_VALIDATION_TYPE "Dateiname"
!     IDS_GENERIC_VALIDATION_TYPE "Wert"
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
Index: openafs/src/WINNT/afssvrcfg/lang/es_ES/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/es_ES/afscfg.rc:1.3 openafs/src/WINNT/afssvrcfg/lang/es_ES/afscfg.rc:1.3.2.1
*** openafs/src/WINNT/afssvrcfg/lang/es_ES/afscfg.rc:1.3	Thu Jun 19 15:00:55 2003
--- openafs/src/WINNT/afssvrcfg/lang/es_ES/afscfg.rc	Fri Mar 11 01:59:07 2005
***************
*** 7,1237 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFSｮ Configuration application and wizard"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x40a
  #define AFS_VERINFO_CHARSET 1252
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 320, 246
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "Asistente de inicio r疳ido de AFSｮ Server"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "Cance&lar",IDCANCEL,101,225,50,14
!     PUSHBUTTON      "< &Anterior",IDBACK,155,225,50,14
!     DEFPUSHBUTTON   "&Siguiente >",IDNEXT,209,225,50,14
!     PUSHBUTTON      "A&yuda",9,263,225,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,214,305,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,103,7,210,200
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "S, &crear una particin.",IDC_CREATE_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,91,191,8
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,114,
!                     186,52,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,132,175,20,12,ES_AUTOHSCROLL
!     CONTROL         "N&o, no crear una particin.",IDC_DONT_CREATE_PARTITION,
!                     "Button",BS_AUTORADIOBUTTON,0,191,102,8
!     LTEXT           "Este Servidor de archivos almacenar y entregar archivos y programas a clientes de AFS. Para los datos almacenados en este sistema que han de compartirse por medio de AFS, debe dedicarse como mnimo un volumen NTFS como particin de AFS. ",
!                     -1,0,12,209,35
!     LTEXT           "&Seleccione el volumen a utilizar para la particin:",
!                     IDC_SELECT_DRIVE,12,103,184,9
!     LTEXT           "No&mbre de particin de AFS:  /vicep",IDC_NAME_LABEL,12,
!                     176,116,8
!     LTEXT           "Crear particin AFS en el Servidor de archivos",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Una particin de AFS es fsicamente equivalente a un volumen NTFS, pero contiene asimismo metadatos especializados acerca de la estructura y ubicacin de informacin en la particin.",
!                     -1,0,50,209,25
!     LTEXT           "ｿDesea crear una particin en este Servidor de archivos?",
!                     IDC_ASK_CREATE_PARTITION,1,78,209,13
!     LTEXT           "Mensaje definido al ejecutar, si es necesario.",
!                     IDC_PARTITION_MSG,0,166,210,34,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,210,92,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&S, configurar como Servidor de archivos.",
!                     IDC_SHOULD_CONFIG_FILE_SERVER,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,198,10
!     CONTROL         "N&o, no configurar como Servidor de archivos.",
!                     IDC_DONT_CONFIG_FILE_SERVER,"Button",BS_AUTORADIOBUTTON,
!                     0,190,201,10
!     LTEXT           "El Servicio de archivos de AFS proporciona los archivos y programas solicitados desde este servidor a los clientes de AFS. Este servicio maneja tambi駭 las operaciones de administracin de volmenes, como la creacin, supresin, traslado y duplicacin.",
!                     -1,0,38,210,35
!     LTEXT           "Configurar esta m痃uina como Servidor de archivos.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "ｿDesea configurar esta m痃uina como Servidor de archivos?",
!                     IDC_CREATE_FS_QUESTION,0,166,210,8
!     LTEXT           "Para configurar esta m痃uina como Servidor de archivos, debe configurar el Servicio de archivos.",
!                     -1,0,14,210,17
!     LTEXT           "Nota: Esta m痃uina no tiene en la actualidad una unidad de disco disponible para almacenar archivos en AFS. Si bien puede configurar esta m痃uina como Servidor de archivos, no podr almacenar datos de AFS en la m痃uina. ",
!                     IDC_NO_DRIVES_NOTE,0,77,210,32,NOT WS_VISIBLE
!     LTEXT           "Para crear unidades de disco, utilice el Administrador de disco de Windows NT.",
!                     IDC_DISK_ADMIN_NOTE,0,117,210,16,NOT WS_VISIBLE
!     LTEXT           "Esta m痃uina ya est configurada como Servidor de archivos.",
!                     IDC_MSG,0,166,209,34,NOT WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Bienvenido al Asistente de inicio r疳ido de AFS Server. Este asistente le ayudar a configurar con rapidez el AFS Server en este sistema Windows NT.",
!                     IDC_TITLE,0,0,209,26
!     LTEXT           "Pulse Siguiente para comenzar la configuracin de AFS Server.",
!                     IDC_STATIC,0,166,209,8
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&S, duplicar los volmenes de raz.",IDC_REPLICATE,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,179,196,10
!     CONTROL         "N&o, no duplicar los volmenes de raz.",
!                     IDC_DONT_REPLICATE,"Button",BS_AUTORADIOBUTTON,0,190,197,
!                     10
!     LTEXT           "La duplicacin es el proceso de crear copias de slo lectura de un volumen en mltiples particiones, normalmente en otros Servidores de archivos. La duplicacin aumenta la disponibilidad de un volumen en la eventualidad de una interrupcin de la red o ",
!                     IDC_STATIC,0,36,209,32
!     LTEXT           "ｿDesea duplicar los volmenes de raz?",
!                     IDC_REPLICATE_QUESTION,0,166,209,8
!     LTEXT           "La duplicacin tambi駭 ayuda a evitar que se sobrecargue un servidor con peticiones de volmenes a los que se accede con frecuencia. ",
!                     IDC_STATIC,0,98,209,25
!     LTEXT           "Duplicar los volmenes de raz de la c駘ula.",IDC_TITLE,
!                     0,0,209,8
!     LTEXT           "Si piensa duplicar otros volmenes de esta c駘ula de AFS, en primer lugar debe duplicar los volmenes de raz. ",
!                     IDC_STATIC,0,15,209,16
!     LTEXT           "interrupcin del servidor porque, cuando no puede disponerse de uno de los servidores que aloja el volumen, sigue siendo posible acceder al volumen desde otro servidor. ",
!                     IDC_STATIC,0,69,209,25
!     LTEXT           "Mensaje definido al ejecutar, si es necesario.",
!                     IDC_CANT_REPLICATE_MSG,0,166,209,34,NOT WS_VISIBLE | NOT 
!                     WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&S, crear los volmenes de raz.",
!                     IDC_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,179,197,10
!     CONTROL         "N&o, no crear los volmenes de raz.",
!                     IDC_DONT_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON,
!                     0,190,194,10
!     LTEXT           "En AFS, los volmenes son conjuntos de archivos relacionados que est疣 organizados en unidades sencillas, f當ilmente gestionables para facilitar la administracin del sistema. ",
!                     IDC_STATIC,0,15,209,28
!     LTEXT           "ｿDesea crear los volmenes de raz?",
!                     IDC_ROOT_AFS_QUESTION,0,166,209,8
!     LTEXT           "Crear los volmenes de raz de la c駘ula. ",IDC_TITLE,0,
!                     0,209,8
!     LTEXT           "Una vez creados, puede accederse autom疸icamente a los volmenes de raz en el espacio de archivos de AFS.",
!                     IDC_STATIC,0,80,209,17
!     LTEXT           "Mensaje definido al ejecutar, si es necesario.",
!                     IDC_ROOT_AFS_MSG,0,166,209,33,NOT WS_VISIBLE
!     LTEXT           "El volumen root.afs es la raz del espacio de archivos de AFS. El volumen root.cell es la raz de este sub疵bol de c駘ula del espacio de archivos de AFS y se accede al mismo por medio de un punto de montaje desde root.afs.",
!                     IDC_STATIC,0,43,209,34
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 90
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "Configuracin de AFSｮ Server"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,40,148,14
!     LTEXT           "Texto de operacin - definido al ejecutar.",
!                     IDC_OPERATION,35,20,145,16
!     ICON            "",IDC_LOGO,7,7,21,20
!     PUSHBUTTON      "Cancelar",IDCANCEL,73,69,50,14
!     LTEXT           "Determinacin de la configuracin actual:",
!                     IDC_OPERATION2,35,7,156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 201
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&S, configurar como Servidor de copia de seguridad.",
!                     IDC_CONFIG_BACKUP_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,170,206,10
!     CONTROL         "&No, no configurar como Servidor de copia de seguridad.",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,0,181,205,10
!     LTEXT           "El Servidor de copia de seguridad slo puede ejecutarse en m痃uinas configuradas como Servidores de base de datos. Adem疽, si se ejecuta en un Servidor de base de datos de c駘ula, debe ejecutar TODOS los Servidores de este tipo.",
!                     -1,0,38,199,32
!     LTEXT           "ｿDesea configurar esta m痃uina como Servidor de copia de seguridad?",
!                     IDC_BACKUP_SERVER_QUESTION,0,150,209,19
!     LTEXT           "Configurar como Servidor de copia de seguridad.",
!                     IDC_TITLE,0,0,207,8
!     LTEXT           "El Servidor de copia de seguridad es una caracterstica opcional del Servicio de base de datos.",
!                     -1,0,14,209,16
!     LTEXT           "Esta m痃uina ya est configurada como Servidor de base de datos.",
!                     IDC_CANT_BACKUP_MSG,0,149,210,33,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 210, 220
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Configurar como &Servidor de control del sistema.",
!                     IDC_SYS_CONTROL_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,142,205,10
!     CONTROL         "Configurar como &Cliente de control del sistema.",
!                     IDC_SYS_CONTROL_CLIENT,"Button",BS_AUTORADIOBUTTON,0,154,
!                     203,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,82,172,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "N&o configurar como Servidor o Cliente de control del sistema.",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON,0,188,205,
!                     9
!     LTEXT           "El Servidor de control del sistema facilita archivos de configuracin habituales a otras m痃uinas de AFS Server que se ejecutan como Clientes de control del sistema. Las c駘ulas de AFS deben ejecutar un nico Servidor de control del sistema. ",
!                     -1,0,14,209,34
!     LTEXT           "Configurar como Servidor/Cliente control sistema",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "ｿDesea configurar esta m痃uina como Cliente o Servidor de control del sistema?",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,0,123,207,17
!     LTEXT           "Un Cliente de control del sistema recibe las actualizaciones disponibles para sus archivos de configuracin de AFS desde el Servidor de control del sistema de la c駘ula.",
!                     IDC_SYS_CONTROL_CLIENT_DESC,0,50,209,29
!     LTEXT           "S&ervidor de control del sistema:",
!                     IDC_SYS_CONTROL_MACHINE_LABEL,10,168,65,18,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,0,185,210,34,NOT WS_VISIBLE
!     LTEXT           "AVISO: Las ubicaciones que no utilicen la distribucin de AFSｮ de EE.UU. no deben distribuir archivos de configuracin por medio del Servidor de control del sistema. Esto causar la transmisin no cifrada de informacin confidencial.",
!                     -1,8,78,183,46
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 231
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Esa es toda la informacin necesaria para configurar el AFS Server en este sistema.",
!                     IDC_ALL_NEEDED_MSG,1,14,209,17
!     LTEXT           "Configurar esta m痃uina en la c駘ula <definida al ejecutar>",
!                     IDC_TITLE,1,0,208,8
!     LTEXT           "Se efectuar疣 los siguientes pasos de configuracin:",
!                     IDC_FOLLOWING_STEPS_MSG,1,36,187,8
!     LTEXT           "Paso 1 - Texto definido al ejecutar",IDC_STEP1,22,49,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Paso 3 - Texto definido al ejecutar",IDC_STEP3,22,73,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Paso 2 - Texto definido al ejecutar",IDC_STEP2,22,61,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Paso 4 - Texto definido al ejecutar",IDC_STEP4,22,85,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Paso 5 - Texto definido al ejecutar",IDC_STEP5,22,97,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Paso 6 - Texto definido al ejecutar",IDC_STEP6,22,109,
!                     179,8,NOT WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,203,200,11
!     LTEXT           "Paso 8 - Texto definido al ejecutar",IDC_STEP8,22,133,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Paso 7 - Texto definido al ejecutar",IDC_STEP7,22,121,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Mensaje definido al ejecutar, si es necesario.",
!                     IDC_CANT_CONFIG_MSG,1,13,209,17,NOT WS_VISIBLE
!     LTEXT           "% completado:",IDC_PERCENT_COMPLETE_LABEL,1,218,48,8,
!                     NOT WS_VISIBLE
!     LTEXT           "Operacin actual:",IDC_CURRENT_STEP_LABEL,1,157,108,8,
!                     NOT WS_VISIBLE
!     LTEXT           "Descripcin del paso actual - definido al ejecutar",
!                     IDC_CURRENT_STEP,1,167,208,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,63,191,49,8,NOT WS_VISIBLE
!     LTEXT           "Para comenzar la configuracin de este sistema, pulse el botn Configurar. Para cambiar los pasos de configuracin a efectuar, pulse el botn Anterior.",
!                     IDC_STATUS_MSG,1,167,208,31
!     LTEXT           "",IDC_STEP1_GRAPHIC,10,49,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,10,61,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,10,73,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,10,85,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,10,97,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,10,109,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,10,121,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,10,133,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 215, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,64,55,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,64,71,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,64,87,138,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,106,155,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,145,154,11,14
!     LTEXT           "Informacin administrativa",IDC_TITLE,4,0,202,8
!     LTEXT           "&Nombre:",IDC_ADMIN_NAME_LABEL,11,57,40,8
!     LTEXT           "&Contrasea:",IDC_ADMIN_PW_LABEL,11,73,46,8
!     GROUPBOX        "Nombre de cuenta y contrasea",IDC_ADMIN_INFO_FRAME,6,
!                     41,202,65
!     LTEXT           "&Verificar:",IDC_VERIFY_ADMIN_PW_LABEL,11,90,52,8
!     LTEXT           "La informacin que hay a continuacin es necesaria para crear la cuenta administrativa para esta nueva c駘ula.",
!                     IDC_STATIC,4,15,209,17
!     CONTROL         "U&tilizar este UID de AFS:",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,11,157,95,10
!     CONTROL         "&Utilizar el siguiente UID de AFS disponible",
!                     IDC_USE_NEXT_UID,"Button",BS_AUTORADIOBUTTON,11,144,189,
!                     10
!     GROUPBOX        "UID de AFS",IDC_STATIC,6,118,202,57
!     LTEXT           "Entre el ID de usuario para la cuenta administrativa de AFS:",
!                     IDC_STATIC,11,130,196,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 244
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&S, configurar como Servidor de base de datos.",
!                     IDC_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,118,202,10
!     CONTROL         "N&o, no configurar como Servidor de base de datos.",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,0,
!                     197,202,10
!     LTEXT           "El Servicio de base de datos mantiene el grupo de bases de datos duplicadas que necesita una c駘ula de AFS. Este servicio mantiene toda la informacin de cuenta, ubicacin de volumen y (opcionalmente) de copia de seguridad para la c駘ula. ",
!                     -1,0,38,209,54
!     LTEXT           "ｿDesea configurar esta m痃uina como Servidor de bases de datos?",
!                     IDC_DB_SERVER_QUESTION,0,98,209,17
!     LTEXT           "Configurar como Servidor de base de datos.",IDC_TITLE,0,
!                     0,209,8
!     LTEXT           "Para configurar esta m痃uina como Servidor de base de datos, debe configurar el Servicio de base de datos.",
!                     -1,0,14,209,16
!     LTEXT           "Esta m痃uina ya est configurada como Servidor de base de datos.",
!                     IDC_MSG,0,179,210,33,NOT WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,80,165,119,12,ES_AUTOHSCROLL
!     LTEXT           "S&ervidor de control del sistema:",
!                     IDC_SYS_CONTROL_MACHINE_LABEL,12,162,65,20
!     LTEXT           "Si la c駘ula tiene un Servidor de control del sistema, entre su nombre de sistema principal a continuacin. Los archivos de configuracin de AFS se actualizar疣 por medio de este servidor. ",
!                     IDC_SCM_PROMPT,12,130,194,32
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 274, 202
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Hacer que este sistema principal sea un servidor en una c駘ula de AFS existente",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON,2,38,
!                     264,10
!     CONTROL         "&Este ser el primer servidor de una c駘ula de AFS nueva",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,2,53,261,10
!     EDITTEXT        IDC_CELL_NAME,57,94,193,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,59,166,192,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,59,180,192,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "Informacin de c駘ula y servidor",IDC_TITLE,2,0,261,8
!     LTEXT           "Nombre de &c駘ula:",IDC_CELL_NAME_LABEL,18,90,38,16
!     LTEXT           "C&ontrasea:",IDC_SERVER_PW_LABEL,19,167,40,8,
!                     WS_DISABLED
!     LTEXT           "Entre el nombre de la c駘ula de AFS.",
!                     IDC_CELL_NAME_PROMPT,20,80,199,11
!     LTEXT           "Entre la contrasea del principal de AFS. Todos los servidores de AFS obtienen seales como este principal.",
!                     IDC_SERVER_PW_PROMPT,17,130,239,19,WS_DISABLED
!     GROUPBOX        "Nombre de c駘ula",IDC_CELL_NAME_FRAME,14,69,246,43
!     GROUPBOX        "Contrasea de servidor",IDC_SERVER_PW_FRAME,15,117,245,
!                     81,WS_DISABLED
!     LTEXT           "&Verificar:",IDC_VERIFY_PW_LABEL,21,180,32,8,
!                     WS_DISABLED
!     LTEXT           "Una c駘ula de AFS es un conjunto de servidores que proporcionan un espacio de nombres uniforme para el acceso al archivo.",
!                     IDC_CELL_NAME_PROMPT2,11,13,228,25
!     LTEXT           "Nombre:",IDC_PRINCIPAL_LABEL,19,152,33,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,59,148,192,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 217, 201
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,53,55,149,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,53,72,149,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,53,132,149,12,ES_AUTOHSCROLL
!     LTEXT           "Informacin administrativa",IDC_TITLE,4,0,202,8
!     LTEXT           "Entre la informacin de cuenta administrativa que hay a continuacin:",
!                     IDC_ADMIN_INFO_PROMPT,12,30,170,18
!     LTEXT           "&Nombre:",IDC_ADMIN_NAME_LABEL,12,58,33,8
!     LTEXT           "&Contrasea:",IDC_ADMIN_PW_LABEL,11,74,39,8
!     GROUPBOX        "Nombre de cuenta y contrasea",IDC_ADMIN_INFO_FRAME,8,
!                     17,202,73
!     GROUPBOX        "AFS Server existente",IDC_HOSTNAME_FRAME,8,92,201,60
!     LTEXT           "AFS Server:",IDC_HOSTNAME_LABEL,12,134,41,8
!     LTEXT           "Entre el nombre de sistema principal de algn otro AFS Server en la c駘ula que desea unir. La informacin de configuracin de AFS se recuperar desde este servidor. ",
!                     IDC_HOSTNAME_PROMPT,12,105,196,25
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 268
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "Servicios"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,20,281,40
!     GROUPBOX        "",IDC_STATIC,7,66,281,43
!     GROUPBOX        "",IDC_STATIC,7,115,281,40
!     GROUPBOX        "",IDC_STATIC,7,161,281,46
!     CONTROL         "Servicio de archivos",IDC_FS_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,19,84,10
!     CONTROL         "Servicio de base de datos",IDC_DB_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,65,100,10
!     PUSHBUTTON      "Detalles...",IDC_DB_DETAILS,219,81,50,14,NOT WS_VISIBLE
!     CONTROL         "Servidor de copia de seguridad",IDC_BK_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,114,116,10
!     CONTROL         "Servidor de control del sistema",IDC_SCS,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,160,115,10
!     EDITTEXT        IDC_SC_MACHINE,137,229,120,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "Seleccione los servicios a ejecutar en este AFS Server:",
!                     IDC_STATIC,7,7,265,8
!     LTEXT           "El Servicio de archivos se est ejecutando en la actualidad.",
!                     IDC_FS_STATUS_MSG,14,32,261,8
!     LTEXT           "El Servicio de base de datos est instalado parcialmente en la actualidad.",
!                     IDC_DB_STATUS_MSG,14,78,195,16
!     LTEXT           "S&ervidor de control del sistema:",IDC_SC_MACHINE_LABEL,
!                     31,231,101,8,WS_DISABLED
!     LTEXT           "Para detener el Servicio de archivos, deseleccione el recuadro anterior.",
!                     IDC_FS_ACTION_MSG,14,44,262,8
!     LTEXT           "Pulse en detalles para obtener m疽 informacin.",
!                     IDC_DB_ACTION_MSG,14,96,186,8
!     LTEXT           "El Servidor de copia de seguridad se est ejecutando en la actualidad.",
!                     IDC_BK_STATUS_MSG,14,127,259,8
!     LTEXT           "Para detener el Servidor de copia de seguridad, deseleccione el recuadro anterior.",
!                     IDC_BK_ACTION_MSG,14,139,262,8
!     LTEXT           "Para habilitar este servidor, debe ejecutar el Servicio de archivos o el Servicio de base de datos.",
!                     IDC_SCS_ACTION_MSG,14,185,268,17
!     LTEXT           "El servicio de Control del sistema no est ejecut疣dose en la actualidad.",
!                     IDC_SCS_STATUS_MSG,14,172,263,9
!     GROUPBOX        "",IDC_STATIC,7,210,281,51
!     CONTROL         "Cliente de control del sistema",IDC_SCC,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,209,109,10
!     LTEXT           "Para habilitar este servidor, debe ejecutar el Servicio de archivos o el Servicio de base de datos.",
!                     IDC_SCC_ACTION_MSG,14,243,268,16
!     LTEXT           "El servicio de Control del sistema no est ejecut疣dose en la actualidad.",
!                     IDC_SCC_STATUS_MSG,14,219,263,9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "Particiones"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "En el sistema existen las siguientes particiones de &AFS:",
!                     IDC_STATIC,8,7,175,8
!     PUSHBUTTON      "&Crear...",IDC_CREATE_PARTITIONS,17,118,53,14
!     LTEXT           "Para recuperar una particin o un volumen de una particin, seleccione la particin en la lista y pulse el botn anterior. Para recuperar todas las particiones de este servidor, pulse el botn anterior. ",
!                     IDC_SALVAGE_MSG,30,179,250,25
!     PUSHBUTTON      "&Recuperar...",IDC_SALVAGE,17,159,53,14
!     LTEXT           "Para eliminar una particin, seleccione la particin en la lista y pulse el botn anterior. ",
!                     IDC_REMOVE_MSG,30,235,253,17,WS_DISABLED
!     PUSHBUTTON      "Eli&minar",IDC_REMOVE,17,217,53,14,WS_DISABLED
!     GROUPBOX        "Particiones",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
!                     281,79,WS_EX_CLIENTEDGE
!     LTEXT           "Para crear una nueva particin en este servidor, pulse el botn anterior.",
!                     IDC_CREATE_MSG,30,136,254,8
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 264, 198
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "Crear particin de AFS"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Seleccione un volumen NTFS de la lista siguiente en la que crear la nueva particin:",
!                     IDC_TITLE,7,5,250,18
!     LTEXT           "Nombre de particin de AFS:",IDC_NAME_STATIC,16,144,97,
!                     8
!     EDITTEXT        IDC_PARTITION_NAME,142,141,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Crear",IDC_CREATE,96,175,50,14,WS_DISABLED
!     PUSHBUTTON      "C&errar",IDC_CLOSE,152,175,50,14
!     PUSHBUTTON      "Ayuda",9,207,175,50,14
!     GROUPBOX        "Par疥etros de particin",IDC_ARGS_FRAME,7,129,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,28,250,
!                     95,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,112,144,28,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 229, 186
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Configuracin de AFSｮ Server"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,66,44,151,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,66,60,151,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,64,138,151,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Configurar",IDOK,108,165,50,14,WS_DISABLED
!     PUSHBUTTON      "Cancelar",IDCANCEL,48,165,50,14
!     PUSHBUTTON      "Ayuda",9,172,165,50,14
!     LTEXT           "Entre la informacin de cuenta administrativa que hay a continuacin:",
!                     IDC_ADMIN_INFO_PROMPT,14,20,196,19
!     LTEXT           "&Nombre:",IDC_ADMIN_NAME_LABEL,15,47,38,8
!     LTEXT           "C&ontrasea:",IDC_ADMIN_PW_LABEL,15,63,44,8
!     GROUPBOX        "Nombre de cuenta y contrasea",IDC_ADMIN_INFO_FRAME,7,7,
!                     215,75
!     GROUPBOX        "Servidor de control del sistema",IDC_HOSTNAME_FRAME,7,
!                     84,215,73
!     LTEXT           "Nombre de &sist. principal:",IDC_HOSTNAME_LABEL,13,134,
!                     46,19
!     LTEXT           "Si la c駘ula tiene un Servidor de control del sistema, entre su nombre de sistema principal a continuacin. Los archivos de configuracin de AFS se actualizar疣 por medio de este servidor. ",
!                     IDC_HOSTNAME_PROMPT,13,98,197,31
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,7,170,225,9,NOT WS_VISIBLE
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 257, 89
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Configuracin de AFSｮ Server"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "Cancelar",IDCANCEL,103,68,50,14
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,37,200,11
!     LTEXT           "Porcentaje completado:",IDC_PERCENT_COMPLETE_LABEL,40,
!                     51,95,8,NOT WS_VISIBLE
!     LTEXT           "Operacin actual:",IDC_CURRENT_STEP_LABEL,40,7,57,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "Descripcin del paso actual - definido en la ejecucin",
!                     IDC_CURRENT_STEP,40,15,210,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,101,50,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,7,20,20
!     LTEXT           "Para comenzar la configuracin de este sistema, pulse el botn Configurar. Para cambiar los pasos de configuracin a efectuar, pulse el botn Anterior.",
!                     IDC_STATUS_MSG,40,7,210,41
!     PUSHBUTTON      "&Ver registro",IDNEXT,161,68,50,14,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Errores de actualizacin de CellServCB"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LISTBOX         IDC_LIST,7,26,173,127,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "Aceptar",IDOK,22,162,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "Ayuda",9,130,162,50,14
!     LTEXT           "El archivo CellServDB no ha podido actualizarse autom疸icamente en los siguientes servidores de AFS:",
!                     IDC_STATIC,7,7,173,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 298, 189
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Recuperar"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     DEFPUSHBUTTON   "Aceptar",IDOK,120,99,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,177,99,50,14
!     PUSHBUTTON      "A&yuda",9,234,99,50,14
!     CONTROL         "&Recuperar todas las particiones de este Servidor de archivos",
!                     IDC_SERVER,"Button",BS_AUTORADIOBUTTON,14,35,248,10
!     CONTROL         "Recuperar todos los volmenes de la &particin seleccionada",
!                     IDC_PARTITION,"Button",BS_AUTORADIOBUTTON,17,48,251,10
!     CONTROL         "Recuperar un &volumen especfico en la particin seleccionada",
!                     IDC_VOLUME,"Button",BS_AUTORADIOBUTTON,14,61,254,10
!     EDITTEXT        IDC_VOLUME_NAME,99,74,97,12,ES_AUTOHSCROLL | WS_DISABLED
!     PUSHBUTTON      "<< &Avanzado ",IDC_ADVANCED,7,99,50,14
!     GROUPBOX        "",IDC_STATIC,7,25,284,67
!     LTEXT           "&Nombre de volumen:",IDC_VOLUME_NAME_LABEL,27,75,67,8,
!                     WS_DISABLED
!     GROUPBOX        "Opciones de recuperacin avanzadas",IDC_ADVANCED_FRAME,
!                     7,120,284,62
!     LTEXT           "Va de acceso para archivos &temporales:",
!                     IDC_TEMP_DIR_LABEL,17,165,129,8
!     EDITTEXT        IDC_LOG_FILE,151,147,133,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,227,130,21,12,ES_AUTOHSCROLL
!     LTEXT           "No&mbre del archivo para registro de resultados:",
!                     IDC_LOG_FILE_LABEL,17,144,129,17
!     EDITTEXT        IDC_TEMP_DIR,151,163,133,12,ES_AUTOHSCROLL
!     CONTROL         "Opera&ciones de recuperacin paralelas; nmero de procesos:",
!                     IDC_NUM_PROCESSES_CHECKBOX,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,17,132,208,10
!     LTEXT           "Si recupera el servidor o toda una particin, se llevar el servidor a fuera de lnea de modo temporal.",
!                     IDC_STATIC,35,7,256,17
!     LTEXT           "NOTA:",IDC_STATIC,7,7,23,8
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,180,243,8,NOT WS_VISIBLE
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Contrasea de Principal de AFS"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_PW,48,39,142,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "Aceptar",IDOK,31,61,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "Ayuda",9,140,61,50,14
!     LTEXT           "La clave de principal de AFS no puede recuperarse de un Servidor de autentificacin anterior a 3.5. Por favor, entre la contrasea de principal de AFS a continuacin.",
!                     IDC_STATIC,7,7,183,26
!     LTEXT           "Contrasea:",IDC_STATIC,7,41,38,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "Recuperar volmenes - Resultados"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "&Cerrar",IDC_CLOSE,225,266,50,14,WS_DISABLED
!     PUSHBUTTON      "Ayuda",9,280,266,50,14
!     LTEXT           "<Definido al ejecutar>",IDC_LOG_TITLE,7,38,263,8
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "<Definido al ejecutar>",IDC_SALVAGE_STATUS,37,15,185,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 313
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 239
!         HORZGUIDE, 207
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 209
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 83
!     END
! 
!     IDD_BACKUP_SERVER_PAGE, DIALOG
!     BEGIN
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_SYS_CONTROL_PAGE, DIALOG
!     BEGIN
!         BOTTOMMARGIN, 219
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 201
!         BOTTOMMARGIN, 200
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         RIGHTMARGIN, 210
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 267
!         VERTGUIDE, 64
!         VERTGUIDE, 203
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 200
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         RIGHTMARGIN, 210
!         VERTGUIDE, 53
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 200
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 261
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_CREATE_PARTITION, DIALOG
!     BEGIN
!         BOTTOMMARGIN, 177
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 222
!         VERTGUIDE, 59
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 179
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 250
!         VERTGUIDE, 40
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 82
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 291
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 182
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""AFSｮ Configuration application and wizard""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "&Siguiente >"
!     IDS_FINISH              "&Finalizar"
!     IDS_HELP_TITLE          "Se ha pulsado el botn de ayuda"
!     IDS_HELP_DESC           "La ayuda no est disponible en este momento."
!     IDS_CANCEL_DESC         "ｿCancelar el Asistente de inicio r疳ido de AFS?"
!     IDS_PARTITION_ALREADY_CREATED 
!                             "Ya existe una particin de AFS en esta m痃uina."
!     IDS_NOT_A_FS_SERVER     "Esta m痃uina no est configurada como Servidor de archivos. Los volmenes slo pueden crearse en m痃uinas de Servidor de archivos."
!     IDS_ROOT_AFS_ALREADY_EXISTS "Los volmenes de raz ya existen."
!     IDS_NO_PARTITION_EXISTS "No hay particiones en las que crear los volmenes de raz. Debe haber una particin en la que crear los volmenes de raz. "
!     IDS_ALREADY_REPLICATED  "Los volmenes de raz ya est疣 duplicados."
!     IDS_ROOT_AFS_DOESNT_EXIST 
!                             "Los volmenes de raz no existen. Los volmenes de raz deben existir para poder duplicarse."
!     IDS_ALREADY_CONFIGURED  "Esta m痃uina ya est configurada como Servidor de AFS."
!     IDS_NOTHING_TO_CONFIGURE "No ha elegido nada para configurarlo."
!     IDS_EXIT                "Salir"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "Iniciar el Servicio de archivos"
!     IDS_CANCEL_CONFIG_MSG   "La cancelacin en este punto dejar el sistema parcialmente configurado como servidor de AFS. ｿSe ha de cancelar de todos modos?"
!     IDS_WIZARD_APP_TITLE    "Asistente de inicio r疳ido de AFSｮ Server"
!     IDS_CANCEL_PENDING      "*** Cancelacin pendiente - un momento, por favor... ***"
!     IDS_CHECK_FS_CONFIG     "Comprobacin del servidor de archivos..."
!     IDS_CHECK_DB_CONFIG     "Comprobacin del servidor de base de datos..."
!     IDS_CHECK_BAK_CONFIG    "Comprobacin del servidor de copia de seguridad..."
!     IDS_CHECK_PARTITION     "Comprobacin de la particin de AFS..."
!     IDS_CHECK_ROOT_AFS      "Comprobacin de volmenes de raz..."
!     IDS_CHECK_REP           "Comprobacin de duplicacin de volmenes de raz..."
!     IDS_CANCEL_GET_CONFIG   "Cancelando...Un momento por favor..."
!     IDS_ALREADY_A_BACKUP_SERVER 
!                             "Esta m痃uina ya est configurada como Servidor de copia de seguridad."
!     IDS_NOT_A_DB_SERVER     "Esta m痃uina no est configurada como Servidor de base de datos. El Servidor de copia de seguridad slo puede ejecutarse en m痃uinas del Servidor de base de datos."
!     IDS_ALREADY_A_SYS_CONTROL_SERVER 
!                             "Esta m痃uina ya est configurada como Servidor de control del sistema."
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT 
!                             "Esta m痃uina ya est configurada como Cliente de control del sistema."
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "Esta m痃uina no est configurada como Servidor de archivos o de Base de datos. Un sistema slo puede configurarse como m痃uina de Control del sistema si tambi駭 est configurado como m痃uina de Servidor de archivos o de Base de datos."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "Volumen"
!     IDS_NAME_OR_ERROR       "Nombre (o Mensaje de error)"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "Esta m痃uina no est configurada como Servidor de archivos o de Base de datos. Un sistema slo puede configurarse como m痃uina de Distribucin binaria si tambi駭 est configurado como m痃uina de Servidor de archivos o de Base de datos."
!     IDS_CHECK_SCS           "Comprobacin de Servidor de control del sistema..."
!     IDS_CHECK_SCC           "Comprobacin de Cliente de control del sistema..."
!     IDS_SIZE                "Tamao"
!     IDS_ERROR_SEP           ",    "
!     IDS_MUST_CONFIG_FS      "El Servicio de archivos se configurar por omisin ya que 駸te es el primer AFS Server de la c駘ula."
!     IDS_MUST_CONFIG_DB      "El Servicio de base de datos se configurar por omisin ya que 駸te es el primer AFS Server de la c駘ula."
!     IDS_MUST_MAKE_PARTITION "Debe crearse una particin ya que 駸te es el primer AFS Server de la c駘ula."
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "Los volmenes root.afs y root.cell se crear疣 por omisin ya que 駸te es el primer AFS Server de la c駘ula."
!     IDS_MUST_REPLICATE      "Los volmenes root.afs y root.cell se duplicar疣 por omisin ya que 駸te es el primer AFS Server de la c駘ula."
!     IDS_CHECK_AFS_CLIENT    "Comprobacin de instalacin de AFS Client..."
!     IDS_ERROR_HOST_NAME     "No se ha podido determinar el nombre de sistema principal de esta m痃uina."
!     IDS_ERROR_DRIVE_COMPRESSED "La unidad est comprimida"
!     IDS_ERROR_CFG_HOST_OPEN "No se ha podido inicializar la Biblioteca de configuracin del servidor."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "Detencin del AFS Client"
!     IDS_ERROR_LOCAL_HOST_NAME 
!                             "No se ha podido determinar el nombre de sistema principal local de esta m痃uina."
!     IDS_GET_TOKENS_ERROR    "No se han podido obtener seales. Compruebe que el nombre de usuario y contrasea entrados sean correctos."
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "No puede efectuarse la recuperacin ya que no se ha iniciado el servicio de archivos. Por favor, inicie el servicio de archivos y despu駸 vuelva a intentar la recuperacin."
!     IDS_SALVAGING           "Recuperacin en curso. Espere por favor..."
!     IDS_CURRENT_SALVAGE_LOG "Contenido actual del registro de recuperacin:"
!     IDS_FINAL_SALVAGE_LOG   "Contenido final del registro de recuperacin:"
!     IDS_SALVAGE_COMPLETE    "Ha finalizado la recuperacin."
!     IDS_CANT_GET_SALVAGE_LOG 
!                             "No se ha podido recuperar el registro de recuperacin."
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK 
!                             "No se ha podido guardar el registro de recuperacin en disco."
!     IDS_VALIDATION_ERROR_TEMPLATE 
!                             "El %1 especificado no es v疝ido. Por favor, entre el %2."
!     IDS_CELL_NAME_VALIDATION_TYPE "nombre de c駘ula"
!     IDS_SERVER_NAME_VALIDATION_TYPE "nombre de servidor"
!     IDS_PASSWORD_VALIDATION_TYPE "contrasea"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "nombre de usuario"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "No se ha instalado el AFS Client. El AFS Client debe estar instalado antes de que pueda configurarse el AFS Server."
!     IDS_ERROR_AFS_CLIENT_CHECK 
!                             "No se ha podido determinar si est instalado el AFS Client."
!     IDS_ERROR_FS_IS_NOT_NTFS "El sistema de archivos no es NTFS"
!     IDS_ERROR_DRIVE_HAS_DATA "La unidad contiene datos"
!     IDS_PARTITION_STEP_DESC "Crear la particin de AFS"
!     IDS_ERROR_DRIVE_CONTAINS_NT "La unidad contiene instalacin de NT"
!     IDS_DB_STEP_DESC        "Iniciar el Servicio de base de datos"
!     IDS_FS_STEP_DESC        "Iniciar el Servicio de archivos"
!     IDS_SCC_STEP_DESC       "Iniciar el Cliente de control del sistema"
!     IDS_SCS_STEP_DESC       "Iniciar el Servidor de control del sistema"
!     IDS_ROOT_AFS_STEP_DESC  "Crear los volmenes de raz"
!     IDS_REP_STEP_DESC       "Duplicar los volmenes de raz"
!     IDS_PARTITIONS_PAGE_TITLE "Particiones"
!     IDS_CONFIGURE           "&Configurar"
!     IDS_DB_AND_BK_STEP_DESC "Iniciar el Servicio de base de datos (incluye Servidor de copia de seguridad)"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "Creacin de la particin de AFS"
!     IDS_CONFIG_COMMON_FUNCS "Configuracin de las funciones comunes a todos los servicios"
!     IDS_START_DB_STEP       "Cmo iniciar el servicio de base de datos"
!     IDS_START_SCC_STEP      "Cmo iniciar el Servicio de control del sistema como Cliente de control del sistema"
!     IDS_START_SCS_STEP      "Cmo iniciar el Servicio de control del sistema como Servidor de control del sistema"
!     IDS_CREATE_ROOT_AFS_STEP "Creacin del volumen root.afs"
!     IDS_REP_STEP            "Duplicacin de los volmenes de raz"
!     IDS_START_AUTH_STEP     "Obtencin de seales para este servidor"
!     IDS_SERVICES_PAGE_TITLE "Servicios"
!     IDS_CONFIG_SUCCEEDED    "La configuracin ha resultado satisfactoria."
!     IDS_CONFIG_CANCELED     "La configuracin se ha cancelado."
!     IDS_CONFIG_FAILED       "La configuracin ha fallado.\r\n\r\nSe ha creado un archivo de registro detallado, %1, en la ubicacin %2."
!     IDS_ERROR_NO_LICENSE_NUM 
!                             "No se ha encontrado un nmero de licencia de AFS."
!     IDS_VERIFY_CLIENT_INSTALL_STEP 
!                             "Verificacin de la instalacin de AFS Client"
!     IDS_SET_SERVER_LICENSE_STEP "Definicin de la licencia para este servidor"
!     IDS_DEFINE_CELL_NAME_STEP "Definicin del nombre para esta c駘ula"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP 
!                             "Conversin de este servidor en miembro de la c駘ula"
!     IDS_START_BOS_SERVER_STEP "Iniciando el servidor BOS"
!     IDS_START_AUTH_SERVER_STEP "Iniciando el servidor de autentificacin"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP 
!                             "Creacin de un principal y una clave para este servidor"
!     IDS_START_DB_AND_BK_STEP 
!                             "Cmo iniciar el Servicio de base de datos (incluyendo Servidor de copia de seguridad)"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP 
!                             "Creacin del principal de admin de c駘ula"
!     IDS_START_CLIENT_STEP   "Iniciando el AFS Client"
!     IDS_SET_ROOT_ACL_STEP   "Definicin de la ACL en el volumen root.afs"
!     IDS_CREATE_ROOT_CELL_STEP "Creacin del volumen root.cell"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP 
!                             "Montaje del volumen root.cell utilizando un punto de montaje est疣dar."
!     IDS_SET_ROOT_CELL_ACL_STEP "Definicin de la ACL en el volumen root.cell"
!     IDS_MOUNT_ROOT_CELL_RW_STEP 
!                             "Montaje del volumen root.cell utilizando un punto de montaje de lectura/grabacin."
!     IDS_ENABLE_AUTH_CHECKING_STEP 
!                             "Habilitacin de la comprobacin de autentificacin"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "Obtencin de las seales administrativas"
!     IDS_RESTART_SERVERS_STEP 
!                             "Reinicio de todos los servidores de esta m痃uina como servidores autentificados"
!     IDS_ALREADY_A_FS_SERVER "Esta m痃uina ya est configurada como Servidor de archivos."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "Esta m痃uina ya est configurada como Servidor de base de datos."
!     IDS_INTRO_PAGE          "Introduccin"
!     IDS_INFO_PAGE           "Informacin de c駘ula y servidor"
!     IDS_FS_PAGE             "Servicio de archivos"
!     IDS_DB_PAGE             "Servicio de base de datos"
!     IDS_CFG_TOOL_APP_TITLE  "Configuracin de AFSｮ Server"
!     IDS_BK_PAGE             "Servidor de copia de seguridad"
!     IDS_ROOT_AFS_PAGE       "Volmenes de AFS de raz"
!     IDS_NAME                "Nombre"
!     IDS_REP_PAGE            "Duplicacin"
!     IDS_SC_PAGE             "Servicio de control del sistema"
!     IDS_CONFIG_PAGE         "Configurar el sistema"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "Particin de AFS"
!     IDS_GRAPHIC_FONT        "Times New Roman, 12, B"
!     IDS_CURRENT_STEP        "Paso actual:"
!     IDS_ADD_TO_CELLSERVDB_STEP "Cmo aadir este servidor a CellServDB"
!     IDS_RESTART_ALL_DB_SERVERS_STEP 
!                             "Reinicio de todos los servidores de base de datos de la c駘ula"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "La configuracin ha resultado satisfactoria.  NOTA:  El archivo CellServDB de todos los clientes de AFS de la c駘ula debe actualizarse. Asegrese de facilitar al Soporte de producto de AFS una lista actualizada de los Servidores de base de datos si pone la c駘ula a disposicin de otros sitios. "
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG 
!                             "ｿDesea configurar esta m痃uina como Servidor de control del sistema?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG 
!                             "N&o configurar como Servidor de control del sistema."
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "La configuracin de AFS Server requiere que el AFS Client se configure en la misma c駘ula que el Servidor. Esto se efectuar de modo autom疸ico."
!     IDS_INFO_PAGE2          "Informacin administrativa"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "La configuracin ha resultado satisfactoria.\r\n\r\nNOTA:  Asegrese de facilitar al Soporte de producto de AFS una lista actualizada de los Servidores de base de datos si pone la c駘ula a disposicin de otros sitios."
!     IDS_CONFIG_SCS          "Configurar como Servidor de control del sistema de la c駘ula."
!     IDS_CONFIG_INTO_CELL_MSG "Configurar este sistema principal en la c駘ula "
!     IDS_VIEW_LOG            "&Ver registro"
!     IDS_VIEW_LOG_ERROR      "No puede verse el archivo de registro"
!     IDS_ERROR_NO_LOG_FILE   "El archivo de registro no existe."
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED 
!                             "CellServDB actualizado en el sistema principal "
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED 
!                             "No ha podido actualizarse CellServDB en el sistema principal "
!     IDS_CELL_NAME_LEN_ERROR "El nombre de c駘ula entrado es demasiado largo. Los nombres de c駘ula no pueden superar los 64 caracteres."
!     IDS_CONFIG_CHECK_FAILED "No se ha podido determinar la configuracin actual de esta m痃uina."
!     IDS_YES                 "S"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "No"
!     IDS_FREE                "Espacio libre"
!     IDS_TOTAL               "Tamao total"
!     IDS_DRIVE2              "Unidad"
!     IDS_SERVICE_STATUS      "Estado"
!     IDS_SERVICE             "Servicio"
!     IDS_FS_RUNNING          "El Servicio de archivos se est ejecutando en la actualidad."
!     IDS_FS_STOPPED          "El Servicio de archivos no se est ejecutando en la actualidad."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "El Servicio de base de datos se est ejecutando en la actualidad."
!     IDS_DB_STOPPED          "El Servicio de base de datos no se est ejecutando en la actualidad."
!     IDS_BK_RUNNING          "El Servicio de copia de seguridad se est ejecutando en la actualidad."
!     IDS_BK_STOPPED          "El Servicio de copia de seguridad no se est ejecutando en la actualidad."
!     IDS_SCS_STOPPED         "El Servidor de control del sistema no se est ejecutando en la actualidad."
!     IDS_SCC_STOPPED         "El Cliente de control del sistema no se est ejecutando en la actualidad."
!     IDS_FS_HOW_TO_RUN       "Para iniciar el Servicio de archivos, seleccione el recuadro anterior."
!     IDS_FS_HOW_TO_STOP      "Para detener el Servicio de archivos, deseleccione el recuadro anterior."
!     IDS_DB_HOW_TO_RUN       "Para iniciar el Servicio de base de datos, seleccione el recuadro anterior."
!     IDS_DB_HOW_TO_STOP      "Para detener el Servicio de base de datos, deseleccione el recuadro anterior."
!     IDS_BK_HOW_TO_RUN       "Para iniciar el Servicio de copia de seguridad, seleccione el recuadro anterior."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "Para detener el Servicio de copia de seguridad, deseleccione el recuadro anterior."
!     IDS_SCS_HOW_TO_RUN      "Para iniciar el Servidor de control del sistema, seleccione el recuadro anterior."
!     IDS_SCS_HOW_TO_STOP     "Para detener el Servidor de control del sistema, deseleccione el recuadro anterior."
!     IDS_DB_PARTIAL_CONFIG   "El Servicio de base de datos est parcialmente configurado."
!     IDS_DB_DETAILS          "Pulse en el botn Detalles para obtener m疽 informacin."
!     IDS_BK_DISABLED         "El Servicio de copia de seguridad est inhabilitado."
!     IDS_BK_ENABLE           "Para habilitar el Servicio de copia de seguridad, debe ejecutar el Servicio de base de datos."
!     IDS_SC_DISABLED         "Este servidor est inhabilitado."
!     IDS_SC_ENABLE           "Para habilitar este servidor, debe ejecutar el Servicio de archivos o el Servicio de base de datos."
!     IDS_FS_WILL_RUN         "Se iniciar el Servicio de archivos."
!     IDS_FS_WILL_STOP        "Se detendr el Servicio de archivos."
!     IDS_DB_WILL_RUN         "Se iniciar el Servicio de base de datos."
!     IDS_DB_WILL_STOP        "Se detendr el Servicio de base de datos."
!     IDS_BK_WILL_RUN         "Se iniciar el Servicio de copia de seguridad."
!     IDS_BK_WILL_STOP        "Se detendr el Servicio de copia de seguridad."
!     IDS_SCS_WILL_RUN        "Se iniciar el Servidor de control del sistema."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "Se detendr el Servidor de control del sistema."
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "La unidad ya es una particin de AFS"
!     IDS_VOLUME_HAS_NO_NAME  "<El volumen no tiene nombre>"
!     IDS_PARTITION_CREATED   "Se ha creado satisfactoriamente una nueva Particin de AFS."
!     IDS_PARTITION_EXISTS    "El nombre de particin entrado ya lo est utilizando otra particin."
!     IDS_SCS_RUNNING         "El Servidor de control del sistema se est ejecutando en la actualidad."
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN 
!                             "Esta unidad slo contiene la Papelera de reciclaje."
!     IDS_SCC_WILL_RUN        "Se iniciar el Cliente de control del sistema."
!     IDS_SCC_WILL_STOP       "Se detendr el Cliente de control del sistema."
!     IDS_SCC_RUNNING         "El Cliente de control del sistema se est ejecutando en la actualidad."
!     IDS_SCC_HOW_TO_RUN      "Para iniciar el Cliente de control del sistema, seleccione el recuadro anterior."
!     IDS_SCC_HOW_TO_STOP     "Para detener el Cliente de control del sistema, deseleccione el recuadro anterior."
!     IDS_SCS_ENABLE          "Para habilitar este servidor, debe detener la ejecucin del Cliente de control del sistema."
!     IDS_SCC_ENABLE          "Para habilitar este servidor, debe detener la ejecucin del Servidor de control del sistema."
!     IDS_UNCONFIG_DB_STEP    "Desconfiguracin del Servicio de base de datos"
!     IDS_UNCONFIG_DB_STEP_DESC "Desconfigurar el Servicio de base de datos"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP 
!                             "Desconfiguracin del Servicio de base de datos (y del Servidor de copia de seguridad)"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC 
!                             "Desconfigurar el Servicio de base de datos (y el Servidor de copia de seguridad)"
!     IDS_UNCONFIG_BK_STEP    "Desconfiguracin del Servidor de copia de seguridad"
!     IDS_UNCONFIG_BK_STEP_DESC 
!                             "Desconfigurar el Servidor de copia de seguridad"
!     IDS_UNCONFIG_FS_STEP    "Desconfiguracin del Servicio de archivos"
!     IDS_UNCONFIG_FS_STEP_DESC "Desconfigurar el Servicio de archivos"
!     IDS_UNCONFIG_SCS_STEP   "Desconfiguracin del Servidor de control del sistema"
!     IDS_UNCONFIG_SCS_STEP_DESC 
!                             "Desconfigurar el Servidor de control del sistema"
!     IDS_UNCONFIG_SCC_STEP   "Desconfiguracin del Cliente de control del sistema"
!     IDS_UNCONFIG_SCC_STEP_DESC 
!                             "Desconfigurar el Cliente de control del sistema"
!     IDS_INVALIDATE_CONFIG_INFO_STEP 
!                             "Invalidacin de la informacin de configuracin de esta m痃uina"
!     IDS_CLOSE               "&Cerrar"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "El archivo CellServDB no ha podido actualizarse en los servidores de AFS que hay a continuacin. Este error no es grave.\r\n"
!     IDS_DELETE_PARTITION_PROMPT "ｿDesea realmente suprimir la particin '%1'?"
!     IDS_INVALIDATE_CFG_INFO "En este momento no hay procesos de AFS ejecut疣dose en este sistema. ｿDesea eliminar la informacin de configuracin desde esta m痃uina?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "La c駘ula ya no existe. La aplicacin de Configuracin de AFS slo puede utilizarse para configurar m痃uinas de servidor ya configuradas en una c駘ula de AFS. El Asistente de configuracin de AFS puede utilizarse para iniciar una nueva c駘ula."
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "La aplicacin de Configuracin de AFS debe finalizar en este momento. Slo puede ejecutarse en m痃uinas ya configuradas en servidores de AFS. Para configurar de nuevo esta m痃uina como servidor de AFS, ejecute el Asistente de configuracin de AFS. "
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "Esta m痃uina ya no est configurada como AFS Server. La aplicacin de Configuracin de AFS slo puede utilizarse para configurar m痃uinas de AFS Server. El Asistente de configuracin de AFS puede utilizarse para volver a configurar esta m痃uina como AFS Server. "
!     IDS_GET_TOKENS_FAILED   "No se han podido obtener seales para la c駘ula especificada."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "Iniciando el servidor de Copia de seguridad"
!     IDS_BK_STEP_DESC        "Iniciar el servidor de Copia de seguridad"
!     IDS_CONFIG_ERROR        "Se ha producido un error de configuracin"
!     IDS_CREATE_PARTITION_ERROR "No se ha podido crear la particin"
!     IDS_REMOVE_PARTITION_ERROR "No se ha podido eliminar la particin"
!     IDS_READ_PARTITIONS_ERROR "No se ha podido leer la tabla de particin"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\nEl proceso de actualizacin de CellServDB ha finalizado prematuramente. No se han podido actualizar todos los servidores."
!     IDS_GET_PARTITION_LIST_ERROR 
!                             "No se ha podido determinar que la particin est en este servidor"
!     IDS_EXPORTED            "Exportada"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "Las particiones exportadas no pueden eliminarse mientras se est ejecutando el Servicio de archivos. Debe detener el Servicio de archivos antes de eliminar esta particin."
!     IDS_CHECK_CONFIG_INFO   "Comprobando la informacin de configuracin v疝ida..."
!     IDS_ERROR_CFG_HOST_CLOSE 
!                             "No se ha podido cerrar la Biblioteca de configuracin del servidor"
!     IDS_FAILED_OPEN_CELL    "No se ha podido abrir la c駘ula."
!     IDS_FAILED_OPEN_NULL_CELL 
!                             "No se ha podido abrir un controlador de c駘ula NULL"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "Si no existen los volmenes de raz, ｿdesea crearlos?"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "Si los volmenes de raz no est疣 duplicados, ｿdesea duplicarlos?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS Server"
!     IDS_CANT_INIT_ADMIN_LIBS 
!                             "No puede ejecutar esta aplicacin: ha fallado la inicializacin de la biblioteca."
!     IDS_CANT_OPEN_LOG_FILE  "No ha podido abrirse el archivo de registro."
!     IDS_NEED_CLIENT_INFO    "La aplicacin de Configuracin de AFS no puede ejecutarse debido a que AFS Client no est configurado en este sistema. El asistente de configuracin de AFS puede utilizarse en esta situacin. ｿHa de ejecutarse el Asistente de configuracin de AFS?"
!     IDS_NEED_SERVER_INFO    "Este sistema no est configurado como AFS Server. El Asistente de configuracin de AFS debe utilizarse para configurar inicialmente un AFS Server. Por tanto, puede utilizarse la aplicacin Configuracin de AFS. ｿHa de ejecutarse el Asistente de configuracin de AFS para configurar inicialmente este sistema? "
!     IDS_ADVANCED_OPEN       "<< &Avanzado"
!     IDS_ADVANCED_CLOSED     "&Avanzado >>"
!     IDS_BOS_OPEN_FAILED     "No se ha podido conectar con el servidor (ha fallado la apertura de bos)."
!     IDS_SALVAGE_ERROR       "Ha fallado la operacin de recuperacin."
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "El nmero especificado de procesos de recuperacin no es v疝ido. El nmero de procesos de recuperacin debe estar entre 1 y 32. "
!     IDS_WRONG_CELL          "En un paso anterior ha especificado un servidor desde el que debera recuperarse la informacin de configuracin. ｡El servidor especificado no pertenece a la c駘ula que desea unir!"
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "No se ha podido actualizar el archivo CellServDB en algunos servidores de la c駘ula. Para obtener una lista de los servidores que se han actualizado y de los que no se han actualizado, vea el registro de configuracin almacenado en el archivo"
!     IDS_GET_CREDENTIALS_STEP "Obtencin de seales administrativas"
!     IDS_MUST_ENTER_SCS_NAME "Debe entrarse un nombre de M痃uina de control del sistema antes de que pueda comenzar la configuracin."
!     IDS_NOT_SAME_CELL       "El AFS Client est configurado en una c駘ula diferente de la de AFS Server. Antes de configurar el AFS Server, en primer lugar debe volver a configurar el AFS Client en la c駘ula del Servidor."
!     IDS_LAST_DB_SERVER      "Esta m痃uina est ejecutando el ltimo servidor de base de datos de la c駘ula. Si contina y desconfigura el servicio de base de datos en esta m痃uina, la c駘ula ya no existir y se desconfigurar疣 todos los dem疽 servicios de AFS que se ejecutan en la m痃uina. ｿDesea continuar de todos modos?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "La contrasea del principal de AFS no es v疝ida."
!     IDS_ERROR_CLIENT_VERSION 
!                             "La versin del AFS Client de este sistema no es compatible con el AFS Server. El AFS Server requiere como mnimo la versin 3.5 del AFS Client."
!     IDS_CANT_MAP_ROOT_AFS   "Para definir las ACL en los volmenes de raz, debe correlacionarse una letra de unidad en AFS. En la actualidad no hay letras de unidad disponibles. Por favor, libere una letra de unidad y despu駸 pulse en Aceptar. "
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "nombre de particin"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "nombre de volumen"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE "nmero de procesos de recuperacin"
!     IDS_PATH_NAME_VALIDATION_TYPE "nombre de va de acceso"
!     IDS_FILE_NAME_VALIDATION_TYPE "nombre de archivo"
!     IDS_GENERIC_VALIDATION_TYPE "valor"
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 7,1237 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFSｮ Configuration application and wizard"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x40a
  #define AFS_VERINFO_CHARSET 1252
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 320, 246
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "Asistente de inicio r疳ido de AFSｮ Server"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "Cance&lar",IDCANCEL,101,225,50,14
!     PUSHBUTTON      "< &Anterior",IDBACK,155,225,50,14
!     DEFPUSHBUTTON   "&Siguiente >",IDNEXT,209,225,50,14
!     PUSHBUTTON      "A&yuda",9,263,225,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,214,305,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,103,7,210,200
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "S, &crear una particin.",IDC_CREATE_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,91,191,8
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,114,
!                     186,52,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,132,175,20,12,ES_AUTOHSCROLL
!     CONTROL         "N&o, no crear una particin.",IDC_DONT_CREATE_PARTITION,
!                     "Button",BS_AUTORADIOBUTTON,0,191,102,8
!     LTEXT           "Este Servidor de archivos almacenar y entregar archivos y programas a clientes de AFS. Para los datos almacenados en este sistema que han de compartirse por medio de AFS, debe dedicarse como mnimo un volumen NTFS como particin de AFS. ",
!                     -1,0,12,209,35
!     LTEXT           "&Seleccione el volumen a utilizar para la particin:",
!                     IDC_SELECT_DRIVE,12,103,184,9
!     LTEXT           "No&mbre de particin de AFS:  /vicep",IDC_NAME_LABEL,12,
!                     176,116,8
!     LTEXT           "Crear particin AFS en el Servidor de archivos",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Una particin de AFS es fsicamente equivalente a un volumen NTFS, pero contiene asimismo metadatos especializados acerca de la estructura y ubicacin de informacin en la particin.",
!                     -1,0,50,209,25
!     LTEXT           "ｿDesea crear una particin en este Servidor de archivos?",
!                     IDC_ASK_CREATE_PARTITION,1,78,209,13
!     LTEXT           "Mensaje definido al ejecutar, si es necesario.",
!                     IDC_PARTITION_MSG,0,166,210,34,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,210,92,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&S, configurar como Servidor de archivos.",
!                     IDC_SHOULD_CONFIG_FILE_SERVER,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,198,10
!     CONTROL         "N&o, no configurar como Servidor de archivos.",
!                     IDC_DONT_CONFIG_FILE_SERVER,"Button",BS_AUTORADIOBUTTON,
!                     0,190,201,10
!     LTEXT           "El Servicio de archivos de AFS proporciona los archivos y programas solicitados desde este servidor a los clientes de AFS. Este servicio maneja tambi駭 las operaciones de administracin de volmenes, como la creacin, supresin, traslado y duplicacin.",
!                     -1,0,38,210,35
!     LTEXT           "Configurar esta m痃uina como Servidor de archivos.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "ｿDesea configurar esta m痃uina como Servidor de archivos?",
!                     IDC_CREATE_FS_QUESTION,0,166,210,8
!     LTEXT           "Para configurar esta m痃uina como Servidor de archivos, debe configurar el Servicio de archivos.",
!                     -1,0,14,210,17
!     LTEXT           "Nota: Esta m痃uina no tiene en la actualidad una unidad de disco disponible para almacenar archivos en AFS. Si bien puede configurar esta m痃uina como Servidor de archivos, no podr almacenar datos de AFS en la m痃uina. ",
!                     IDC_NO_DRIVES_NOTE,0,77,210,32,NOT WS_VISIBLE
!     LTEXT           "Para crear unidades de disco, utilice el Administrador de disco de Windows NT.",
!                     IDC_DISK_ADMIN_NOTE,0,117,210,16,NOT WS_VISIBLE
!     LTEXT           "Esta m痃uina ya est configurada como Servidor de archivos.",
!                     IDC_MSG,0,166,209,34,NOT WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Bienvenido al Asistente de inicio r疳ido de AFS Server. Este asistente le ayudar a configurar con rapidez el AFS Server en este sistema Windows NT.",
!                     IDC_TITLE,0,0,209,26
!     LTEXT           "Pulse Siguiente para comenzar la configuracin de AFS Server.",
!                     IDC_STATIC,0,166,209,8
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&S, duplicar los volmenes de raz.",IDC_REPLICATE,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,179,196,10
!     CONTROL         "N&o, no duplicar los volmenes de raz.",
!                     IDC_DONT_REPLICATE,"Button",BS_AUTORADIOBUTTON,0,190,197,
!                     10
!     LTEXT           "La duplicacin es el proceso de crear copias de slo lectura de un volumen en mltiples particiones, normalmente en otros Servidores de archivos. La duplicacin aumenta la disponibilidad de un volumen en la eventualidad de una interrupcin de la red o ",
!                     IDC_STATIC,0,36,209,32
!     LTEXT           "ｿDesea duplicar los volmenes de raz?",
!                     IDC_REPLICATE_QUESTION,0,166,209,8
!     LTEXT           "La duplicacin tambi駭 ayuda a evitar que se sobrecargue un servidor con peticiones de volmenes a los que se accede con frecuencia. ",
!                     IDC_STATIC,0,98,209,25
!     LTEXT           "Duplicar los volmenes de raz de la c駘ula.",IDC_TITLE,
!                     0,0,209,8
!     LTEXT           "Si piensa duplicar otros volmenes de esta c駘ula de AFS, en primer lugar debe duplicar los volmenes de raz. ",
!                     IDC_STATIC,0,15,209,16
!     LTEXT           "interrupcin del servidor porque, cuando no puede disponerse de uno de los servidores que aloja el volumen, sigue siendo posible acceder al volumen desde otro servidor. ",
!                     IDC_STATIC,0,69,209,25
!     LTEXT           "Mensaje definido al ejecutar, si es necesario.",
!                     IDC_CANT_REPLICATE_MSG,0,166,209,34,NOT WS_VISIBLE | NOT 
!                     WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&S, crear los volmenes de raz.",
!                     IDC_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,179,197,10
!     CONTROL         "N&o, no crear los volmenes de raz.",
!                     IDC_DONT_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON,
!                     0,190,194,10
!     LTEXT           "En AFS, los volmenes son conjuntos de archivos relacionados que est疣 organizados en unidades sencillas, f當ilmente gestionables para facilitar la administracin del sistema. ",
!                     IDC_STATIC,0,15,209,28
!     LTEXT           "ｿDesea crear los volmenes de raz?",
!                     IDC_ROOT_AFS_QUESTION,0,166,209,8
!     LTEXT           "Crear los volmenes de raz de la c駘ula. ",IDC_TITLE,0,
!                     0,209,8
!     LTEXT           "Una vez creados, puede accederse autom疸icamente a los volmenes de raz en el espacio de archivos de AFS.",
!                     IDC_STATIC,0,80,209,17
!     LTEXT           "Mensaje definido al ejecutar, si es necesario.",
!                     IDC_ROOT_AFS_MSG,0,166,209,33,NOT WS_VISIBLE
!     LTEXT           "El volumen root.afs es la raz del espacio de archivos de AFS. El volumen root.cell es la raz de este sub疵bol de c駘ula del espacio de archivos de AFS y se accede al mismo por medio de un punto de montaje desde root.afs.",
!                     IDC_STATIC,0,43,209,34
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 90
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "Configuracin de AFSｮ Server"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,40,148,14
!     LTEXT           "Texto de operacin - definido al ejecutar.",
!                     IDC_OPERATION,35,20,145,16
!     ICON            "",IDC_LOGO,7,7,21,20
!     PUSHBUTTON      "Cancelar",IDCANCEL,73,69,50,14
!     LTEXT           "Determinacin de la configuracin actual:",
!                     IDC_OPERATION2,35,7,156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 201
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&S, configurar como Servidor de copia de seguridad.",
!                     IDC_CONFIG_BACKUP_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,170,206,10
!     CONTROL         "&No, no configurar como Servidor de copia de seguridad.",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,0,181,205,10
!     LTEXT           "El Servidor de copia de seguridad slo puede ejecutarse en m痃uinas configuradas como Servidores de base de datos. Adem疽, si se ejecuta en un Servidor de base de datos de c駘ula, debe ejecutar TODOS los Servidores de este tipo.",
!                     -1,0,38,199,32
!     LTEXT           "ｿDesea configurar esta m痃uina como Servidor de copia de seguridad?",
!                     IDC_BACKUP_SERVER_QUESTION,0,150,209,19
!     LTEXT           "Configurar como Servidor de copia de seguridad.",
!                     IDC_TITLE,0,0,207,8
!     LTEXT           "El Servidor de copia de seguridad es una caracterstica opcional del Servicio de base de datos.",
!                     -1,0,14,209,16
!     LTEXT           "Esta m痃uina ya est configurada como Servidor de base de datos.",
!                     IDC_CANT_BACKUP_MSG,0,149,210,33,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 210, 220
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Configurar como &Servidor de control del sistema.",
!                     IDC_SYS_CONTROL_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,142,205,10
!     CONTROL         "Configurar como &Cliente de control del sistema.",
!                     IDC_SYS_CONTROL_CLIENT,"Button",BS_AUTORADIOBUTTON,0,154,
!                     203,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,82,172,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "N&o configurar como Servidor o Cliente de control del sistema.",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON,0,188,205,
!                     9
!     LTEXT           "El Servidor de control del sistema facilita archivos de configuracin habituales a otras m痃uinas de AFS Server que se ejecutan como Clientes de control del sistema. Las c駘ulas de AFS deben ejecutar un nico Servidor de control del sistema. ",
!                     -1,0,14,209,34
!     LTEXT           "Configurar como Servidor/Cliente control sistema",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "ｿDesea configurar esta m痃uina como Cliente o Servidor de control del sistema?",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,0,123,207,17
!     LTEXT           "Un Cliente de control del sistema recibe las actualizaciones disponibles para sus archivos de configuracin de AFS desde el Servidor de control del sistema de la c駘ula.",
!                     IDC_SYS_CONTROL_CLIENT_DESC,0,50,209,29
!     LTEXT           "S&ervidor de control del sistema:",
!                     IDC_SYS_CONTROL_MACHINE_LABEL,10,168,65,18,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,0,185,210,34,NOT WS_VISIBLE
!     LTEXT           "AVISO: Las ubicaciones que no utilicen la distribucin de AFSｮ de EE.UU. no deben distribuir archivos de configuracin por medio del Servidor de control del sistema. Esto causar la transmisin no cifrada de informacin confidencial.",
!                     -1,8,78,183,46
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 231
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Esa es toda la informacin necesaria para configurar el AFS Server en este sistema.",
!                     IDC_ALL_NEEDED_MSG,1,14,209,17
!     LTEXT           "Configurar esta m痃uina en la c駘ula <definida al ejecutar>",
!                     IDC_TITLE,1,0,208,8
!     LTEXT           "Se efectuar疣 los siguientes pasos de configuracin:",
!                     IDC_FOLLOWING_STEPS_MSG,1,36,187,8
!     LTEXT           "Paso 1 - Texto definido al ejecutar",IDC_STEP1,22,49,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Paso 3 - Texto definido al ejecutar",IDC_STEP3,22,73,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Paso 2 - Texto definido al ejecutar",IDC_STEP2,22,61,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Paso 4 - Texto definido al ejecutar",IDC_STEP4,22,85,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Paso 5 - Texto definido al ejecutar",IDC_STEP5,22,97,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Paso 6 - Texto definido al ejecutar",IDC_STEP6,22,109,
!                     179,8,NOT WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,203,200,11
!     LTEXT           "Paso 8 - Texto definido al ejecutar",IDC_STEP8,22,133,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Paso 7 - Texto definido al ejecutar",IDC_STEP7,22,121,
!                     179,8,NOT WS_VISIBLE
!     LTEXT           "Mensaje definido al ejecutar, si es necesario.",
!                     IDC_CANT_CONFIG_MSG,1,13,209,17,NOT WS_VISIBLE
!     LTEXT           "% completado:",IDC_PERCENT_COMPLETE_LABEL,1,218,48,8,
!                     NOT WS_VISIBLE
!     LTEXT           "Operacin actual:",IDC_CURRENT_STEP_LABEL,1,157,108,8,
!                     NOT WS_VISIBLE
!     LTEXT           "Descripcin del paso actual - definido al ejecutar",
!                     IDC_CURRENT_STEP,1,167,208,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,63,191,49,8,NOT WS_VISIBLE
!     LTEXT           "Para comenzar la configuracin de este sistema, pulse el botn Configurar. Para cambiar los pasos de configuracin a efectuar, pulse el botn Anterior.",
!                     IDC_STATUS_MSG,1,167,208,31
!     LTEXT           "",IDC_STEP1_GRAPHIC,10,49,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,10,61,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,10,73,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,10,85,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,10,97,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,10,109,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,10,121,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,10,133,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 215, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,64,55,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,64,71,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,64,87,138,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,106,155,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,145,154,11,14
!     LTEXT           "Informacin administrativa",IDC_TITLE,4,0,202,8
!     LTEXT           "&Nombre:",IDC_ADMIN_NAME_LABEL,11,57,40,8
!     LTEXT           "&Contrasea:",IDC_ADMIN_PW_LABEL,11,73,46,8
!     GROUPBOX        "Nombre de cuenta y contrasea",IDC_ADMIN_INFO_FRAME,6,
!                     41,202,65
!     LTEXT           "&Verificar:",IDC_VERIFY_ADMIN_PW_LABEL,11,90,52,8
!     LTEXT           "La informacin que hay a continuacin es necesaria para crear la cuenta administrativa para esta nueva c駘ula.",
!                     IDC_STATIC,4,15,209,17
!     CONTROL         "U&tilizar este UID de AFS:",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,11,157,95,10
!     CONTROL         "&Utilizar el siguiente UID de AFS disponible",
!                     IDC_USE_NEXT_UID,"Button",BS_AUTORADIOBUTTON,11,144,189,
!                     10
!     GROUPBOX        "UID de AFS",IDC_STATIC,6,118,202,57
!     LTEXT           "Entre el ID de usuario para la cuenta administrativa de AFS:",
!                     IDC_STATIC,11,130,196,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 244
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&S, configurar como Servidor de base de datos.",
!                     IDC_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,118,202,10
!     CONTROL         "N&o, no configurar como Servidor de base de datos.",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,0,
!                     197,202,10
!     LTEXT           "El Servicio de base de datos mantiene el grupo de bases de datos duplicadas que necesita una c駘ula de AFS. Este servicio mantiene toda la informacin de cuenta, ubicacin de volumen y (opcionalmente) de copia de seguridad para la c駘ula. ",
!                     -1,0,38,209,54
!     LTEXT           "ｿDesea configurar esta m痃uina como Servidor de bases de datos?",
!                     IDC_DB_SERVER_QUESTION,0,98,209,17
!     LTEXT           "Configurar como Servidor de base de datos.",IDC_TITLE,0,
!                     0,209,8
!     LTEXT           "Para configurar esta m痃uina como Servidor de base de datos, debe configurar el Servicio de base de datos.",
!                     -1,0,14,209,16
!     LTEXT           "Esta m痃uina ya est configurada como Servidor de base de datos.",
!                     IDC_MSG,0,179,210,33,NOT WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,80,165,119,12,ES_AUTOHSCROLL
!     LTEXT           "S&ervidor de control del sistema:",
!                     IDC_SYS_CONTROL_MACHINE_LABEL,12,162,65,20
!     LTEXT           "Si la c駘ula tiene un Servidor de control del sistema, entre su nombre de sistema principal a continuacin. Los archivos de configuracin de AFS se actualizar疣 por medio de este servidor. ",
!                     IDC_SCM_PROMPT,12,130,194,32
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 274, 202
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Hacer que este sistema principal sea un servidor en una c駘ula de AFS existente",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON,2,38,
!                     264,10
!     CONTROL         "&Este ser el primer servidor de una c駘ula de AFS nueva",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,2,53,261,10
!     EDITTEXT        IDC_CELL_NAME,57,94,193,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,59,166,192,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,59,180,192,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "Informacin de c駘ula y servidor",IDC_TITLE,2,0,261,8
!     LTEXT           "Nombre de &c駘ula:",IDC_CELL_NAME_LABEL,18,90,38,16
!     LTEXT           "C&ontrasea:",IDC_SERVER_PW_LABEL,19,167,40,8,
!                     WS_DISABLED
!     LTEXT           "Entre el nombre de la c駘ula de AFS.",
!                     IDC_CELL_NAME_PROMPT,20,80,199,11
!     LTEXT           "Entre la contrasea del principal de AFS. Todos los servidores de AFS obtienen seales como este principal.",
!                     IDC_SERVER_PW_PROMPT,17,130,239,19,WS_DISABLED
!     GROUPBOX        "Nombre de c駘ula",IDC_CELL_NAME_FRAME,14,69,246,43
!     GROUPBOX        "Contrasea de servidor",IDC_SERVER_PW_FRAME,15,117,245,
!                     81,WS_DISABLED
!     LTEXT           "&Verificar:",IDC_VERIFY_PW_LABEL,21,180,32,8,
!                     WS_DISABLED
!     LTEXT           "Una c駘ula de AFS es un conjunto de servidores que proporcionan un espacio de nombres uniforme para el acceso al archivo.",
!                     IDC_CELL_NAME_PROMPT2,11,13,228,25
!     LTEXT           "Nombre:",IDC_PRINCIPAL_LABEL,19,152,33,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,59,148,192,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 217, 201
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,53,55,149,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,53,72,149,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,53,132,149,12,ES_AUTOHSCROLL
!     LTEXT           "Informacin administrativa",IDC_TITLE,4,0,202,8
!     LTEXT           "Entre la informacin de cuenta administrativa que hay a continuacin:",
!                     IDC_ADMIN_INFO_PROMPT,12,30,170,18
!     LTEXT           "&Nombre:",IDC_ADMIN_NAME_LABEL,12,58,33,8
!     LTEXT           "&Contrasea:",IDC_ADMIN_PW_LABEL,11,74,39,8
!     GROUPBOX        "Nombre de cuenta y contrasea",IDC_ADMIN_INFO_FRAME,8,
!                     17,202,73
!     GROUPBOX        "AFS Server existente",IDC_HOSTNAME_FRAME,8,92,201,60
!     LTEXT           "AFS Server:",IDC_HOSTNAME_LABEL,12,134,41,8
!     LTEXT           "Entre el nombre de sistema principal de algn otro AFS Server en la c駘ula que desea unir. La informacin de configuracin de AFS se recuperar desde este servidor. ",
!                     IDC_HOSTNAME_PROMPT,12,105,196,25
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 268
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "Servicios"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,20,281,40
!     GROUPBOX        "",IDC_STATIC,7,66,281,43
!     GROUPBOX        "",IDC_STATIC,7,115,281,40
!     GROUPBOX        "",IDC_STATIC,7,161,281,46
!     CONTROL         "Servicio de archivos",IDC_FS_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,19,84,10
!     CONTROL         "Servicio de base de datos",IDC_DB_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,65,100,10
!     PUSHBUTTON      "Detalles...",IDC_DB_DETAILS,219,81,50,14,NOT WS_VISIBLE
!     CONTROL         "Servidor de copia de seguridad",IDC_BK_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,114,116,10
!     CONTROL         "Servidor de control del sistema",IDC_SCS,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,160,115,10
!     EDITTEXT        IDC_SC_MACHINE,137,229,120,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "Seleccione los servicios a ejecutar en este AFS Server:",
!                     IDC_STATIC,7,7,265,8
!     LTEXT           "El Servicio de archivos se est ejecutando en la actualidad.",
!                     IDC_FS_STATUS_MSG,14,32,261,8
!     LTEXT           "El Servicio de base de datos est instalado parcialmente en la actualidad.",
!                     IDC_DB_STATUS_MSG,14,78,195,16
!     LTEXT           "S&ervidor de control del sistema:",IDC_SC_MACHINE_LABEL,
!                     31,231,101,8,WS_DISABLED
!     LTEXT           "Para detener el Servicio de archivos, deseleccione el recuadro anterior.",
!                     IDC_FS_ACTION_MSG,14,44,262,8
!     LTEXT           "Pulse en detalles para obtener m疽 informacin.",
!                     IDC_DB_ACTION_MSG,14,96,186,8
!     LTEXT           "El Servidor de copia de seguridad se est ejecutando en la actualidad.",
!                     IDC_BK_STATUS_MSG,14,127,259,8
!     LTEXT           "Para detener el Servidor de copia de seguridad, deseleccione el recuadro anterior.",
!                     IDC_BK_ACTION_MSG,14,139,262,8
!     LTEXT           "Para habilitar este servidor, debe ejecutar el Servicio de archivos o el Servicio de base de datos.",
!                     IDC_SCS_ACTION_MSG,14,185,268,17
!     LTEXT           "El servicio de Control del sistema no est ejecut疣dose en la actualidad.",
!                     IDC_SCS_STATUS_MSG,14,172,263,9
!     GROUPBOX        "",IDC_STATIC,7,210,281,51
!     CONTROL         "Cliente de control del sistema",IDC_SCC,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,209,109,10
!     LTEXT           "Para habilitar este servidor, debe ejecutar el Servicio de archivos o el Servicio de base de datos.",
!                     IDC_SCC_ACTION_MSG,14,243,268,16
!     LTEXT           "El servicio de Control del sistema no est ejecut疣dose en la actualidad.",
!                     IDC_SCC_STATUS_MSG,14,219,263,9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "Particiones"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "En el sistema existen las siguientes particiones de &AFS:",
!                     IDC_STATIC,8,7,175,8
!     PUSHBUTTON      "&Crear...",IDC_CREATE_PARTITIONS,17,118,53,14
!     LTEXT           "Para recuperar una particin o un volumen de una particin, seleccione la particin en la lista y pulse el botn anterior. Para recuperar todas las particiones de este servidor, pulse el botn anterior. ",
!                     IDC_SALVAGE_MSG,30,179,250,25
!     PUSHBUTTON      "&Recuperar...",IDC_SALVAGE,17,159,53,14
!     LTEXT           "Para eliminar una particin, seleccione la particin en la lista y pulse el botn anterior. ",
!                     IDC_REMOVE_MSG,30,235,253,17,WS_DISABLED
!     PUSHBUTTON      "Eli&minar",IDC_REMOVE,17,217,53,14,WS_DISABLED
!     GROUPBOX        "Particiones",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
!                     281,79,WS_EX_CLIENTEDGE
!     LTEXT           "Para crear una nueva particin en este servidor, pulse el botn anterior.",
!                     IDC_CREATE_MSG,30,136,254,8
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 264, 198
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "Crear particin de AFS"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Seleccione un volumen NTFS de la lista siguiente en la que crear la nueva particin:",
!                     IDC_TITLE,7,5,250,18
!     LTEXT           "Nombre de particin de AFS:",IDC_NAME_STATIC,16,144,97,
!                     8
!     EDITTEXT        IDC_PARTITION_NAME,142,141,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Crear",IDC_CREATE,96,175,50,14,WS_DISABLED
!     PUSHBUTTON      "C&errar",IDC_CLOSE,152,175,50,14
!     PUSHBUTTON      "Ayuda",9,207,175,50,14
!     GROUPBOX        "Par疥etros de particin",IDC_ARGS_FRAME,7,129,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,28,250,
!                     95,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,112,144,28,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 229, 186
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Configuracin de AFSｮ Server"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,66,44,151,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,66,60,151,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,64,138,151,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Configurar",IDOK,108,165,50,14,WS_DISABLED
!     PUSHBUTTON      "Cancelar",IDCANCEL,48,165,50,14
!     PUSHBUTTON      "Ayuda",9,172,165,50,14
!     LTEXT           "Entre la informacin de cuenta administrativa que hay a continuacin:",
!                     IDC_ADMIN_INFO_PROMPT,14,20,196,19
!     LTEXT           "&Nombre:",IDC_ADMIN_NAME_LABEL,15,47,38,8
!     LTEXT           "C&ontrasea:",IDC_ADMIN_PW_LABEL,15,63,44,8
!     GROUPBOX        "Nombre de cuenta y contrasea",IDC_ADMIN_INFO_FRAME,7,7,
!                     215,75
!     GROUPBOX        "Servidor de control del sistema",IDC_HOSTNAME_FRAME,7,
!                     84,215,73
!     LTEXT           "Nombre de &sist. principal:",IDC_HOSTNAME_LABEL,13,134,
!                     46,19
!     LTEXT           "Si la c駘ula tiene un Servidor de control del sistema, entre su nombre de sistema principal a continuacin. Los archivos de configuracin de AFS se actualizar疣 por medio de este servidor. ",
!                     IDC_HOSTNAME_PROMPT,13,98,197,31
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,7,170,225,9,NOT WS_VISIBLE
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 257, 89
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Configuracin de AFSｮ Server"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "Cancelar",IDCANCEL,103,68,50,14
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,37,200,11
!     LTEXT           "Porcentaje completado:",IDC_PERCENT_COMPLETE_LABEL,40,
!                     51,95,8,NOT WS_VISIBLE
!     LTEXT           "Operacin actual:",IDC_CURRENT_STEP_LABEL,40,7,57,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "Descripcin del paso actual - definido en la ejecucin",
!                     IDC_CURRENT_STEP,40,15,210,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,101,50,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,7,20,20
!     LTEXT           "Para comenzar la configuracin de este sistema, pulse el botn Configurar. Para cambiar los pasos de configuracin a efectuar, pulse el botn Anterior.",
!                     IDC_STATUS_MSG,40,7,210,41
!     PUSHBUTTON      "&Ver registro",IDNEXT,161,68,50,14,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Errores de actualizacin de CellServCB"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LISTBOX         IDC_LIST,7,26,173,127,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "Aceptar",IDOK,22,162,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "Ayuda",9,130,162,50,14
!     LTEXT           "El archivo CellServDB no ha podido actualizarse autom疸icamente en los siguientes servidores de AFS:",
!                     IDC_STATIC,7,7,173,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 298, 189
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Recuperar"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     DEFPUSHBUTTON   "Aceptar",IDOK,120,99,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,177,99,50,14
!     PUSHBUTTON      "A&yuda",9,234,99,50,14
!     CONTROL         "&Recuperar todas las particiones de este Servidor de archivos",
!                     IDC_SERVER,"Button",BS_AUTORADIOBUTTON,14,35,248,10
!     CONTROL         "Recuperar todos los volmenes de la &particin seleccionada",
!                     IDC_PARTITION,"Button",BS_AUTORADIOBUTTON,17,48,251,10
!     CONTROL         "Recuperar un &volumen especfico en la particin seleccionada",
!                     IDC_VOLUME,"Button",BS_AUTORADIOBUTTON,14,61,254,10
!     EDITTEXT        IDC_VOLUME_NAME,99,74,97,12,ES_AUTOHSCROLL | WS_DISABLED
!     PUSHBUTTON      "<< &Avanzado ",IDC_ADVANCED,7,99,50,14
!     GROUPBOX        "",IDC_STATIC,7,25,284,67
!     LTEXT           "&Nombre de volumen:",IDC_VOLUME_NAME_LABEL,27,75,67,8,
!                     WS_DISABLED
!     GROUPBOX        "Opciones de recuperacin avanzadas",IDC_ADVANCED_FRAME,
!                     7,120,284,62
!     LTEXT           "Va de acceso para archivos &temporales:",
!                     IDC_TEMP_DIR_LABEL,17,165,129,8
!     EDITTEXT        IDC_LOG_FILE,151,147,133,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,227,130,21,12,ES_AUTOHSCROLL
!     LTEXT           "No&mbre del archivo para registro de resultados:",
!                     IDC_LOG_FILE_LABEL,17,144,129,17
!     EDITTEXT        IDC_TEMP_DIR,151,163,133,12,ES_AUTOHSCROLL
!     CONTROL         "Opera&ciones de recuperacin paralelas; nmero de procesos:",
!                     IDC_NUM_PROCESSES_CHECKBOX,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,17,132,208,10
!     LTEXT           "Si recupera el servidor o toda una particin, se llevar el servidor a fuera de lnea de modo temporal.",
!                     IDC_STATIC,35,7,256,17
!     LTEXT           "NOTA:",IDC_STATIC,7,7,23,8
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,180,243,8,NOT WS_VISIBLE
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Contrasea de Principal de AFS"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_PW,48,39,142,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "Aceptar",IDOK,31,61,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "Ayuda",9,140,61,50,14
!     LTEXT           "La clave de principal de AFS no puede recuperarse de un Servidor de autentificacin anterior a 3.5. Por favor, entre la contrasea de principal de AFS a continuacin.",
!                     IDC_STATIC,7,7,183,26
!     LTEXT           "Contrasea:",IDC_STATIC,7,41,38,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "Recuperar volmenes - Resultados"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "&Cerrar",IDC_CLOSE,225,266,50,14,WS_DISABLED
!     PUSHBUTTON      "Ayuda",9,280,266,50,14
!     LTEXT           "<Definido al ejecutar>",IDC_LOG_TITLE,7,38,263,8
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "<Definido al ejecutar>",IDC_SALVAGE_STATUS,37,15,185,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 313
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 239
!         HORZGUIDE, 207
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 209
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 83
!     END
! 
!     IDD_BACKUP_SERVER_PAGE, DIALOG
!     BEGIN
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_SYS_CONTROL_PAGE, DIALOG
!     BEGIN
!         BOTTOMMARGIN, 219
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 201
!         BOTTOMMARGIN, 200
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         RIGHTMARGIN, 210
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 267
!         VERTGUIDE, 64
!         VERTGUIDE, 203
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 200
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         RIGHTMARGIN, 210
!         VERTGUIDE, 53
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 200
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 261
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_CREATE_PARTITION, DIALOG
!     BEGIN
!         BOTTOMMARGIN, 177
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 222
!         VERTGUIDE, 59
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 179
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 250
!         VERTGUIDE, 40
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 82
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 291
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 182
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""AFSｮ Configuration application and wizard""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "&Siguiente >"
!     IDS_FINISH              "&Finalizar"
!     IDS_HELP_TITLE          "Se ha pulsado el botn de ayuda"
!     IDS_HELP_DESC           "La ayuda no est disponible en este momento."
!     IDS_CANCEL_DESC         "ｿCancelar el Asistente de inicio r疳ido de AFS?"
!     IDS_PARTITION_ALREADY_CREATED 
!                             "Ya existe una particin de AFS en esta m痃uina."
!     IDS_NOT_A_FS_SERVER     "Esta m痃uina no est configurada como Servidor de archivos. Los volmenes slo pueden crearse en m痃uinas de Servidor de archivos."
!     IDS_ROOT_AFS_ALREADY_EXISTS "Los volmenes de raz ya existen."
!     IDS_NO_PARTITION_EXISTS "No hay particiones en las que crear los volmenes de raz. Debe haber una particin en la que crear los volmenes de raz. "
!     IDS_ALREADY_REPLICATED  "Los volmenes de raz ya est疣 duplicados."
!     IDS_ROOT_AFS_DOESNT_EXIST 
!                             "Los volmenes de raz no existen. Los volmenes de raz deben existir para poder duplicarse."
!     IDS_ALREADY_CONFIGURED  "Esta m痃uina ya est configurada como Servidor de AFS."
!     IDS_NOTHING_TO_CONFIGURE "No ha elegido nada para configurarlo."
!     IDS_EXIT                "Salir"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "Iniciar el Servicio de archivos"
!     IDS_CANCEL_CONFIG_MSG   "La cancelacin en este punto dejar el sistema parcialmente configurado como servidor de AFS. ｿSe ha de cancelar de todos modos?"
!     IDS_WIZARD_APP_TITLE    "Asistente de inicio r疳ido de AFSｮ Server"
!     IDS_CANCEL_PENDING      "*** Cancelacin pendiente - un momento, por favor... ***"
!     IDS_CHECK_FS_CONFIG     "Comprobacin del servidor de archivos..."
!     IDS_CHECK_DB_CONFIG     "Comprobacin del servidor de base de datos..."
!     IDS_CHECK_BAK_CONFIG    "Comprobacin del servidor de copia de seguridad..."
!     IDS_CHECK_PARTITION     "Comprobacin de la particin de AFS..."
!     IDS_CHECK_ROOT_AFS      "Comprobacin de volmenes de raz..."
!     IDS_CHECK_REP           "Comprobacin de duplicacin de volmenes de raz..."
!     IDS_CANCEL_GET_CONFIG   "Cancelando...Un momento por favor..."
!     IDS_ALREADY_A_BACKUP_SERVER 
!                             "Esta m痃uina ya est configurada como Servidor de copia de seguridad."
!     IDS_NOT_A_DB_SERVER     "Esta m痃uina no est configurada como Servidor de base de datos. El Servidor de copia de seguridad slo puede ejecutarse en m痃uinas del Servidor de base de datos."
!     IDS_ALREADY_A_SYS_CONTROL_SERVER 
!                             "Esta m痃uina ya est configurada como Servidor de control del sistema."
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT 
!                             "Esta m痃uina ya est configurada como Cliente de control del sistema."
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "Esta m痃uina no est configurada como Servidor de archivos o de Base de datos. Un sistema slo puede configurarse como m痃uina de Control del sistema si tambi駭 est configurado como m痃uina de Servidor de archivos o de Base de datos."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "Volumen"
!     IDS_NAME_OR_ERROR       "Nombre (o Mensaje de error)"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "Esta m痃uina no est configurada como Servidor de archivos o de Base de datos. Un sistema slo puede configurarse como m痃uina de Distribucin binaria si tambi駭 est configurado como m痃uina de Servidor de archivos o de Base de datos."
!     IDS_CHECK_SCS           "Comprobacin de Servidor de control del sistema..."
!     IDS_CHECK_SCC           "Comprobacin de Cliente de control del sistema..."
!     IDS_SIZE                "Tamao"
!     IDS_ERROR_SEP           ",    "
!     IDS_MUST_CONFIG_FS      "El Servicio de archivos se configurar por omisin ya que 駸te es el primer AFS Server de la c駘ula."
!     IDS_MUST_CONFIG_DB      "El Servicio de base de datos se configurar por omisin ya que 駸te es el primer AFS Server de la c駘ula."
!     IDS_MUST_MAKE_PARTITION "Debe crearse una particin ya que 駸te es el primer AFS Server de la c駘ula."
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "Los volmenes root.afs y root.cell se crear疣 por omisin ya que 駸te es el primer AFS Server de la c駘ula."
!     IDS_MUST_REPLICATE      "Los volmenes root.afs y root.cell se duplicar疣 por omisin ya que 駸te es el primer AFS Server de la c駘ula."
!     IDS_CHECK_AFS_CLIENT    "Comprobacin de instalacin de AFS Client..."
!     IDS_ERROR_HOST_NAME     "No se ha podido determinar el nombre de sistema principal de esta m痃uina."
!     IDS_ERROR_DRIVE_COMPRESSED "La unidad est comprimida"
!     IDS_ERROR_CFG_HOST_OPEN "No se ha podido inicializar la Biblioteca de configuracin del servidor."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "Detencin del AFS Client"
!     IDS_ERROR_LOCAL_HOST_NAME 
!                             "No se ha podido determinar el nombre de sistema principal local de esta m痃uina."
!     IDS_GET_TOKENS_ERROR    "No se han podido obtener seales. Compruebe que el nombre de usuario y contrasea entrados sean correctos."
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "No puede efectuarse la recuperacin ya que no se ha iniciado el servicio de archivos. Por favor, inicie el servicio de archivos y despu駸 vuelva a intentar la recuperacin."
!     IDS_SALVAGING           "Recuperacin en curso. Espere por favor..."
!     IDS_CURRENT_SALVAGE_LOG "Contenido actual del registro de recuperacin:"
!     IDS_FINAL_SALVAGE_LOG   "Contenido final del registro de recuperacin:"
!     IDS_SALVAGE_COMPLETE    "Ha finalizado la recuperacin."
!     IDS_CANT_GET_SALVAGE_LOG 
!                             "No se ha podido recuperar el registro de recuperacin."
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK 
!                             "No se ha podido guardar el registro de recuperacin en disco."
!     IDS_VALIDATION_ERROR_TEMPLATE 
!                             "El %1 especificado no es v疝ido. Por favor, entre el %2."
!     IDS_CELL_NAME_VALIDATION_TYPE "nombre de c駘ula"
!     IDS_SERVER_NAME_VALIDATION_TYPE "nombre de servidor"
!     IDS_PASSWORD_VALIDATION_TYPE "contrasea"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "nombre de usuario"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "No se ha instalado el AFS Client. El AFS Client debe estar instalado antes de que pueda configurarse el AFS Server."
!     IDS_ERROR_AFS_CLIENT_CHECK 
!                             "No se ha podido determinar si est instalado el AFS Client."
!     IDS_ERROR_FS_IS_NOT_NTFS "El sistema de archivos no es NTFS"
!     IDS_ERROR_DRIVE_HAS_DATA "La unidad contiene datos"
!     IDS_PARTITION_STEP_DESC "Crear la particin de AFS"
!     IDS_ERROR_DRIVE_CONTAINS_NT "La unidad contiene instalacin de NT"
!     IDS_DB_STEP_DESC        "Iniciar el Servicio de base de datos"
!     IDS_FS_STEP_DESC        "Iniciar el Servicio de archivos"
!     IDS_SCC_STEP_DESC       "Iniciar el Cliente de control del sistema"
!     IDS_SCS_STEP_DESC       "Iniciar el Servidor de control del sistema"
!     IDS_ROOT_AFS_STEP_DESC  "Crear los volmenes de raz"
!     IDS_REP_STEP_DESC       "Duplicar los volmenes de raz"
!     IDS_PARTITIONS_PAGE_TITLE "Particiones"
!     IDS_CONFIGURE           "&Configurar"
!     IDS_DB_AND_BK_STEP_DESC "Iniciar el Servicio de base de datos (incluye Servidor de copia de seguridad)"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "Creacin de la particin de AFS"
!     IDS_CONFIG_COMMON_FUNCS "Configuracin de las funciones comunes a todos los servicios"
!     IDS_START_DB_STEP       "Cmo iniciar el servicio de base de datos"
!     IDS_START_SCC_STEP      "Cmo iniciar el Servicio de control del sistema como Cliente de control del sistema"
!     IDS_START_SCS_STEP      "Cmo iniciar el Servicio de control del sistema como Servidor de control del sistema"
!     IDS_CREATE_ROOT_AFS_STEP "Creacin del volumen root.afs"
!     IDS_REP_STEP            "Duplicacin de los volmenes de raz"
!     IDS_START_AUTH_STEP     "Obtencin de seales para este servidor"
!     IDS_SERVICES_PAGE_TITLE "Servicios"
!     IDS_CONFIG_SUCCEEDED    "La configuracin ha resultado satisfactoria."
!     IDS_CONFIG_CANCELED     "La configuracin se ha cancelado."
!     IDS_CONFIG_FAILED       "La configuracin ha fallado.\r\n\r\nSe ha creado un archivo de registro detallado, %1, en la ubicacin %2."
!     IDS_ERROR_NO_LICENSE_NUM 
!                             "No se ha encontrado un nmero de licencia de AFS."
!     IDS_VERIFY_CLIENT_INSTALL_STEP 
!                             "Verificacin de la instalacin de AFS Client"
!     IDS_SET_SERVER_LICENSE_STEP "Definicin de la licencia para este servidor"
!     IDS_DEFINE_CELL_NAME_STEP "Definicin del nombre para esta c駘ula"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP 
!                             "Conversin de este servidor en miembro de la c駘ula"
!     IDS_START_BOS_SERVER_STEP "Iniciando el servidor BOS"
!     IDS_START_AUTH_SERVER_STEP "Iniciando el servidor de autentificacin"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP 
!                             "Creacin de un principal y una clave para este servidor"
!     IDS_START_DB_AND_BK_STEP 
!                             "Cmo iniciar el Servicio de base de datos (incluyendo Servidor de copia de seguridad)"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP 
!                             "Creacin del principal de admin de c駘ula"
!     IDS_START_CLIENT_STEP   "Iniciando el AFS Client"
!     IDS_SET_ROOT_ACL_STEP   "Definicin de la ACL en el volumen root.afs"
!     IDS_CREATE_ROOT_CELL_STEP "Creacin del volumen root.cell"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP 
!                             "Montaje del volumen root.cell utilizando un punto de montaje est疣dar."
!     IDS_SET_ROOT_CELL_ACL_STEP "Definicin de la ACL en el volumen root.cell"
!     IDS_MOUNT_ROOT_CELL_RW_STEP 
!                             "Montaje del volumen root.cell utilizando un punto de montaje de lectura/grabacin."
!     IDS_ENABLE_AUTH_CHECKING_STEP 
!                             "Habilitacin de la comprobacin de autentificacin"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "Obtencin de las seales administrativas"
!     IDS_RESTART_SERVERS_STEP 
!                             "Reinicio de todos los servidores de esta m痃uina como servidores autentificados"
!     IDS_ALREADY_A_FS_SERVER "Esta m痃uina ya est configurada como Servidor de archivos."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "Esta m痃uina ya est configurada como Servidor de base de datos."
!     IDS_INTRO_PAGE          "Introduccin"
!     IDS_INFO_PAGE           "Informacin de c駘ula y servidor"
!     IDS_FS_PAGE             "Servicio de archivos"
!     IDS_DB_PAGE             "Servicio de base de datos"
!     IDS_CFG_TOOL_APP_TITLE  "Configuracin de AFSｮ Server"
!     IDS_BK_PAGE             "Servidor de copia de seguridad"
!     IDS_ROOT_AFS_PAGE       "Volmenes de AFS de raz"
!     IDS_NAME                "Nombre"
!     IDS_REP_PAGE            "Duplicacin"
!     IDS_SC_PAGE             "Servicio de control del sistema"
!     IDS_CONFIG_PAGE         "Configurar el sistema"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "Particin de AFS"
!     IDS_GRAPHIC_FONT        "Times New Roman, 12, B"
!     IDS_CURRENT_STEP        "Paso actual:"
!     IDS_ADD_TO_CELLSERVDB_STEP "Cmo aadir este servidor a CellServDB"
!     IDS_RESTART_ALL_DB_SERVERS_STEP 
!                             "Reinicio de todos los servidores de base de datos de la c駘ula"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "La configuracin ha resultado satisfactoria.  NOTA:  El archivo CellServDB de todos los clientes de AFS de la c駘ula debe actualizarse. Asegrese de facilitar al Soporte de producto de AFS una lista actualizada de los Servidores de base de datos si pone la c駘ula a disposicin de otros sitios. "
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG 
!                             "ｿDesea configurar esta m痃uina como Servidor de control del sistema?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG 
!                             "N&o configurar como Servidor de control del sistema."
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "La configuracin de AFS Server requiere que el AFS Client se configure en la misma c駘ula que el Servidor. Esto se efectuar de modo autom疸ico."
!     IDS_INFO_PAGE2          "Informacin administrativa"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "La configuracin ha resultado satisfactoria.\r\n\r\nNOTA:  Asegrese de facilitar al Soporte de producto de AFS una lista actualizada de los Servidores de base de datos si pone la c駘ula a disposicin de otros sitios."
!     IDS_CONFIG_SCS          "Configurar como Servidor de control del sistema de la c駘ula."
!     IDS_CONFIG_INTO_CELL_MSG "Configurar este sistema principal en la c駘ula "
!     IDS_VIEW_LOG            "&Ver registro"
!     IDS_VIEW_LOG_ERROR      "No puede verse el archivo de registro"
!     IDS_ERROR_NO_LOG_FILE   "El archivo de registro no existe."
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED 
!                             "CellServDB actualizado en el sistema principal "
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED 
!                             "No ha podido actualizarse CellServDB en el sistema principal "
!     IDS_CELL_NAME_LEN_ERROR "El nombre de c駘ula entrado es demasiado largo. Los nombres de c駘ula no pueden superar los 64 caracteres."
!     IDS_CONFIG_CHECK_FAILED "No se ha podido determinar la configuracin actual de esta m痃uina."
!     IDS_YES                 "S"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "No"
!     IDS_FREE                "Espacio libre"
!     IDS_TOTAL               "Tamao total"
!     IDS_DRIVE2              "Unidad"
!     IDS_SERVICE_STATUS      "Estado"
!     IDS_SERVICE             "Servicio"
!     IDS_FS_RUNNING          "El Servicio de archivos se est ejecutando en la actualidad."
!     IDS_FS_STOPPED          "El Servicio de archivos no se est ejecutando en la actualidad."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "El Servicio de base de datos se est ejecutando en la actualidad."
!     IDS_DB_STOPPED          "El Servicio de base de datos no se est ejecutando en la actualidad."
!     IDS_BK_RUNNING          "El Servicio de copia de seguridad se est ejecutando en la actualidad."
!     IDS_BK_STOPPED          "El Servicio de copia de seguridad no se est ejecutando en la actualidad."
!     IDS_SCS_STOPPED         "El Servidor de control del sistema no se est ejecutando en la actualidad."
!     IDS_SCC_STOPPED         "El Cliente de control del sistema no se est ejecutando en la actualidad."
!     IDS_FS_HOW_TO_RUN       "Para iniciar el Servicio de archivos, seleccione el recuadro anterior."
!     IDS_FS_HOW_TO_STOP      "Para detener el Servicio de archivos, deseleccione el recuadro anterior."
!     IDS_DB_HOW_TO_RUN       "Para iniciar el Servicio de base de datos, seleccione el recuadro anterior."
!     IDS_DB_HOW_TO_STOP      "Para detener el Servicio de base de datos, deseleccione el recuadro anterior."
!     IDS_BK_HOW_TO_RUN       "Para iniciar el Servicio de copia de seguridad, seleccione el recuadro anterior."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "Para detener el Servicio de copia de seguridad, deseleccione el recuadro anterior."
!     IDS_SCS_HOW_TO_RUN      "Para iniciar el Servidor de control del sistema, seleccione el recuadro anterior."
!     IDS_SCS_HOW_TO_STOP     "Para detener el Servidor de control del sistema, deseleccione el recuadro anterior."
!     IDS_DB_PARTIAL_CONFIG   "El Servicio de base de datos est parcialmente configurado."
!     IDS_DB_DETAILS          "Pulse en el botn Detalles para obtener m疽 informacin."
!     IDS_BK_DISABLED         "El Servicio de copia de seguridad est inhabilitado."
!     IDS_BK_ENABLE           "Para habilitar el Servicio de copia de seguridad, debe ejecutar el Servicio de base de datos."
!     IDS_SC_DISABLED         "Este servidor est inhabilitado."
!     IDS_SC_ENABLE           "Para habilitar este servidor, debe ejecutar el Servicio de archivos o el Servicio de base de datos."
!     IDS_FS_WILL_RUN         "Se iniciar el Servicio de archivos."
!     IDS_FS_WILL_STOP        "Se detendr el Servicio de archivos."
!     IDS_DB_WILL_RUN         "Se iniciar el Servicio de base de datos."
!     IDS_DB_WILL_STOP        "Se detendr el Servicio de base de datos."
!     IDS_BK_WILL_RUN         "Se iniciar el Servicio de copia de seguridad."
!     IDS_BK_WILL_STOP        "Se detendr el Servicio de copia de seguridad."
!     IDS_SCS_WILL_RUN        "Se iniciar el Servidor de control del sistema."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "Se detendr el Servidor de control del sistema."
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "La unidad ya es una particin de AFS"
!     IDS_VOLUME_HAS_NO_NAME  "<El volumen no tiene nombre>"
!     IDS_PARTITION_CREATED   "Se ha creado satisfactoriamente una nueva Particin de AFS."
!     IDS_PARTITION_EXISTS    "El nombre de particin entrado ya lo est utilizando otra particin."
!     IDS_SCS_RUNNING         "El Servidor de control del sistema se est ejecutando en la actualidad."
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN 
!                             "Esta unidad slo contiene la Papelera de reciclaje."
!     IDS_SCC_WILL_RUN        "Se iniciar el Cliente de control del sistema."
!     IDS_SCC_WILL_STOP       "Se detendr el Cliente de control del sistema."
!     IDS_SCC_RUNNING         "El Cliente de control del sistema se est ejecutando en la actualidad."
!     IDS_SCC_HOW_TO_RUN      "Para iniciar el Cliente de control del sistema, seleccione el recuadro anterior."
!     IDS_SCC_HOW_TO_STOP     "Para detener el Cliente de control del sistema, deseleccione el recuadro anterior."
!     IDS_SCS_ENABLE          "Para habilitar este servidor, debe detener la ejecucin del Cliente de control del sistema."
!     IDS_SCC_ENABLE          "Para habilitar este servidor, debe detener la ejecucin del Servidor de control del sistema."
!     IDS_UNCONFIG_DB_STEP    "Desconfiguracin del Servicio de base de datos"
!     IDS_UNCONFIG_DB_STEP_DESC "Desconfigurar el Servicio de base de datos"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP 
!                             "Desconfiguracin del Servicio de base de datos (y del Servidor de copia de seguridad)"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC 
!                             "Desconfigurar el Servicio de base de datos (y el Servidor de copia de seguridad)"
!     IDS_UNCONFIG_BK_STEP    "Desconfiguracin del Servidor de copia de seguridad"
!     IDS_UNCONFIG_BK_STEP_DESC 
!                             "Desconfigurar el Servidor de copia de seguridad"
!     IDS_UNCONFIG_FS_STEP    "Desconfiguracin del Servicio de archivos"
!     IDS_UNCONFIG_FS_STEP_DESC "Desconfigurar el Servicio de archivos"
!     IDS_UNCONFIG_SCS_STEP   "Desconfiguracin del Servidor de control del sistema"
!     IDS_UNCONFIG_SCS_STEP_DESC 
!                             "Desconfigurar el Servidor de control del sistema"
!     IDS_UNCONFIG_SCC_STEP   "Desconfiguracin del Cliente de control del sistema"
!     IDS_UNCONFIG_SCC_STEP_DESC 
!                             "Desconfigurar el Cliente de control del sistema"
!     IDS_INVALIDATE_CONFIG_INFO_STEP 
!                             "Invalidacin de la informacin de configuracin de esta m痃uina"
!     IDS_CLOSE               "&Cerrar"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "El archivo CellServDB no ha podido actualizarse en los servidores de AFS que hay a continuacin. Este error no es grave.\r\n"
!     IDS_DELETE_PARTITION_PROMPT "ｿDesea realmente suprimir la particin '%1'?"
!     IDS_INVALIDATE_CFG_INFO "En este momento no hay procesos de AFS ejecut疣dose en este sistema. ｿDesea eliminar la informacin de configuracin desde esta m痃uina?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "La c駘ula ya no existe. La aplicacin de Configuracin de AFS slo puede utilizarse para configurar m痃uinas de servidor ya configuradas en una c駘ula de AFS. El Asistente de configuracin de AFS puede utilizarse para iniciar una nueva c駘ula."
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "La aplicacin de Configuracin de AFS debe finalizar en este momento. Slo puede ejecutarse en m痃uinas ya configuradas en servidores de AFS. Para configurar de nuevo esta m痃uina como servidor de AFS, ejecute el Asistente de configuracin de AFS. "
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "Esta m痃uina ya no est configurada como AFS Server. La aplicacin de Configuracin de AFS slo puede utilizarse para configurar m痃uinas de AFS Server. El Asistente de configuracin de AFS puede utilizarse para volver a configurar esta m痃uina como AFS Server. "
!     IDS_GET_TOKENS_FAILED   "No se han podido obtener seales para la c駘ula especificada."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "Iniciando el servidor de Copia de seguridad"
!     IDS_BK_STEP_DESC        "Iniciar el servidor de Copia de seguridad"
!     IDS_CONFIG_ERROR        "Se ha producido un error de configuracin"
!     IDS_CREATE_PARTITION_ERROR "No se ha podido crear la particin"
!     IDS_REMOVE_PARTITION_ERROR "No se ha podido eliminar la particin"
!     IDS_READ_PARTITIONS_ERROR "No se ha podido leer la tabla de particin"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\nEl proceso de actualizacin de CellServDB ha finalizado prematuramente. No se han podido actualizar todos los servidores."
!     IDS_GET_PARTITION_LIST_ERROR 
!                             "No se ha podido determinar que la particin est en este servidor"
!     IDS_EXPORTED            "Exportada"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "Las particiones exportadas no pueden eliminarse mientras se est ejecutando el Servicio de archivos. Debe detener el Servicio de archivos antes de eliminar esta particin."
!     IDS_CHECK_CONFIG_INFO   "Comprobando la informacin de configuracin v疝ida..."
!     IDS_ERROR_CFG_HOST_CLOSE 
!                             "No se ha podido cerrar la Biblioteca de configuracin del servidor"
!     IDS_FAILED_OPEN_CELL    "No se ha podido abrir la c駘ula."
!     IDS_FAILED_OPEN_NULL_CELL 
!                             "No se ha podido abrir un controlador de c駘ula NULL"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "Si no existen los volmenes de raz, ｿdesea crearlos?"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "Si los volmenes de raz no est疣 duplicados, ｿdesea duplicarlos?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS Server"
!     IDS_CANT_INIT_ADMIN_LIBS 
!                             "No puede ejecutar esta aplicacin: ha fallado la inicializacin de la biblioteca."
!     IDS_CANT_OPEN_LOG_FILE  "No ha podido abrirse el archivo de registro."
!     IDS_NEED_CLIENT_INFO    "La aplicacin de Configuracin de AFS no puede ejecutarse debido a que AFS Client no est configurado en este sistema. El asistente de configuracin de AFS puede utilizarse en esta situacin. ｿHa de ejecutarse el Asistente de configuracin de AFS?"
!     IDS_NEED_SERVER_INFO    "Este sistema no est configurado como AFS Server. El Asistente de configuracin de AFS debe utilizarse para configurar inicialmente un AFS Server. Por tanto, puede utilizarse la aplicacin Configuracin de AFS. ｿHa de ejecutarse el Asistente de configuracin de AFS para configurar inicialmente este sistema? "
!     IDS_ADVANCED_OPEN       "<< &Avanzado"
!     IDS_ADVANCED_CLOSED     "&Avanzado >>"
!     IDS_BOS_OPEN_FAILED     "No se ha podido conectar con el servidor (ha fallado la apertura de bos)."
!     IDS_SALVAGE_ERROR       "Ha fallado la operacin de recuperacin."
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "El nmero especificado de procesos de recuperacin no es v疝ido. El nmero de procesos de recuperacin debe estar entre 1 y 32. "
!     IDS_WRONG_CELL          "En un paso anterior ha especificado un servidor desde el que debera recuperarse la informacin de configuracin. ｡El servidor especificado no pertenece a la c駘ula que desea unir!"
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "No se ha podido actualizar el archivo CellServDB en algunos servidores de la c駘ula. Para obtener una lista de los servidores que se han actualizado y de los que no se han actualizado, vea el registro de configuracin almacenado en el archivo"
!     IDS_GET_CREDENTIALS_STEP "Obtencin de seales administrativas"
!     IDS_MUST_ENTER_SCS_NAME "Debe entrarse un nombre de M痃uina de control del sistema antes de que pueda comenzar la configuracin."
!     IDS_NOT_SAME_CELL       "El AFS Client est configurado en una c駘ula diferente de la de AFS Server. Antes de configurar el AFS Server, en primer lugar debe volver a configurar el AFS Client en la c駘ula del Servidor."
!     IDS_LAST_DB_SERVER      "Esta m痃uina est ejecutando el ltimo servidor de base de datos de la c駘ula. Si contina y desconfigura el servicio de base de datos en esta m痃uina, la c駘ula ya no existir y se desconfigurar疣 todos los dem疽 servicios de AFS que se ejecutan en la m痃uina. ｿDesea continuar de todos modos?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "La contrasea del principal de AFS no es v疝ida."
!     IDS_ERROR_CLIENT_VERSION 
!                             "La versin del AFS Client de este sistema no es compatible con el AFS Server. El AFS Server requiere como mnimo la versin 3.5 del AFS Client."
!     IDS_CANT_MAP_ROOT_AFS   "Para definir las ACL en los volmenes de raz, debe correlacionarse una letra de unidad en AFS. En la actualidad no hay letras de unidad disponibles. Por favor, libere una letra de unidad y despu駸 pulse en Aceptar. "
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "nombre de particin"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "nombre de volumen"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE "nmero de procesos de recuperacin"
!     IDS_PATH_NAME_VALIDATION_TYPE "nombre de va de acceso"
!     IDS_FILE_NAME_VALIDATION_TYPE "nombre de archivo"
!     IDS_GENERIC_VALIDATION_TYPE "valor"
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
Index: openafs/src/WINNT/afssvrcfg/lang/ja_JP/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/ja_JP/afscfg.rc:1.3 openafs/src/WINNT/afssvrcfg/lang/ja_JP/afscfg.rc:1.3.2.1
*** openafs/src/WINNT/afssvrcfg/lang/ja_JP/afscfg.rc:1.3	Thu Jun 19 15:00:55 2003
--- openafs/src/WINNT/afssvrcfg/lang/ja_JP/afscfg.rc	Fri Mar 11 01:59:09 2005
***************
*** 7,1212 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS(R) 構成アプリケーションおよびウィザード"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x411
  #define AFS_VERINFO_CHARSET 932
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // Japanese resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
! #ifdef _WIN32
! LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 325, 247
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "AFS(R) サーバー・クィック・スタート・ウィザード"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     PUSHBUTTON      "取消し(&L)",IDCANCEL,106,226,50,14
!     PUSHBUTTON      "< 戻る(&B)",IDBACK,161,226,50,14
!     DEFPUSHBUTTON   "次へ(&N) >",IDNEXT,216,226,50,14
!     PUSHBUTTON      "ヘルプ(&H)",9,271,226,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,11,219,311,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,104,7,216,207
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "はい、パーティションを作成します。(&Y)",
!                     IDC_CREATE_PARTITION,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,2,88,162,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,3,116,210,
!                     49,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,155,180,20,12,ES_AUTOHSCROLL
!     CONTROL         "いいえ、パーティションを作成しません。(&O)",
!                     IDC_DONT_CREATE_PARTITION,"Button",BS_AUTORADIOBUTTON,3,
!                     195,138,8
!     LTEXT           "このファイル・サーバーはファイルとプログラムを AFS クライアントに保管および引き渡します。このシステムに保管されたデータを AFS を通じて共用するには、少なくとも 1 つの NTFS ボリュームが AFS パーティション専用にされている必要があります。",
!                     -1,1,12,212,31
!     LTEXT           "パーティション用に使用するボリュームを選択してください(&S):",
!                     IDC_SELECT_DRIVE,2,102,211,9
!     LTEXT           "AFS パーティション名(&M):  /vicep",IDC_NAME_LABEL,14,
!                     182,123,8
!     LTEXT           "このファイル・サーバーに AFS パーティションを作成します。",
!                     IDC_TITLE,3,0,210,8
!     LTEXT           "AFS パーティションは物理的に NTFS ボリュームと同等ですが、これにはパーティションに関する情報の構造と位置について特殊化されたメタデータも入っています。",
!                     -1,0,48,213,24
!     LTEXT           "このファイル・サーバーにパーティションを作成しますか?",
!                     IDC_ASK_CREATE_PARTITION,1,76,213,8
!     LTEXT           "メッセージは必要なら実行時に設定されます。",
!                     IDC_PARTITION_MSG,3,170,208,34,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,208,86,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "はい、構成します(&Y)。",IDC_SHOULD_CONFIG_FILE_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,3,173,98,10
!     CONTROL         "いいえ、構成しません(&O)。",IDC_DONT_CONFIG_FILE_SERVER,
!                     "Button",BS_AUTORADIOBUTTON,3,187,114,10
!     LTEXT           "AFS ファイル・サービスは要求されたファイルやプログラムをこのサーバーから AFS クライアントに引き渡します。このサービスはまた、ボリュームの作成、削除、移動、複製のようなボリューム管理操作のすべてを扱います。",
!                     -1,0,36,209,34
!     LTEXT           "このマシンをファイル・サーバーとして構成します。",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "このマシンをファイル・サーバーとして構成しますか?",
!                     IDC_CREATE_FS_QUESTION,2,158,197,8
!     LTEXT           "このマシンをファイル・サーバーとして構成するには、ファイル・サービスを構成する必要があります。",
!                     -1,0,13,209,17
!     LTEXT           "注: このマシンは現在 AFS にファイルを保管するために使用可能なディスク・ドライブを持っていません。このマシンをファイル・サーバーとして構成することはできますが、AFSデータをこのマシンに保管することはできません。",
!                     IDC_NO_DRIVES_NOTE,0,77,209,34,NOT WS_VISIBLE
!     LTEXT           "ディスク・ドライブを作成するには、Windows NT ディスク・アドミニストレータを使用してください。",
!                     IDC_DISK_ADMIN_NOTE,0,119,209,16,NOT WS_VISIBLE
!     LTEXT           "このマシンはすでにファイル・サーバーとして構成されています。",
!                     IDC_MSG,0,144,206,56,NOT WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "AFS サーバーのクィック・スタート・ウィザードにようこそ。このウィザードは、この Windows NT システムでの AFS サーバーの構成を援助します。",
!                     IDC_TITLE,0,0,209,26
!     LTEXT           "AFS サーバー構成の開始には「次へ」を押してください。",
!                     IDC_STATIC,0,166,206,8
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "はい(&Y)、ルート・ボリュームを複製します。",
!                     IDC_REPLICATE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,3,
!                     168,178,10
!     CONTROL         "いいえ(&O)、ルート・ボリュームを複製しません。",
!                     IDC_DONT_REPLICATE,"Button",BS_AUTORADIOBUTTON,3,185,178,
!                     10
!     LTEXT           "複製は、通常は他のファイル・サーバーにある、複数のパーティション内のボリュームの読み取り専用コピーを作成するプロセスです。複製によって、ボリュームを入れるサーバーの１つが使用不可になった場合でも、",
!                     IDC_STATIC,0,41,213,26
!     LTEXT           "ルート・ボリュームを複製しますか?",
!                     IDC_REPLICATE_QUESTION,2,151,205,10
!     LTEXT           "複製はまた、頻繁にアクセスされるボリュームの要求でサーバーが過負荷になるのを防ぐことを可能にします。",
!                     IDC_STATIC,0,99,213,18
!     LTEXT           "セルのルート・ボリュームを複製します。",IDC_TITLE,2,0,
!                     209,8
!     LTEXT           "この AFS セル内で他のボリュームを複製する場合は、まずルート・ボリュームを複製してください。",
!                     IDC_STATIC,0,16,213,16
!     LTEXT           "そのボリュームは他のサーバーからアクセスできるので、ネットワークやサーバーの停止が起こったときのボリュームの使用可能性が増します。",
!                     IDC_STATIC,0,73,213,18
!     LTEXT           "メッセージは必要なら実行時に設定されます。",
!                     IDC_CANT_REPLICATE_MSG,0,128,206,72,NOT WS_VISIBLE | NOT 
!                     WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "はい(&Y)、ルート・ボリュームを作成します。",
!                     IDC_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,3,165,178,10
!     CONTROL         "いいえ(&O)、ルート・ボリュームを作成しません。",
!                     IDC_DONT_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON,
!                     3,184,178,10
!     LTEXT           "AFS でボリュームとは、システム管理を効率的に行うために、管理の容易な 1つの単位に編成される関連ファイルの集まりです。",
!                     IDC_STATIC,2,14,210,20
!     LTEXT           "ルート・ボリュームを作成しますか?",
!                     IDC_ROOT_AFS_QUESTION,3,141,201,12
!     LTEXT           "セルのルート・ボリュームを作成します。",IDC_TITLE,2,0,
!                     153,8
!     LTEXT           "作成後、ルート・ボリュームは自動的に AFS ファイル・スペースでアクセス可能になります。",
!                     IDC_STATIC,2,73,210,17
!     LTEXT           "メッセージは必要なら実行時に設定されます。",
!                     IDC_ROOT_AFS_MSG,2,116,211,80,NOT WS_VISIBLE
!     LTEXT           "root.afs ボリュームは AFS ファイル・スペースのルートです。root.cell ボリュームは AFS ファイル・スペースのこのセルのサブツリーのルートで、root.afs からマウント・ポイントを通じてアクセスされます。",
!                     IDC_STATIC,2,40,209,27
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 84
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "AFS(R) サーバーの構成"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,38,148,14
!     LTEXT           "操作テキスト - 実行時に設定されます。",IDC_OPERATION,35,
!                     20,145,10
!     ICON            "",IDC_LOGO,7,7,20,21
!     PUSHBUTTON      "取消し",IDCANCEL,73,63,50,14
!     LTEXT           "現行構成を判別中:",IDC_OPERATION2,35,7,156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "はい、バックアップ・サーバーとして構成します(&Y)。",
!                     IDC_CONFIG_BACKUP_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,172,210,10
!     CONTROL         "いいえ、バックアップ・サーバーとして構成しません(&O)。",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,0,187,210,10
!     LTEXT           "バックアップ・サーバーはデータベース・サーバーとして構成されたマシンでのみ実行可能です。また、バックアップ・サーバーがセル内の 1 つのデータベース・サーバーで実行されている場合は、そのセルのすべてのデータベース・サーバーで実行する必要があります。",
!                     -1,0,37,210,41
!     LTEXT           "このマシンをバックアップ・サーバーとして構成しますか?",
!                     IDC_BACKUP_SERVER_QUESTION,0,157,210,10
!     LTEXT           "このマシンをバックアップ・サーバーとして構成します。",
!                     IDC_TITLE,0,0,210,8
!     LTEXT           "バックアップ・サーバーはデータベース・サービスのオプション機能です。",
!                     -1,0,15,210,16
!     LTEXT           "このマシンはすでにデータベース・サーバーとして構成されています。",
!                     IDC_CANT_BACKUP_MSG,0,142,210,57,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 216, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "システム制御サーバーとして構成します(&S)。",
!                     IDC_SYS_CONTROL_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,2,142,178,10
!     CONTROL         "システム制御クライアントとして構成します(&C)。",
!                     IDC_SYS_CONTROL_CLIENT,"Button",BS_AUTORADIOBUTTON,2,156,
!                     160,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,100,169,108,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "システム制御クライアントまたはサーバーとして構成しません(&O)。",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON,2,187,201,
!                     9
!     LTEXT           "システム制御サーバーは、システム制御クライアントとして実行されている他の AFS サーバー・マシンに、共通構成ファイルを提供します。AFS セルはシステム制御サーバーを 1つだけ実行していることが必要です。",
!                     -1,3,17,208,33
!     LTEXT           "システム制御サーバーまたはクライアントとして構成します。",
!                     IDC_TITLE,4,4,208,8
!     LTEXT           "このマシンをシステム制御サーバーまたはクライアントとして構成しますか?",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,3,118,208,17
!     LTEXT           "システム制御クライアントは、セルのシステム制御サーバーからその AFS 構成ファイルに対する有効な更新をすべて受け取ります。",
!                     IDC_SYS_CONTROL_CLIENT_DESC,3,55,208,18
!     LTEXT           "システム制御サーバー(&Y):",
!                     IDC_SYS_CONTROL_MACHINE_LABEL,7,170,81,8,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,2,116,210,84,NOT WS_VISIBLE
!     LTEXT           "警告: AFS(R) の米国の配布を使用していないサイトは、システム制御サーバーを介して構成ファイルを配布すべきではありません。配布すると、機密のシステム情報が暗号化されずに伝送されます。",
!                     -1,9,78,193,33
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "このシステムでの AFS サーバーの構成に必要な情報はこれで全部です。",
!                     IDC_ALL_NEEDED_MSG,1,11,212,16
!     LTEXT           "このマシンをセル <set at runtime> へ構成してください。",
!                     IDC_TITLE,1,0,211,8
!     LTEXT           "以下の構成ステップが実行されます:",
!                     IDC_FOLLOWING_STEPS_MSG,1,33,130,8
!     LTEXT           "ステップ 1 - テキストは実行時に設定されます",IDC_STEP1,
!                     22,47,187,8,NOT WS_VISIBLE
!     LTEXT           "ステップ 3 - テキストは実行時に設定されます",IDC_STEP3,
!                     22,71,187,8,NOT WS_VISIBLE
!     LTEXT           "ステップ 2 - テキストは実行時に設定されます",IDC_STEP2,
!                     22,59,187,8,NOT WS_VISIBLE
!     LTEXT           "ステップ 4 - テキストは実行時に設定されます",IDC_STEP4,
!                     22,83,187,8,NOT WS_VISIBLE
!     LTEXT           "ステップ 5 - テキストは実行時に設定されます",IDC_STEP5,
!                     22,95,187,8,NOT WS_VISIBLE
!     LTEXT           "ステップ 6 - テキストは実行時に設定されます",IDC_STEP6,
!                     22,107,187,8,NOT WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,183,211,10
!     LTEXT           "ステップ 8 - テキストは実行時に設定されます",IDC_STEP8,
!                     22,131,187,8,NOT WS_VISIBLE
!     LTEXT           "ステップ 7 - テキストは実行時に設定されます",IDC_STEP7,
!                     22,119,187,8,NOT WS_VISIBLE
!     LTEXT           "メッセージは必要なら実行時に設定されます。",
!                     IDC_CANT_CONFIG_MSG,1,13,209,17,NOT WS_VISIBLE
!     LTEXT           "完了率(%):",IDC_PERCENT_COMPLETE_LABEL,1,195,39,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "現行操作:",IDC_CURRENT_STEP_LABEL,1,143,31,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "現行ステップの記述 - 実行時に設定",IDC_CURRENT_STEP,3,
!                     168,209,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,63,195,51,8,NOT WS_VISIBLE
!     LTEXT           "このコンピューターの構成を開始するには、「構成」ボタンを押してください。実行する構成ステップを変更するには、「戻る」ボタンを押してください。",
!                     IDC_STATUS_MSG,1,158,212,44
!     LTEXT           "",IDC_STEP1_GRAPHIC,10,49,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,10,61,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,10,73,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,10,85,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,10,97,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,10,109,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,10,121,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,10,133,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,92,55,118,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,92,71,118,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,92,87,118,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,110,158,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,149,157,11,14
!     LTEXT           "管理情報",IDC_TITLE,0,0,210,8
!     LTEXT           "名前(&N):",IDC_ADMIN_NAME_LABEL,7,57,34,8
!     LTEXT           "パスワード(&P):",IDC_ADMIN_PW_LABEL,7,73,57,8
!     GROUPBOX        "アカウント名およびパスワード",IDC_ADMIN_INFO_FRAME,0,41,
!                     210,65
!     LTEXT           "パスワードの検査(&V):",IDC_VERIFY_ADMIN_PW_LABEL,7,90,
!                     68,8
!     LTEXT           "この新しいセルの管理アカウントの作成には以下の情報が必要です。",
!                     IDC_STATIC,0,15,206,17
!     CONTROL         "この AFS UID を使用(&S):",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,160,93,10
!     CONTROL         "次に使用可能な AFS UID を使用(&U)",IDC_USE_NEXT_UID,
!                     "Button",BS_AUTORADIOBUTTON,6,144,204,10
!     GROUPBOX        "AFS UID",IDC_STATIC,0,118,209,57
!     LTEXT           "AFS 管理アカウントのユーザー ID を入力してください:",
!                     IDC_STATIC,3,130,200,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "はい、データベース・サーバーとして構成します(&Y)。",
!                     IDC_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,2,117,204,10
!     CONTROL         "いいえ、データベース・サーバーとして構成しません(&O)。",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,2,
!                     188,204,10
!     LTEXT           "データベース・サービスは AFS セルが要求する複製データベースのセットを保守します。このサービスはセルのすべてのアカウント、ボリューム位置、および (オプションで) バックアップ情報を保守します。",
!                     -1,0,38,210,31
!     LTEXT           "このマシンをデータベース・サーバーとして構成しますか?",
!                     IDC_DB_SERVER_QUESTION,2,101,205,10
!     LTEXT           "このマシンをデータベース・サーバーとして構成します。",
!                     IDC_TITLE,0,0,210,8
!     LTEXT           "このマシンをデータベース・サーバーとして構成するには、データベース・サービスを構成する必要があります。",
!                     -1,0,15,210,16
!     LTEXT           "このマシンはすでにデータベース・サーバーとして構成されています。",
!                     IDC_MSG,1,157,206,10,NOT WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,91,171,113,12,ES_AUTOHSCROLL
!     LTEXT           "システム制御サーバー(&Y):",
!                     IDC_SYS_CONTROL_MACHINE_LABEL,4,173,80,8
!     LTEXT           "セルにシステム制御サーバーがある場合は、そのホスト名を下に入力してください。AFS 構成ファイルはこのサーバーを介して更新されます。",
!                     IDC_SCM_PROMPT,1,134,207,18
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "このホストを既存 AFS セルのサーバーにする(&M)",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON,0,37,
!                     189,10
!     CONTROL         "これを新規 AFS セルの最初のサーバーにする(&T)",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,0,49,188,10
!     EDITTEXT        IDC_CELL_NAME,64,93,145,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,90,166,119,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,90,180,119,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "セルおよびサーバー情報",IDC_TITLE,0,0,209,8
!     LTEXT           "セル名(&C):",IDC_CELL_NAME_LABEL,5,95,41,8
!     LTEXT           "パスワード(&P):",IDC_SERVER_PW_LABEL,7,167,57,8,
!                     WS_DISABLED
!     LTEXT           "AFS セルの名前を入力してください。",
!                     IDC_CELL_NAME_PROMPT,14,78,195,11
!     LTEXT           "AFS プリンシパルのパスワードを入力してください。すべての AFS サーバーがこのプリンシパルとしてトークンを取得します。",
!                     IDC_SERVER_PW_PROMPT,10,130,199,19,WS_DISABLED
!     GROUPBOX        "セル名",IDC_CELL_NAME_FRAME,0,66,210,44
!     GROUPBOX        "サーバー・パスワード",IDC_SERVER_PW_FRAME,0,117,210,83,
!                     WS_DISABLED
!     LTEXT           "パスワードの検査(&V):",IDC_VERIFY_PW_LABEL,7,180,69,8,
!                     WS_DISABLED
!     LTEXT           "AFS セルは、ファイル・アクセスのユニフォーム・ネーム・スペースを提供するサーバーの集まりです。",
!                     IDC_CELL_NAME_PROMPT2,7,14,202,17
!     LTEXT           "名前:",IDC_PRINCIPAL_LABEL,7,154,22,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,64,153,145,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,62,45,139,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,62,61,139,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,62,133,139,12,ES_AUTOHSCROLL
!     LTEXT           "管理情報",IDC_TITLE,0,0,209,8
!     LTEXT           "以下の管理アカウント情報を入力してください:",
!                     IDC_ADMIN_INFO_PROMPT,7,31,196,10
!     LTEXT           "名前(&N):",IDC_ADMIN_NAME_LABEL,7,49,34,8
!     LTEXT           "パスワード(&P):",IDC_ADMIN_PW_LABEL,7,65,46,8
!     GROUPBOX        "アカウント名およびパスワード",IDC_ADMIN_INFO_FRAME,0,17,
!                     210,62
!     GROUPBOX        "既存の AFS サーバー",IDC_HOSTNAME_FRAME,1,92,209,60
!     LTEXT           "AFS サーバー:",IDC_HOSTNAME_LABEL,5,136,46,8
!     LTEXT           "結合したいセル内の他の AFS サーバーのホスト名を入力してください。AFS構成情報はこのサーバーから取り出されます。",
!                     IDC_HOSTNAME_PROMPT,5,105,199,19
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 265
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "サービス"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,20,281,40
!     GROUPBOX        "",IDC_STATIC,7,66,281,43
!     GROUPBOX        "",IDC_STATIC,7,115,281,40
!     GROUPBOX        "",IDC_STATIC,7,161,281,40
!     CONTROL         "ファイル・サービス",IDC_FS_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,22,83,10
!     CONTROL         "データベース・サービス",IDC_DB_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,65,99,10
!     PUSHBUTTON      "詳細...",IDC_DB_DETAILS,225,91,50,14,NOT WS_VISIBLE
!     CONTROL         "バックアップ・サーバー",IDC_BK_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,114,99,10
!     CONTROL         "システム制御サーバー",IDC_SCS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,160,91,10
!     EDITTEXT        IDC_SC_MACHINE,137,226,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "この AFS サーバーで実行するサービスを選択してください:",
!                     IDC_STATIC,7,7,213,8
!     LTEXT           "ファイル・サービスは現在実行中です。",IDC_FS_STATUS_MSG,
!                     14,35,261,8
!     LTEXT           "データベース・サービスは現在一部がインストールされています。",
!                     IDC_DB_STATUS_MSG,14,78,241,8
!     LTEXT           "システム制御サーバー(&Y):",IDC_SC_MACHINE_LABEL,31,229,
!                     97,8,WS_DISABLED
!     LTEXT           "ファイル・サービスの停止には上のボックスをチェック解除してください。",
!                     IDC_FS_ACTION_MSG,14,47,268,8
!     LTEXT           "詳しくは「詳細」をクリックしてください。",
!                     IDC_DB_ACTION_MSG,14,92,186,8
!     LTEXT           "バックアップ・サーバーは現在実行中です。",
!                     IDC_BK_STATUS_MSG,14,127,259,8
!     LTEXT           "バックアップ・サービスの停止は上のボックスをチェック解除してください。",
!                     IDC_BK_ACTION_MSG,14,139,268,8
!     LTEXT           "このサーバーを使用可能にするには、ファイル・サービスまたはデータベース・サービスを実行する必要があります。",
!                     IDC_SCS_ACTION_MSG,14,183,268,16
!     LTEXT           "システム制御サービスは現在実行中ではありません。",
!                     IDC_SCS_STATUS_MSG,14,172,263,9
!     GROUPBOX        "",IDC_STATIC,7,207,281,51
!     CONTROL         "システム制御クライアント",IDC_SCC,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,206,107,10
!     LTEXT           "このサーバーを使用可能にするには、ファイル・サービスまたはデータベース・サービスを実行する必要があります。",
!                     IDC_SCC_ACTION_MSG,14,239,268,17
!     LTEXT           "システム制御サービスは現在実行中ではありません。",
!                     IDC_SCC_STATUS_MSG,14,216,263,9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "パーティション"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "以下の AFS パーティションがコンピューターに存在します(&A):",
!                     IDC_STATIC,8,7,227,8
!     PUSHBUTTON      "作成(&C)...",IDC_CREATE_PARTITIONS,17,118,66,14
!     LTEXT           "1 つのパーティションまたはパーティション上の 1 つのボリュームをサルベージするには、リストのパーティションを選択して上のボタンをクリックしてください。このサーバー上のすべてのパーティションをサルベージするには、上のボタンをクリックしてください。",
!                     IDC_SALVAGE_MSG,30,179,250,30
!     PUSHBUTTON      "サルベージ(&S)...",IDC_SALVAGE,17,159,66,14
!     LTEXT           "削除にはリストのパーティションを選択し上のボタンをクリック。",
!                     IDC_REMOVE_MSG,30,238,241,12,WS_DISABLED
!     PUSHBUTTON      "削除(&M)",IDC_REMOVE,17,217,66,14,WS_DISABLED
!     GROUPBOX        "パーティション",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,23,
!                     281,72,WS_EX_CLIENTEDGE
!     LTEXT           "このサーバーでの新規パーティション作成は、上のボタンをクリック。",
!                     IDC_CREATE_MSG,30,139,250,8
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 264, 177
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "AFS パーティションの作成"
! FONT 9, "ＭＳ Ｐゴシック", 0, 0, 0x1
! BEGIN
!     LTEXT           "新しいパーティションを作成する NTFS ボリュームをリストから選択:",
!                     IDC_TITLE,7,5,250,8
!     LTEXT           "AFS パーティション名:",IDC_NAME_STATIC,17,131,77,8
!     EDITTEXT        IDC_PARTITION_NAME,132,129,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "作成(&C)",IDC_CREATE,96,158,50,14,WS_DISABLED
!     PUSHBUTTON      "クローズ(&O)",IDC_CLOSE,152,158,53,14
!     PUSHBUTTON      "ヘルプ",9,210,158,40,14
!     GROUPBOX        "パーティション・パラメーター",IDC_ARGS_FRAME,7,117,250,
!                     33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,21,250,
!                     89,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,102,131,22,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 225, 159
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS(R) サーバーの構成"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,72,33,141,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,72,52,141,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,72,112,141,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "構成(&C)",IDOK,108,135,50,14,WS_DISABLED
!     PUSHBUTTON      "取消し",IDCANCEL,48,135,50,14
!     PUSHBUTTON      "ヘルプ",9,168,135,50,14
!     LTEXT           "以下の管理アカウント情報を入力してください:",
!                     IDC_ADMIN_INFO_PROMPT,21,20,196,10
!     LTEXT           "名前(&N):",IDC_ADMIN_NAME_LABEL,15,36,44,8
!     LTEXT           "パスワード(&P):",IDC_ADMIN_PW_LABEL,15,55,44,8
!     GROUPBOX        "アカウント名およびパスワード",IDC_ADMIN_INFO_FRAME,7,7,
!                     211,62
!     GROUPBOX        "システム制御サーバー",IDC_HOSTNAME_FRAME,7,76,211,54
!     LTEXT           "ホスト名(&H):",IDC_HOSTNAME_LABEL,15,115,44,8
!     LTEXT           "セルにシステム制御サーバーがある場合は、そのホスト名を下に入力してください。AFS 構成ファイルはこのサーバーを通じて更新されます。",
!                     IDC_HOSTNAME_PROMPT,10,87,205,22
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,150,225,9,NOT WS_VISIBLE
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 257, 87
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS(R) サーバーの構成"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     PUSHBUTTON      "取消し",IDCANCEL,103,70,50,14
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,38,200,11
!     LTEXT           "完了率(%):",IDC_PERCENT_COMPLETE_LABEL,40,55,45,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "現行操作:",IDC_CURRENT_STEP_LABEL,40,4,108,9,NOT 
!                     WS_VISIBLE
!     LTEXT           "現行ステップの記述 - 実行時に設定",IDC_CURRENT_STEP,40,
!                     4,213,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,101,55,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,4,20,21
!     LTEXT           "このコンピューターの構成を開始するには、「構成」ボタンを押してください。実行する構成ステップを変更するには、「戻る」ボタンを押してください。",
!                     IDC_STATUS_MSG,40,18,213,44
!     PUSHBUTTON      "ログの表示(&V)",IDNEXT,160,70,61,14,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "CellServCB 更新エラー"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LISTBOX         IDC_LIST,7,32,173,121,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "了解",IDOK,22,162,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "ヘルプ",9,130,162,50,14
!     LTEXT           "以下の AFS サーバーの CellServDB ファイルを自動的に更新できませんでした:",
!                     IDC_STATIC,7,7,173,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 273, 188
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "サルベージ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     DEFPUSHBUTTON   "了解",IDOK,79,97,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,133,97,50,14
!     PUSHBUTTON      "ヘルプ(&H)",9,187,97,50,14
!     CONTROL         "このファイル・サーバー上のパーティションをすべてサルベージ(&S)",
!                     IDC_SERVER,"Button",BS_AUTORADIOBUTTON,11,35,234,10
!     CONTROL         "選択したパーティション上のボリュームをすべてサルベージ(&P)",
!                     IDC_PARTITION,"Button",BS_AUTORADIOBUTTON,11,48,234,10
!     CONTROL         "選択したパーティション上の特定ボリュームをサルベージ(&V)",
!                     IDC_VOLUME,"Button",BS_AUTORADIOBUTTON,11,61,234,10
!     EDITTEXT        IDC_VOLUME_NAME,96,75,97,12,ES_AUTOHSCROLL | WS_DISABLED
!     PUSHBUTTON      "<< 拡張(&A) ",IDC_ADVANCED,7,97,50,14
!     GROUPBOX        "",IDC_STATIC,7,25,261,67
!     LTEXT           "ボリューム名(&N):",IDC_VOLUME_NAME_LABEL,27,76,60,8,
!                     WS_DISABLED
!     GROUPBOX        "拡張サルベージ・オプション",IDC_ADVANCED_FRAME,7,119,
!                     259,62
!     LTEXT           "一時ファイルのパス(&T):",IDC_TEMP_DIR_LABEL,17,165,89,8
!     EDITTEXT        IDC_LOG_FILE,113,147,133,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,188,130,21,12,ES_AUTOHSCROLL
!     LTEXT           "結果ログのファイル名(&L):",IDC_LOG_FILE_LABEL,17,149,89,
!                     8
!     EDITTEXT        IDC_TEMP_DIR,113,163,133,12,ES_AUTOHSCROLL
!     CONTROL         "並行サルベージ操作、プロセス数(&R):",
!                     IDC_NUM_PROCESSES_CHECKBOX,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,17,132,142,10
!     LTEXT           "サーバーまたはパーティション全体をサルベージすると、サーバーは一時的にオフラインになります。",
!                     IDC_STATIC,37,7,198,17
!     LTEXT           "注:",IDC_STATIC,9,7,15,8
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,180,243,8,NOT WS_VISIBLE
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS プリンシパル・パスワード"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_PW,50,39,140,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "了解",IDOK,31,61,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "ヘルプ",9,140,61,50,14
!     LTEXT           "AFS プリンシパル鍵は 3.5 以前の認証サーバーから取り出せません。AFS プリンシパル・パスワードを下に入力してください。",
!                     IDC_STATIC,7,7,183,21
!     LTEXT           "パスワード:",IDC_STATIC,7,41,37,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "ボリュームのサルベージ - 結果"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "クローズ(&C)",IDC_CLOSE,225,266,53,14,WS_DISABLED
!     PUSHBUTTON      "ヘルプ",9,280,266,50,14
!     LTEXT           "<実行時に設定>",IDC_LOG_TITLE,9,36,317,8
!     ICON            "",IDC_LOGO,7,7,20,20
!     LTEXT           "<実行時に設定>",IDC_SALVAGE_STATUS,33,9,293,16
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 322
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 240
!         HORZGUIDE, 207
!     END
! 
!     IDD_PARTITION_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 214
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 215
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_SYS_CONTROL_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 214
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 209
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 64
!         VERTGUIDE, 209
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 53
!         VERTGUIDE, 209
!         TOPMARGIN, 7
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 218
!         VERTGUIDE, 59
!         VERTGUIDE, 217
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 152
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 253
!         VERTGUIDE, 40
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 84
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 236
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 181
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""AFS(R) 構成アプリケーションおよびウィザード""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "次へ(&N) >"
!     IDS_FINISH              "終了(&F)"
!     IDS_HELP_TITLE          "ヘルプ・ボタンが押されました。"
!     IDS_HELP_DESC           "ヘルプは現時点では使用できません。"
!     IDS_CANCEL_DESC         "AFS クィック・スタート・ウィザードを取り消しますか?"
!     IDS_PARTITION_ALREADY_CREATED 
!                             "AFS パーティションがすでにこのマシンに存在します。"
!     IDS_NOT_A_FS_SERVER     "このマシンはファイル・サーバーとして構成されていません。ボリュームはファイル・サーバー・マシン上でのみ作成が可能です。"
!     IDS_ROOT_AFS_ALREADY_EXISTS "ルート・ボリュームがすでに存在します。"
!     IDS_NO_PARTITION_EXISTS "ルート・ボリュームを作成するパーティションが存在しません。ルート・ボリュームを作成するためには、パーティションが存在している必要があります。"
!     IDS_ALREADY_REPLICATED  "ルート・ボリュームはすでに複製されています。"
!     IDS_ROOT_AFS_DOESNT_EXIST 
!                             "ルート・ボリュームが存在しません。複製するためには、ルート・ボリュームが存在している必要があります。"
!     IDS_ALREADY_CONFIGURED  "このマシンはすでに AFS サーバーとして構成されています。"
!     IDS_NOTHING_TO_CONFIGURE "構成する対象が選択されていません。"
!     IDS_EXIT                "終了"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "ファイル・サーバーの開始中"
!     IDS_CANCEL_CONFIG_MSG   "この時点で取り消すと、コンピューターが部分的に AFS サーバーとして構成されたままになります。取り消しますか?"
!     IDS_WIZARD_APP_TITLE    "AFS(R) サーバー・クィック・スタート・ウィザード"
!     IDS_CANCEL_PENDING      "*** 取り消し保留中 - お待ちください... ***"
!     IDS_CHECK_FS_CONFIG     "ファイル・サーバー検査..."
!     IDS_CHECK_DB_CONFIG     "データベース・サーバー検査..."
!     IDS_CHECK_BAK_CONFIG    "バックアップ・サーバー検査..."
!     IDS_CHECK_PARTITION     "AFS パーティション検査..."
!     IDS_CHECK_ROOT_AFS      "ルート・ボリューム検査..."
!     IDS_CHECK_REP           "ルート・ボリューム複製検査..."
!     IDS_CANCEL_GET_CONFIG   "取り消し中...お待ちください..."
!     IDS_ALREADY_A_BACKUP_SERVER 
!                             "このマシンはすでにバックアップ・サーバーとして構成されています。"
!     IDS_NOT_A_DB_SERVER     "このマシンはデータベース・サーバーとして構成されていません。バックアップ・サーバーはデータベース・サーバー・マシン上でのみ実行が可能です。"
!     IDS_ALREADY_A_SYS_CONTROL_SERVER 
!                             "このマシンはすでにシステム制御サーバーとして構成されています。"
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT 
!                             "このマシンはすでにシステム制御クライアントとして構成されています。"
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "このマシンはデータベースまたはファイル・サーバーとして構成されていません。コンピューターはデータベースまたはファイル・サーバー・マシンとして構成されている場合にのみ、システム制御マシンとして構成することができます。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "ボリューム"
!     IDS_NAME_OR_ERROR       "名前 (またはエラー・メッセージ)"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "このマシンはデータベースまたはファイル・サーバーとして構成されていません。コンピューターはデータベースまたはファイル・サーバー・マシンとして構成されている場合にのみ、バイナリー配布マシンとして構成することができます。"
!     IDS_CHECK_SCS           "システム制御サーバー検査..."
!     IDS_CHECK_SCC           "システム制御クライアント検査..."
!     IDS_SIZE                "サイズ"
!     IDS_ERROR_SEP           ",   "
!     IDS_MUST_CONFIG_FS      "セル内の最初の AFS サーバーであるため、ファイル・サービスはデフォルトで構成されます。"
!     IDS_MUST_CONFIG_DB      "セル内の最初の AFS サーバーであるため、データベース・サービスはデフォルトで構成されます。"
!     IDS_MUST_MAKE_PARTITION "セル内の最初の AFS サーバーであるため、パーティションの作成が必要です。"
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "セル内の最初の AFS サーバーであるため、root.afs および root.cell ボリュームはデフォルトで作成されます。"
!     IDS_MUST_REPLICATE      "セル内の最初の AFS サーバーであるため、root.afs および root.cell ボリュームはデフォルトで複製されます。"
!     IDS_CHECK_AFS_CLIENT    "AFS クライアント・インストール検査..."
!     IDS_ERROR_HOST_NAME     "このマシンのホスト名を判別できませんでした。"
!     IDS_ERROR_DRIVE_COMPRESSED "ドライブが圧縮されています"
!     IDS_ERROR_CFG_HOST_OPEN "サーバー構成ライブラリーの初期化が失敗しました。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "AFS クライアントを停止中です"
!     IDS_ERROR_LOCAL_HOST_NAME 
!                             "このマシンのローカル・ホスト名を判別できませんでした。"
!     IDS_GET_TOKENS_ERROR    "トークンの取得に失敗しました。入力したユーザー名とパスワードが正しいかを確かめてください。"
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "ファイル・サービスが始動されていないため、サルベージを実行できません。ファイル・サービスを始動してから、サルベージを再試行してください。"
!     IDS_SALVAGING           "サルベージが進行中です。お待ちください..."
!     IDS_CURRENT_SALVAGE_LOG "サルベージ・ログの現行コンテンツ:"
!     IDS_FINAL_SALVAGE_LOG   "サルベージ・ログの最終コンテンツ:"
!     IDS_SALVAGE_COMPLETE    "サルベージが完了しました。"
!     IDS_CANT_GET_SALVAGE_LOG "サルベージ・ログを検索できません。"
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK 
!                             "サルベージ・ログをディスクに保管できません。"
!     IDS_VALIDATION_ERROR_TEMPLATE 
!                             "指定された %1 が無効です。%2 を再入力してください。"
!     IDS_CELL_NAME_VALIDATION_TYPE "セル名"
!     IDS_SERVER_NAME_VALIDATION_TYPE "サーバー名"
!     IDS_PASSWORD_VALIDATION_TYPE "パスワード"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "ユーザー名"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "AFS クライアントがインストールされていません。AFS サーバーを構成するためには、AFS クライアントをインストールしておく必要があります。"
!     IDS_ERROR_AFS_CLIENT_CHECK 
!                             "AFS クライアントがインストールされているかどうかを判別できませんでした。"
!     IDS_ERROR_FS_IS_NOT_NTFS "ファイル・システムが NTFS ではありません"
!     IDS_ERROR_DRIVE_HAS_DATA "ドライブにデータが含まれています"
!     IDS_PARTITION_STEP_DESC "AFS パーティションを作成します"
!     IDS_ERROR_DRIVE_CONTAINS_NT 
!                             "ドライブに NT インストレーションが含まれています"
!     IDS_DB_STEP_DESC        "データベース・サービスを開始します"
!     IDS_FS_STEP_DESC        "ファイル・サービスを開始します"
!     IDS_SCC_STEP_DESC       "システム制御クライアントを開始します"
!     IDS_SCS_STEP_DESC       "システム制御サーバーを開始します"
!     IDS_ROOT_AFS_STEP_DESC  "ルート・ボリュームを作成します"
!     IDS_REP_STEP_DESC       "ルート・ボリュームを複製します"
!     IDS_PARTITIONS_PAGE_TITLE "パーティション"
!     IDS_CONFIGURE           "構成(&C)"
!     IDS_DB_AND_BK_STEP_DESC "データベース・サービス (バックアップ・サーバーを含む) を開始します"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "AFS パーティションの作成中"
!     IDS_CONFIG_COMMON_FUNCS "すべてのサービスに共通の機能を構成中"
!     IDS_START_DB_STEP       "データベース・サービスの開始中"
!     IDS_START_SCC_STEP      "システム制御サービスをシステム制御クライアントとして開始中"
!     IDS_START_SCS_STEP      "システム制御サービスをシステム制御サーバーとして開始中"
!     IDS_CREATE_ROOT_AFS_STEP "root.afs ボリュームの作成中"
!     IDS_REP_STEP            "ルート・ボリュームの複製中"
!     IDS_START_AUTH_STEP     "このサーバーのトークンを取得中"
!     IDS_SERVICES_PAGE_TITLE "サービス"
!     IDS_CONFIG_SUCCEEDED    "構成が正常に行われました。"
!     IDS_CONFIG_CANCELED     "構成が取り消されました。"
!     IDS_CONFIG_FAILED       "構成が失敗しました。\r\n\r\n詳細ログ・ファイル %1 が %2 に作成されました。"
!     IDS_ERROR_NO_LICENSE_NUM "AFS ライセンス番号が見つかりませんでした。"
!     IDS_VERIFY_CLIENT_INSTALL_STEP "AFS クライアントのインストールを検査中"
!     IDS_SET_SERVER_LICENSE_STEP "このサーバーのライセンスを設定中"
!     IDS_DEFINE_CELL_NAME_STEP "このセルの名前を定義中"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP "このサーバーをセルのメンバーにしています"
!     IDS_START_BOS_SERVER_STEP "BOS サーバーの開始中"
!     IDS_START_AUTH_SERVER_STEP "認証サーバーの開始中"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP "このサーバーのプリンシパルと鍵を作成中"
!     IDS_START_DB_AND_BK_STEP 
!                             "データベース・サービス (バックアップ・サーバーを含む) の開始中"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP "セル管理プリンシパルの作成中"
!     IDS_START_CLIENT_STEP   "AFS クライアントの開始中"
!     IDS_SET_ROOT_ACL_STEP   "root.afs ボリュームの ACL を設定中"
!     IDS_CREATE_ROOT_CELL_STEP "root.cell ボリュームの作成中"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP 
!                             "標準マウント・ポイントを使用して root.cell ボリュームをマウント中"
!     IDS_SET_ROOT_CELL_ACL_STEP "root.cell ボリュームの ACL を設定中"
!     IDS_MOUNT_ROOT_CELL_RW_STEP 
!                             "読み取り/書き込みマウント・ポイントを使用して root.cell ボリュームをマウント中"
!     IDS_ENABLE_AUTH_CHECKING_STEP "認証チェックを使用可能にしています"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "管理トークンの取得中"
!     IDS_RESTART_SERVERS_STEP 
!                             "このマシンのすべてのサーバーを認証サーバーとして再始動中"
!     IDS_ALREADY_A_FS_SERVER "このマシンはすでにファイル・サーバーとして構成されています。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "このマシンはすでにデータベース・サーバーとして構成されています。"
!     IDS_INTRO_PAGE          "紹介"
!     IDS_INFO_PAGE           "セルおよびサーバー情報"
!     IDS_FS_PAGE             "ファイル・サービス"
!     IDS_DB_PAGE             "データベース・サービス"
!     IDS_CFG_TOOL_APP_TITLE  "AFS(R) サーバーの構成"
!     IDS_BK_PAGE             "バックアップ・サーバー"
!     IDS_ROOT_AFS_PAGE       "ルート AFS ボリューム"
!     IDS_NAME                "名前"
!     IDS_REP_PAGE            "複製"
!     IDS_SC_PAGE             "システム制御サービス"
!     IDS_CONFIG_PAGE         "システムの構成"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "AFS パーティション"
!     IDS_GRAPHIC_FONT        "ＭＳ Ｐゴシック, 9, B"
!     IDS_CURRENT_STEP        "現行ステップ:"
!     IDS_ADD_TO_CELLSERVDB_STEP "このサーバーを CellServDB に追加中"
!     IDS_RESTART_ALL_DB_SERVERS_STEP 
!                             "セル内のすべてのデータベース・サーバーを再始動中"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "構成が正常に行われました。注: セル内のすべての AFS クライアントの CellServDB ファイルが更新されていなければなりません。セルを他のサイトで使用可能にする場合は、データベース・サーバーの最新リストを AFS 製品サポートに提供してください。"
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG 
!                             "このマシンをシステム制御サーバーとして構成しますか?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG 
!                             "システム制御サーバーとして構成しません(&O)。"
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "AFS サーバーの構成では、AFS クライアントがサーバーと同じセルに構成されていることが必要です。これは自動的に行われます。"
!     IDS_INFO_PAGE2          "管理情報"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "構成が正常に行われました。\r\n\r\n注:  セルを他のサイトで使用可能にする場合は、データベース・サーバーのリストを AFS 製品サポートに提供してください。"
!     IDS_CONFIG_SCS          "セルのシステム制御サーバーとして構成。"
!     IDS_CONFIG_INTO_CELL_MSG "このホストをセルに構成します"
!     IDS_VIEW_LOG            "ログの表示(&V)"
!     IDS_VIEW_LOG_ERROR      "ログ・ファイルを表示できません"
!     IDS_ERROR_NO_LOG_FILE   "ログ・ファイルが存在しません。"
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED 
!                             "ホストの CellServDB が更新されました "
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED 
!                             "ホストの CellServDB の更新が失敗しました "
!     IDS_CELL_NAME_LEN_ERROR "入力したセル名が長すぎます。セル名は 64 文字以内で指定してください。"
!     IDS_CONFIG_CHECK_FAILED "このマシンの現行構成を判別できませんでした。"
!     IDS_YES                 "はい"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "いいえ"
!     IDS_FREE                "空きスペース"
!     IDS_TOTAL               "合計サイズ"
!     IDS_DRIVE2              "ドライブ"
!     IDS_SERVICE_STATUS      "状況"
!     IDS_SERVICE             "サービス"
!     IDS_FS_RUNNING          "ファイル・サービスは現在実行中です。"
!     IDS_FS_STOPPED          "ファイル・サービスは現在実行されていません。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "データベース・サービスは現在実行中です。"
!     IDS_DB_STOPPED          "データベース・サービスは現在実行されていません。"
!     IDS_BK_RUNNING          "バックアップ・サービスは現在実行中です。"
!     IDS_BK_STOPPED          "バックアップ・サービスは現在実行されていません。"
!     IDS_SCS_STOPPED         "システム制御サーバーは現在実行されていません。"
!     IDS_SCC_STOPPED         "システム制御クライアントは現在実行されていません。"
!     IDS_FS_HOW_TO_RUN       "ファイル・サービスを開始するには、上のボックスをチェックしてください。"
!     IDS_FS_HOW_TO_STOP      "ファイル・サービスを停止するには、上のボックスをチェック解除してください。"
!     IDS_DB_HOW_TO_RUN       "データベース・サービスを開始するには、上のボックスをチェックしてください。"
!     IDS_DB_HOW_TO_STOP      "データベース・サービスを停止するには、上のボックスをチェック解除してください。"
!     IDS_BK_HOW_TO_RUN       "バックアップ・サービスを開始するには、上のボックスをチェックしてください。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "バックアップ・サービスを停止するには、上のボックスをチェック解除してください。"
!     IDS_SCS_HOW_TO_RUN      "システム制御サーバーを開始するには、上のボックスをチェックしてください。"
!     IDS_SCS_HOW_TO_STOP     "システム制御サーバーを停止するには、上のボックスをチェック解除してください。"
!     IDS_DB_PARTIAL_CONFIG   "データベース・サービスは部分的に構成されています。"
!     IDS_DB_DETAILS          "詳しくは「詳細」ボタンを押してください。"
!     IDS_BK_DISABLED         "バックアップ・サービスが使用不可になっています。"
!     IDS_BK_ENABLE           "バックアップ・サービスを使用可能にするには、データベース・サービスを実行する必要があります。"
!     IDS_SC_DISABLED         "このサーバーは使用不可になっています。"
!     IDS_SC_ENABLE           "このサーバーを使用可能にするには、ファイル・サービスまたはデータベース・サービスを実行する必要があります。"
!     IDS_FS_WILL_RUN         "ファイル・サービスが開始されます。"
!     IDS_FS_WILL_STOP        "ファイル・サービスが停止されます。"
!     IDS_DB_WILL_RUN         "データベース・サービスが開始されます。"
!     IDS_DB_WILL_STOP        "データベース・サービスが停止されます。"
!     IDS_BK_WILL_RUN         "バックアップ・サービスが開始されます。"
!     IDS_BK_WILL_STOP        "バックアップ・サービスが停止されます。"
!     IDS_SCS_WILL_RUN        "システム制御サーバーが開始されます。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "システム制御サーバーが停止されます。"
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "ドライブはすでに AFS パーティションです"
!     IDS_VOLUME_HAS_NO_NAME  "<ボリュームに名前がありません>"
!     IDS_PARTITION_CREATED   "新規 AFS パーティションが正常に作成されました。"
!     IDS_PARTITION_EXISTS    "入力したパーティション名はすでに他のパーティションに使用されています。"
!     IDS_SCS_RUNNING         "システム制御サーバーは現在実行中です。"
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN 
!                             "このドライブにはごみ箱のみが含まれています。"
!     IDS_SCC_WILL_RUN        "システム制御クライアントが開始されます。"
!     IDS_SCC_WILL_STOP       "システム制御クライアントが停止されます。"
!     IDS_SCC_RUNNING         "システム制御クライアントは現在実行中です。"
!     IDS_SCC_HOW_TO_RUN      "システム制御クライアントを開始するには、上のボックスをチェックしてください。"
!     IDS_SCC_HOW_TO_STOP     "システム制御クライアントを停止するには、上のボックスをチェック解除してください。"
!     IDS_SCS_ENABLE          "このサーバーを使用可能にするには、システム制御クライアントの実行を停止する必要があります。"
!     IDS_SCC_ENABLE          "このサーバーを使用可能にするには、システム制御サーバーの実行を停止する必要があります。"
!     IDS_UNCONFIG_DB_STEP    "データベース・サービスの構成解除"
!     IDS_UNCONFIG_DB_STEP_DESC "データベース・サービスを構成解除します"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP 
!                             "データベース・サービス (およびバックアップ・サーバー) の構成解除"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC 
!                             "データベース・サービス (およびバックアップ・サーバー) を構成解除します"
!     IDS_UNCONFIG_BK_STEP    "バックアップ・サーバーの構成解除"
!     IDS_UNCONFIG_BK_STEP_DESC "バックアップ・サーバーを構成解除します"
!     IDS_UNCONFIG_FS_STEP    "ファイル・サービスの構成解除"
!     IDS_UNCONFIG_FS_STEP_DESC "ファイル・サービスを構成解除します"
!     IDS_UNCONFIG_SCS_STEP   "システム制御サーバーの構成解除"
!     IDS_UNCONFIG_SCS_STEP_DESC "システム制御サーバーを構成解除します"
!     IDS_UNCONFIG_SCC_STEP   "システム制御クライアントの構成解除"
!     IDS_UNCONFIG_SCC_STEP_DESC "システム制御クライアントを構成解除します"
!     IDS_INVALIDATE_CONFIG_INFO_STEP "このマシンの構成情報を無効にする"
!     IDS_CLOSE               "クローズ(&C)"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "CellServDB ファイルが下の AFS サーバーで更新できませんでした。これは重大なエラーではありません。\r\n"
!     IDS_DELETE_PARTITION_PROMPT "パーティション '%1' を削除しますか?"
!     IDS_INVALIDATE_CFG_INFO "現在このコンピューターで実行中の AFS サーバー・プロセスはありません。このマシンから構成情報を削除しますか?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "セルが存在しません。AFS 構成アプリケーションは、AFS セルに構成済みであるサーバー・マシンの構成にのみ使用できます。AFS 構成ウィザードを使用して新しいセルを開始することができます。"
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "AFS 構成アプリケーションを終了します。これは AFS サーバーとして構成済みのマシンでのみ実行が可能です。このマシンを AFS サーバーとしてもう一度構成するには、AFS 構成ウィザードを実行してください。"
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "このマシンは AFS サーバーとして構成されていません。AFS 構成アプリケーションは、AFS サーバー・マシンの構成にのみ使用できます。AFS 構成ウィザードを使用して、このマシンを AFS サーバーとして再構成することができます。"
!     IDS_GET_TOKENS_FAILED   "指定されたセルのトークンを取得できませんでした。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "バックアップ・サーバーの開始"
!     IDS_BK_STEP_DESC        "バックアップ・サーバーを開始します"
!     IDS_CONFIG_ERROR        "構成エラーが起きました"
!     IDS_CREATE_PARTITION_ERROR "パーティションを作成できません"
!     IDS_REMOVE_PARTITION_ERROR "パーティションを削除できません"
!     IDS_READ_PARTITIONS_ERROR "パーティション・テーブルを読み取れません"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\nCellServDB 更新プロセスが予期せず終了しました。サーバーのすべては更新されていません。"
!     IDS_GET_PARTITION_LIST_ERROR 
!                             "このサーバーのパーティションを判別できません"
!     IDS_EXPORTED            "エクスポート済み"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "ファイル・サービスの実行中にエクスポートされたパーティションを削除することはできません。このパーティションを削除する前にファイル・サービスを停止してください。"
!     IDS_CHECK_CONFIG_INFO   "有効な構成情報の検査中です..."
!     IDS_ERROR_CFG_HOST_CLOSE 
!                             "サーバー構成ライブラリーのクローズに失敗しました。"
!     IDS_FAILED_OPEN_CELL    "セルのオープンに失敗しました。"
!     IDS_FAILED_OPEN_NULL_CELL "NULL セル・ハンドルのオープンに失敗しました"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ルート・ボリュームが存在しない場合は作成しますか?"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ルート・ボリュームが複製されていない場合は複製しますか?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS サーバー"
!     IDS_CANT_INIT_ADMIN_LIBS 
!                             "このアプリケーションを実行できません。ライブラリー初期化が失敗しました。"
!     IDS_CANT_OPEN_LOG_FILE  "ログ・ファイルをオープンできません。"
!     IDS_NEED_CLIENT_INFO    "AFS クライアントがこのコンピューターで構成されていないため、AFS 構成アプリケーションを実行できません。この状態で AFS 構成ウィザードを使用できます。AFS 構成ウィザードを実行しますか?"
!     IDS_NEED_SERVER_INFO    "このコンピューターは AFS サーバーとして構成されていません。初めて AFS サーバーを構成するには、AFS 構成ウィザードを使用する必要があります。AFS 構成アプリケーションはその後で使用可能になります。AFS 構成ウィザードを実行してこのコンピューターを初期構成しますか?"
!     IDS_ADVANCED_OPEN       "<< 拡張(&A)"
!     IDS_ADVANCED_CLOSED     "拡張(&A) >>"
!     IDS_BOS_OPEN_FAILED     "サーバーに接続できません (bos オープンが失敗)。"
!     IDS_SALVAGE_ERROR       "サルベージ操作が失敗しました。"
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "指定したサルベージ・プロセス数が無効です。サルベージ・プロセス数は 1 から 32 の範囲でなければなりません。"
!     IDS_WRONG_CELL          "前のステップで、構成情報を検索するサーバーを指定しました。指定したサーバーは、結合するセルに属していません。"
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "セル内のいくつかのサーバー上の CellServDB ファイルが更新できませんでした。更新されたサーバーと更新されていないサーバーのリストは、次のファイルに保管された構成ログで見ることができます。 "
!     IDS_GET_CREDENTIALS_STEP "管理トークンの取得"
!     IDS_MUST_ENTER_SCS_NAME "構成を開始する前に、システム制御マシン名を入力してください。"
!     IDS_NOT_SAME_CELL       "AFS クライアントが AFS サーバー以外のセルに構成されています。AFS サーバーを構成する前に、まず AFS クライアントをサーバーのセルに再構成してください。"
!     IDS_LAST_DB_SERVER      "このマシンはセル内で実行されている最後のデータベース・サーバーです。続行してこのマシンのデータベース・サービスを構成解除した場合、セルは存在しなくなり、このマシンで実行中の他の AFS サービスはすべて構成解除されます。続行しますか?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "AFS プリンシパルのパスワードが無効です。"
!     IDS_ERROR_CLIENT_VERSION 
!                             "このコンピューターの AFS クライアントのバージョンと、AFS サーバーとの互換性がありません。AFS サーバーは少なくとも AFS クライアントのバージョン 3.5 を必要とします。"
!     IDS_CANT_MAP_ROOT_AFS   "ルート・ボリュームの ACL を設定するには、ドライブ名を AFS にマッピングする必要があります。現在使用可能なドライブ名がありません。ドライブ名を解放して、「了解」を押してください。"
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "パーティション名"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "ボリューム名"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE "サルベージ・プロセス数"
!     IDS_PATH_NAME_VALIDATION_TYPE "パス名"
!     IDS_FILE_NAME_VALIDATION_TYPE "ファイル名"
!     IDS_GENERIC_VALIDATION_TYPE "値"
! END
! 
! #endif    // Japanese resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 7,1212 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS(R) 構成アプリケーションおよびウィザード"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x411
  #define AFS_VERINFO_CHARSET 932
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // Japanese resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
! #ifdef _WIN32
! LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 325, 247
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "AFS(R) サーバー・クィック・スタート・ウィザード"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     PUSHBUTTON      "取消し(&L)",IDCANCEL,106,226,50,14
!     PUSHBUTTON      "< 戻る(&B)",IDBACK,161,226,50,14
!     DEFPUSHBUTTON   "次へ(&N) >",IDNEXT,216,226,50,14
!     PUSHBUTTON      "ヘルプ(&H)",9,271,226,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,11,219,311,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,104,7,216,207
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "はい、パーティションを作成します。(&Y)",
!                     IDC_CREATE_PARTITION,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,2,88,162,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,3,116,210,
!                     49,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,155,180,20,12,ES_AUTOHSCROLL
!     CONTROL         "いいえ、パーティションを作成しません。(&O)",
!                     IDC_DONT_CREATE_PARTITION,"Button",BS_AUTORADIOBUTTON,3,
!                     195,138,8
!     LTEXT           "このファイル・サーバーはファイルとプログラムを AFS クライアントに保管および引き渡します。このシステムに保管されたデータを AFS を通じて共用するには、少なくとも 1 つの NTFS ボリュームが AFS パーティション専用にされている必要があります。",
!                     -1,1,12,212,31
!     LTEXT           "パーティション用に使用するボリュームを選択してください(&S):",
!                     IDC_SELECT_DRIVE,2,102,211,9
!     LTEXT           "AFS パーティション名(&M):  /vicep",IDC_NAME_LABEL,14,
!                     182,123,8
!     LTEXT           "このファイル・サーバーに AFS パーティションを作成します。",
!                     IDC_TITLE,3,0,210,8
!     LTEXT           "AFS パーティションは物理的に NTFS ボリュームと同等ですが、これにはパーティションに関する情報の構造と位置について特殊化されたメタデータも入っています。",
!                     -1,0,48,213,24
!     LTEXT           "このファイル・サーバーにパーティションを作成しますか?",
!                     IDC_ASK_CREATE_PARTITION,1,76,213,8
!     LTEXT           "メッセージは必要なら実行時に設定されます。",
!                     IDC_PARTITION_MSG,3,170,208,34,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,208,86,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "はい、構成します(&Y)。",IDC_SHOULD_CONFIG_FILE_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,3,173,98,10
!     CONTROL         "いいえ、構成しません(&O)。",IDC_DONT_CONFIG_FILE_SERVER,
!                     "Button",BS_AUTORADIOBUTTON,3,187,114,10
!     LTEXT           "AFS ファイル・サービスは要求されたファイルやプログラムをこのサーバーから AFS クライアントに引き渡します。このサービスはまた、ボリュームの作成、削除、移動、複製のようなボリューム管理操作のすべてを扱います。",
!                     -1,0,36,209,34
!     LTEXT           "このマシンをファイル・サーバーとして構成します。",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "このマシンをファイル・サーバーとして構成しますか?",
!                     IDC_CREATE_FS_QUESTION,2,158,197,8
!     LTEXT           "このマシンをファイル・サーバーとして構成するには、ファイル・サービスを構成する必要があります。",
!                     -1,0,13,209,17
!     LTEXT           "注: このマシンは現在 AFS にファイルを保管するために使用可能なディスク・ドライブを持っていません。このマシンをファイル・サーバーとして構成することはできますが、AFSデータをこのマシンに保管することはできません。",
!                     IDC_NO_DRIVES_NOTE,0,77,209,34,NOT WS_VISIBLE
!     LTEXT           "ディスク・ドライブを作成するには、Windows NT ディスク・アドミニストレータを使用してください。",
!                     IDC_DISK_ADMIN_NOTE,0,119,209,16,NOT WS_VISIBLE
!     LTEXT           "このマシンはすでにファイル・サーバーとして構成されています。",
!                     IDC_MSG,0,144,206,56,NOT WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "AFS サーバーのクィック・スタート・ウィザードにようこそ。このウィザードは、この Windows NT システムでの AFS サーバーの構成を援助します。",
!                     IDC_TITLE,0,0,209,26
!     LTEXT           "AFS サーバー構成の開始には「次へ」を押してください。",
!                     IDC_STATIC,0,166,206,8
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "はい(&Y)、ルート・ボリュームを複製します。",
!                     IDC_REPLICATE,"Button",BS_AUTORADIOBUTTON | WS_GROUP,3,
!                     168,178,10
!     CONTROL         "いいえ(&O)、ルート・ボリュームを複製しません。",
!                     IDC_DONT_REPLICATE,"Button",BS_AUTORADIOBUTTON,3,185,178,
!                     10
!     LTEXT           "複製は、通常は他のファイル・サーバーにある、複数のパーティション内のボリュームの読み取り専用コピーを作成するプロセスです。複製によって、ボリュームを入れるサーバーの１つが使用不可になった場合でも、",
!                     IDC_STATIC,0,41,213,26
!     LTEXT           "ルート・ボリュームを複製しますか?",
!                     IDC_REPLICATE_QUESTION,2,151,205,10
!     LTEXT           "複製はまた、頻繁にアクセスされるボリュームの要求でサーバーが過負荷になるのを防ぐことを可能にします。",
!                     IDC_STATIC,0,99,213,18
!     LTEXT           "セルのルート・ボリュームを複製します。",IDC_TITLE,2,0,
!                     209,8
!     LTEXT           "この AFS セル内で他のボリュームを複製する場合は、まずルート・ボリュームを複製してください。",
!                     IDC_STATIC,0,16,213,16
!     LTEXT           "そのボリュームは他のサーバーからアクセスできるので、ネットワークやサーバーの停止が起こったときのボリュームの使用可能性が増します。",
!                     IDC_STATIC,0,73,213,18
!     LTEXT           "メッセージは必要なら実行時に設定されます。",
!                     IDC_CANT_REPLICATE_MSG,0,128,206,72,NOT WS_VISIBLE | NOT 
!                     WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "はい(&Y)、ルート・ボリュームを作成します。",
!                     IDC_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,3,165,178,10
!     CONTROL         "いいえ(&O)、ルート・ボリュームを作成しません。",
!                     IDC_DONT_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON,
!                     3,184,178,10
!     LTEXT           "AFS でボリュームとは、システム管理を効率的に行うために、管理の容易な 1つの単位に編成される関連ファイルの集まりです。",
!                     IDC_STATIC,2,14,210,20
!     LTEXT           "ルート・ボリュームを作成しますか?",
!                     IDC_ROOT_AFS_QUESTION,3,141,201,12
!     LTEXT           "セルのルート・ボリュームを作成します。",IDC_TITLE,2,0,
!                     153,8
!     LTEXT           "作成後、ルート・ボリュームは自動的に AFS ファイル・スペースでアクセス可能になります。",
!                     IDC_STATIC,2,73,210,17
!     LTEXT           "メッセージは必要なら実行時に設定されます。",
!                     IDC_ROOT_AFS_MSG,2,116,211,80,NOT WS_VISIBLE
!     LTEXT           "root.afs ボリュームは AFS ファイル・スペースのルートです。root.cell ボリュームは AFS ファイル・スペースのこのセルのサブツリーのルートで、root.afs からマウント・ポイントを通じてアクセスされます。",
!                     IDC_STATIC,2,40,209,27
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 84
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "AFS(R) サーバーの構成"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,38,148,14
!     LTEXT           "操作テキスト - 実行時に設定されます。",IDC_OPERATION,35,
!                     20,145,10
!     ICON            "",IDC_LOGO,7,7,20,21
!     PUSHBUTTON      "取消し",IDCANCEL,73,63,50,14
!     LTEXT           "現行構成を判別中:",IDC_OPERATION2,35,7,156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "はい、バックアップ・サーバーとして構成します(&Y)。",
!                     IDC_CONFIG_BACKUP_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,172,210,10
!     CONTROL         "いいえ、バックアップ・サーバーとして構成しません(&O)。",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,0,187,210,10
!     LTEXT           "バックアップ・サーバーはデータベース・サーバーとして構成されたマシンでのみ実行可能です。また、バックアップ・サーバーがセル内の 1 つのデータベース・サーバーで実行されている場合は、そのセルのすべてのデータベース・サーバーで実行する必要があります。",
!                     -1,0,37,210,41
!     LTEXT           "このマシンをバックアップ・サーバーとして構成しますか?",
!                     IDC_BACKUP_SERVER_QUESTION,0,157,210,10
!     LTEXT           "このマシンをバックアップ・サーバーとして構成します。",
!                     IDC_TITLE,0,0,210,8
!     LTEXT           "バックアップ・サーバーはデータベース・サービスのオプション機能です。",
!                     -1,0,15,210,16
!     LTEXT           "このマシンはすでにデータベース・サーバーとして構成されています。",
!                     IDC_CANT_BACKUP_MSG,0,142,210,57,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 216, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "システム制御サーバーとして構成します(&S)。",
!                     IDC_SYS_CONTROL_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,2,142,178,10
!     CONTROL         "システム制御クライアントとして構成します(&C)。",
!                     IDC_SYS_CONTROL_CLIENT,"Button",BS_AUTORADIOBUTTON,2,156,
!                     160,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,100,169,108,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "システム制御クライアントまたはサーバーとして構成しません(&O)。",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON,2,187,201,
!                     9
!     LTEXT           "システム制御サーバーは、システム制御クライアントとして実行されている他の AFS サーバー・マシンに、共通構成ファイルを提供します。AFS セルはシステム制御サーバーを 1つだけ実行していることが必要です。",
!                     -1,3,17,208,33
!     LTEXT           "システム制御サーバーまたはクライアントとして構成します。",
!                     IDC_TITLE,4,4,208,8
!     LTEXT           "このマシンをシステム制御サーバーまたはクライアントとして構成しますか?",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,3,118,208,17
!     LTEXT           "システム制御クライアントは、セルのシステム制御サーバーからその AFS 構成ファイルに対する有効な更新をすべて受け取ります。",
!                     IDC_SYS_CONTROL_CLIENT_DESC,3,55,208,18
!     LTEXT           "システム制御サーバー(&Y):",
!                     IDC_SYS_CONTROL_MACHINE_LABEL,7,170,81,8,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,2,116,210,84,NOT WS_VISIBLE
!     LTEXT           "警告: AFS(R) の米国の配布を使用していないサイトは、システム制御サーバーを介して構成ファイルを配布すべきではありません。配布すると、機密のシステム情報が暗号化されずに伝送されます。",
!                     -1,9,78,193,33
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "このシステムでの AFS サーバーの構成に必要な情報はこれで全部です。",
!                     IDC_ALL_NEEDED_MSG,1,11,212,16
!     LTEXT           "このマシンをセル <set at runtime> へ構成してください。",
!                     IDC_TITLE,1,0,211,8
!     LTEXT           "以下の構成ステップが実行されます:",
!                     IDC_FOLLOWING_STEPS_MSG,1,33,130,8
!     LTEXT           "ステップ 1 - テキストは実行時に設定されます",IDC_STEP1,
!                     22,47,187,8,NOT WS_VISIBLE
!     LTEXT           "ステップ 3 - テキストは実行時に設定されます",IDC_STEP3,
!                     22,71,187,8,NOT WS_VISIBLE
!     LTEXT           "ステップ 2 - テキストは実行時に設定されます",IDC_STEP2,
!                     22,59,187,8,NOT WS_VISIBLE
!     LTEXT           "ステップ 4 - テキストは実行時に設定されます",IDC_STEP4,
!                     22,83,187,8,NOT WS_VISIBLE
!     LTEXT           "ステップ 5 - テキストは実行時に設定されます",IDC_STEP5,
!                     22,95,187,8,NOT WS_VISIBLE
!     LTEXT           "ステップ 6 - テキストは実行時に設定されます",IDC_STEP6,
!                     22,107,187,8,NOT WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,183,211,10
!     LTEXT           "ステップ 8 - テキストは実行時に設定されます",IDC_STEP8,
!                     22,131,187,8,NOT WS_VISIBLE
!     LTEXT           "ステップ 7 - テキストは実行時に設定されます",IDC_STEP7,
!                     22,119,187,8,NOT WS_VISIBLE
!     LTEXT           "メッセージは必要なら実行時に設定されます。",
!                     IDC_CANT_CONFIG_MSG,1,13,209,17,NOT WS_VISIBLE
!     LTEXT           "完了率(%):",IDC_PERCENT_COMPLETE_LABEL,1,195,39,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "現行操作:",IDC_CURRENT_STEP_LABEL,1,143,31,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "現行ステップの記述 - 実行時に設定",IDC_CURRENT_STEP,3,
!                     168,209,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,63,195,51,8,NOT WS_VISIBLE
!     LTEXT           "このコンピューターの構成を開始するには、「構成」ボタンを押してください。実行する構成ステップを変更するには、「戻る」ボタンを押してください。",
!                     IDC_STATUS_MSG,1,158,212,44
!     LTEXT           "",IDC_STEP1_GRAPHIC,10,49,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,10,61,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,10,73,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,10,85,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,10,97,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,10,109,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,10,121,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,10,133,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,92,55,118,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,92,71,118,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,92,87,118,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,110,158,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,149,157,11,14
!     LTEXT           "管理情報",IDC_TITLE,0,0,210,8
!     LTEXT           "名前(&N):",IDC_ADMIN_NAME_LABEL,7,57,34,8
!     LTEXT           "パスワード(&P):",IDC_ADMIN_PW_LABEL,7,73,57,8
!     GROUPBOX        "アカウント名およびパスワード",IDC_ADMIN_INFO_FRAME,0,41,
!                     210,65
!     LTEXT           "パスワードの検査(&V):",IDC_VERIFY_ADMIN_PW_LABEL,7,90,
!                     68,8
!     LTEXT           "この新しいセルの管理アカウントの作成には以下の情報が必要です。",
!                     IDC_STATIC,0,15,206,17
!     CONTROL         "この AFS UID を使用(&S):",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,160,93,10
!     CONTROL         "次に使用可能な AFS UID を使用(&U)",IDC_USE_NEXT_UID,
!                     "Button",BS_AUTORADIOBUTTON,6,144,204,10
!     GROUPBOX        "AFS UID",IDC_STATIC,0,118,209,57
!     LTEXT           "AFS 管理アカウントのユーザー ID を入力してください:",
!                     IDC_STATIC,3,130,200,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "はい、データベース・サーバーとして構成します(&Y)。",
!                     IDC_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,2,117,204,10
!     CONTROL         "いいえ、データベース・サーバーとして構成しません(&O)。",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,2,
!                     188,204,10
!     LTEXT           "データベース・サービスは AFS セルが要求する複製データベースのセットを保守します。このサービスはセルのすべてのアカウント、ボリューム位置、および (オプションで) バックアップ情報を保守します。",
!                     -1,0,38,210,31
!     LTEXT           "このマシンをデータベース・サーバーとして構成しますか?",
!                     IDC_DB_SERVER_QUESTION,2,101,205,10
!     LTEXT           "このマシンをデータベース・サーバーとして構成します。",
!                     IDC_TITLE,0,0,210,8
!     LTEXT           "このマシンをデータベース・サーバーとして構成するには、データベース・サービスを構成する必要があります。",
!                     -1,0,15,210,16
!     LTEXT           "このマシンはすでにデータベース・サーバーとして構成されています。",
!                     IDC_MSG,1,157,206,10,NOT WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,91,171,113,12,ES_AUTOHSCROLL
!     LTEXT           "システム制御サーバー(&Y):",
!                     IDC_SYS_CONTROL_MACHINE_LABEL,4,173,80,8
!     LTEXT           "セルにシステム制御サーバーがある場合は、そのホスト名を下に入力してください。AFS 構成ファイルはこのサーバーを介して更新されます。",
!                     IDC_SCM_PROMPT,1,134,207,18
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "このホストを既存 AFS セルのサーバーにする(&M)",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON,0,37,
!                     189,10
!     CONTROL         "これを新規 AFS セルの最初のサーバーにする(&T)",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,0,49,188,10
!     EDITTEXT        IDC_CELL_NAME,64,93,145,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,90,166,119,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,90,180,119,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "セルおよびサーバー情報",IDC_TITLE,0,0,209,8
!     LTEXT           "セル名(&C):",IDC_CELL_NAME_LABEL,5,95,41,8
!     LTEXT           "パスワード(&P):",IDC_SERVER_PW_LABEL,7,167,57,8,
!                     WS_DISABLED
!     LTEXT           "AFS セルの名前を入力してください。",
!                     IDC_CELL_NAME_PROMPT,14,78,195,11
!     LTEXT           "AFS プリンシパルのパスワードを入力してください。すべての AFS サーバーがこのプリンシパルとしてトークンを取得します。",
!                     IDC_SERVER_PW_PROMPT,10,130,199,19,WS_DISABLED
!     GROUPBOX        "セル名",IDC_CELL_NAME_FRAME,0,66,210,44
!     GROUPBOX        "サーバー・パスワード",IDC_SERVER_PW_FRAME,0,117,210,83,
!                     WS_DISABLED
!     LTEXT           "パスワードの検査(&V):",IDC_VERIFY_PW_LABEL,7,180,69,8,
!                     WS_DISABLED
!     LTEXT           "AFS セルは、ファイル・アクセスのユニフォーム・ネーム・スペースを提供するサーバーの集まりです。",
!                     IDC_CELL_NAME_PROMPT2,7,14,202,17
!     LTEXT           "名前:",IDC_PRINCIPAL_LABEL,7,154,22,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,64,153,145,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 216, 207
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,62,45,139,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,62,61,139,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,62,133,139,12,ES_AUTOHSCROLL
!     LTEXT           "管理情報",IDC_TITLE,0,0,209,8
!     LTEXT           "以下の管理アカウント情報を入力してください:",
!                     IDC_ADMIN_INFO_PROMPT,7,31,196,10
!     LTEXT           "名前(&N):",IDC_ADMIN_NAME_LABEL,7,49,34,8
!     LTEXT           "パスワード(&P):",IDC_ADMIN_PW_LABEL,7,65,46,8
!     GROUPBOX        "アカウント名およびパスワード",IDC_ADMIN_INFO_FRAME,0,17,
!                     210,62
!     GROUPBOX        "既存の AFS サーバー",IDC_HOSTNAME_FRAME,1,92,209,60
!     LTEXT           "AFS サーバー:",IDC_HOSTNAME_LABEL,5,136,46,8
!     LTEXT           "結合したいセル内の他の AFS サーバーのホスト名を入力してください。AFS構成情報はこのサーバーから取り出されます。",
!                     IDC_HOSTNAME_PROMPT,5,105,199,19
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 265
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "サービス"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,20,281,40
!     GROUPBOX        "",IDC_STATIC,7,66,281,43
!     GROUPBOX        "",IDC_STATIC,7,115,281,40
!     GROUPBOX        "",IDC_STATIC,7,161,281,40
!     CONTROL         "ファイル・サービス",IDC_FS_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,22,83,10
!     CONTROL         "データベース・サービス",IDC_DB_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,65,99,10
!     PUSHBUTTON      "詳細...",IDC_DB_DETAILS,225,91,50,14,NOT WS_VISIBLE
!     CONTROL         "バックアップ・サーバー",IDC_BK_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,114,99,10
!     CONTROL         "システム制御サーバー",IDC_SCS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,160,91,10
!     EDITTEXT        IDC_SC_MACHINE,137,226,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "この AFS サーバーで実行するサービスを選択してください:",
!                     IDC_STATIC,7,7,213,8
!     LTEXT           "ファイル・サービスは現在実行中です。",IDC_FS_STATUS_MSG,
!                     14,35,261,8
!     LTEXT           "データベース・サービスは現在一部がインストールされています。",
!                     IDC_DB_STATUS_MSG,14,78,241,8
!     LTEXT           "システム制御サーバー(&Y):",IDC_SC_MACHINE_LABEL,31,229,
!                     97,8,WS_DISABLED
!     LTEXT           "ファイル・サービスの停止には上のボックスをチェック解除してください。",
!                     IDC_FS_ACTION_MSG,14,47,268,8
!     LTEXT           "詳しくは「詳細」をクリックしてください。",
!                     IDC_DB_ACTION_MSG,14,92,186,8
!     LTEXT           "バックアップ・サーバーは現在実行中です。",
!                     IDC_BK_STATUS_MSG,14,127,259,8
!     LTEXT           "バックアップ・サービスの停止は上のボックスをチェック解除してください。",
!                     IDC_BK_ACTION_MSG,14,139,268,8
!     LTEXT           "このサーバーを使用可能にするには、ファイル・サービスまたはデータベース・サービスを実行する必要があります。",
!                     IDC_SCS_ACTION_MSG,14,183,268,16
!     LTEXT           "システム制御サービスは現在実行中ではありません。",
!                     IDC_SCS_STATUS_MSG,14,172,263,9
!     GROUPBOX        "",IDC_STATIC,7,207,281,51
!     CONTROL         "システム制御クライアント",IDC_SCC,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,206,107,10
!     LTEXT           "このサーバーを使用可能にするには、ファイル・サービスまたはデータベース・サービスを実行する必要があります。",
!                     IDC_SCC_ACTION_MSG,14,239,268,17
!     LTEXT           "システム制御サービスは現在実行中ではありません。",
!                     IDC_SCC_STATUS_MSG,14,216,263,9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "パーティション"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "以下の AFS パーティションがコンピューターに存在します(&A):",
!                     IDC_STATIC,8,7,227,8
!     PUSHBUTTON      "作成(&C)...",IDC_CREATE_PARTITIONS,17,118,66,14
!     LTEXT           "1 つのパーティションまたはパーティション上の 1 つのボリュームをサルベージするには、リストのパーティションを選択して上のボタンをクリックしてください。このサーバー上のすべてのパーティションをサルベージするには、上のボタンをクリックしてください。",
!                     IDC_SALVAGE_MSG,30,179,250,30
!     PUSHBUTTON      "サルベージ(&S)...",IDC_SALVAGE,17,159,66,14
!     LTEXT           "削除にはリストのパーティションを選択し上のボタンをクリック。",
!                     IDC_REMOVE_MSG,30,238,241,12,WS_DISABLED
!     PUSHBUTTON      "削除(&M)",IDC_REMOVE,17,217,66,14,WS_DISABLED
!     GROUPBOX        "パーティション",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,23,
!                     281,72,WS_EX_CLIENTEDGE
!     LTEXT           "このサーバーでの新規パーティション作成は、上のボタンをクリック。",
!                     IDC_CREATE_MSG,30,139,250,8
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 264, 177
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "AFS パーティションの作成"
! FONT 9, "ＭＳ Ｐゴシック", 0, 0, 0x1
! BEGIN
!     LTEXT           "新しいパーティションを作成する NTFS ボリュームをリストから選択:",
!                     IDC_TITLE,7,5,250,8
!     LTEXT           "AFS パーティション名:",IDC_NAME_STATIC,17,131,77,8
!     EDITTEXT        IDC_PARTITION_NAME,132,129,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "作成(&C)",IDC_CREATE,96,158,50,14,WS_DISABLED
!     PUSHBUTTON      "クローズ(&O)",IDC_CLOSE,152,158,53,14
!     PUSHBUTTON      "ヘルプ",9,210,158,40,14
!     GROUPBOX        "パーティション・パラメーター",IDC_ARGS_FRAME,7,117,250,
!                     33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,21,250,
!                     89,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,102,131,22,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 225, 159
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS(R) サーバーの構成"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,72,33,141,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,72,52,141,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,72,112,141,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "構成(&C)",IDOK,108,135,50,14,WS_DISABLED
!     PUSHBUTTON      "取消し",IDCANCEL,48,135,50,14
!     PUSHBUTTON      "ヘルプ",9,168,135,50,14
!     LTEXT           "以下の管理アカウント情報を入力してください:",
!                     IDC_ADMIN_INFO_PROMPT,21,20,196,10
!     LTEXT           "名前(&N):",IDC_ADMIN_NAME_LABEL,15,36,44,8
!     LTEXT           "パスワード(&P):",IDC_ADMIN_PW_LABEL,15,55,44,8
!     GROUPBOX        "アカウント名およびパスワード",IDC_ADMIN_INFO_FRAME,7,7,
!                     211,62
!     GROUPBOX        "システム制御サーバー",IDC_HOSTNAME_FRAME,7,76,211,54
!     LTEXT           "ホスト名(&H):",IDC_HOSTNAME_LABEL,15,115,44,8
!     LTEXT           "セルにシステム制御サーバーがある場合は、そのホスト名を下に入力してください。AFS 構成ファイルはこのサーバーを通じて更新されます。",
!                     IDC_HOSTNAME_PROMPT,10,87,205,22
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,150,225,9,NOT WS_VISIBLE
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 257, 87
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS(R) サーバーの構成"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     PUSHBUTTON      "取消し",IDCANCEL,103,70,50,14
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,38,200,11
!     LTEXT           "完了率(%):",IDC_PERCENT_COMPLETE_LABEL,40,55,45,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "現行操作:",IDC_CURRENT_STEP_LABEL,40,4,108,9,NOT 
!                     WS_VISIBLE
!     LTEXT           "現行ステップの記述 - 実行時に設定",IDC_CURRENT_STEP,40,
!                     4,213,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,101,55,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,4,20,21
!     LTEXT           "このコンピューターの構成を開始するには、「構成」ボタンを押してください。実行する構成ステップを変更するには、「戻る」ボタンを押してください。",
!                     IDC_STATUS_MSG,40,18,213,44
!     PUSHBUTTON      "ログの表示(&V)",IDNEXT,160,70,61,14,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "CellServCB 更新エラー"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LISTBOX         IDC_LIST,7,32,173,121,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "了解",IDOK,22,162,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "ヘルプ",9,130,162,50,14
!     LTEXT           "以下の AFS サーバーの CellServDB ファイルを自動的に更新できませんでした:",
!                     IDC_STATIC,7,7,173,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 273, 188
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "サルベージ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     DEFPUSHBUTTON   "了解",IDOK,79,97,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,133,97,50,14
!     PUSHBUTTON      "ヘルプ(&H)",9,187,97,50,14
!     CONTROL         "このファイル・サーバー上のパーティションをすべてサルベージ(&S)",
!                     IDC_SERVER,"Button",BS_AUTORADIOBUTTON,11,35,234,10
!     CONTROL         "選択したパーティション上のボリュームをすべてサルベージ(&P)",
!                     IDC_PARTITION,"Button",BS_AUTORADIOBUTTON,11,48,234,10
!     CONTROL         "選択したパーティション上の特定ボリュームをサルベージ(&V)",
!                     IDC_VOLUME,"Button",BS_AUTORADIOBUTTON,11,61,234,10
!     EDITTEXT        IDC_VOLUME_NAME,96,75,97,12,ES_AUTOHSCROLL | WS_DISABLED
!     PUSHBUTTON      "<< 拡張(&A) ",IDC_ADVANCED,7,97,50,14
!     GROUPBOX        "",IDC_STATIC,7,25,261,67
!     LTEXT           "ボリューム名(&N):",IDC_VOLUME_NAME_LABEL,27,76,60,8,
!                     WS_DISABLED
!     GROUPBOX        "拡張サルベージ・オプション",IDC_ADVANCED_FRAME,7,119,
!                     259,62
!     LTEXT           "一時ファイルのパス(&T):",IDC_TEMP_DIR_LABEL,17,165,89,8
!     EDITTEXT        IDC_LOG_FILE,113,147,133,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,188,130,21,12,ES_AUTOHSCROLL
!     LTEXT           "結果ログのファイル名(&L):",IDC_LOG_FILE_LABEL,17,149,89,
!                     8
!     EDITTEXT        IDC_TEMP_DIR,113,163,133,12,ES_AUTOHSCROLL
!     CONTROL         "並行サルベージ操作、プロセス数(&R):",
!                     IDC_NUM_PROCESSES_CHECKBOX,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,17,132,142,10
!     LTEXT           "サーバーまたはパーティション全体をサルベージすると、サーバーは一時的にオフラインになります。",
!                     IDC_STATIC,37,7,198,17
!     LTEXT           "注:",IDC_STATIC,9,7,15,8
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,180,243,8,NOT WS_VISIBLE
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS プリンシパル・パスワード"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_PW,50,39,140,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "了解",IDOK,31,61,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "ヘルプ",9,140,61,50,14
!     LTEXT           "AFS プリンシパル鍵は 3.5 以前の認証サーバーから取り出せません。AFS プリンシパル・パスワードを下に入力してください。",
!                     IDC_STATIC,7,7,183,21
!     LTEXT           "パスワード:",IDC_STATIC,7,41,37,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "ボリュームのサルベージ - 結果"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "クローズ(&C)",IDC_CLOSE,225,266,53,14,WS_DISABLED
!     PUSHBUTTON      "ヘルプ",9,280,266,50,14
!     LTEXT           "<実行時に設定>",IDC_LOG_TITLE,9,36,317,8
!     ICON            "",IDC_LOGO,7,7,20,20
!     LTEXT           "<実行時に設定>",IDC_SALVAGE_STATUS,33,9,293,16
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 322
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 240
!         HORZGUIDE, 207
!     END
! 
!     IDD_PARTITION_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 214
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 215
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_SYS_CONTROL_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 214
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 209
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 64
!         VERTGUIDE, 209
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 53
!         VERTGUIDE, 209
!         TOPMARGIN, 7
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 218
!         VERTGUIDE, 59
!         VERTGUIDE, 217
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 152
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 253
!         VERTGUIDE, 40
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 84
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 236
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 181
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""AFS(R) 構成アプリケーションおよびウィザード""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "次へ(&N) >"
!     IDS_FINISH              "終了(&F)"
!     IDS_HELP_TITLE          "ヘルプ・ボタンが押されました。"
!     IDS_HELP_DESC           "ヘルプは現時点では使用できません。"
!     IDS_CANCEL_DESC         "AFS クィック・スタート・ウィザードを取り消しますか?"
!     IDS_PARTITION_ALREADY_CREATED 
!                             "AFS パーティションがすでにこのマシンに存在します。"
!     IDS_NOT_A_FS_SERVER     "このマシンはファイル・サーバーとして構成されていません。ボリュームはファイル・サーバー・マシン上でのみ作成が可能です。"
!     IDS_ROOT_AFS_ALREADY_EXISTS "ルート・ボリュームがすでに存在します。"
!     IDS_NO_PARTITION_EXISTS "ルート・ボリュームを作成するパーティションが存在しません。ルート・ボリュームを作成するためには、パーティションが存在している必要があります。"
!     IDS_ALREADY_REPLICATED  "ルート・ボリュームはすでに複製されています。"
!     IDS_ROOT_AFS_DOESNT_EXIST 
!                             "ルート・ボリュームが存在しません。複製するためには、ルート・ボリュームが存在している必要があります。"
!     IDS_ALREADY_CONFIGURED  "このマシンはすでに AFS サーバーとして構成されています。"
!     IDS_NOTHING_TO_CONFIGURE "構成する対象が選択されていません。"
!     IDS_EXIT                "終了"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "ファイル・サーバーの開始中"
!     IDS_CANCEL_CONFIG_MSG   "この時点で取り消すと、コンピューターが部分的に AFS サーバーとして構成されたままになります。取り消しますか?"
!     IDS_WIZARD_APP_TITLE    "AFS(R) サーバー・クィック・スタート・ウィザード"
!     IDS_CANCEL_PENDING      "*** 取り消し保留中 - お待ちください... ***"
!     IDS_CHECK_FS_CONFIG     "ファイル・サーバー検査..."
!     IDS_CHECK_DB_CONFIG     "データベース・サーバー検査..."
!     IDS_CHECK_BAK_CONFIG    "バックアップ・サーバー検査..."
!     IDS_CHECK_PARTITION     "AFS パーティション検査..."
!     IDS_CHECK_ROOT_AFS      "ルート・ボリューム検査..."
!     IDS_CHECK_REP           "ルート・ボリューム複製検査..."
!     IDS_CANCEL_GET_CONFIG   "取り消し中...お待ちください..."
!     IDS_ALREADY_A_BACKUP_SERVER 
!                             "このマシンはすでにバックアップ・サーバーとして構成されています。"
!     IDS_NOT_A_DB_SERVER     "このマシンはデータベース・サーバーとして構成されていません。バックアップ・サーバーはデータベース・サーバー・マシン上でのみ実行が可能です。"
!     IDS_ALREADY_A_SYS_CONTROL_SERVER 
!                             "このマシンはすでにシステム制御サーバーとして構成されています。"
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT 
!                             "このマシンはすでにシステム制御クライアントとして構成されています。"
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "このマシンはデータベースまたはファイル・サーバーとして構成されていません。コンピューターはデータベースまたはファイル・サーバー・マシンとして構成されている場合にのみ、システム制御マシンとして構成することができます。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "ボリューム"
!     IDS_NAME_OR_ERROR       "名前 (またはエラー・メッセージ)"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "このマシンはデータベースまたはファイル・サーバーとして構成されていません。コンピューターはデータベースまたはファイル・サーバー・マシンとして構成されている場合にのみ、バイナリー配布マシンとして構成することができます。"
!     IDS_CHECK_SCS           "システム制御サーバー検査..."
!     IDS_CHECK_SCC           "システム制御クライアント検査..."
!     IDS_SIZE                "サイズ"
!     IDS_ERROR_SEP           ",   "
!     IDS_MUST_CONFIG_FS      "セル内の最初の AFS サーバーであるため、ファイル・サービスはデフォルトで構成されます。"
!     IDS_MUST_CONFIG_DB      "セル内の最初の AFS サーバーであるため、データベース・サービスはデフォルトで構成されます。"
!     IDS_MUST_MAKE_PARTITION "セル内の最初の AFS サーバーであるため、パーティションの作成が必要です。"
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "セル内の最初の AFS サーバーであるため、root.afs および root.cell ボリュームはデフォルトで作成されます。"
!     IDS_MUST_REPLICATE      "セル内の最初の AFS サーバーであるため、root.afs および root.cell ボリュームはデフォルトで複製されます。"
!     IDS_CHECK_AFS_CLIENT    "AFS クライアント・インストール検査..."
!     IDS_ERROR_HOST_NAME     "このマシンのホスト名を判別できませんでした。"
!     IDS_ERROR_DRIVE_COMPRESSED "ドライブが圧縮されています"
!     IDS_ERROR_CFG_HOST_OPEN "サーバー構成ライブラリーの初期化が失敗しました。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "AFS クライアントを停止中です"
!     IDS_ERROR_LOCAL_HOST_NAME 
!                             "このマシンのローカル・ホスト名を判別できませんでした。"
!     IDS_GET_TOKENS_ERROR    "トークンの取得に失敗しました。入力したユーザー名とパスワードが正しいかを確かめてください。"
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "ファイル・サービスが始動されていないため、サルベージを実行できません。ファイル・サービスを始動してから、サルベージを再試行してください。"
!     IDS_SALVAGING           "サルベージが進行中です。お待ちください..."
!     IDS_CURRENT_SALVAGE_LOG "サルベージ・ログの現行コンテンツ:"
!     IDS_FINAL_SALVAGE_LOG   "サルベージ・ログの最終コンテンツ:"
!     IDS_SALVAGE_COMPLETE    "サルベージが完了しました。"
!     IDS_CANT_GET_SALVAGE_LOG "サルベージ・ログを検索できません。"
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK 
!                             "サルベージ・ログをディスクに保管できません。"
!     IDS_VALIDATION_ERROR_TEMPLATE 
!                             "指定された %1 が無効です。%2 を再入力してください。"
!     IDS_CELL_NAME_VALIDATION_TYPE "セル名"
!     IDS_SERVER_NAME_VALIDATION_TYPE "サーバー名"
!     IDS_PASSWORD_VALIDATION_TYPE "パスワード"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "ユーザー名"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "AFS クライアントがインストールされていません。AFS サーバーを構成するためには、AFS クライアントをインストールしておく必要があります。"
!     IDS_ERROR_AFS_CLIENT_CHECK 
!                             "AFS クライアントがインストールされているかどうかを判別できませんでした。"
!     IDS_ERROR_FS_IS_NOT_NTFS "ファイル・システムが NTFS ではありません"
!     IDS_ERROR_DRIVE_HAS_DATA "ドライブにデータが含まれています"
!     IDS_PARTITION_STEP_DESC "AFS パーティションを作成します"
!     IDS_ERROR_DRIVE_CONTAINS_NT 
!                             "ドライブに NT インストレーションが含まれています"
!     IDS_DB_STEP_DESC        "データベース・サービスを開始します"
!     IDS_FS_STEP_DESC        "ファイル・サービスを開始します"
!     IDS_SCC_STEP_DESC       "システム制御クライアントを開始します"
!     IDS_SCS_STEP_DESC       "システム制御サーバーを開始します"
!     IDS_ROOT_AFS_STEP_DESC  "ルート・ボリュームを作成します"
!     IDS_REP_STEP_DESC       "ルート・ボリュームを複製します"
!     IDS_PARTITIONS_PAGE_TITLE "パーティション"
!     IDS_CONFIGURE           "構成(&C)"
!     IDS_DB_AND_BK_STEP_DESC "データベース・サービス (バックアップ・サーバーを含む) を開始します"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "AFS パーティションの作成中"
!     IDS_CONFIG_COMMON_FUNCS "すべてのサービスに共通の機能を構成中"
!     IDS_START_DB_STEP       "データベース・サービスの開始中"
!     IDS_START_SCC_STEP      "システム制御サービスをシステム制御クライアントとして開始中"
!     IDS_START_SCS_STEP      "システム制御サービスをシステム制御サーバーとして開始中"
!     IDS_CREATE_ROOT_AFS_STEP "root.afs ボリュームの作成中"
!     IDS_REP_STEP            "ルート・ボリュームの複製中"
!     IDS_START_AUTH_STEP     "このサーバーのトークンを取得中"
!     IDS_SERVICES_PAGE_TITLE "サービス"
!     IDS_CONFIG_SUCCEEDED    "構成が正常に行われました。"
!     IDS_CONFIG_CANCELED     "構成が取り消されました。"
!     IDS_CONFIG_FAILED       "構成が失敗しました。\r\n\r\n詳細ログ・ファイル %1 が %2 に作成されました。"
!     IDS_ERROR_NO_LICENSE_NUM "AFS ライセンス番号が見つかりませんでした。"
!     IDS_VERIFY_CLIENT_INSTALL_STEP "AFS クライアントのインストールを検査中"
!     IDS_SET_SERVER_LICENSE_STEP "このサーバーのライセンスを設定中"
!     IDS_DEFINE_CELL_NAME_STEP "このセルの名前を定義中"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP "このサーバーをセルのメンバーにしています"
!     IDS_START_BOS_SERVER_STEP "BOS サーバーの開始中"
!     IDS_START_AUTH_SERVER_STEP "認証サーバーの開始中"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP "このサーバーのプリンシパルと鍵を作成中"
!     IDS_START_DB_AND_BK_STEP 
!                             "データベース・サービス (バックアップ・サーバーを含む) の開始中"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP "セル管理プリンシパルの作成中"
!     IDS_START_CLIENT_STEP   "AFS クライアントの開始中"
!     IDS_SET_ROOT_ACL_STEP   "root.afs ボリュームの ACL を設定中"
!     IDS_CREATE_ROOT_CELL_STEP "root.cell ボリュームの作成中"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP 
!                             "標準マウント・ポイントを使用して root.cell ボリュームをマウント中"
!     IDS_SET_ROOT_CELL_ACL_STEP "root.cell ボリュームの ACL を設定中"
!     IDS_MOUNT_ROOT_CELL_RW_STEP 
!                             "読み取り/書き込みマウント・ポイントを使用して root.cell ボリュームをマウント中"
!     IDS_ENABLE_AUTH_CHECKING_STEP "認証チェックを使用可能にしています"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "管理トークンの取得中"
!     IDS_RESTART_SERVERS_STEP 
!                             "このマシンのすべてのサーバーを認証サーバーとして再始動中"
!     IDS_ALREADY_A_FS_SERVER "このマシンはすでにファイル・サーバーとして構成されています。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "このマシンはすでにデータベース・サーバーとして構成されています。"
!     IDS_INTRO_PAGE          "紹介"
!     IDS_INFO_PAGE           "セルおよびサーバー情報"
!     IDS_FS_PAGE             "ファイル・サービス"
!     IDS_DB_PAGE             "データベース・サービス"
!     IDS_CFG_TOOL_APP_TITLE  "AFS(R) サーバーの構成"
!     IDS_BK_PAGE             "バックアップ・サーバー"
!     IDS_ROOT_AFS_PAGE       "ルート AFS ボリューム"
!     IDS_NAME                "名前"
!     IDS_REP_PAGE            "複製"
!     IDS_SC_PAGE             "システム制御サービス"
!     IDS_CONFIG_PAGE         "システムの構成"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "AFS パーティション"
!     IDS_GRAPHIC_FONT        "ＭＳ Ｐゴシック, 9, B"
!     IDS_CURRENT_STEP        "現行ステップ:"
!     IDS_ADD_TO_CELLSERVDB_STEP "このサーバーを CellServDB に追加中"
!     IDS_RESTART_ALL_DB_SERVERS_STEP 
!                             "セル内のすべてのデータベース・サーバーを再始動中"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "構成が正常に行われました。注: セル内のすべての AFS クライアントの CellServDB ファイルが更新されていなければなりません。セルを他のサイトで使用可能にする場合は、データベース・サーバーの最新リストを AFS 製品サポートに提供してください。"
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG 
!                             "このマシンをシステム制御サーバーとして構成しますか?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG 
!                             "システム制御サーバーとして構成しません(&O)。"
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "AFS サーバーの構成では、AFS クライアントがサーバーと同じセルに構成されていることが必要です。これは自動的に行われます。"
!     IDS_INFO_PAGE2          "管理情報"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "構成が正常に行われました。\r\n\r\n注:  セルを他のサイトで使用可能にする場合は、データベース・サーバーのリストを AFS 製品サポートに提供してください。"
!     IDS_CONFIG_SCS          "セルのシステム制御サーバーとして構成。"
!     IDS_CONFIG_INTO_CELL_MSG "このホストをセルに構成します"
!     IDS_VIEW_LOG            "ログの表示(&V)"
!     IDS_VIEW_LOG_ERROR      "ログ・ファイルを表示できません"
!     IDS_ERROR_NO_LOG_FILE   "ログ・ファイルが存在しません。"
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED 
!                             "ホストの CellServDB が更新されました "
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED 
!                             "ホストの CellServDB の更新が失敗しました "
!     IDS_CELL_NAME_LEN_ERROR "入力したセル名が長すぎます。セル名は 64 文字以内で指定してください。"
!     IDS_CONFIG_CHECK_FAILED "このマシンの現行構成を判別できませんでした。"
!     IDS_YES                 "はい"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "いいえ"
!     IDS_FREE                "空きスペース"
!     IDS_TOTAL               "合計サイズ"
!     IDS_DRIVE2              "ドライブ"
!     IDS_SERVICE_STATUS      "状況"
!     IDS_SERVICE             "サービス"
!     IDS_FS_RUNNING          "ファイル・サービスは現在実行中です。"
!     IDS_FS_STOPPED          "ファイル・サービスは現在実行されていません。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "データベース・サービスは現在実行中です。"
!     IDS_DB_STOPPED          "データベース・サービスは現在実行されていません。"
!     IDS_BK_RUNNING          "バックアップ・サービスは現在実行中です。"
!     IDS_BK_STOPPED          "バックアップ・サービスは現在実行されていません。"
!     IDS_SCS_STOPPED         "システム制御サーバーは現在実行されていません。"
!     IDS_SCC_STOPPED         "システム制御クライアントは現在実行されていません。"
!     IDS_FS_HOW_TO_RUN       "ファイル・サービスを開始するには、上のボックスをチェックしてください。"
!     IDS_FS_HOW_TO_STOP      "ファイル・サービスを停止するには、上のボックスをチェック解除してください。"
!     IDS_DB_HOW_TO_RUN       "データベース・サービスを開始するには、上のボックスをチェックしてください。"
!     IDS_DB_HOW_TO_STOP      "データベース・サービスを停止するには、上のボックスをチェック解除してください。"
!     IDS_BK_HOW_TO_RUN       "バックアップ・サービスを開始するには、上のボックスをチェックしてください。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "バックアップ・サービスを停止するには、上のボックスをチェック解除してください。"
!     IDS_SCS_HOW_TO_RUN      "システム制御サーバーを開始するには、上のボックスをチェックしてください。"
!     IDS_SCS_HOW_TO_STOP     "システム制御サーバーを停止するには、上のボックスをチェック解除してください。"
!     IDS_DB_PARTIAL_CONFIG   "データベース・サービスは部分的に構成されています。"
!     IDS_DB_DETAILS          "詳しくは「詳細」ボタンを押してください。"
!     IDS_BK_DISABLED         "バックアップ・サービスが使用不可になっています。"
!     IDS_BK_ENABLE           "バックアップ・サービスを使用可能にするには、データベース・サービスを実行する必要があります。"
!     IDS_SC_DISABLED         "このサーバーは使用不可になっています。"
!     IDS_SC_ENABLE           "このサーバーを使用可能にするには、ファイル・サービスまたはデータベース・サービスを実行する必要があります。"
!     IDS_FS_WILL_RUN         "ファイル・サービスが開始されます。"
!     IDS_FS_WILL_STOP        "ファイル・サービスが停止されます。"
!     IDS_DB_WILL_RUN         "データベース・サービスが開始されます。"
!     IDS_DB_WILL_STOP        "データベース・サービスが停止されます。"
!     IDS_BK_WILL_RUN         "バックアップ・サービスが開始されます。"
!     IDS_BK_WILL_STOP        "バックアップ・サービスが停止されます。"
!     IDS_SCS_WILL_RUN        "システム制御サーバーが開始されます。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "システム制御サーバーが停止されます。"
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "ドライブはすでに AFS パーティションです"
!     IDS_VOLUME_HAS_NO_NAME  "<ボリュームに名前がありません>"
!     IDS_PARTITION_CREATED   "新規 AFS パーティションが正常に作成されました。"
!     IDS_PARTITION_EXISTS    "入力したパーティション名はすでに他のパーティションに使用されています。"
!     IDS_SCS_RUNNING         "システム制御サーバーは現在実行中です。"
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN 
!                             "このドライブにはごみ箱のみが含まれています。"
!     IDS_SCC_WILL_RUN        "システム制御クライアントが開始されます。"
!     IDS_SCC_WILL_STOP       "システム制御クライアントが停止されます。"
!     IDS_SCC_RUNNING         "システム制御クライアントは現在実行中です。"
!     IDS_SCC_HOW_TO_RUN      "システム制御クライアントを開始するには、上のボックスをチェックしてください。"
!     IDS_SCC_HOW_TO_STOP     "システム制御クライアントを停止するには、上のボックスをチェック解除してください。"
!     IDS_SCS_ENABLE          "このサーバーを使用可能にするには、システム制御クライアントの実行を停止する必要があります。"
!     IDS_SCC_ENABLE          "このサーバーを使用可能にするには、システム制御サーバーの実行を停止する必要があります。"
!     IDS_UNCONFIG_DB_STEP    "データベース・サービスの構成解除"
!     IDS_UNCONFIG_DB_STEP_DESC "データベース・サービスを構成解除します"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP 
!                             "データベース・サービス (およびバックアップ・サーバー) の構成解除"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC 
!                             "データベース・サービス (およびバックアップ・サーバー) を構成解除します"
!     IDS_UNCONFIG_BK_STEP    "バックアップ・サーバーの構成解除"
!     IDS_UNCONFIG_BK_STEP_DESC "バックアップ・サーバーを構成解除します"
!     IDS_UNCONFIG_FS_STEP    "ファイル・サービスの構成解除"
!     IDS_UNCONFIG_FS_STEP_DESC "ファイル・サービスを構成解除します"
!     IDS_UNCONFIG_SCS_STEP   "システム制御サーバーの構成解除"
!     IDS_UNCONFIG_SCS_STEP_DESC "システム制御サーバーを構成解除します"
!     IDS_UNCONFIG_SCC_STEP   "システム制御クライアントの構成解除"
!     IDS_UNCONFIG_SCC_STEP_DESC "システム制御クライアントを構成解除します"
!     IDS_INVALIDATE_CONFIG_INFO_STEP "このマシンの構成情報を無効にする"
!     IDS_CLOSE               "クローズ(&C)"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "CellServDB ファイルが下の AFS サーバーで更新できませんでした。これは重大なエラーではありません。\r\n"
!     IDS_DELETE_PARTITION_PROMPT "パーティション '%1' を削除しますか?"
!     IDS_INVALIDATE_CFG_INFO "現在このコンピューターで実行中の AFS サーバー・プロセスはありません。このマシンから構成情報を削除しますか?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "セルが存在しません。AFS 構成アプリケーションは、AFS セルに構成済みであるサーバー・マシンの構成にのみ使用できます。AFS 構成ウィザードを使用して新しいセルを開始することができます。"
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "AFS 構成アプリケーションを終了します。これは AFS サーバーとして構成済みのマシンでのみ実行が可能です。このマシンを AFS サーバーとしてもう一度構成するには、AFS 構成ウィザードを実行してください。"
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "このマシンは AFS サーバーとして構成されていません。AFS 構成アプリケーションは、AFS サーバー・マシンの構成にのみ使用できます。AFS 構成ウィザードを使用して、このマシンを AFS サーバーとして再構成することができます。"
!     IDS_GET_TOKENS_FAILED   "指定されたセルのトークンを取得できませんでした。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "バックアップ・サーバーの開始"
!     IDS_BK_STEP_DESC        "バックアップ・サーバーを開始します"
!     IDS_CONFIG_ERROR        "構成エラーが起きました"
!     IDS_CREATE_PARTITION_ERROR "パーティションを作成できません"
!     IDS_REMOVE_PARTITION_ERROR "パーティションを削除できません"
!     IDS_READ_PARTITIONS_ERROR "パーティション・テーブルを読み取れません"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\nCellServDB 更新プロセスが予期せず終了しました。サーバーのすべては更新されていません。"
!     IDS_GET_PARTITION_LIST_ERROR 
!                             "このサーバーのパーティションを判別できません"
!     IDS_EXPORTED            "エクスポート済み"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "ファイル・サービスの実行中にエクスポートされたパーティションを削除することはできません。このパーティションを削除する前にファイル・サービスを停止してください。"
!     IDS_CHECK_CONFIG_INFO   "有効な構成情報の検査中です..."
!     IDS_ERROR_CFG_HOST_CLOSE 
!                             "サーバー構成ライブラリーのクローズに失敗しました。"
!     IDS_FAILED_OPEN_CELL    "セルのオープンに失敗しました。"
!     IDS_FAILED_OPEN_NULL_CELL "NULL セル・ハンドルのオープンに失敗しました"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ルート・ボリュームが存在しない場合は作成しますか?"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ルート・ボリュームが複製されていない場合は複製しますか?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS サーバー"
!     IDS_CANT_INIT_ADMIN_LIBS 
!                             "このアプリケーションを実行できません。ライブラリー初期化が失敗しました。"
!     IDS_CANT_OPEN_LOG_FILE  "ログ・ファイルをオープンできません。"
!     IDS_NEED_CLIENT_INFO    "AFS クライアントがこのコンピューターで構成されていないため、AFS 構成アプリケーションを実行できません。この状態で AFS 構成ウィザードを使用できます。AFS 構成ウィザードを実行しますか?"
!     IDS_NEED_SERVER_INFO    "このコンピューターは AFS サーバーとして構成されていません。初めて AFS サーバーを構成するには、AFS 構成ウィザードを使用する必要があります。AFS 構成アプリケーションはその後で使用可能になります。AFS 構成ウィザードを実行してこのコンピューターを初期構成しますか?"
!     IDS_ADVANCED_OPEN       "<< 拡張(&A)"
!     IDS_ADVANCED_CLOSED     "拡張(&A) >>"
!     IDS_BOS_OPEN_FAILED     "サーバーに接続できません (bos オープンが失敗)。"
!     IDS_SALVAGE_ERROR       "サルベージ操作が失敗しました。"
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "指定したサルベージ・プロセス数が無効です。サルベージ・プロセス数は 1 から 32 の範囲でなければなりません。"
!     IDS_WRONG_CELL          "前のステップで、構成情報を検索するサーバーを指定しました。指定したサーバーは、結合するセルに属していません。"
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "セル内のいくつかのサーバー上の CellServDB ファイルが更新できませんでした。更新されたサーバーと更新されていないサーバーのリストは、次のファイルに保管された構成ログで見ることができます。 "
!     IDS_GET_CREDENTIALS_STEP "管理トークンの取得"
!     IDS_MUST_ENTER_SCS_NAME "構成を開始する前に、システム制御マシン名を入力してください。"
!     IDS_NOT_SAME_CELL       "AFS クライアントが AFS サーバー以外のセルに構成されています。AFS サーバーを構成する前に、まず AFS クライアントをサーバーのセルに再構成してください。"
!     IDS_LAST_DB_SERVER      "このマシンはセル内で実行されている最後のデータベース・サーバーです。続行してこのマシンのデータベース・サービスを構成解除した場合、セルは存在しなくなり、このマシンで実行中の他の AFS サービスはすべて構成解除されます。続行しますか?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "AFS プリンシパルのパスワードが無効です。"
!     IDS_ERROR_CLIENT_VERSION 
!                             "このコンピューターの AFS クライアントのバージョンと、AFS サーバーとの互換性がありません。AFS サーバーは少なくとも AFS クライアントのバージョン 3.5 を必要とします。"
!     IDS_CANT_MAP_ROOT_AFS   "ルート・ボリュームの ACL を設定するには、ドライブ名を AFS にマッピングする必要があります。現在使用可能なドライブ名がありません。ドライブ名を解放して、「了解」を押してください。"
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "パーティション名"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "ボリューム名"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE "サルベージ・プロセス数"
!     IDS_PATH_NAME_VALIDATION_TYPE "パス名"
!     IDS_FILE_NAME_VALIDATION_TYPE "ファイル名"
!     IDS_GENERIC_VALIDATION_TYPE "値"
! END
! 
! #endif    // Japanese resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
Index: openafs/src/WINNT/afssvrcfg/lang/ko_KR/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/ko_KR/afscfg.rc:1.3 openafs/src/WINNT/afssvrcfg/lang/ko_KR/afscfg.rc:1.3.2.1
*** openafs/src/WINNT/afssvrcfg/lang/ko_KR/afscfg.rc:1.3	Thu Jun 19 15:00:56 2003
--- openafs/src/WINNT/afssvrcfg/lang/ko_KR/afscfg.rc	Fri Mar 11 01:59:12 2005
***************
*** 7,1169 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ ｹﾗ ｸｶｹｻ"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x412
  #define AFS_VERINFO_CHARSET 949
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // Korean resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
! #ifdef _WIN32
! LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 320, 246
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "AFS ｼｭｹ ｺｸ･ ｽﾃﾀﾛ ｸｶｹｻ"
! FONT 9, "ｱｼｸｲ", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "ﾃｼﾒ(&L)",IDCANCEL,101,225,50,14
!     PUSHBUTTON      "< ｵﾚｷﾎ(&B)",IDBACK,155,225,50,14
!     DEFPUSHBUTTON   "ｴﾙﾀｽ(&N) >",IDNEXT,209,225,50,14
!     PUSHBUTTON      "ｵｵｿｸｻ(&H)",9,263,225,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,214,305,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,103,7,210,200
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ", 0, 0, 0x1
! BEGIN
!     CONTROL         "ﾆﾄﾆｼｼﾇ ﾀﾛｼｺ(&Y)",IDC_CREATE_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,81,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,104,
!                     186,52,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,93,172,20,12,ES_AUTOHSCROLL
!     CONTROL         "ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)",IDC_DONT_CREATE_PARTITION,
!                     "Button",BS_AUTORADIOBUTTON,0,191,102,8
!     LTEXT           "ﾀﾌ ﾆﾄﾀﾏ ｼｭｹｴﾂ ﾆﾄﾀﾏ ｹﾗ ﾇﾁｷﾎｱﾗｷ･ﾀｻ ﾀﾀ衂ﾑ ﾈﾄ AFS ﾅｬｶﾀﾌｾﾆｮｿ｡ ﾀｴﾞﾇﾕｴﾏｴﾙ. ﾀﾌ ｽﾃｽｺﾅﾛｿ｡ ﾀﾀ蠏ﾇｰ AFSｸｦ ﾅﾇﾘ ｰﾀｯｵﾇｾﾁ ｵ･ﾀﾌﾅﾍｸｦ ﾀｧﾇﾘ ﾃﾖｼﾒﾇﾑ ﾇﾏｳｪﾀﾇ NTFS ｺｼｷﾀﾌ AFS ﾆﾄﾆｼｼﾇ ﾀｿﾀｸｷﾎ ｻ鄙ｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ.",
!                     -1,0,12,209,35
!     LTEXT           "ﾆﾄﾆｼｼﾇｿ｡ ｻ鄙ﾇﾒ ｺｼｷ ｼｱﾅﾃ(&S)",IDC_SELECT_DRIVE,12,93,
!                     163,9
!     LTEXT           "AFS ﾆﾄﾆｼｼﾇ ﾀﾌｸｧ(&M):  /vicep",IDC_NAME_LABEL,12,174,72,
!                     8
!     LTEXT           "ﾀﾌ ﾆﾄﾀﾏ ｼｭｹｿ｡ AFS ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾏｽﾊｽﾃｿﾀ.",IDC_TITLE,0,
!                     0,209,8
!     LTEXT           "AFS ﾆﾄﾆｼｼﾇﾀｺ ｹｰｸｮﾀﾀｸｷﾎ NTFS ｺｼｷｰ ｰｰﾁｸｸ ﾆﾄﾆｼｼﾇ ﾁ､ｺｸ ｺｹｿ ｹﾗ ﾀｧﾄ｡ｿ｡ ｴﾇﾑ ﾆｯｼﾇﾑ ｸﾞﾅｸｵ･ﾀﾌﾅﾍｰ｡ ｵ鮴 ﾀﾖｽﾀｴﾏｴﾙ.",
!                     -1,0,49,208,18
!     LTEXT           "ﾀﾌ ﾆﾄﾀﾏ ｼｭｹｿ｡ ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",
!                     IDC_ASK_CREATE_PARTITION,0,69,207,11
!     LTEXT           "ﾇﾊｿ萇ﾑ ｰ豼, ｽﾇﾇ ﾁﾟ ｸﾞｽﾃﾁｸｦ ｼｳﾁ､ﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_PARTITION_MSG,0,162,209,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,210,92,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺ(&Y)",IDC_SHOULD_CONFIG_FILE_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,179,114,10
!     CONTROL         "ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)",
!                     IDC_DONT_CONFIG_FILE_SERVER,"Button",BS_AUTORADIOBUTTON,
!                     0,190,133,10
!     LTEXT           "AFS ﾆﾄﾀﾏ ｼｭｺｽｺｴﾂ ｿ菘ｻｵﾈ ﾆﾄﾀﾏ ｹﾗ ﾇﾁｷﾎｱﾗｷ･ﾀｻ ﾀﾌ ｼｭｹｿ｡ｼｭ AFS ﾅｬｶﾀﾌｾﾆｮｷﾎ ﾀｴﾞﾇﾕｴﾏｴﾙ. ﾀﾌ ｼｭｺｽｺｴﾂ ｶﾇﾇﾑ ｺｼｷ ﾀﾛｼｺ, ｻ霖ｦ, ﾀﾌｵｿ ｹﾗ ｺｹﾁｦｿﾍ ｰｰﾀｺ ｸｵ ｺｼｷ ｰｸｮ ﾁｶﾀﾛﾀｻ ﾃｳｸｮﾇﾕｴﾏｴﾙ.",
!                     -1,0,38,210,34
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ.",IDC_TITLE,0,0,209,
!                     8
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",
!                     IDC_CREATE_FS_QUESTION,0,166,210,8
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｷﾁｸ, ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ｱｸｼｺﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ.",
!                     -1,0,14,210,17
!     LTEXT           "ﾁﾖ: ﾀﾌ ｱ箍霑｡ｴﾂ ﾇﾀ AFSｿ｡ ﾆﾄﾀﾏﾀｻ ﾀﾀ衂ﾒ ｵｽｺﾅｩ ｵ蠍ﾀﾌｺｰ｡ ｾｽﾀｴﾏｴﾙ. ﾀﾌ ｱ箍雕ｦ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺﾇﾒ ｼｴﾂ ﾀﾖｾｵｵ AFS ｵ･ﾀﾌﾅﾍｸｦ ｱ箍霑｡ ﾀﾀ衂ﾒ ｼ ｾｽﾀｴﾏｴﾙ.",
!                     IDC_NO_DRIVES_NOTE,0,77,210,32,NOT WS_VISIBLE
!     LTEXT           "ｵｽｺﾅｩ ｵ蠍ﾀﾌｺｸｦ ﾀﾛｼｺﾇﾏｷﾁｸ, Windows NT ｵｽｺﾅｩ ｰｸｮﾀﾚｸｦ ｻ鄙ﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_DISK_ADMIN_NOTE,0,112,210,16,NOT WS_VISIBLE
!     LTEXT           "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺｵﾇｾｽﾀｴﾏｴﾙ.",IDC_MSG,0,
!                     166,209,34,NOT WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     LTEXT           "AFS ｼｭｹ ｺｸ･ ｽﾃﾀﾛ ｸｶｹｻ邵ｦ ｻ鄙ﾇﾏｰﾔ ｵﾈ ｰﾍﾀｻ ﾈｯｿｵﾇﾕｴﾏｴﾙ. ﾀﾌ ｸｶｹｻ邵ｦ ｻ鄙ﾇﾏｸ Windows NT ｽﾃｽｺﾅﾛｿ｡ｼｭ AFS ｼｭｹｸｦ ｺｸ｣ｰﾔ ｱｸｼｺﾇﾒ ｼ ﾀﾖｽﾀｴﾏｴﾙ.",
!                     IDC_TITLE,0,0,209,26
!     LTEXT           "ｴﾙﾀｽﾀｻ ｴｭｷｯ AFS ｼｭｹﾀﾇ ｱｸｼｺﾀｻ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ.",IDC_STATIC,
!                     0,166,209,8
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "ｷ酥ｮ ｺｼｷ ｺｹﾁｦ(&Y)",IDC_REPLICATE,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,115,10
!     CONTROL         "ｷ酥ｮ ｺｼｷﾀｻ ｺｹﾁｦﾇﾏﾁ ｾﾊﾀｽ(&O)",IDC_DONT_REPLICATE,
!                     "Button",BS_AUTORADIOBUTTON,0,190,134,10
!     LTEXT           "ｺｹﾁｦｴﾂ ﾁﾖｷﾎ ｴﾙｸ･ ﾆﾄﾀﾏ ｼｭｹﾀﾇ ｿｩｷｯ ﾆﾄﾆｼｼﾇｿ｡ ﾀﾖｴﾂ ｺｼｷﾀﾇ ﾀﾐｱ-ﾀｿ ｺｹｻ郤ｻﾀｻ ﾀﾛｼｺﾇﾏｴﾂ ﾇﾁｷﾎｼｼｽｺﾀﾔｴﾏｴﾙ. ｺｹﾁｦｴﾂ ｳﾗﾆｮｿﾅｩ ﾀﾌｺ･ﾆｮｿ｡ｼｭ ｺｼｷﾀﾇ ｰ｡ｿｵｵｸｦ ﾁｰ｡ｽﾃﾅｵｴﾏｴﾙ.",
!                     IDC_STATIC,0,36,208,25
!     LTEXT           "ｷ酥ｮ ｺｼｷﾀｻ ｺｹﾁｦﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",IDC_REPLICATE_QUESTION,0,
!                     166,209,8
!     LTEXT           "ｺｹﾁｦｴﾂ ﾀﾚﾁﾖ ｾﾗｼｼｽｺｵﾇｴﾂ ｺｼｷｿ｡ ｴﾇﾑ ｿ菘ｻﾀｸｷﾎ ﾀﾎﾇﾘ ﾇﾏｳｪﾀﾇ ｼｭｹｿ｡ ｰｺﾎﾇﾏｰ｡ ｰﾉｸｮｴﾂ ｰﾍﾀｻ ｹ戝ﾇﾏｴﾂ ｵ･ ｵｵｿﾀﾌ ｵﾋｴﾏｴﾙ.",
!                     IDC_STATIC,0,90,209,25
!     LTEXT           "ｼｿ ｷ酥ｮ ｺｼｷ ｺｹﾁｦ",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾀﾌ AFS ｼｿｿ｡ ﾀﾖｴﾂ ｴﾙｸ･ ｺｼｷﾀｻ ｺｹﾁｦﾇﾒ ｰ霾ｹﾀﾌｶｸ, ｸﾕﾀ ｷ酥ｮ ｺｼｷﾀｻ ｺｹﾁｦﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ.",
!                     IDC_STATIC,0,15,209,16
!     LTEXT           "ｺｼｷﾀﾌ ｵ鮴 ﾀﾖｴﾂ ｼｭｹ ﾁﾟ ﾇﾏｳｪｸｦ ｻ鄙ﾇﾒ ｼ ｾﾀｸｹﾇｷﾎ ｼｭｹ ｺﾎﾁｷ ｻﾈｲﾀﾌ ｹﾟｻﾇﾏﾁｸｸ, ｴﾙｸ･ ｼｭｹｿ｡ｼｭ ｱﾗ ｺｼｷｿ｡ ｾﾗｼｼｽｺﾇﾒ ｼ ﾀﾖｽﾀｴﾏｴﾙ. ",
!                     IDC_STATIC,0,67,209,19
!     LTEXT           "ﾇﾊｿ萇ﾑ ｰ豼, ｽﾇﾇ ﾁﾟ ｸﾞｽﾃﾁｸｦ ｼｳﾁ､ﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_CANT_REPLICATE_MSG,0,166,209,34,NOT WS_VISIBLE | NOT 
!                     WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "ｷ酥ｮ ｺｼｷ ﾀﾛｼｺ(&Y)",IDC_CREATE_ROOT_VOLUMES,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,108,10
!     CONTROL         "ｷ酥ｮ ｺｼｷﾀｻ ﾀﾛｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)",
!                     IDC_DONT_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON,
!                     0,190,124,10
!     LTEXT           "AFSｿ｡ｼｭ ｺｼｷﾀｺ ｽﾃｽｺﾅﾛ ｰｸｮｸｦ ｽｱｰﾔﾇﾏｱ ﾀｧﾇﾘ ﾇﾏｳｪﾀﾇ ｴﾜﾀｧｷﾎ ﾁ､ｸｮﾇﾑ ｿｬｰｵﾈ ﾆﾄﾀﾏｵ鯊ﾇ ｸﾀｽﾀﾔｴﾏｴﾙ. ",
!                     IDC_STATIC,0,15,209,17
!     LTEXT           "ｷ酥ｮ ｺｼｷﾀｻ ﾀﾛｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",IDC_ROOT_AFS_QUESTION,0,
!                     166,209,8
!     LTEXT           "ｼｿﾀﾇ ｷ酥ｮ ｺｼｷﾀｻ ﾀﾛｼｺﾇﾏｽﾊｽﾃｿﾀ.",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾀﾏｴﾜ ｷ酥ｮ ｺｼｷﾀﾌ ﾀﾛｼｺｵﾇｸ, AFS ﾆﾄﾀﾏ ｰｰ｣ｿ｡ｼｭ ﾀﾚｵｿﾀｸｷﾎ ｾﾗｼｼｽｺﾇﾒ ｼ ﾀﾖｽﾀｴﾏｴﾙ.",
!                     IDC_STATIC,0,88,209,17
!     LTEXT           "ﾇﾊｿ萇ﾑ ｰ豼, ｽﾇﾇ ﾁﾟ ｸﾞｽﾃﾁｸｦ ｼｳﾁ､ﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_ROOT_AFS_MSG,0,166,209,33,NOT WS_VISIBLE
!     LTEXT           "root.afs ｺｼｷﾀｺ AFS ﾆﾄﾀﾏ ｰｰ｣ﾀﾇ ｷ酥ｮﾀﾔｴﾏｴﾙ. root.cell ｺｼｷﾀｺ AFS ﾆﾄﾀﾏ ｰｰ｣ｿ｡ｼｭ ﾀﾌ ｼｿﾀﾇ ｼｭｺﾆｮｸｮﾀﾇ ｷ酥ｮﾀﾌｸ root.afsﾀﾇ ｸｶｿﾆｮ ﾆﾀﾎﾆｮｸｦ ﾅﾇﾘ ｾﾗｼｼｽｺｵﾋｴﾏｴﾙ. ",
!                     IDC_STATIC,0,51,209,25
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 84
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "AFS ｼｭｹ ｱｸｼｺ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,38,148,14
!     LTEXT           "ﾁｶﾀﾛ ﾅﾘｽｺﾆｮ - ｽﾇﾇ ﾁﾟ ｼｳﾁ､.",IDC_OPERATION,35,20,145,10
!     ICON            "",IDC_LOGO,7,7,20,20
!     PUSHBUTTON      "ﾃｼﾒ",IDCANCEL,73,63,50,14
!     LTEXT           "ﾇﾀ ｱｸｼｺ ﾆﾇｺｰ:",IDC_OPERATION2,35,7,156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "ｹ鮴 ｼｭｹ ｱｸｼｺ(&Y)",IDC_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,1,171,128,10
!     CONTROL         "ｹ鮴 ｼｭｹｸｦ ｱｸｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,1,183,147,10
!     LTEXT           "ｹ鮴 ｼｭｹｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺｵﾈ ｱ箍霑｡ｼｭｸｸ ｽﾇﾇ犒ﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ. ｶﾇﾇﾑ, ｹ鮴 ｼｭｹｰ｡ ｼｿﾀﾇ ﾇﾑ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｿ｡ｼｭ ｽﾇﾇ犒ﾇｸ, ｼｿﾀﾇ ｸｵ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｿ｡ｼｭ ｽﾇﾇ犒ﾇｾｾﾟ ﾇﾕｴﾏｴﾙ. ",
!                     -1,0,38,205,27
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｹ鮴 ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",
!                     IDC_BACKUP_SERVER_QUESTION,0,147,209,10
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｹ鮴 ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ.",IDC_TITLE,0,0,207,
!                     8
!     LTEXT           "ｹ鮴 ｼｭｹｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺﾀﾇ ｼｱﾅﾃﾀ ｱ箒ﾉﾀﾔｴﾏｴﾙ.",
!                     -1,0,14,209,16
!     LTEXT           "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺｵﾇｾ ﾀﾖｽﾀｴﾏｴﾙ.",
!                     IDC_CANT_BACKUP_MSG,0,158,210,33,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｷﾎ ｱｸｼｺ(&S)",IDC_SYS_CONTROL_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,151,141,10
!     CONTROL         "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｷﾎ ｱｸｼｺ(&C)",
!                     IDC_SYS_CONTROL_CLIENT,"Button",BS_AUTORADIOBUTTON,0,164,
!                     131,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,90,174,113,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮ ｶﾇｴﾂ ｼｭｹｷﾎ ｱｸｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON,0,190,183,
!                     9
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｴﾂ ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｷﾎ ｽﾇﾇ ﾁﾟﾀﾎ ｱ簀ｸ AFS ｼｭｹ ｱ箍霑｡ ｰﾅ ｱｸｼｺ ﾆﾄﾀﾏﾀｻ ﾁｦｰﾇﾕｴﾏｴﾙ. AFS ｼｿﾀｺ ﾇﾏｳｪﾀﾇ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｸｸ ｽﾇﾇ猊ﾘｾﾟ ﾇﾕｴﾏｴﾙ.",
!                     -1,0,14,209,25
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ ｶﾇｴﾂ ﾅｬｶﾀﾌｾﾆｮｷﾎ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ ｶﾇｴﾂ ﾅｬｶﾀﾌｾﾆｮｷﾎ ｱｸｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,0,131,207,17
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｴﾂ ｼｿﾀﾇ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｿ｡ｼｭ AFS ｱｸｼｺ ﾆﾄﾀﾏｿ｡ ｻ鄙ｰ｡ｴﾉﾇﾑ ｸｵ ｰｻｽﾅﾀｻ ｼｽﾅﾇﾕｴﾏｴﾙ.",
!                     IDC_SYS_CONTROL_CLIENT_DESC,0,43,209,18
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ(&Y):",IDC_SYS_CONTROL_MACHINE_LABEL,15,
!                     176,73,8,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,0,166,210,34,NOT WS_VISIBLE
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     LTEXT           "ﾀﾌｴﾂ ﾀﾌ ｽﾃｽｺﾅﾛｿ｡ｼｭ AFS ｼｭｹｸｦ ｱｸｼｺﾇﾏｴﾂ ﾇﾊｿ萇ﾑ ﾁ､ｺｸﾀﾔｴﾏｴﾙ.",
!                     IDC_ALL_NEEDED_MSG,1,19,209,9
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｼｿ <ｽﾇﾇ ﾁﾟ ｼｳﾁ､>ﾀｸｷﾎ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ",IDC_TITLE,
!                     1,0,208,8
!     LTEXT           "ｴﾙﾀｽ ｱｸｼｺ ｴﾜｰ隹｡ ｼﾇ犒ﾋｴﾏｴﾙ.",IDC_FOLLOWING_STEPS_MSG,1,
!                     30,187,8
!     LTEXT           "ｴﾜｰ 1 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP1,22,42,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ｴﾜｰ 3 - ｷｱﾅｸﾀﾓｽﾃ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP3,22,65,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ｴﾜｰ 2 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP2,22,53,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ｴﾜｰ 4 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP4,22,77,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ｴﾜｰ 5 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP5,22,89,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ｴﾜｰ 6 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP6,22,101,179,8,
!                     NOT WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,190,200,9
!     LTEXT           "ｴﾜｰ 8 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP8,22,125,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ｴﾜｰ 7 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP7,22,113,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ﾇﾊｿ萇ﾑ ｰ豼, ｽﾇﾇ ﾁﾟ ｸﾞｽﾃﾁｸｦ ｼｳﾁ､ﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_CANT_CONFIG_MSG,1,9,200,9,NOT WS_VISIBLE
!     LTEXT           "ﾇﾀ ﾁｶﾀﾛ:",IDC_CURRENT_STEP_LABEL,1,137,39,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ﾀﾌ ﾄﾄﾇｻﾅﾍﾀﾇ ｱｸｼｺﾀｻ ｽﾃﾀﾛﾇﾏｷﾁｸ, ｱｸｼｺ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ. ｼﾇ猊ﾒ ｱｸｼｺ ｴﾜｰ雕ｦ ｺｯｰ貮ﾏｷﾁｸ, ｵﾚｷﾎ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ.",
!                     IDC_STATUS_MSG,1,147,206,32
!     LTEXT           "ﾇﾀ ｴﾜｰ ｼｳｸ - ｽﾇﾇ ﾁﾟ ｼｳﾁ､",IDC_CURRENT_STEP,1,167,
!                     208,8,NOT WS_VISIBLE
!     LTEXT           "ｿﾏｷ ﾁﾇ犢:",IDC_PERCENT_COMPLETE_LABEL,1,179,42,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,49,177,49,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP1_GRAPHIC,11,40,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,11,52,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,11,64,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,11,76,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,11,88,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,11,100,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,11,112,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,11,124,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,64,55,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,64,71,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,64,87,138,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,101,155,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,140,154,9,14
!     LTEXT           "ｰｸｮ ﾁ､ｺｸ",IDC_TITLE,0,0,202,8
!     LTEXT           "ﾀﾌｸｧ(&N):",IDC_ADMIN_NAME_LABEL,7,57,22,8
!     LTEXT           "ｾﾏﾈ｣(&P):",IDC_ADMIN_PW_LABEL,7,73,34,8
!     GROUPBOX        "ｰ霖､ ﾀﾌｸｧ ｹﾗ ｾﾏﾈ｣",IDC_ADMIN_INFO_FRAME,0,41,210,65
!     LTEXT           "ｾﾏﾈ｣ ﾈｮﾀﾎ(&V):",IDC_VERIFY_ADMIN_PW_LABEL,7,90,48,8
!     LTEXT           "ｴﾙﾀｽ ﾁ､ｺｸｴﾂ ｻｷﾎｿ ｼｿｿ｡ ｴﾇﾑ ｰｸｮ ｰ霖､ﾀｻ ﾀﾛｼｺﾇﾒ ｶｧ ﾇﾊｿ萇ﾕｴﾏｴﾙ.",
!                     IDC_STATIC,0,15,209,17
!     CONTROL         "ｱ簔ｸ AFS UID ｻ鄙(&S)",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,157,88,10
!     CONTROL         "ｴﾙﾀｽﾀｸｷﾎ ｻ鄙ｰ｡ｴﾉﾇﾑ AFS UID ｻ鄙(&U)",IDC_USE_NEXT_UID,
!                     "Button",BS_AUTORADIOBUTTON,6,144,159,10
!     GROUPBOX        "AFS UID",IDC_STATIC,0,118,209,57
!     LTEXT           "AFS ｰｸｮ ｰ霖､ｿ｡ ｴﾇﾑ ｻ鄙ﾀﾚ IDｸｦ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_STATIC,6,130,196,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺﾇﾔ(&Y)",IDC_CONFIG_DB_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,110,134,10
!     CONTROL         "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,0,
!                     167,153,10
!     LTEXT           "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｴﾂ AFS ｼｿｿ｡ｼｭ ﾇﾊｿ萇ﾑ ｺｹﾁｦｵﾈ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｼﾆｮｸｦ ﾀｯﾁﾇﾕｴﾏｴﾙ. ﾀﾌ ｼｭｺｽｺｴﾂ ｼｿｿ｡ ｴﾇﾑ ｸｵ ｰ霖､, ｺｼｷ ﾀｧﾄ｡ ｹﾗ(ｼｱﾅﾃﾀ) ｹ鮴 ﾁ､ｺｸｸｦ ﾀｯﾁﾇﾕｴﾏｴﾙ.",
!                     -1,0,38,209,54
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",
!                     IDC_DB_SERVER_QUESTION,1,97,209,10
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ.",IDC_TITLE,
!                     0,0,209,8
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｷﾁｸ, ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｱｸｼｺﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ. ",
!                     -1,0,14,209,16
!     LTEXT           "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺｵﾇｾ ﾀﾖｽﾀｴﾏｴﾙ.",
!                     IDC_MSG,1,182,201,9,NOT WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,81,143,119,12,ES_AUTOHSCROLL
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ(&y):",IDC_SYS_CONTROL_MACHINE_LABEL,9,
!                     145,69,10
!     LTEXT           "ｼｿｿ｡ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｰ｡ ﾀﾖﾀｸｸ, ｱﾗ ﾈ｣ｽｺﾆｮ ﾀﾌｸｧﾀｻ ｾﾆｷ｡ｿ｡ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ. AFS ｱｸｼｺ ﾆﾄﾀﾏﾀｺ ﾀﾌ ｼｭｹｸｦ ﾅﾇﾘ ｰｻｽﾅｵﾋｴﾏｴﾙ.",
!                     IDC_SCM_PROMPT,9,124,195,17
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ", 0, 0, 0x1
! BEGIN
!     CONTROL         "ﾀﾌ ﾈ｣ｽｺﾆｮｸｦ ｱ簔ｸ AFS ｼｿ ｳｻﾀﾇ ｼｭｹｷﾎ ｸｸｵ(&M)",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON,0,37,
!                     160,10
!     CONTROL         "ﾀﾌｰﾍﾀﾌ ｻ AFS ｼｿ ｳｻﾀﾇ ﾃｹ ｹﾂｰ ｼｭｹｰ｡ ｵﾊ(&T)",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,0,49,153,10
!     EDITTEXT        IDC_CELL_NAME,64,91,139,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,64,166,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,64,180,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "ｼｿ ｹﾗ ｼｭｹ ﾁ､ｺｸ",IDC_TITLE,0,0,203,8
!     LTEXT           "ｼｿ ﾀﾌｸｧ(&C):",IDC_CELL_NAME_LABEL,7,93,35,8
!     LTEXT           "ｾﾏﾈ｣(&P):",IDC_SERVER_PW_LABEL,7,167,34,8,WS_DISABLED
!     LTEXT           "AFS ｼｿﾀﾇ ﾀﾌｸｧﾀｻ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ.",IDC_CELL_NAME_PROMPT,8,
!                     78,195,11
!     LTEXT           "AFS ｰ霖､ｿ｡ ｴﾇﾑ ｾﾏﾈ｣ｸｦ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ. ｸｵ AFS ｼｭｹｴﾂ ﾀﾌ ｰ霖､ﾀｸｷﾎｼｭ ﾅ菁ｫﾀｻ ﾈｮｺｸﾇﾕｴﾏｴﾙ.",
!                     IDC_SERVER_PW_PROMPT,7,130,196,19,WS_DISABLED
!     GROUPBOX        "ｼｿ ﾀﾌｸｧ",IDC_CELL_NAME_FRAME,0,67,210,43
!     GROUPBOX        "ｼｭｹ ｾﾏﾈ｣",IDC_SERVER_PW_FRAME,0,119,210,81,WS_DISABLED
!     LTEXT           "ｾﾏﾈ｣ ﾈｮﾀﾎ(&V):",IDC_VERIFY_PW_LABEL,7,180,52,8,
!                     WS_DISABLED
!     LTEXT           "AFS ｼｿﾀｺ ﾆﾄﾀﾏ ｾﾗｼｼｽｺｿ｡ ｴﾇﾘ ﾀﾏﾁ､ﾇﾑ ﾀﾌｸｧ ｰｰ｣ﾀｻ ﾁｦｰﾇﾏｴﾂ ｼｭｹﾀﾇ ｸﾀｽﾀﾔｴﾏｴﾙ.",
!                     IDC_CELL_NAME_PROMPT2,1,14,202,17
!     LTEXT           "ﾀﾌｸｧ:",IDC_PRINCIPAL_LABEL,7,152,22,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,64,150,139,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,53,43,149,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,53,59,149,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,53,132,149,12,ES_AUTOHSCROLL
!     LTEXT           "ｰｸｮ ﾁ､ｺｸ",IDC_TITLE,0,0,209,8
!     LTEXT           "ｾﾆｷ｡ｿ｡ ｰｸｮ ｰ霖､ ﾁ､ｺｸｸｦ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_ADMIN_INFO_PROMPT,7,30,196,10
!     LTEXT           "ﾀﾌｸｧ(&N):",IDC_ADMIN_NAME_LABEL,7,46,22,8
!     LTEXT           "ｾﾏﾈ｣(&P):",IDC_ADMIN_PW_LABEL,7,62,34,8
!     GROUPBOX        "ｰ霖､ ﾀﾌｸｧ ｹﾗ ｾﾏﾈ｣",IDC_ADMIN_INFO_FRAME,0,17,210,62
!     GROUPBOX        "ｱ簔ｸﾀﾇ AFS ｼｭｹ",IDC_HOSTNAME_FRAME,1,92,209,60
!     LTEXT           "AFS ｼｭｹ:",IDC_HOSTNAME_LABEL,9,134,37,8
!     LTEXT           "ﾁｶﾀﾎﾇﾒ ｼｿｿ｡ｼｭ ｴﾙｸ･ AFS ｼｭｹﾀﾇ ﾈ｣ｽｺﾆｮ ﾀﾌｸｧﾀｻ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ. AFS ｱｸｼｺ ﾁ､ｺｸｴﾂ ﾀﾌ ｼｭｹｿ｡ｼｭ ﾁｶﾈｸｵﾋｴﾏｴﾙ.",
!                     IDC_HOSTNAME_PROMPT,7,105,202,25
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 285
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "ｼｭｺｽｺ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,20,281,40
!     GROUPBOX        "",IDC_STATIC,7,66,281,43
!     GROUPBOX        "",IDC_STATIC,7,115,281,42
!     GROUPBOX        "",IDC_STATIC,7,161,281,44
!     CONTROL         "ﾆﾄﾀﾏ ｼｭｺｽｺ",IDC_FS_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,25,60,10
!     CONTROL         "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ",IDC_DB_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,72,82,10
!     PUSHBUTTON      "ﾀﾚｼｼﾈ...",IDC_DB_DETAILS,230,91,52,14,NOT WS_VISIBLE
!     CONTROL         "ｹ鮴 ｼｭｹ",IDC_BK_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,121,71,10
!     CONTROL         "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ",IDC_SCS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,168,98,10
!     EDITTEXT        IDC_SC_MACHINE,107,245,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "ﾀﾌ AFS ｼｭｹｿ｡ｼｭ ｽﾇﾇ猊ﾒ ｼｭｺｽｺｸｦ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_STATIC,7,7,156,8
!     LTEXT           "ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ.",IDC_FS_STATUS_MSG,14,
!                     38,261,8
!     LTEXT           "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｰ｡ ﾇﾀ ﾀﾏｺﾎｸｸ ｼｳﾄ｡ｵﾇｾｽﾀｴﾏｴﾙ.",
!                     IDC_DB_STATUS_MSG,14,85,208,8
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ(&Y):",IDC_SC_MACHINE_LABEL,31,247,70,8,
!                     WS_DISABLED
!     LTEXT           "ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_FS_ACTION_MSG,14,50,262,8
!     LTEXT           "ｴ ﾀﾚｼｼﾇﾑ ﾁ､ｺｸｸｦ ｾﾀｸｷﾁｸ, ﾀﾚｼｼﾈｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ.",
!                     IDC_DB_ACTION_MSG,14,96,209,8
!     LTEXT           "ｹ鮴 ｼｭｹｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ.",IDC_BK_STATUS_MSG,14,
!                     135,259,8
!     LTEXT           "ｹ鮴 ｼｭｹｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_BK_ACTION_MSG,14,147,262,8
!     LTEXT           "ﾀﾌ ｼｭｹｸｦ ｻ鄙ﾇﾏｷﾁｸ, ﾆﾄﾀﾏ ｼｭｺｽｺ ｶﾇｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｽﾇﾇ猊ﾘｾﾟ ﾇﾕｴﾏｴﾙ.",
!                     IDC_SCS_ACTION_MSG,14,193,268,9
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｺｽｺｴﾂ ﾇﾀ ｽﾇﾇ犒ﾇﾁ ｾﾊｰ ﾀﾖｽﾀｴﾏｴﾙ.",
!                     IDC_SCS_STATUS_MSG,14,180,263,9
!     GROUPBOX        "",IDC_STATIC,7,214,281,59
!     CONTROL         "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮ",IDC_SCC,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,221,95,10
!     LTEXT           "ﾀﾌ ｼｭｹｸｦ ｻ鄙 ﾇﾏｷﾁｸ, ﾆﾄﾀﾏ ｼｭｺｽｺ ｶﾇｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｽﾇﾇ猊ﾘｾﾟ ﾇﾕｴﾏｴﾙ.",
!                     IDC_SCC_ACTION_MSG,14,261,268,9
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｺｽｺｴﾂ ﾇﾀ ｽﾇﾇ犒ﾇﾁ ｾﾊｰ ﾀﾖｽﾀｴﾏｴﾙ.",
!                     IDC_SCC_STATUS_MSG,14,235,263,9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "ﾆﾄﾆｼｼﾇ"
! FONT 9, "ｱｼｸｲ", 0, 0, 0x1
! BEGIN
!     LTEXT           "ｴﾙﾀｽ AFS ﾆﾄﾆｼｼﾇﾀﾌ ﾄﾄﾇｻﾅﾍｿ｡ ﾀﾖﾀｽ(&A)",IDC_STATIC,8,7,175,
!                     8
!     PUSHBUTTON      "ﾀﾛｼｺ(&C)...",IDC_CREATE_PARTITIONS,17,118,53,14
!     LTEXT           "ﾆﾄﾆｼｼﾇ ｶﾇｴﾂ ﾆﾄﾆｼｼﾇﾀﾇ ｺｼｷﾀｻ ｺｹｿﾇﾏｷﾁｸ, ｸｷﾏｿ｡ｼｭ ﾆﾄﾆｼｼﾇﾀｻ ｼｱﾅﾃﾇﾏｰ ﾀｧﾀﾇ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ. ﾀﾌ ｼｭｹｿ｡ ﾀﾖｴﾂ ｸｵ ﾆﾄﾆｼｼﾇﾀｻ ｺｹｿﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ.",
!                     IDC_SALVAGE_MSG,30,179,250,25
!     PUSHBUTTON      "ｺｹｿ(&S)...",IDC_SALVAGE,17,159,53,14
!     LTEXT           "ﾆﾄﾆｼｼﾇﾀｻ ﾁｦｰﾅﾇﾏｷﾁｸ, ｸｷﾏｿ｡ｼｭ ﾆﾄﾆｼｼﾇﾀｻ ｼｱﾅﾃﾇﾏｰ ﾀｧﾀﾇ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ.",
!                     IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
!     PUSHBUTTON      "ﾁｦｰﾅ(&M)",IDC_REMOVE,17,217,53,14,WS_DISABLED
!     GROUPBOX        "ﾆﾄﾆｼｼﾇ",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
!                     281,79,WS_EX_CLIENTEDGE
!     LTEXT           "ﾀﾌ ｼｭｹｿ｡ ｻ ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ.",
!                     IDC_CREATE_MSG,30,136,254,8
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 264, 177
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "AFS ﾆﾄﾆｼｼﾇ ﾀﾛｼｺ"
! FONT 9, "ｱｼｸｲ", 0, 0, 0x1
! BEGIN
!     LTEXT           "ｾﾆｷ｡ ｸｷﾏｿ｡ｼｭ ｻ ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾒ NTFS ｺｼｷﾀｻ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_TITLE,7,5,250,8
!     LTEXT           "AFS ﾆﾄﾆｼｼﾇ ﾀﾌｸｧ:",IDC_NAME_STATIC,17,131,66,8
!     EDITTEXT        IDC_PARTITION_NAME,119,129,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ﾀﾛｼｺ(&C)",IDC_CREATE,96,158,50,14,WS_DISABLED
!     PUSHBUTTON      "ｴﾝｱ(&O)",IDC_CLOSE,152,158,50,14
!     PUSHBUTTON      "ｵｵｿｸｻ",9,207,158,50,14
!     GROUPBOX        "ﾆﾄﾆｼｼﾇ ｸﾅｰｳｺｯｼ",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,250,
!                     95,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 249, 193
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS ｼｭｹ ｱｸｼｺ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,59,33,151,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,59,49,151,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,59,110,151,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ｱｸｼｺ(&C)",IDOK,108,172,50,14,WS_DISABLED
!     PUSHBUTTON      "ﾃｼﾒ",IDCANCEL,48,172,50,14
!     PUSHBUTTON      "ｵｵｿｸｻ",9,192,172,50,14
!     LTEXT           "ｾﾆｷ｡ｿ｡ ｰｸｮ ｰ霖､ ﾁ､ｺｸｸｦ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_ADMIN_INFO_PROMPT,14,20,196,10
!     LTEXT           "ﾀﾌｸｧ(&N):",IDC_ADMIN_NAME_LABEL,15,36,22,8
!     LTEXT           "ｾﾏﾈ｣(&P):",IDC_ADMIN_PW_LABEL,15,52,34,8
!     GROUPBOX        "ｰ霖､ ﾀﾌｸｧ ｹﾗ ｾﾏﾈ｣",IDC_ADMIN_INFO_FRAME,7,7,235,62
!     GROUPBOX        "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ",IDC_HOSTNAME_FRAME,7,76,235,54
!     LTEXT           "ﾈ｣ｽｺﾆｮ ﾀﾌｸｧ(&H):",IDC_HOSTNAME_LABEL,15,112,40,8
!     LTEXT           "ｼｿｿ｡ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｰ｡ ﾀﾖﾀｸｸ, ｱﾗ ﾈ｣ｽｺﾆｮ ﾀﾌｸｧﾀｻ ｾﾆｷ｡ｿ｡ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ. AFS ｱｸｼｺ ﾆﾄﾀﾏﾀｺ ﾀﾌ ｼｭｹｸｦ ﾅﾇﾘ ｰｻｽﾅｵﾋｴﾏｴﾙ.",
!                     IDC_HOSTNAME_PROMPT,13,88,197,18
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 273, 107
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS ｼｭｹ ｱｸｼｺ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     PUSHBUTTON      "ﾃｼﾒ",IDCANCEL,107,88,50,12
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,76,200,8
!     LTEXT           "ｿﾏｷ ﾁﾇ犢:",IDC_PERCENT_COMPLETE_LABEL,40,65,61,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ﾇﾀ ﾁｶﾀﾛ:",IDC_CURRENT_STEP_LABEL,40,7,34,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ﾇﾀ ｴﾜｰ ｼｳｸ - ｽﾇﾇ ﾁﾟ ｼｳﾁ､",IDC_CURRENT_STEP,40,54,
!                     226,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,101,50,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,7,20,20
!     LTEXT           "ﾀﾌ ﾄﾄﾇｻﾅﾍﾀﾇ ｱｸｼｺﾀｻ ｽﾃﾀﾛﾇﾏｷﾁｸ, ｱｸｼｺ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ. ｼﾇ猊ﾒ ｱｸｼｺ ｴﾜｰ雕ｦ ｺｯｰ貮ﾏｷﾁｸ, ｵﾚｷﾎ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ.",
!                     IDC_STATUS_MSG,40,19,226,31
!     PUSHBUTTON      "ｷﾎｱﾗ ｺｸｱ(&V)",IDNEXT,159,88,50,12,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "CellServDB ｰｻｽﾅ ｿﾀｷ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     LISTBOX         IDC_LIST,7,26,173,127,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "ﾈｮﾀﾎ",IDOK,22,162,50,14
!     PUSHBUTTON      "ﾃｼﾒ",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "ｵｵｿｸｻ",9,130,162,50,14
!     LTEXT           "ｴﾙﾀｽ AFS ｼｭｹﾀﾇ CellServDB ﾆﾄﾀﾏﾀｺ ﾀﾚｵｿﾀｸｷﾎ ｰｻｽﾅｵﾉ ｼ ｾｽﾀｴﾏｴﾙ.",
!                     IDC_STATIC,7,7,173,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 259, 239
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "ｺｹｿ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     DEFPUSHBUTTON   "ﾈｮﾀﾎ",IDOK,79,99,50,14
!     PUSHBUTTON      "ﾃｼﾒ",IDCANCEL,133,99,50,14
!     PUSHBUTTON      "ｵｵｿｸｻ(&H)",9,187,99,50,14
!     CONTROL         "ﾇﾘｴ ﾆﾄﾀﾏ ｼｭｹｻﾀﾇ ｸｵ ﾆﾄﾆｼｼﾇ ｺｹｿ(&S)",IDC_SERVER,
!                     "Button",BS_AUTORADIOBUTTON,14,35,176,10
!     CONTROL         "ｼｱﾅﾃｵﾈ ﾆﾄﾆｼｼﾇｻﾀﾇ ｸｵ ｺｼｷ ｺｹｿ(&P)",IDC_PARTITION,
!                     "Button",BS_AUTORADIOBUTTON,14,48,177,10
!     CONTROL         "ｼｱﾅﾃｵﾈ ﾆﾄﾆｼｼﾇｻﾀﾇ ﾆｯﾁ､ ｺｼｷ ｺｹｿ(&V)",IDC_VOLUME,"Button",
!                     BS_AUTORADIOBUTTON,14,61,177,10
!     EDITTEXT        IDC_VOLUME_NAME,79,73,88,12,ES_AUTOHSCROLL | WS_DISABLED
!     PUSHBUTTON      "<< ｰｱﾞ(&A) ",IDC_ADVANCED,7,99,50,14
!     GROUPBOX        "",IDC_STATIC,7,25,245,67
!     LTEXT           "ｺｼｷ ﾀﾌｸｧ(&N):",IDC_VOLUME_NAME_LABEL,27,75,47,8,
!                     WS_DISABLED
!     GROUPBOX        "ｰｱﾞ ｺｹｿ ｿﾉｼﾇ",IDC_ADVANCED_FRAME,7,180,245,52
!     LTEXT           "ﾀﾓｽﾃ ﾆﾄﾀﾏ ｰ豺ﾎ(&T):",IDC_TEMP_DIR_LABEL,17,165,74,8
!     EDITTEXT        IDC_LOG_FILE,93,147,133,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,188,130,21,12,ES_AUTOHSCROLL
!     LTEXT           "ｰ皺 ｷﾎｱﾗﾀﾇ ﾆﾄﾀﾏ ﾀﾌｸｧ(&L):",IDC_LOG_FILE_LABEL,17,149,
!                     74,8
!     EDITTEXT        IDC_TEMP_DIR,93,163,133,12,ES_AUTOHSCROLL
!     CONTROL         "ｺｴｷﾄ ｺｹｿ ﾁｶﾀﾛ(&R), ﾇﾁｷﾎｼｼｽｺ ｼ:",
!                     IDC_NUM_PROCESSES_CHECKBOX,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,17,132,165,10
!     LTEXT           "ｼｭｹ ｶﾇｴﾂ ﾀﾃｼ ﾆﾄﾆｼｼﾇﾀｻ ｺｹｿﾇﾒ ｰ豼, ｼｭｹｴﾂ ﾀﾏｽﾃﾀﾀｸｷﾎ ｿﾀﾇﾁｶﾀﾎﾀﾌ ｵﾋｴﾏｴﾙ.",
!                     IDC_STATIC,34,7,218,17
!     LTEXT           "ﾁﾖ:",IDC_STATIC,7,7,16,8
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS ｰ霖､ ｾﾏﾈ｣"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     EDITTEXT        IDC_PW,48,39,142,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ﾈｮﾀﾎ",IDOK,31,61,50,14
!     PUSHBUTTON      "ﾃｼﾒ",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "ｵｵｿｸｻ",9,140,61,50,14
!     LTEXT           "AFS ｰ霖､ ﾅｰｴﾂ 3.5 ﾀﾌﾀ ﾀﾎﾁ ｼｭｹｿ｡ｼｭｴﾂ ｰﾋｻｵﾉ ｼ ｾｽﾀｴﾏｴﾙ. ｾﾆｷ｡ｿ｡ AFS ｰ霖､ ｾﾏﾈ｣ｸｦ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_STATIC,7,7,183,21
!     LTEXT           "ｾﾏﾈ｣:",IDC_STATIC,7,41,35,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "ｺｼｷ ｺｹｿ - ｰ皺"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "ｴﾝｱ(&C)",IDC_CLOSE,225,266,50,14,WS_DISABLED
!     PUSHBUTTON      "ｵｵｿｸｻ",9,280,266,50,14
!     LTEXT           "<ｽﾇﾇ ﾁﾟ ｼｳﾁ､>",IDC_LOG_TITLE,7,38,263,8
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "<ｽﾇﾇ ﾁﾟ ｼｳﾁ､>",IDC_SALVAGE_STATUS,37,15,185,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 313
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 239
!         HORZGUIDE, 207
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 209
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 201
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 203
!         VERTGUIDE, 64
!         VERTGUIDE, 203
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 53
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 278
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 242
!         VERTGUIDE, 59
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 186
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 266
!         VERTGUIDE, 40
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 100
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 252
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 232
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ ｹﾗ ｸｶｹｻ""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "ｴﾙﾀｽ(&N) >"
!     IDS_FINISH              "ﾁｾｷ(&F)"
!     IDS_HELP_TITLE          "ｵｵｿｸｻ ｴﾜﾃﾟｸｦ ｴｩｸｧ"
!     IDS_HELP_DESC           "ﾁｱﾝﾀｺ ｵｵｿｸｻﾀｻ ｻ鄙ﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ."
!     IDS_CANCEL_DESC         "AFS ｺｸ･ ｽﾃﾀﾛ ｸｶｹｻ邵ｦ ﾃｼﾒﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
!     IDS_PARTITION_ALREADY_CREATED "AFS ﾆﾄﾆｼｼﾇﾀﾌ ﾀﾌｹﾌ ﾀﾌ ｱ箍霑｡ ﾁｸﾀ酩ﾕｴﾏｴﾙ."
!     IDS_NOT_A_FS_SERVER     "ﾀﾌ ｱ箍雍ﾂ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺｵﾇﾁ ｾﾊｾﾒｽﾀｴﾏｴﾙ. ｺｼｷﾀｺ ﾆﾄﾀﾏ ｼｭｹ ｱ箍霑｡ｼｭｸｸ ﾀﾛｼｺｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_ROOT_AFS_ALREADY_EXISTS "ｷ酥ｮ ｺｼｷﾀﾌ ﾀﾌｹﾌ ﾁｸﾀ酩ﾕｴﾏｴﾙ."
!     IDS_NO_PARTITION_EXISTS "ｷ酥ｮ ｺｼｷﾀｻ ﾀﾛｼｺﾇﾒ ﾆﾄﾆｼｼﾇﾀﾌ ｾｽﾀｴﾏｴﾙ. ｷ酥ｮ ｺｼｷﾀｻ ﾀﾛｼｺﾇﾏｷﾁｸ ｸﾕﾀ ﾆﾄﾆｼｼﾇﾀﾌ ﾁｸﾀ酩ﾘｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_ALREADY_REPLICATED  "ｷ酥ｮ ｺｼｷﾀﾌ ﾀﾌｹﾌ ｺｹﾁｦｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_ROOT_AFS_DOESNT_EXIST 
!                             "ｷ酥ｮ ｺｼｷﾀﾌ ｾｽﾀｴﾏｴﾙ. ｷ酥ｮ ｺｼｷﾀﾌ ﾀﾖｾｾﾟ ﾀﾌｸｦ ｺｹﾁｦﾇﾒ ｼ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_ALREADY_CONFIGURED  "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ AFS ｼｭｹｷﾎ ｱｸｼｺｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_NOTHING_TO_CONFIGURE "ｱｸｼｺﾇﾒ ｳｻｿﾀｻ ｼｱﾅﾃﾇﾏﾁ ｾﾊｾﾒｽﾀｴﾏｴﾙ."
!     IDS_EXIT                "ﾁｾｷ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "ﾆﾄﾀﾏ ｼｭｺｽｺ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_CANCEL_CONFIG_MSG   "ﾀﾌ ｽﾃﾁ｡ｿ｡ｼｭ ﾃｼﾒﾇﾏｸ, ﾄﾄﾇｻﾅﾍｴﾂ ｺﾎｺﾐﾀﾀｸｷﾎｸｸ AFS ｼｭｹｷﾎ ｱｸｼｺｵﾋｴﾏｴﾙ. ｱﾗｷ｡ｵｵ ﾃｼﾒﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
!     IDS_WIZARD_APP_TITLE    "AFS ｼｭｹ ｺｸ･ ｽﾃﾀﾛ ｸｶｹｻ"
!     IDS_CANCEL_PENDING      "*** ｺｸｷ ﾃｼﾒ - ﾀ眇ﾃｸｸ ｱ箒ﾙｸｮｽﾊｽﾃｿﾀ...***"
!     IDS_CHECK_FS_CONFIG     "ﾆﾄﾀﾏ ｼｭｹ ﾈｮﾀﾎ..."
!     IDS_CHECK_DB_CONFIG     "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹ ﾈｮﾀﾎ..."
!     IDS_CHECK_BAK_CONFIG    "ｹ鮴 ｼｭｹ ﾈｮﾀﾎ..."
!     IDS_CHECK_PARTITION     "AFS ﾆﾄﾆｼｼﾇ ﾈｮﾀﾎ..."
!     IDS_CHECK_ROOT_AFS      "ｷ酥ｮ ｺｼｷ ﾈｮﾀﾎ..."
!     IDS_CHECK_REP           "ｷ酥ｮ ｺｼｷ ｺｹﾁｦ ﾈｮﾀﾎ..."
!     IDS_CANCEL_GET_CONFIG   "ﾃｼﾒ ﾁﾟ...ﾀ眇ﾃｸｸ ｱ箒ﾙｸｮｽﾊｽﾃｿﾀ..."
!     IDS_ALREADY_A_BACKUP_SERVER "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ｹ鮴 ｼｭｹｷﾎ ｱｸｼｺｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_NOT_A_DB_SERVER     "ﾀﾌ ｱ箍雍ﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺｵﾇﾁ ｾﾊｾﾒｽﾀｴﾏｴﾙ. ｹ鮴 ｼｭｹｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹ ｱ箍霑｡ｼｭｸｸ ｽﾇﾇ犒ﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_ALREADY_A_SYS_CONTROL_SERVER 
!                             "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｷﾎ ｱｸｼｺｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT 
!                             "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｷﾎ ｱｸｼｺｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "ﾀﾌ ｱ箍雍ﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｶﾇｴﾂ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺｵﾇﾁ ｾﾊｾﾒｽﾀｴﾏｴﾙ. ﾄﾄﾇｻﾅﾍｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｶﾇｴﾂ ﾆﾄﾀﾏ ｼｭｹ ｱ箍霍ﾎ ｱｸｼｺｵﾈ ｰ豼ｿ｡ｸｸ ｽﾃｽｺﾅﾛ ﾁｦｾ ｱ箍霍ﾎ ｱｸｼｺｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "ｺｼｷ"
!     IDS_NAME_OR_ERROR       "ﾀﾌｸｧ(ｶﾇｴﾂ ｿﾀｷ ｸﾞｽﾃﾁ)"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "ﾀﾌ ｱ箍雍ﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｶﾇｴﾂ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺｵﾇﾁ ｾﾊｾﾒｽﾀｴﾏｴﾙ. ﾄﾄﾇｻﾅﾍｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｶﾇｴﾂ ﾆﾄﾀﾏ ｼｭｹ ｱ箍霍ﾎ ｱｸｼｺｵﾈ ｰ豼ｿ｡ｸｸ ﾀﾌﾁ ｺﾐｹ ｱ箍霍ﾎ ｱｸｼｺｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_CHECK_SCS           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ ﾈｮﾀﾎ..."
!     IDS_CHECK_SCC           "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮ ﾈｮﾀﾎ..."
!     IDS_SIZE                "ﾅｩｱ"
!     IDS_ERROR_SEP           ",   "
!     IDS_MUST_CONFIG_FS      "ｼｿﾀﾇ ﾃｹｹﾂｰ AFS ｼｭｹﾀﾌｹﾇｷﾎ ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ｱｸｼｺｵﾋｴﾏｴﾙ."
!     IDS_MUST_CONFIG_DB      "ｼｿﾀﾇ ﾃｹｹﾂｰ AFS ｼｭｹﾀﾌｹﾇｷﾎ, ｵ･ﾀﾌﾅｸｺ｣ﾀﾌｽｺ ｼｭｺｽｺｰ｡ ｱｸｼｺｵﾋｴﾏｴﾙ."
!     IDS_MUST_MAKE_PARTITION "ﾆﾄﾆｼｼﾇﾀｺ ｼｿﾀﾇ ﾃｹｹﾂｰ AFS ｼｭｹﾀﾌｹﾇｷﾎ ﾀﾛｼｺｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "ｼｿﾀﾇ ﾃｹｹﾂｰ AFS ｼｭｹﾀﾌｹﾇｷﾎ root.afs ｹﾗ root.cell ｺｼｷﾀﾌ ﾀﾛｼｺｵﾋｴﾏｴﾙ."
!     IDS_MUST_REPLICATE      "ｼｿﾀﾇ ﾃｹｹﾂｰ AFS ｼｭｹﾀﾌｹﾇｷﾎ root.afs ｹﾗ root.cell ｺｼｷﾀﾌ ｺｹﾁｦｵﾋｴﾏｴﾙ."
!     IDS_CHECK_AFS_CLIENT    "AFS ﾅｬｶﾀﾌｾﾆｮ ｼｳﾄ｡ ﾈｮﾀﾎ..."
!     IDS_ERROR_HOST_NAME     "ﾀﾌ ｱ箍霏ﾇ ﾈ｣ｽｺﾆｮ ﾀﾌｸｧﾀｻ ﾆﾇｺｰﾇﾏｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_ERROR_DRIVE_COMPRESSED "ｵ蠍ﾀﾌｺｰ｡ ｾﾐﾃ犒ﾇｾｽﾀｴﾏｴﾙ"
!     IDS_ERROR_CFG_HOST_OPEN "ｼｭｹ ｱｸｼｺ ｶﾀﾌｺｷｯｸｮｸｦ ﾃﾊｱ ｼｳﾁ､ﾇﾏｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "AFS ﾅｬｶﾀﾌｾﾆｮ ﾁ､ﾁ ﾁﾟ"
!     IDS_ERROR_LOCAL_HOST_NAME 
!                             "ﾀﾌ ｱ箍霏ﾇ ﾁｿｪ ﾈ｣ｽｺﾆｮ ﾀﾌｸｧﾀｻ ﾆﾇｺｰﾇﾏﾁ ｸﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_GET_TOKENS_ERROR    "ﾅ菁ｫﾀｻ ﾈｮｺｸﾇﾏｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ. ﾀﾔｷﾂﾇﾑ ｻ鄙ﾀﾚ ﾀﾌｸｧ ｹﾗ ｾﾏﾈ｣ｰ｡ ｿﾃｹﾙｸ･ﾁ ｰﾋﾁﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ｽﾃﾀﾛｵﾇﾁ ｾﾊｾﾆ ｺｹｿﾀｻ ｼﾇ猊ﾒ ｼ ｾｽﾀｴﾏｴﾙ. ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ｽﾃﾀﾛﾇﾑ ﾈﾄ ｺｹｿﾀｻ ﾀ鄂ﾃｵｵﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_SALVAGING           "ｺｹｿﾀﾌ ﾁﾇ ﾁﾟﾀﾔｴﾏｴﾙ. ｱ箒ﾙｸｮｽﾊｽﾃｿﾀ..."
!     IDS_CURRENT_SALVAGE_LOG "ﾇﾀ ｺｹｿ ｷﾎｱﾗ ｳｻｿ:"
!     IDS_FINAL_SALVAGE_LOG   "ﾃﾖﾁｾ ｺｹｿ ｷﾎｱﾗ ｳｻｿ:"
!     IDS_SALVAGE_COMPLETE    "ｺｹｿﾀﾌ ｿﾏｷ盞ﾇｾｽﾀｴﾏｴﾙ."
!     IDS_CANT_GET_SALVAGE_LOG "ｺｹｿ ｷﾎｱﾗｸｦ ｰﾋｻﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ."
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK 
!                             "ｺｹｿ ｷﾎｱﾗｸｦ ｵｽｺﾅｩｿ｡ ﾀﾀ衂ﾒ ｼ ｾｽﾀｴﾏｴﾙ."
!     IDS_VALIDATION_ERROR_TEMPLATE 
!                             "ﾁﾁ､ｵﾈ %1ﾀﾌ(ｰ｡) ﾀｯﾈｿﾇﾏﾁ ｾﾊｽﾀｴﾏｴﾙ. %2ﾀｻ(ｸｦ) ｴﾙｽﾃ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_CELL_NAME_VALIDATION_TYPE "ｼｿ ﾀﾌｸｧ"
!     IDS_SERVER_NAME_VALIDATION_TYPE "ｼｭｹ ﾀﾌｸｧ"
!     IDS_PASSWORD_VALIDATION_TYPE "ｾﾏﾈ｣"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "ｻ鄙ﾀﾚ ﾀﾌｸｧ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "AFS ﾅｬｶﾀﾌｾﾆｮｰ｡ ｼｳﾄ｡ｵﾇﾁ ｾﾊｾﾒｽﾀｴﾏｴﾙ. AFS ﾅｬｶﾀﾌｾﾆｮｴﾂ AFS ｼｭｹｰ｡ ｱｸｼｺｵﾇｱ ﾀｿ｡ ｼｳﾄ｡ｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_ERROR_AFS_CLIENT_CHECK "AFS ｼｳﾄ｡ ｿｩｺﾎｸｦ ﾆﾇｺｰﾇﾏｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_ERROR_FS_IS_NOT_NTFS "ﾆﾄﾀﾏ ｽﾃｽｺﾅﾛﾀﾌ NTFSｰ｡ ｾﾆｴﾕｴﾏｴﾙ"
!     IDS_ERROR_DRIVE_HAS_DATA "ｵ蠍ﾀﾌｺｿ｡ ｵ･ﾀﾌﾅﾍｰ｡ ﾀﾖｽﾀｴﾏｴﾙ"
!     IDS_PARTITION_STEP_DESC "AFS ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_ERROR_DRIVE_CONTAINS_NT "ｵ蠍ﾀﾌｺｿ｡ NT ｼｳﾄ｡ｰ｡ ﾀﾖｽﾀｴﾏｴﾙ"
!     IDS_DB_STEP_DESC        "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_FS_STEP_DESC        "ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_SCC_STEP_DESC       "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｸｦ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_SCS_STEP_DESC       "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｸｦ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_ROOT_AFS_STEP_DESC  "ｷ酥ｮ ｺｼｷﾀｻ ﾀﾛｼｺﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_REP_STEP_DESC       "ｷ酥ｮ ｺｼｷﾀｻ ｺｹﾁｦﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_PARTITIONS_PAGE_TITLE "ﾆﾄﾆｼｼﾇ"
!     IDS_CONFIGURE           "ｱｸｼｺ(&C)"
!     IDS_DB_AND_BK_STEP_DESC "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ(ｹ鮴 ｼｭｹ ﾆﾇﾔ)ｸｦ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "AFS ﾆﾄﾆｼｼﾇ ﾀﾛｼｺ ﾁﾟ"
!     IDS_CONFIG_COMMON_FUNCS "ｸｵ ｼｭｺｽｺｿ｡ ｰﾅﾀﾎ ｱ箒ﾉ ｱｸｼｺ ﾁﾟ"
!     IDS_START_DB_STEP       "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_START_SCC_STEP      "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｷﾎ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｺｽｺ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_START_SCS_STEP      "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｷﾎ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｺｽｺ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_CREATE_ROOT_AFS_STEP "root.afs ｺｼｷ ﾀﾛｼｺ ﾁﾟ"
!     IDS_REP_STEP            "ｷ酥ｮ ｺｼｷ ｺｹﾁｦ ﾁﾟ"
!     IDS_START_AUTH_STEP     "ﾀﾌ ｼｭｹｿ｡ ｴﾇﾑ ﾅ菁ｫ ﾈｮｺｸ ﾁﾟ"
!     IDS_SERVICES_PAGE_TITLE "ｼｭｺｽｺ"
!     IDS_CONFIG_SUCCEEDED    "ｱｸｼｺﾀﾌ ｿﾏｷ盞ﾇｾｽﾀｴﾏｴﾙ."
!     IDS_CONFIG_CANCELED     "ｱｸｼｺﾀﾌ ﾃｼﾒｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_CONFIG_FAILED       "ｱｸｼｺｿ｡ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ.\r\nﾀﾚｼｼﾇﾑ %1 ｷﾎｱﾗ ﾆﾄﾀﾏﾀﾌ %2 ﾀｧﾄ｡ｿ｡ ﾀﾛｼｺｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_ERROR_NO_LICENSE_NUM "AFS ｻ鄙ｱﾇ ｹﾈ｣ｸｦ ﾃ｣ﾁ ｸﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_VERIFY_CLIENT_INSTALL_STEP "AFS ﾅｬｶﾀﾌｾﾆｮﾀﾇ ｼｳﾄ｡ ﾈｮﾀﾎ ﾁﾟ"
!     IDS_SET_SERVER_LICENSE_STEP "ﾀﾌ ｼｭｹｿ｡ ｴﾇﾑ ｻ鄙ｱﾇ ｼｳﾁ､ ﾁﾟ"
!     IDS_DEFINE_CELL_NAME_STEP "ﾀﾌ ｼｿｿ｡ ｴﾇﾑ ﾀﾌｸｧ ﾁ､ﾀﾇ ﾁﾟ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP "ﾀﾌ ｼｭｹｸｦ ｼｿﾀﾇ ｱｸｼｺｿﾀｸｷﾎ ﾀﾛｼｺ ﾁﾟ"
!     IDS_START_BOS_SERVER_STEP "BOS ｼｭｹ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_START_AUTH_SERVER_STEP "ﾀﾎﾁ ｼｭｹ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP "ﾀﾌ ｼｭｹｿ｡ ｴﾇﾑ ｰ霖､ ｹﾗ ﾅｰ ﾀﾛｼｺ ﾁﾟ"
!     IDS_START_DB_AND_BK_STEP "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ(ｹ鮴 ｼｭｹ ﾆﾇﾔ) ｽﾃﾀﾛ ﾁﾟ"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP "ｼｿ ｰｸｮ ｰ霖､ ﾀﾛｼｺ ﾁﾟ"
!     IDS_START_CLIENT_STEP   "AFS ﾅｬｶﾀﾌｾﾆｮ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_SET_ROOT_ACL_STEP   "root.afs ｺｼｷｿ｡ｼｭ ACL ｼｳﾁ､ ﾁﾟ"
!     IDS_CREATE_ROOT_CELL_STEP "root.cell ｺｼｷ ﾀﾛｼｺ ﾁﾟ"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP 
!                             "ﾇ･ﾁﾘ ｸｶｿﾆｮ ﾆﾀﾎﾆｮｸｦ ｻ鄙ﾇﾏｿｩ root.cell ｸｶｿﾆｮ ﾁﾟ"
!     IDS_SET_ROOT_CELL_ACL_STEP "root.cell ｺｼｷｿ｡ｼｭ ACL ｼｳﾁ､ ﾁﾟ"
!     IDS_MOUNT_ROOT_CELL_RW_STEP 
!                             "ﾀﾐｱ/ｾｲｱ ｸｶｿﾆｮ ﾆﾀﾎﾆｮｸｦ ｻ鄙ﾇﾏｿｩ root.cell ｺｼｷ ｸｶｿﾆｮ ﾁﾟ"
!     IDS_ENABLE_AUTH_CHECKING_STEP "ﾀﾎﾁ ﾈｮﾀﾎ ﾀﾛｵｿ ﾁﾟ"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "ｰｸｮ ﾅ菁ｫ ﾈｮｺｸ ﾁﾟ"
!     IDS_RESTART_SERVERS_STEP "ﾀﾌ ｱ箍霑｡ｼｭ ｸｵ ｼｭｹｸｦ ﾀﾎﾁｵﾈ ｼｭｹｷﾎ ﾀ鄂ﾃﾀﾛ ﾁﾟ"
!     IDS_ALREADY_A_FS_SERVER "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺｵﾇｾｽﾀｴﾏｴﾙ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺｵﾇｾ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_INTRO_PAGE          "ｰｳｿ"
!     IDS_INFO_PAGE           "ｼｿ ｹﾗ ｼｭｹ ﾁ､ｺｸ"
!     IDS_FS_PAGE             "ﾆﾄﾀﾏ ｼｭｺｽｺ"
!     IDS_DB_PAGE             "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ"
!     IDS_CFG_TOOL_APP_TITLE  "AFS ｼｭｹ ｱｸｼｺ"
!     IDS_BK_PAGE             "ｹ鮴 ｼｭｹ"
!     IDS_ROOT_AFS_PAGE       "ｷ酥ｮ AFS ｺｼｷ"
!     IDS_NAME                "ﾀﾌｸｧ"
!     IDS_REP_PAGE            "ｺｹﾁｦ"
!     IDS_SC_PAGE             "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｺｽｺ"
!     IDS_CONFIG_PAGE         "ｽﾃｽｺﾅﾛﾀｻ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "AFS ﾆﾄﾆｼｼﾇ"
!     IDS_GRAPHIC_FONT        "ｱｼｸｲ, 12, B"
!     IDS_CURRENT_STEP        "ﾇﾀ ｴﾜｰ:"
!     IDS_ADD_TO_CELLSERVDB_STEP "ﾀﾌ ｼｭｹｸｦ CellServDBｿ｡ ﾃﾟｰ｡ ﾁﾟ"
!     IDS_RESTART_ALL_DB_SERVERS_STEP "ｼｿ ｳｻﾀﾇ ｸｵ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹ ﾀ鄂ﾃﾀﾛ ﾁﾟ"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "ｱｸｼｺﾀﾌ ｿﾏｷ盞ﾇｾｽﾀｴﾏｴﾙ. ﾁﾖ: ｻ鄙ﾀﾚ ｼｿｿ｡ ﾀﾖｴﾂ ｸｵ AFS ﾅｬｶﾀﾌｾﾆｮﾀﾇ CellServDB ﾆﾄﾀﾏﾀｻ ｰｻｽﾅﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ. ｴﾙｸ･ ｻ鄲ﾌﾆｮｿ｡ｼｭ ｻ鄙ﾀﾚ ｼｿﾀｻ ｻ鄙ﾇﾒ ｼ ﾀﾖｵｵｷﾏ ﾇﾏｷﾁｸ AFS ﾁｦﾇｰ ﾁｿｿ｡ ﾃﾖｽﾅ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹﾀﾇ ｸｷﾏﾀｻ ﾁｦｰﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ. "
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG 
!                             "ﾀﾌ ｱ箍雕ｦ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG 
!                             "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｷﾎ ｱｸｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)"
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "AFS ｼｭｹﾀﾇ ｱｸｼｺｿ｡ｼｭｴﾂ AFS ﾅｬｶﾀﾌｾﾆｮｰ｡ ｼｭｹｿﾍ ｰｰﾀｺ ｼｿｿ｡ ｱｸｼｺｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ.  ﾀﾌｴﾂ ﾀﾚｵｿﾀｸｷﾎ ﾀﾌｷ鄒ﾁｴﾏｴﾙ."
!     IDS_INFO_PAGE2          "ｰｸｮ ﾁ､ｺｸ"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "ｱｸｼｺﾀﾌ ｿﾏｷ盞ﾇｾｽﾀｴﾏｴﾙ.\r\nﾁﾖ: ｴﾙｸ･ ｻ鄲ﾌﾆｮｿ｡ｼｭ ｼｿﾀｻ ｻ鄙ﾇﾒ ｼ ﾀﾖｰﾔ ﾇﾏｷﾁｸ ｻ鄙ﾀﾚﾀﾇ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹ ｸｷﾏﾀｻ ﾁｦｰﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_CONFIG_SCS          "ｼｿﾀﾇ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_CONFIG_INTO_CELL_MSG "ﾀﾌ ﾈ｣ｽｺﾆｮｸｦ ｼｿｿ｡ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ "
!     IDS_VIEW_LOG            "ｷﾎｱﾗ ｺｸｱ(&V)"
!     IDS_VIEW_LOG_ERROR      "ｷﾎｱﾗ ﾆﾄﾀﾏﾀｻ ｺｼ ｼ ｾｽﾀｴﾏｴﾙ"
!     IDS_ERROR_NO_LOG_FILE   "ｷﾎｱﾗ ﾆﾄﾀﾏﾀﾌ ｾｽﾀｴﾏｴﾙ."
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED 
!                             "ﾈ｣ｽｺﾆｮｿ｡ｼｭ CellServDBｸｦ ｰｻｽﾅﾇﾟｽﾀｴﾏｴﾙ "
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED 
!                             "ﾈ｣ｽｺﾆｮｿ｡ｼｭ CellServDBｸｦ ｰｻｽﾅﾇﾏﾁ ｸﾇﾟｽﾀｴﾏｴﾙ "
!     IDS_CELL_NAME_LEN_ERROR "ﾀﾔｷﾂﾇﾑ ｼｿ ﾀﾌｸｧﾀﾌ ｳﾊｹｫ ｱ魘ﾏｴﾙ. ｼｿ ﾀﾌｸｧﾀｺ 64 ｹｮﾀﾚｸｦ ﾃﾊｰﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ."
!     IDS_CONFIG_CHECK_FAILED "ﾀﾌ ｱ箍霏ﾇ ﾇﾀ ｱｸｼｺﾀｻ ﾆﾇｺｰﾇﾏﾁ ｸﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_YES                 "ｿｹ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "ｾﾆｴﾏｿﾀ"
!     IDS_FREE                "ｻ鄙ｰ｡ｴﾉﾇﾑ ｰｰ｣"
!     IDS_TOTAL               "ﾃﾑ ﾅｩｱ"
!     IDS_DRIVE2              "ｵ蠍ﾀﾌｺ"
!     IDS_SERVICE_STATUS      "ｻﾅﾂ"
!     IDS_SERVICE             "ｼｭｺｽｺ"
!     IDS_FS_RUNNING          "ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ."
!     IDS_FS_STOPPED          "ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾌ ｾﾆｴﾕｴﾏｴﾙ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ."
!     IDS_DB_STOPPED          "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾌ ｾﾆｴﾕｴﾏｴﾙ."
!     IDS_BK_RUNNING          "ｹ鮴 ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ."
!     IDS_BK_STOPPED          "ｹ鮴 ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾌ ｾﾆｴﾕｴﾏｴﾙ."
!     IDS_SCS_STOPPED         "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾌ ｾﾆｴﾕｴﾏｴﾙ."
!     IDS_SCC_STOPPED         "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾌ ｾﾆｴﾕｴﾏｴﾙ."
!     IDS_FS_HOW_TO_RUN       "ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ｽﾃﾀﾛﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_FS_HOW_TO_STOP      "ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_DB_HOW_TO_RUN       "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｽﾃﾀﾛﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_DB_HOW_TO_STOP      "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_BK_HOW_TO_RUN       "ｹ鮴 ｼｭｺｽｺｸｦ ｽﾃﾀﾛﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "ｹ鮴 ｼｭｺｽｺｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_SCS_HOW_TO_RUN      "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｸｦ ｽﾃﾀﾛﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_SCS_HOW_TO_STOP     "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_DB_PARTIAL_CONFIG   "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｴﾂ ｺﾎｺﾐﾀﾀｸｷﾎ ｱｸｼｺｵﾋｴﾏｴﾙ."
!     IDS_DB_DETAILS          "ｴ ﾀﾚｼｼﾇﾑ ﾁ､ｺｸｸｦ ｾﾀｸｷﾁｸ, ﾀﾚｼｼﾈｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ."
!     IDS_BK_DISABLED         "ｹ鮴 ｼｭｺｽｺｴﾂ ｻ鄙ｺﾒｰ｡ｴﾉﾇﾕｴﾏｴﾙ."
!     IDS_BK_ENABLE           "ｹ鮴 ｼｭｺｽｺｸｦ ｻ鄙 ｰ｡ｴﾉﾇﾏｰﾔ ﾇﾏｷﾁｸ, ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｽﾇﾇ猊ﾘｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_SC_DISABLED         "ﾀﾌ ｼｭｹｴﾂ ｻ鄙ｺﾒｰ｡ｴﾉﾇﾕｴﾏｴﾙ."
!     IDS_SC_ENABLE           "ﾀﾌ ｼｭｹｸｦ ｻ鄙 ﾇﾏｷﾁｸ, ﾆﾄﾀﾏ ｼｭｺｽｺ ｶﾇｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｽﾇﾇ猊ﾘｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_FS_WILL_RUN         "ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ｽﾃﾀﾛｵﾋｴﾏｴﾙ."
!     IDS_FS_WILL_STOP        "ﾆﾄﾀﾏ ｼｭｹｰ｡ ﾁ､ﾁｵﾋｴﾏｴﾙ."
!     IDS_DB_WILL_RUN         "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｰ｡ ｽﾃﾀﾛｵﾋｴﾏｴﾙ."
!     IDS_DB_WILL_STOP        "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｰ｡ ﾁ､ﾁｵﾋｴﾏｴﾙ."
!     IDS_BK_WILL_RUN         "ｹ鮴 ｼｭｺｽｺｰ｡ ｽﾃﾀﾛｵﾋｴﾏｴﾙ."
!     IDS_BK_WILL_STOP        "ｹ鮴 ｼｭｺｽｺｰ｡ ﾁ､ﾁｵﾋｴﾏｴﾙ."
!     IDS_SCS_WILL_RUN        "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｰ｡ ｽﾃﾀﾛｵﾋｴﾏｴﾙ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｰ｡ ﾁ､ﾁｵﾋｴﾏｴﾙ."
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "ｵ蠍ﾀﾌｺｴﾂ ﾀﾌｹﾌ AFS ﾆﾄﾆｼｼﾇﾀﾔｴﾏｴﾙ"
!     IDS_VOLUME_HAS_NO_NAME  "<ｺｼｷｿ｡ ﾀﾌｸｧﾀﾌ ｾｽﾀｴﾏｴﾙ>"
!     IDS_PARTITION_CREATED   "ｻ AFS ﾆﾄﾆｼｼﾇﾀﾌ ﾀﾛｼｺｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_PARTITION_EXISTS    "ﾀﾔｷﾂﾇﾑ ﾆﾄﾆｼｼﾇ ﾀﾌｸｧﾀﾌ ﾀﾌｹﾌ ｴﾙｸ･ ﾆﾄﾆｼｼﾇｿ｡ｼｭ ｻ鄙ﾇﾏｰ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_SCS_RUNNING         "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｴﾂ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ."
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN "ﾀﾌ ｵ蠍ﾀﾌｺｿ｡ｴﾂ ﾈﾞﾁﾅｸｸ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_SCC_WILL_RUN        "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｰ｡ ｽﾃﾀﾛｵﾋｴﾏｴﾙ."
!     IDS_SCC_WILL_STOP       "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｰ｡ ﾁ､ﾁｵﾋｴﾏｴﾙ."
!     IDS_SCC_RUNNING         "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｴﾂ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ."
!     IDS_SCC_HOW_TO_RUN      "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｸｦ ｽﾃﾀﾛﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_SCC_HOW_TO_STOP     "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_SCS_ENABLE          "ﾀﾌ ｼｭｹｸｦ ﾀﾛｵｿｽﾃﾅｰｷﾁｸ, ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮﾀﾇ ｽﾇﾇ狢ｻ ﾁ､ﾁｽﾃﾄﾑｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_SCC_ENABLE          "ﾀﾌ ｼｭｹｸｦ ﾀﾛｵｿｽﾃﾅｰｷﾁｸ, ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹﾀﾇ ｽﾇﾇ狢ｻ ﾁ､ﾁｽﾃﾄﾑｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_UNCONFIG_DB_STEP    "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_DB_STEP_DESC "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｱｸｼｺﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP 
!                             "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ(ｹ鮴 ｼｭｹ ﾆﾇﾔ) ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC 
!                             "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ(ｹﾗ ｹ鮴 ｼｭｹ) ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_BK_STEP    "ｹ鮴 ｼｭｹ ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_BK_STEP_DESC "ｹ鮴 ｼｭｹｸｦ ｱｸｼｺﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_UNCONFIG_FS_STEP    "ﾆﾄﾀﾏ ｼｭｺｽｺ ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_FS_STEP_DESC "ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ｱｸｼｺﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_UNCONFIG_SCS_STEP   "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_SCS_STEP_DESC "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｸｦ ｱｸｼｺﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_UNCONFIG_SCC_STEP   "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮ ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_SCC_STEP_DESC "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｸｦ ｱｸｼｺﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_INVALIDATE_CONFIG_INFO_STEP "ﾀﾌ ｱ箍霏ﾇ ｱｸｼｺ ﾁ､ｺｸ ｹｫﾈｿﾈｭ"
!     IDS_CLOSE               "ｴﾝｱ(&C)"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "ｾﾆｷ｡ﾀﾇ AFS ｼｭｹｿ｡ｼｭｴﾂ CellServDB ﾆﾄﾀﾏﾀｻ ｰｻｽﾅﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ. ﾀﾌｴﾂ ﾄ｡ｸﾀﾀﾎ ｿﾀｷｴﾂ ｾﾆｴﾕｴﾏｴﾙ.\r\n"
!     IDS_DELETE_PARTITION_PROMPT "'%1' ﾆﾄﾆｼｼﾇﾀｻ ｻ霖ｦﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
!     IDS_INVALIDATE_CFG_INFO "ﾁｱﾝ ﾀﾌ ﾄﾄﾇｻﾅﾍｿ｡ｼｭ ｽﾇﾇ ﾁﾟﾀﾎ AFS ｼｭｹ ﾇﾁｷﾎｼｼｽｺｰ｡ ｾｽﾀｴﾏｴﾙ. ﾀﾌ ｱ箍霑｡ｼｭ ｱｸｼｺ ﾁ､ｺｸｸｦ ﾁｦｰﾅﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "ｴ ﾀﾌｻ ｼｿﾀﾌ ｾｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ﾀｺ AFS ｼｿｿ｡ ﾀﾌｹﾌ ｱｸｼｺｵﾈ ｼｭｹ ｱ箍雕ｦ ｱｸｼｺﾇﾒ ｶｧｸｸ ｻ鄙ｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ｸｶｹｻ邏ﾂ ｻ ｼｿﾀｻ ｽﾃﾀﾛﾇﾒ ｶｧ ｻ鄙ｵﾋｴﾏｴﾙ."
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ﾀｺ ﾀﾌﾁｦ ﾁﾟｴﾜｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ. ﾀﾌｴﾂ ﾀﾌｹﾌ AFS ｼｭｹｷﾎ ｱｸｼｺｵﾈ ｱ箍霑｡ｼｭｸｸ ｽﾇﾇ犒ﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ. ﾀﾌ ｱ箍雕ｦ ｴﾙｽﾃ AFS ｼｭｹｷﾎ ｱｸｼｺﾇﾏｷﾁｸ, AFS ｱｸｼｺ ｸｶｹｻ邵ｦ ｽﾇﾇ猊ﾏｽﾊｽﾃｿﾀ."
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "ﾀﾌ ｱ箍雍ﾂ ｴ ﾀﾌｻ AFS ｼｭｹｷﾎ ｱｸｼｺｵﾇﾁ ｾﾊｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ﾀｺ AFS ｼｭｹ ｱ箍雕ｦ ｱｸｼｺﾇﾒ ｶｧｸｸ ｻ鄙ｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ｸｶｹｻ邏ﾂ ﾀﾌ ｱ箍雕ｦ AFS ｼｭｹｷﾎ ﾀ邀ｸｼｺﾇﾒ ｶｧ ｻ鄙ｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_GET_TOKENS_FAILED   "ﾁﾁ､ｵﾈ ｼｿｿ｡ ｴﾇﾑ ﾅ菁ｫ ﾈｮｺｸｿ｡ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "ｹ鮴 ｼｭｹ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_BK_STEP_DESC        "ｹ鮴 ｼｭｹｸｦ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_CONFIG_ERROR        "ｱｸｼｺ ｿﾀｷｰ｡ ｹﾟｻﾇﾟｽﾀｴﾏｴﾙ"
!     IDS_CREATE_PARTITION_ERROR "ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ"
!     IDS_REMOVE_PARTITION_ERROR "ﾆﾄﾆｼｼﾇﾀｻ ﾁｦｰﾅﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ"
!     IDS_READ_PARTITIONS_ERROR "ﾆﾄﾆｼｼﾇ ﾅﾗﾀﾌｺﾀｻ ﾀﾐﾀｻ ｼ ｾｽﾀｴﾏｴﾙ"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\nCellServDB ｰｻｽﾅ ﾇﾁｷﾎｼｼｽｺｰ｡ ｹﾌｿﾏﾀﾇ ｻﾅﾂｷﾎ ﾁﾟｴﾜｵﾇｾｽﾀｴﾏｴﾙ. ｸｵ ｼｭｹｰ｡ ｰｻｽﾅｵﾇﾁ ｾﾊｾﾒﾀｻ ｼｵｵ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_GET_PARTITION_LIST_ERROR "ﾀﾌ ｼｭｹｿ｡ｼｭ ﾆﾄﾆｼｼﾇﾀｻ ﾆﾇｺｰﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ"
!     IDS_EXPORTED            "ｹﾝﾃ箏ﾊ"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ｽﾇﾇ ﾁﾟﾀﾏ ｶｧｴﾂ ｹﾝﾃ箏ﾈ ﾆﾄﾆｼｼﾇﾀｻ ﾁｦｰﾅｵﾉ ｼ ｾｽﾀｴﾏｴﾙ. ﾀﾌ ﾆﾄﾆｼｼﾇﾀｻ ﾁｦｰﾅﾇﾏｱ ﾀｿ｡ ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ﾁ､ﾁﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_CHECK_CONFIG_INFO   "ﾀｯﾈｿﾇﾑ ｱｸｼｺ ﾁ､ｺｸ ﾈｮﾀﾎ ﾁﾟ..."
!     IDS_ERROR_CFG_HOST_CLOSE "ｼｭｹ ｱｸｼｺ ｶﾀﾌｺｷｯｸｮｸｦ ｴﾝｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ"
!     IDS_FAILED_OPEN_CELL    "ｼｿﾀｻ ｿｩｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ"
!     IDS_FAILED_OPEN_NULL_CELL "ｳﾎ ｼｿ ﾇﾚｵ鯊ｻ ｿｩｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ｷ酥ｮ ｺｼｷﾀﾌ ｾﾀｻ ｰ豼, ﾀﾌｸｦ ﾀﾛｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ｷ酥ｮ ｺｼｷﾀﾌ ｺｹﾁｦｵﾇﾁ ｾﾊｾﾒﾀｻ ｰ豼, ﾀﾌｸｦ ｺｹﾁｦﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS ｼｭｹ"
!     IDS_CANT_INIT_ADMIN_LIBS 
!                             "ﾀﾌ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ﾀｻ ｽﾇﾇ猊ﾒ ｼ ｾｽﾀｴﾏｴﾙ. ｶﾀﾌｺｷｯｸｮｸｦ ﾃﾊｱ箴ｳﾁ､ﾇﾏﾁ ｸﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_CANT_OPEN_LOG_FILE  "ｷﾎｱﾗ ﾆﾄﾀﾏﾀｻ ｿｭ ｼ ｾｽﾀｴﾏｴﾙ."
!     IDS_NEED_CLIENT_INFO    "AFS ﾅｬｶﾀﾌｾﾆｮｰ｡ ﾀﾌ ﾄﾄﾇｻﾅﾍｿ｡ ｱｸｼｺｵﾇｾ ﾀﾖﾁ ｾﾊﾀｸｹﾇｷﾎ AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ﾀｻ ｽﾇﾇ猊ﾒ ｼ ｾｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ｸｶｹｻ邏ﾂ ﾀﾌｷｱ ｰ豼ｿ｡ ｻ鄙ｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ｸｶｹｻ邵ｦ ｽﾇﾇ猊ﾏｽﾃｰﾚｽﾀｴﾏｱ?"
!     IDS_NEED_SERVER_INFO    "ﾀﾌ ﾄﾄﾇｻﾅﾍｴﾂ AFS ｼｭｹｷﾎ ｱｸｼｺｵﾇｾ ﾀﾖﾁ ｾﾊｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ｸｶｹｻ邏ﾂ AFS ｼｭｹｸｦ ﾃﾊｱ ｱｸｼｺﾇﾒ ｶｧ ｻ鄙ｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ. ｱﾗｷｱ ｴﾙﾀｽ, AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ﾀｻ ｻ鄙ﾇﾒ ｼ ﾀﾖｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ｸｶｹｻ邵ｦ ｽﾇﾇ猊ﾏｿｩ ﾀﾌ ﾄﾄﾇｻﾅﾍｸｦ ﾃﾊｱ ｱｸｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
!     IDS_ADVANCED_OPEN       "<< ｰｱﾞ(&A)"
!     IDS_ADVANCED_CLOSED     "ｰｱﾞ(&A) >>"
!     IDS_BOS_OPEN_FAILED     "ｼｭｹｿ｡ ｿｬｰ睇ﾒ ｼ ｾｽﾀｴﾏｴﾙ(bos ｿｭｱ ｽﾇﾆﾐ)."
!     IDS_SALVAGE_ERROR       "ｺｹｿ ﾁｶﾀﾛﾀﾌ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "ﾁﾁ､ｵﾈ ｺｹｿ ﾇﾁｷﾎｼｼｽｺﾀﾇ ｼｰ｡ ﾀｯﾈｿﾇﾏﾁ ｾﾊｽﾀｴﾏｴﾙ. ｺｹｿ ﾇﾁｷﾎｼｼｽｺﾀﾇ ｼｴﾂ 1-32ｰｳﾀﾔｴﾏｴﾙ."
!     IDS_WRONG_CELL          "ﾀﾌﾀ ｴﾜｰ霑｡ｼｭ ｱｸｼｺ ﾁ､ｺｸｸｦ ｰﾋｻﾇﾘｾﾟ ﾇﾒ ｼｭｹｸｦ ﾁﾁ､ﾇﾟｽﾀｴﾏｴﾙ. ﾁﾁ､ｵﾈ ｼｭｹｴﾂ ﾁｶﾀﾎﾇﾒ ｼｿｿ｡ ｼﾓﾇﾏﾁ ｾﾊｽﾀｴﾏｴﾙ."
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "ｼｿﾀﾇ ﾀﾏｺﾎ ｼｭｹｿ｡ ﾀﾖｴﾂ CellServDB ﾆﾄﾀﾏﾀｺ ｰｻｽﾅｵﾉ ｼ ｾｽﾀｴﾏｴﾙ. ｰｻｽﾅｵﾈ ｼｭｹ ｹﾗ ｰｻｽﾅｵﾇﾁ ｾﾊﾀｺ ｼｭｹ ｸｷﾏﾀｻ ｾﾀｸｷﾁｸ ﾆﾄﾀﾏｿ｡ ﾀﾀ蠏ﾈ ｱｸｼｺ ｷﾎｱﾗｸｦ ｺｸｽﾊｽﾃｿﾀ."
!     IDS_GET_CREDENTIALS_STEP "ｰｸｮ ﾅ菁ｫ ﾈｮｺｸ ﾁﾟ"
!     IDS_MUST_ENTER_SCS_NAME "ｽﾃｽｺﾅﾛ ﾁｦｾ ｱ箍 ﾀﾌｸｧﾀｺ ｱｸｼｺﾀﾌ ｽﾃﾀﾛｵﾇｱ ﾀｿ｡ ﾀﾔｷﾂｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_NOT_SAME_CELL       "AFS ﾅｬｶﾀﾌｾﾆｮｴﾂ AFS ｼｭｹｿﾍ ｴﾙｸ･ ｼｿｿ｡ ｱｸｼｺｵﾋｴﾏｴﾙ. AFS ｼｭｹｸｦ ｱｸｼｺﾇﾏｷﾁｸ ｸﾕﾀ AFS ﾅｬｶﾀﾌｾﾆｮｸｦ ｼｭｹﾀﾇ ｼｿｿ｡ ﾀ邀ｸｼｺﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_LAST_DB_SERVER      "ﾀﾌ ｱ箍雍ﾂ ｼｿﾀﾇ ｸｶﾁｸｷ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｸｦ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ. ｰ霈ﾓ ﾁﾇ猊ﾏｿｩ ﾀﾌ ｱ箍霑｡ｼｭ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｱｸｼｺﾇﾘﾁｦﾇﾏｸ, ｼｿﾀｺ ｴ ﾀﾌｻ ﾁｸﾀ酩ﾏﾁ ｾﾊｰ ﾀﾌ ｱ箍霑｡ｼｭ ｽﾇﾇ ﾁﾟﾀﾎ ｴﾙｸ･ ｸｵ AFS ｼｭｺｽｺｵｵ ｱｸｼｺﾇﾘﾁｦｵﾋｴﾏｴﾙ. ｱﾗｷ｡ｵｵ ｰ霈ﾓﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "AFS ｰ霖､ｿ｡ ｴﾇﾑ ｾﾏﾈ｣ｰ｡ ﾀｯﾈｿﾇﾏﾁ ｾﾊｽﾀｴﾏｴﾙ."
!     IDS_ERROR_CLIENT_VERSION 
!                             "ﾀﾌ ﾄﾄﾇｻﾅﾍｿ｡ｼｭ AFS ﾅｬｶﾀﾌｾﾆｮﾀﾇ ｹﾀﾀｺ AFS ｼｭｹｿﾍ ﾈ｣ﾈｯｵﾉ ｼ ｾｽﾀｴﾏｴﾙ. AFS ｼｭｹｴﾂ ﾃﾖｼﾒﾇﾑ ｹﾀ 3.5ﾀﾇ AFS ﾅｬｶﾀﾌｾﾆｮｰ｡ ﾇﾊｿ萇ﾕｴﾏｴﾙ."
!     IDS_CANT_MAP_ROOT_AFS   "ACLﾀｻ ｷ酥ｮ ｺｼｷｿ｡ ｼｳﾁ､ﾇﾏｷﾁｸ, ｵ蠍ﾀﾌｺ ﾀﾌｸｧﾀﾌ AFSｿ｡ ｴﾀﾀｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ. ﾇﾀ ｻ鄙ｰ｡ｴﾉﾇﾑ ｵ蠍ﾀﾌｺ ﾀﾌｸｧﾀﾌ ｾｽﾀｴﾏｴﾙ. ｵ蠍ﾀﾌｺ ﾀﾌｸｧﾀｻ ｻ鄙ﾇﾒ ｼ ﾀﾖｵｵｷﾏ ﾇﾘﾁｦﾇﾏｰ ﾈｮﾀﾎﾀｻ ｴｩｸ｣ｽﾊｽﾃｿﾀ."
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "ﾆﾄﾆｼｼﾇ ﾀﾌｸｧ"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "ｺｼｷ ﾀﾌｸｧ"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE "ｺｹｿ ﾇﾁｷﾎｼｼｽｺ ｼ"
!     IDS_PATH_NAME_VALIDATION_TYPE "ｰ豺ﾎ ﾀﾌｸｧ"
!     IDS_FILE_NAME_VALIDATION_TYPE "ﾆﾄﾀﾏ ﾀﾌｸｧ"
!     IDS_GENERIC_VALIDATION_TYPE "ｰｪ"
! END
! 
! #endif    // Korean resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 7,1169 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ ｹﾗ ｸｶｹｻ"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x412
  #define AFS_VERINFO_CHARSET 949
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // Korean resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
! #ifdef _WIN32
! LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 320, 246
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "AFS ｼｭｹ ｺｸ･ ｽﾃﾀﾛ ｸｶｹｻ"
! FONT 9, "ｱｼｸｲ", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "ﾃｼﾒ(&L)",IDCANCEL,101,225,50,14
!     PUSHBUTTON      "< ｵﾚｷﾎ(&B)",IDBACK,155,225,50,14
!     DEFPUSHBUTTON   "ｴﾙﾀｽ(&N) >",IDNEXT,209,225,50,14
!     PUSHBUTTON      "ｵｵｿｸｻ(&H)",9,263,225,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,214,305,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,103,7,210,200
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ", 0, 0, 0x1
! BEGIN
!     CONTROL         "ﾆﾄﾆｼｼﾇ ﾀﾛｼｺ(&Y)",IDC_CREATE_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,81,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,104,
!                     186,52,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,93,172,20,12,ES_AUTOHSCROLL
!     CONTROL         "ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)",IDC_DONT_CREATE_PARTITION,
!                     "Button",BS_AUTORADIOBUTTON,0,191,102,8
!     LTEXT           "ﾀﾌ ﾆﾄﾀﾏ ｼｭｹｴﾂ ﾆﾄﾀﾏ ｹﾗ ﾇﾁｷﾎｱﾗｷ･ﾀｻ ﾀﾀ衂ﾑ ﾈﾄ AFS ﾅｬｶﾀﾌｾﾆｮｿ｡ ﾀｴﾞﾇﾕｴﾏｴﾙ. ﾀﾌ ｽﾃｽｺﾅﾛｿ｡ ﾀﾀ蠏ﾇｰ AFSｸｦ ﾅﾇﾘ ｰﾀｯｵﾇｾﾁ ｵ･ﾀﾌﾅﾍｸｦ ﾀｧﾇﾘ ﾃﾖｼﾒﾇﾑ ﾇﾏｳｪﾀﾇ NTFS ｺｼｷﾀﾌ AFS ﾆﾄﾆｼｼﾇ ﾀｿﾀｸｷﾎ ｻ鄙ｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ.",
!                     -1,0,12,209,35
!     LTEXT           "ﾆﾄﾆｼｼﾇｿ｡ ｻ鄙ﾇﾒ ｺｼｷ ｼｱﾅﾃ(&S)",IDC_SELECT_DRIVE,12,93,
!                     163,9
!     LTEXT           "AFS ﾆﾄﾆｼｼﾇ ﾀﾌｸｧ(&M):  /vicep",IDC_NAME_LABEL,12,174,72,
!                     8
!     LTEXT           "ﾀﾌ ﾆﾄﾀﾏ ｼｭｹｿ｡ AFS ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾏｽﾊｽﾃｿﾀ.",IDC_TITLE,0,
!                     0,209,8
!     LTEXT           "AFS ﾆﾄﾆｼｼﾇﾀｺ ｹｰｸｮﾀﾀｸｷﾎ NTFS ｺｼｷｰ ｰｰﾁｸｸ ﾆﾄﾆｼｼﾇ ﾁ､ｺｸ ｺｹｿ ｹﾗ ﾀｧﾄ｡ｿ｡ ｴﾇﾑ ﾆｯｼﾇﾑ ｸﾞﾅｸｵ･ﾀﾌﾅﾍｰ｡ ｵ鮴 ﾀﾖｽﾀｴﾏｴﾙ.",
!                     -1,0,49,208,18
!     LTEXT           "ﾀﾌ ﾆﾄﾀﾏ ｼｭｹｿ｡ ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",
!                     IDC_ASK_CREATE_PARTITION,0,69,207,11
!     LTEXT           "ﾇﾊｿ萇ﾑ ｰ豼, ｽﾇﾇ ﾁﾟ ｸﾞｽﾃﾁｸｦ ｼｳﾁ､ﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_PARTITION_MSG,0,162,209,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,210,92,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺ(&Y)",IDC_SHOULD_CONFIG_FILE_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,179,114,10
!     CONTROL         "ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)",
!                     IDC_DONT_CONFIG_FILE_SERVER,"Button",BS_AUTORADIOBUTTON,
!                     0,190,133,10
!     LTEXT           "AFS ﾆﾄﾀﾏ ｼｭｺｽｺｴﾂ ｿ菘ｻｵﾈ ﾆﾄﾀﾏ ｹﾗ ﾇﾁｷﾎｱﾗｷ･ﾀｻ ﾀﾌ ｼｭｹｿ｡ｼｭ AFS ﾅｬｶﾀﾌｾﾆｮｷﾎ ﾀｴﾞﾇﾕｴﾏｴﾙ. ﾀﾌ ｼｭｺｽｺｴﾂ ｶﾇﾇﾑ ｺｼｷ ﾀﾛｼｺ, ｻ霖ｦ, ﾀﾌｵｿ ｹﾗ ｺｹﾁｦｿﾍ ｰｰﾀｺ ｸｵ ｺｼｷ ｰｸｮ ﾁｶﾀﾛﾀｻ ﾃｳｸｮﾇﾕｴﾏｴﾙ.",
!                     -1,0,38,210,34
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ.",IDC_TITLE,0,0,209,
!                     8
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",
!                     IDC_CREATE_FS_QUESTION,0,166,210,8
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｷﾁｸ, ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ｱｸｼｺﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ.",
!                     -1,0,14,210,17
!     LTEXT           "ﾁﾖ: ﾀﾌ ｱ箍霑｡ｴﾂ ﾇﾀ AFSｿ｡ ﾆﾄﾀﾏﾀｻ ﾀﾀ衂ﾒ ｵｽｺﾅｩ ｵ蠍ﾀﾌｺｰ｡ ｾｽﾀｴﾏｴﾙ. ﾀﾌ ｱ箍雕ｦ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺﾇﾒ ｼｴﾂ ﾀﾖｾｵｵ AFS ｵ･ﾀﾌﾅﾍｸｦ ｱ箍霑｡ ﾀﾀ衂ﾒ ｼ ｾｽﾀｴﾏｴﾙ.",
!                     IDC_NO_DRIVES_NOTE,0,77,210,32,NOT WS_VISIBLE
!     LTEXT           "ｵｽｺﾅｩ ｵ蠍ﾀﾌｺｸｦ ﾀﾛｼｺﾇﾏｷﾁｸ, Windows NT ｵｽｺﾅｩ ｰｸｮﾀﾚｸｦ ｻ鄙ﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_DISK_ADMIN_NOTE,0,112,210,16,NOT WS_VISIBLE
!     LTEXT           "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺｵﾇｾｽﾀｴﾏｴﾙ.",IDC_MSG,0,
!                     166,209,34,NOT WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     LTEXT           "AFS ｼｭｹ ｺｸ･ ｽﾃﾀﾛ ｸｶｹｻ邵ｦ ｻ鄙ﾇﾏｰﾔ ｵﾈ ｰﾍﾀｻ ﾈｯｿｵﾇﾕｴﾏｴﾙ. ﾀﾌ ｸｶｹｻ邵ｦ ｻ鄙ﾇﾏｸ Windows NT ｽﾃｽｺﾅﾛｿ｡ｼｭ AFS ｼｭｹｸｦ ｺｸ｣ｰﾔ ｱｸｼｺﾇﾒ ｼ ﾀﾖｽﾀｴﾏｴﾙ.",
!                     IDC_TITLE,0,0,209,26
!     LTEXT           "ｴﾙﾀｽﾀｻ ｴｭｷｯ AFS ｼｭｹﾀﾇ ｱｸｼｺﾀｻ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ.",IDC_STATIC,
!                     0,166,209,8
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "ｷ酥ｮ ｺｼｷ ｺｹﾁｦ(&Y)",IDC_REPLICATE,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,115,10
!     CONTROL         "ｷ酥ｮ ｺｼｷﾀｻ ｺｹﾁｦﾇﾏﾁ ｾﾊﾀｽ(&O)",IDC_DONT_REPLICATE,
!                     "Button",BS_AUTORADIOBUTTON,0,190,134,10
!     LTEXT           "ｺｹﾁｦｴﾂ ﾁﾖｷﾎ ｴﾙｸ･ ﾆﾄﾀﾏ ｼｭｹﾀﾇ ｿｩｷｯ ﾆﾄﾆｼｼﾇｿ｡ ﾀﾖｴﾂ ｺｼｷﾀﾇ ﾀﾐｱ-ﾀｿ ｺｹｻ郤ｻﾀｻ ﾀﾛｼｺﾇﾏｴﾂ ﾇﾁｷﾎｼｼｽｺﾀﾔｴﾏｴﾙ. ｺｹﾁｦｴﾂ ｳﾗﾆｮｿﾅｩ ﾀﾌｺ･ﾆｮｿ｡ｼｭ ｺｼｷﾀﾇ ｰ｡ｿｵｵｸｦ ﾁｰ｡ｽﾃﾅｵｴﾏｴﾙ.",
!                     IDC_STATIC,0,36,208,25
!     LTEXT           "ｷ酥ｮ ｺｼｷﾀｻ ｺｹﾁｦﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",IDC_REPLICATE_QUESTION,0,
!                     166,209,8
!     LTEXT           "ｺｹﾁｦｴﾂ ﾀﾚﾁﾖ ｾﾗｼｼｽｺｵﾇｴﾂ ｺｼｷｿ｡ ｴﾇﾑ ｿ菘ｻﾀｸｷﾎ ﾀﾎﾇﾘ ﾇﾏｳｪﾀﾇ ｼｭｹｿ｡ ｰｺﾎﾇﾏｰ｡ ｰﾉｸｮｴﾂ ｰﾍﾀｻ ｹ戝ﾇﾏｴﾂ ｵ･ ｵｵｿﾀﾌ ｵﾋｴﾏｴﾙ.",
!                     IDC_STATIC,0,90,209,25
!     LTEXT           "ｼｿ ｷ酥ｮ ｺｼｷ ｺｹﾁｦ",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾀﾌ AFS ｼｿｿ｡ ﾀﾖｴﾂ ｴﾙｸ･ ｺｼｷﾀｻ ｺｹﾁｦﾇﾒ ｰ霾ｹﾀﾌｶｸ, ｸﾕﾀ ｷ酥ｮ ｺｼｷﾀｻ ｺｹﾁｦﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ.",
!                     IDC_STATIC,0,15,209,16
!     LTEXT           "ｺｼｷﾀﾌ ｵ鮴 ﾀﾖｴﾂ ｼｭｹ ﾁﾟ ﾇﾏｳｪｸｦ ｻ鄙ﾇﾒ ｼ ｾﾀｸｹﾇｷﾎ ｼｭｹ ｺﾎﾁｷ ｻﾈｲﾀﾌ ｹﾟｻﾇﾏﾁｸｸ, ｴﾙｸ･ ｼｭｹｿ｡ｼｭ ｱﾗ ｺｼｷｿ｡ ｾﾗｼｼｽｺﾇﾒ ｼ ﾀﾖｽﾀｴﾏｴﾙ. ",
!                     IDC_STATIC,0,67,209,19
!     LTEXT           "ﾇﾊｿ萇ﾑ ｰ豼, ｽﾇﾇ ﾁﾟ ｸﾞｽﾃﾁｸｦ ｼｳﾁ､ﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_CANT_REPLICATE_MSG,0,166,209,34,NOT WS_VISIBLE | NOT 
!                     WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "ｷ酥ｮ ｺｼｷ ﾀﾛｼｺ(&Y)",IDC_CREATE_ROOT_VOLUMES,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,108,10
!     CONTROL         "ｷ酥ｮ ｺｼｷﾀｻ ﾀﾛｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)",
!                     IDC_DONT_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON,
!                     0,190,124,10
!     LTEXT           "AFSｿ｡ｼｭ ｺｼｷﾀｺ ｽﾃｽｺﾅﾛ ｰｸｮｸｦ ｽｱｰﾔﾇﾏｱ ﾀｧﾇﾘ ﾇﾏｳｪﾀﾇ ｴﾜﾀｧｷﾎ ﾁ､ｸｮﾇﾑ ｿｬｰｵﾈ ﾆﾄﾀﾏｵ鯊ﾇ ｸﾀｽﾀﾔｴﾏｴﾙ. ",
!                     IDC_STATIC,0,15,209,17
!     LTEXT           "ｷ酥ｮ ｺｼｷﾀｻ ﾀﾛｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",IDC_ROOT_AFS_QUESTION,0,
!                     166,209,8
!     LTEXT           "ｼｿﾀﾇ ｷ酥ｮ ｺｼｷﾀｻ ﾀﾛｼｺﾇﾏｽﾊｽﾃｿﾀ.",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾀﾏｴﾜ ｷ酥ｮ ｺｼｷﾀﾌ ﾀﾛｼｺｵﾇｸ, AFS ﾆﾄﾀﾏ ｰｰ｣ｿ｡ｼｭ ﾀﾚｵｿﾀｸｷﾎ ｾﾗｼｼｽｺﾇﾒ ｼ ﾀﾖｽﾀｴﾏｴﾙ.",
!                     IDC_STATIC,0,88,209,17
!     LTEXT           "ﾇﾊｿ萇ﾑ ｰ豼, ｽﾇﾇ ﾁﾟ ｸﾞｽﾃﾁｸｦ ｼｳﾁ､ﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_ROOT_AFS_MSG,0,166,209,33,NOT WS_VISIBLE
!     LTEXT           "root.afs ｺｼｷﾀｺ AFS ﾆﾄﾀﾏ ｰｰ｣ﾀﾇ ｷ酥ｮﾀﾔｴﾏｴﾙ. root.cell ｺｼｷﾀｺ AFS ﾆﾄﾀﾏ ｰｰ｣ｿ｡ｼｭ ﾀﾌ ｼｿﾀﾇ ｼｭｺﾆｮｸｮﾀﾇ ｷ酥ｮﾀﾌｸ root.afsﾀﾇ ｸｶｿﾆｮ ﾆﾀﾎﾆｮｸｦ ﾅﾇﾘ ｾﾗｼｼｽｺｵﾋｴﾏｴﾙ. ",
!                     IDC_STATIC,0,51,209,25
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 84
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "AFS ｼｭｹ ｱｸｼｺ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,38,148,14
!     LTEXT           "ﾁｶﾀﾛ ﾅﾘｽｺﾆｮ - ｽﾇﾇ ﾁﾟ ｼｳﾁ､.",IDC_OPERATION,35,20,145,10
!     ICON            "",IDC_LOGO,7,7,20,20
!     PUSHBUTTON      "ﾃｼﾒ",IDCANCEL,73,63,50,14
!     LTEXT           "ﾇﾀ ｱｸｼｺ ﾆﾇｺｰ:",IDC_OPERATION2,35,7,156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "ｹ鮴 ｼｭｹ ｱｸｼｺ(&Y)",IDC_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,1,171,128,10
!     CONTROL         "ｹ鮴 ｼｭｹｸｦ ｱｸｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,1,183,147,10
!     LTEXT           "ｹ鮴 ｼｭｹｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺｵﾈ ｱ箍霑｡ｼｭｸｸ ｽﾇﾇ犒ﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ. ｶﾇﾇﾑ, ｹ鮴 ｼｭｹｰ｡ ｼｿﾀﾇ ﾇﾑ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｿ｡ｼｭ ｽﾇﾇ犒ﾇｸ, ｼｿﾀﾇ ｸｵ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｿ｡ｼｭ ｽﾇﾇ犒ﾇｾｾﾟ ﾇﾕｴﾏｴﾙ. ",
!                     -1,0,38,205,27
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｹ鮴 ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",
!                     IDC_BACKUP_SERVER_QUESTION,0,147,209,10
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｹ鮴 ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ.",IDC_TITLE,0,0,207,
!                     8
!     LTEXT           "ｹ鮴 ｼｭｹｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺﾀﾇ ｼｱﾅﾃﾀ ｱ箒ﾉﾀﾔｴﾏｴﾙ.",
!                     -1,0,14,209,16
!     LTEXT           "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺｵﾇｾ ﾀﾖｽﾀｴﾏｴﾙ.",
!                     IDC_CANT_BACKUP_MSG,0,158,210,33,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｷﾎ ｱｸｼｺ(&S)",IDC_SYS_CONTROL_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,151,141,10
!     CONTROL         "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｷﾎ ｱｸｼｺ(&C)",
!                     IDC_SYS_CONTROL_CLIENT,"Button",BS_AUTORADIOBUTTON,0,164,
!                     131,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,90,174,113,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮ ｶﾇｴﾂ ｼｭｹｷﾎ ｱｸｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON,0,190,183,
!                     9
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｴﾂ ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｷﾎ ｽﾇﾇ ﾁﾟﾀﾎ ｱ簀ｸ AFS ｼｭｹ ｱ箍霑｡ ｰﾅ ｱｸｼｺ ﾆﾄﾀﾏﾀｻ ﾁｦｰﾇﾕｴﾏｴﾙ. AFS ｼｿﾀｺ ﾇﾏｳｪﾀﾇ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｸｸ ｽﾇﾇ猊ﾘｾﾟ ﾇﾕｴﾏｴﾙ.",
!                     -1,0,14,209,25
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ ｶﾇｴﾂ ﾅｬｶﾀﾌｾﾆｮｷﾎ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ ｶﾇｴﾂ ﾅｬｶﾀﾌｾﾆｮｷﾎ ｱｸｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,0,131,207,17
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｴﾂ ｼｿﾀﾇ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｿ｡ｼｭ AFS ｱｸｼｺ ﾆﾄﾀﾏｿ｡ ｻ鄙ｰ｡ｴﾉﾇﾑ ｸｵ ｰｻｽﾅﾀｻ ｼｽﾅﾇﾕｴﾏｴﾙ.",
!                     IDC_SYS_CONTROL_CLIENT_DESC,0,43,209,18
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ(&Y):",IDC_SYS_CONTROL_MACHINE_LABEL,15,
!                     176,73,8,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,0,166,210,34,NOT WS_VISIBLE
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     LTEXT           "ﾀﾌｴﾂ ﾀﾌ ｽﾃｽｺﾅﾛｿ｡ｼｭ AFS ｼｭｹｸｦ ｱｸｼｺﾇﾏｴﾂ ﾇﾊｿ萇ﾑ ﾁ､ｺｸﾀﾔｴﾏｴﾙ.",
!                     IDC_ALL_NEEDED_MSG,1,19,209,9
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｼｿ <ｽﾇﾇ ﾁﾟ ｼｳﾁ､>ﾀｸｷﾎ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ",IDC_TITLE,
!                     1,0,208,8
!     LTEXT           "ｴﾙﾀｽ ｱｸｼｺ ｴﾜｰ隹｡ ｼﾇ犒ﾋｴﾏｴﾙ.",IDC_FOLLOWING_STEPS_MSG,1,
!                     30,187,8
!     LTEXT           "ｴﾜｰ 1 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP1,22,42,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ｴﾜｰ 3 - ｷｱﾅｸﾀﾓｽﾃ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP3,22,65,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ｴﾜｰ 2 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP2,22,53,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ｴﾜｰ 4 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP4,22,77,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ｴﾜｰ 5 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP5,22,89,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ｴﾜｰ 6 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP6,22,101,179,8,
!                     NOT WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,190,200,9
!     LTEXT           "ｴﾜｰ 8 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP8,22,125,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ｴﾜｰ 7 - ｽﾇﾇ ﾁﾟ ｼｳﾁ､ｵﾈ ﾅﾘｽｺﾆｮ",IDC_STEP7,22,113,179,8,
!                     NOT WS_VISIBLE
!     LTEXT           "ﾇﾊｿ萇ﾑ ｰ豼, ｽﾇﾇ ﾁﾟ ｸﾞｽﾃﾁｸｦ ｼｳﾁ､ﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_CANT_CONFIG_MSG,1,9,200,9,NOT WS_VISIBLE
!     LTEXT           "ﾇﾀ ﾁｶﾀﾛ:",IDC_CURRENT_STEP_LABEL,1,137,39,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ﾀﾌ ﾄﾄﾇｻﾅﾍﾀﾇ ｱｸｼｺﾀｻ ｽﾃﾀﾛﾇﾏｷﾁｸ, ｱｸｼｺ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ. ｼﾇ猊ﾒ ｱｸｼｺ ｴﾜｰ雕ｦ ｺｯｰ貮ﾏｷﾁｸ, ｵﾚｷﾎ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ.",
!                     IDC_STATUS_MSG,1,147,206,32
!     LTEXT           "ﾇﾀ ｴﾜｰ ｼｳｸ - ｽﾇﾇ ﾁﾟ ｼｳﾁ､",IDC_CURRENT_STEP,1,167,
!                     208,8,NOT WS_VISIBLE
!     LTEXT           "ｿﾏｷ ﾁﾇ犢:",IDC_PERCENT_COMPLETE_LABEL,1,179,42,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,49,177,49,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP1_GRAPHIC,11,40,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,11,52,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,11,64,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,11,76,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,11,88,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,11,100,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,11,112,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,11,124,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,64,55,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,64,71,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,64,87,138,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,101,155,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,140,154,9,14
!     LTEXT           "ｰｸｮ ﾁ､ｺｸ",IDC_TITLE,0,0,202,8
!     LTEXT           "ﾀﾌｸｧ(&N):",IDC_ADMIN_NAME_LABEL,7,57,22,8
!     LTEXT           "ｾﾏﾈ｣(&P):",IDC_ADMIN_PW_LABEL,7,73,34,8
!     GROUPBOX        "ｰ霖､ ﾀﾌｸｧ ｹﾗ ｾﾏﾈ｣",IDC_ADMIN_INFO_FRAME,0,41,210,65
!     LTEXT           "ｾﾏﾈ｣ ﾈｮﾀﾎ(&V):",IDC_VERIFY_ADMIN_PW_LABEL,7,90,48,8
!     LTEXT           "ｴﾙﾀｽ ﾁ､ｺｸｴﾂ ｻｷﾎｿ ｼｿｿ｡ ｴﾇﾑ ｰｸｮ ｰ霖､ﾀｻ ﾀﾛｼｺﾇﾒ ｶｧ ﾇﾊｿ萇ﾕｴﾏｴﾙ.",
!                     IDC_STATIC,0,15,209,17
!     CONTROL         "ｱ簔ｸ AFS UID ｻ鄙(&S)",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,157,88,10
!     CONTROL         "ｴﾙﾀｽﾀｸｷﾎ ｻ鄙ｰ｡ｴﾉﾇﾑ AFS UID ｻ鄙(&U)",IDC_USE_NEXT_UID,
!                     "Button",BS_AUTORADIOBUTTON,6,144,159,10
!     GROUPBOX        "AFS UID",IDC_STATIC,0,118,209,57
!     LTEXT           "AFS ｰｸｮ ｰ霖､ｿ｡ ｴﾇﾑ ｻ鄙ﾀﾚ IDｸｦ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_STATIC,6,130,196,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     CONTROL         "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺﾇﾔ(&Y)",IDC_CONFIG_DB_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,110,134,10
!     CONTROL         "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,0,
!                     167,153,10
!     LTEXT           "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｴﾂ AFS ｼｿｿ｡ｼｭ ﾇﾊｿ萇ﾑ ｺｹﾁｦｵﾈ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｼﾆｮｸｦ ﾀｯﾁﾇﾕｴﾏｴﾙ. ﾀﾌ ｼｭｺｽｺｴﾂ ｼｿｿ｡ ｴﾇﾑ ｸｵ ｰ霖､, ｺｼｷ ﾀｧﾄ｡ ｹﾗ(ｼｱﾅﾃﾀ) ｹ鮴 ﾁ､ｺｸｸｦ ﾀｯﾁﾇﾕｴﾏｴﾙ.",
!                     -1,0,38,209,54
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?",
!                     IDC_DB_SERVER_QUESTION,1,97,209,10
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ.",IDC_TITLE,
!                     0,0,209,8
!     LTEXT           "ﾀﾌ ｱ箍雕ｦ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｷﾁｸ, ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｱｸｼｺﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ. ",
!                     -1,0,14,209,16
!     LTEXT           "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺｵﾇｾ ﾀﾖｽﾀｴﾏｴﾙ.",
!                     IDC_MSG,1,182,201,9,NOT WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,81,143,119,12,ES_AUTOHSCROLL
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ(&y):",IDC_SYS_CONTROL_MACHINE_LABEL,9,
!                     145,69,10
!     LTEXT           "ｼｿｿ｡ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｰ｡ ﾀﾖﾀｸｸ, ｱﾗ ﾈ｣ｽｺﾆｮ ﾀﾌｸｧﾀｻ ｾﾆｷ｡ｿ｡ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ. AFS ｱｸｼｺ ﾆﾄﾀﾏﾀｺ ﾀﾌ ｼｭｹｸｦ ﾅﾇﾘ ｰｻｽﾅｵﾋｴﾏｴﾙ.",
!                     IDC_SCM_PROMPT,9,124,195,17
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ", 0, 0, 0x1
! BEGIN
!     CONTROL         "ﾀﾌ ﾈ｣ｽｺﾆｮｸｦ ｱ簔ｸ AFS ｼｿ ｳｻﾀﾇ ｼｭｹｷﾎ ｸｸｵ(&M)",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON,0,37,
!                     160,10
!     CONTROL         "ﾀﾌｰﾍﾀﾌ ｻ AFS ｼｿ ｳｻﾀﾇ ﾃｹ ｹﾂｰ ｼｭｹｰ｡ ｵﾊ(&T)",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,0,49,153,10
!     EDITTEXT        IDC_CELL_NAME,64,91,139,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,64,166,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,64,180,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "ｼｿ ｹﾗ ｼｭｹ ﾁ､ｺｸ",IDC_TITLE,0,0,203,8
!     LTEXT           "ｼｿ ﾀﾌｸｧ(&C):",IDC_CELL_NAME_LABEL,7,93,35,8
!     LTEXT           "ｾﾏﾈ｣(&P):",IDC_SERVER_PW_LABEL,7,167,34,8,WS_DISABLED
!     LTEXT           "AFS ｼｿﾀﾇ ﾀﾌｸｧﾀｻ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ.",IDC_CELL_NAME_PROMPT,8,
!                     78,195,11
!     LTEXT           "AFS ｰ霖､ｿ｡ ｴﾇﾑ ｾﾏﾈ｣ｸｦ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ. ｸｵ AFS ｼｭｹｴﾂ ﾀﾌ ｰ霖､ﾀｸｷﾎｼｭ ﾅ菁ｫﾀｻ ﾈｮｺｸﾇﾕｴﾏｴﾙ.",
!                     IDC_SERVER_PW_PROMPT,7,130,196,19,WS_DISABLED
!     GROUPBOX        "ｼｿ ﾀﾌｸｧ",IDC_CELL_NAME_FRAME,0,67,210,43
!     GROUPBOX        "ｼｭｹ ｾﾏﾈ｣",IDC_SERVER_PW_FRAME,0,119,210,81,WS_DISABLED
!     LTEXT           "ｾﾏﾈ｣ ﾈｮﾀﾎ(&V):",IDC_VERIFY_PW_LABEL,7,180,52,8,
!                     WS_DISABLED
!     LTEXT           "AFS ｼｿﾀｺ ﾆﾄﾀﾏ ｾﾗｼｼｽｺｿ｡ ｴﾇﾘ ﾀﾏﾁ､ﾇﾑ ﾀﾌｸｧ ｰｰ｣ﾀｻ ﾁｦｰﾇﾏｴﾂ ｼｭｹﾀﾇ ｸﾀｽﾀﾔｴﾏｴﾙ.",
!                     IDC_CELL_NAME_PROMPT2,1,14,202,17
!     LTEXT           "ﾀﾌｸｧ:",IDC_PRINCIPAL_LABEL,7,152,22,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,64,150,139,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,53,43,149,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,53,59,149,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,53,132,149,12,ES_AUTOHSCROLL
!     LTEXT           "ｰｸｮ ﾁ､ｺｸ",IDC_TITLE,0,0,209,8
!     LTEXT           "ｾﾆｷ｡ｿ｡ ｰｸｮ ｰ霖､ ﾁ､ｺｸｸｦ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_ADMIN_INFO_PROMPT,7,30,196,10
!     LTEXT           "ﾀﾌｸｧ(&N):",IDC_ADMIN_NAME_LABEL,7,46,22,8
!     LTEXT           "ｾﾏﾈ｣(&P):",IDC_ADMIN_PW_LABEL,7,62,34,8
!     GROUPBOX        "ｰ霖､ ﾀﾌｸｧ ｹﾗ ｾﾏﾈ｣",IDC_ADMIN_INFO_FRAME,0,17,210,62
!     GROUPBOX        "ｱ簔ｸﾀﾇ AFS ｼｭｹ",IDC_HOSTNAME_FRAME,1,92,209,60
!     LTEXT           "AFS ｼｭｹ:",IDC_HOSTNAME_LABEL,9,134,37,8
!     LTEXT           "ﾁｶﾀﾎﾇﾒ ｼｿｿ｡ｼｭ ｴﾙｸ･ AFS ｼｭｹﾀﾇ ﾈ｣ｽｺﾆｮ ﾀﾌｸｧﾀｻ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ. AFS ｱｸｼｺ ﾁ､ｺｸｴﾂ ﾀﾌ ｼｭｹｿ｡ｼｭ ﾁｶﾈｸｵﾋｴﾏｴﾙ.",
!                     IDC_HOSTNAME_PROMPT,7,105,202,25
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 285
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "ｼｭｺｽｺ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,20,281,40
!     GROUPBOX        "",IDC_STATIC,7,66,281,43
!     GROUPBOX        "",IDC_STATIC,7,115,281,42
!     GROUPBOX        "",IDC_STATIC,7,161,281,44
!     CONTROL         "ﾆﾄﾀﾏ ｼｭｺｽｺ",IDC_FS_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,25,60,10
!     CONTROL         "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ",IDC_DB_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,72,82,10
!     PUSHBUTTON      "ﾀﾚｼｼﾈ...",IDC_DB_DETAILS,230,91,52,14,NOT WS_VISIBLE
!     CONTROL         "ｹ鮴 ｼｭｹ",IDC_BK_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,121,71,10
!     CONTROL         "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ",IDC_SCS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,168,98,10
!     EDITTEXT        IDC_SC_MACHINE,107,245,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "ﾀﾌ AFS ｼｭｹｿ｡ｼｭ ｽﾇﾇ猊ﾒ ｼｭｺｽｺｸｦ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_STATIC,7,7,156,8
!     LTEXT           "ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ.",IDC_FS_STATUS_MSG,14,
!                     38,261,8
!     LTEXT           "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｰ｡ ﾇﾀ ﾀﾏｺﾎｸｸ ｼｳﾄ｡ｵﾇｾｽﾀｴﾏｴﾙ.",
!                     IDC_DB_STATUS_MSG,14,85,208,8
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ(&Y):",IDC_SC_MACHINE_LABEL,31,247,70,8,
!                     WS_DISABLED
!     LTEXT           "ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_FS_ACTION_MSG,14,50,262,8
!     LTEXT           "ｴ ﾀﾚｼｼﾇﾑ ﾁ､ｺｸｸｦ ｾﾀｸｷﾁｸ, ﾀﾚｼｼﾈｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ.",
!                     IDC_DB_ACTION_MSG,14,96,209,8
!     LTEXT           "ｹ鮴 ｼｭｹｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ.",IDC_BK_STATUS_MSG,14,
!                     135,259,8
!     LTEXT           "ｹ鮴 ｼｭｹｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_BK_ACTION_MSG,14,147,262,8
!     LTEXT           "ﾀﾌ ｼｭｹｸｦ ｻ鄙ﾇﾏｷﾁｸ, ﾆﾄﾀﾏ ｼｭｺｽｺ ｶﾇｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｽﾇﾇ猊ﾘｾﾟ ﾇﾕｴﾏｴﾙ.",
!                     IDC_SCS_ACTION_MSG,14,193,268,9
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｺｽｺｴﾂ ﾇﾀ ｽﾇﾇ犒ﾇﾁ ｾﾊｰ ﾀﾖｽﾀｴﾏｴﾙ.",
!                     IDC_SCS_STATUS_MSG,14,180,263,9
!     GROUPBOX        "",IDC_STATIC,7,214,281,59
!     CONTROL         "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮ",IDC_SCC,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,221,95,10
!     LTEXT           "ﾀﾌ ｼｭｹｸｦ ｻ鄙 ﾇﾏｷﾁｸ, ﾆﾄﾀﾏ ｼｭｺｽｺ ｶﾇｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｽﾇﾇ猊ﾘｾﾟ ﾇﾕｴﾏｴﾙ.",
!                     IDC_SCC_ACTION_MSG,14,261,268,9
!     LTEXT           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｺｽｺｴﾂ ﾇﾀ ｽﾇﾇ犒ﾇﾁ ｾﾊｰ ﾀﾖｽﾀｴﾏｴﾙ.",
!                     IDC_SCC_STATUS_MSG,14,235,263,9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "ﾆﾄﾆｼｼﾇ"
! FONT 9, "ｱｼｸｲ", 0, 0, 0x1
! BEGIN
!     LTEXT           "ｴﾙﾀｽ AFS ﾆﾄﾆｼｼﾇﾀﾌ ﾄﾄﾇｻﾅﾍｿ｡ ﾀﾖﾀｽ(&A)",IDC_STATIC,8,7,175,
!                     8
!     PUSHBUTTON      "ﾀﾛｼｺ(&C)...",IDC_CREATE_PARTITIONS,17,118,53,14
!     LTEXT           "ﾆﾄﾆｼｼﾇ ｶﾇｴﾂ ﾆﾄﾆｼｼﾇﾀﾇ ｺｼｷﾀｻ ｺｹｿﾇﾏｷﾁｸ, ｸｷﾏｿ｡ｼｭ ﾆﾄﾆｼｼﾇﾀｻ ｼｱﾅﾃﾇﾏｰ ﾀｧﾀﾇ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ. ﾀﾌ ｼｭｹｿ｡ ﾀﾖｴﾂ ｸｵ ﾆﾄﾆｼｼﾇﾀｻ ｺｹｿﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ.",
!                     IDC_SALVAGE_MSG,30,179,250,25
!     PUSHBUTTON      "ｺｹｿ(&S)...",IDC_SALVAGE,17,159,53,14
!     LTEXT           "ﾆﾄﾆｼｼﾇﾀｻ ﾁｦｰﾅﾇﾏｷﾁｸ, ｸｷﾏｿ｡ｼｭ ﾆﾄﾆｼｼﾇﾀｻ ｼｱﾅﾃﾇﾏｰ ﾀｧﾀﾇ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ.",
!                     IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
!     PUSHBUTTON      "ﾁｦｰﾅ(&M)",IDC_REMOVE,17,217,53,14,WS_DISABLED
!     GROUPBOX        "ﾆﾄﾆｼｼﾇ",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
!                     281,79,WS_EX_CLIENTEDGE
!     LTEXT           "ﾀﾌ ｼｭｹｿ｡ ｻ ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ.",
!                     IDC_CREATE_MSG,30,136,254,8
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 264, 177
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "AFS ﾆﾄﾆｼｼﾇ ﾀﾛｼｺ"
! FONT 9, "ｱｼｸｲ", 0, 0, 0x1
! BEGIN
!     LTEXT           "ｾﾆｷ｡ ｸｷﾏｿ｡ｼｭ ｻ ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾒ NTFS ｺｼｷﾀｻ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_TITLE,7,5,250,8
!     LTEXT           "AFS ﾆﾄﾆｼｼﾇ ﾀﾌｸｧ:",IDC_NAME_STATIC,17,131,66,8
!     EDITTEXT        IDC_PARTITION_NAME,119,129,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ﾀﾛｼｺ(&C)",IDC_CREATE,96,158,50,14,WS_DISABLED
!     PUSHBUTTON      "ｴﾝｱ(&O)",IDC_CLOSE,152,158,50,14
!     PUSHBUTTON      "ｵｵｿｸｻ",9,207,158,50,14
!     GROUPBOX        "ﾆﾄﾆｼｼﾇ ｸﾅｰｳｺｯｼ",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,250,
!                     95,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 249, 193
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS ｼｭｹ ｱｸｼｺ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,59,33,151,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,59,49,151,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,59,110,151,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ｱｸｼｺ(&C)",IDOK,108,172,50,14,WS_DISABLED
!     PUSHBUTTON      "ﾃｼﾒ",IDCANCEL,48,172,50,14
!     PUSHBUTTON      "ｵｵｿｸｻ",9,192,172,50,14
!     LTEXT           "ｾﾆｷ｡ｿ｡ ｰｸｮ ｰ霖､ ﾁ､ｺｸｸｦ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_ADMIN_INFO_PROMPT,14,20,196,10
!     LTEXT           "ﾀﾌｸｧ(&N):",IDC_ADMIN_NAME_LABEL,15,36,22,8
!     LTEXT           "ｾﾏﾈ｣(&P):",IDC_ADMIN_PW_LABEL,15,52,34,8
!     GROUPBOX        "ｰ霖､ ﾀﾌｸｧ ｹﾗ ｾﾏﾈ｣",IDC_ADMIN_INFO_FRAME,7,7,235,62
!     GROUPBOX        "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ",IDC_HOSTNAME_FRAME,7,76,235,54
!     LTEXT           "ﾈ｣ｽｺﾆｮ ﾀﾌｸｧ(&H):",IDC_HOSTNAME_LABEL,15,112,40,8
!     LTEXT           "ｼｿｿ｡ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｰ｡ ﾀﾖﾀｸｸ, ｱﾗ ﾈ｣ｽｺﾆｮ ﾀﾌｸｧﾀｻ ｾﾆｷ｡ｿ｡ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ. AFS ｱｸｼｺ ﾆﾄﾀﾏﾀｺ ﾀﾌ ｼｭｹｸｦ ﾅﾇﾘ ｰｻｽﾅｵﾋｴﾏｴﾙ.",
!                     IDC_HOSTNAME_PROMPT,13,88,197,18
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 273, 107
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS ｼｭｹ ｱｸｼｺ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     PUSHBUTTON      "ﾃｼﾒ",IDCANCEL,107,88,50,12
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,76,200,8
!     LTEXT           "ｿﾏｷ ﾁﾇ犢:",IDC_PERCENT_COMPLETE_LABEL,40,65,61,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ﾇﾀ ﾁｶﾀﾛ:",IDC_CURRENT_STEP_LABEL,40,7,34,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ﾇﾀ ｴﾜｰ ｼｳｸ - ｽﾇﾇ ﾁﾟ ｼｳﾁ､",IDC_CURRENT_STEP,40,54,
!                     226,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,101,50,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,7,20,20
!     LTEXT           "ﾀﾌ ﾄﾄﾇｻﾅﾍﾀﾇ ｱｸｼｺﾀｻ ｽﾃﾀﾛﾇﾏｷﾁｸ, ｱｸｼｺ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ. ｼﾇ猊ﾒ ｱｸｼｺ ｴﾜｰ雕ｦ ｺｯｰ貮ﾏｷﾁｸ, ｵﾚｷﾎ ｴﾜﾃﾟｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ.",
!                     IDC_STATUS_MSG,40,19,226,31
!     PUSHBUTTON      "ｷﾎｱﾗ ｺｸｱ(&V)",IDNEXT,159,88,50,12,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "CellServDB ｰｻｽﾅ ｿﾀｷ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     LISTBOX         IDC_LIST,7,26,173,127,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "ﾈｮﾀﾎ",IDOK,22,162,50,14
!     PUSHBUTTON      "ﾃｼﾒ",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "ｵｵｿｸｻ",9,130,162,50,14
!     LTEXT           "ｴﾙﾀｽ AFS ｼｭｹﾀﾇ CellServDB ﾆﾄﾀﾏﾀｺ ﾀﾚｵｿﾀｸｷﾎ ｰｻｽﾅｵﾉ ｼ ｾｽﾀｴﾏｴﾙ.",
!                     IDC_STATIC,7,7,173,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 259, 239
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "ｺｹｿ"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     DEFPUSHBUTTON   "ﾈｮﾀﾎ",IDOK,79,99,50,14
!     PUSHBUTTON      "ﾃｼﾒ",IDCANCEL,133,99,50,14
!     PUSHBUTTON      "ｵｵｿｸｻ(&H)",9,187,99,50,14
!     CONTROL         "ﾇﾘｴ ﾆﾄﾀﾏ ｼｭｹｻﾀﾇ ｸｵ ﾆﾄﾆｼｼﾇ ｺｹｿ(&S)",IDC_SERVER,
!                     "Button",BS_AUTORADIOBUTTON,14,35,176,10
!     CONTROL         "ｼｱﾅﾃｵﾈ ﾆﾄﾆｼｼﾇｻﾀﾇ ｸｵ ｺｼｷ ｺｹｿ(&P)",IDC_PARTITION,
!                     "Button",BS_AUTORADIOBUTTON,14,48,177,10
!     CONTROL         "ｼｱﾅﾃｵﾈ ﾆﾄﾆｼｼﾇｻﾀﾇ ﾆｯﾁ､ ｺｼｷ ｺｹｿ(&V)",IDC_VOLUME,"Button",
!                     BS_AUTORADIOBUTTON,14,61,177,10
!     EDITTEXT        IDC_VOLUME_NAME,79,73,88,12,ES_AUTOHSCROLL | WS_DISABLED
!     PUSHBUTTON      "<< ｰｱﾞ(&A) ",IDC_ADVANCED,7,99,50,14
!     GROUPBOX        "",IDC_STATIC,7,25,245,67
!     LTEXT           "ｺｼｷ ﾀﾌｸｧ(&N):",IDC_VOLUME_NAME_LABEL,27,75,47,8,
!                     WS_DISABLED
!     GROUPBOX        "ｰｱﾞ ｺｹｿ ｿﾉｼﾇ",IDC_ADVANCED_FRAME,7,180,245,52
!     LTEXT           "ﾀﾓｽﾃ ﾆﾄﾀﾏ ｰ豺ﾎ(&T):",IDC_TEMP_DIR_LABEL,17,165,74,8
!     EDITTEXT        IDC_LOG_FILE,93,147,133,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,188,130,21,12,ES_AUTOHSCROLL
!     LTEXT           "ｰ皺 ｷﾎｱﾗﾀﾇ ﾆﾄﾀﾏ ﾀﾌｸｧ(&L):",IDC_LOG_FILE_LABEL,17,149,
!                     74,8
!     EDITTEXT        IDC_TEMP_DIR,93,163,133,12,ES_AUTOHSCROLL
!     CONTROL         "ｺｴｷﾄ ｺｹｿ ﾁｶﾀﾛ(&R), ﾇﾁｷﾎｼｼｽｺ ｼ:",
!                     IDC_NUM_PROCESSES_CHECKBOX,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,17,132,165,10
!     LTEXT           "ｼｭｹ ｶﾇｴﾂ ﾀﾃｼ ﾆﾄﾆｼｼﾇﾀｻ ｺｹｿﾇﾒ ｰ豼, ｼｭｹｴﾂ ﾀﾏｽﾃﾀﾀｸｷﾎ ｿﾀﾇﾁｶﾀﾎﾀﾌ ｵﾋｴﾏｴﾙ.",
!                     IDC_STATIC,34,7,218,17
!     LTEXT           "ﾁﾖ:",IDC_STATIC,7,7,16,8
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS ｰ霖､ ｾﾏﾈ｣"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     EDITTEXT        IDC_PW,48,39,142,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ﾈｮﾀﾎ",IDOK,31,61,50,14
!     PUSHBUTTON      "ﾃｼﾒ",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "ｵｵｿｸｻ",9,140,61,50,14
!     LTEXT           "AFS ｰ霖､ ﾅｰｴﾂ 3.5 ﾀﾌﾀ ﾀﾎﾁ ｼｭｹｿ｡ｼｭｴﾂ ｰﾋｻｵﾉ ｼ ｾｽﾀｴﾏｴﾙ. ｾﾆｷ｡ｿ｡ AFS ｰ霖､ ｾﾏﾈ｣ｸｦ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ.",
!                     IDC_STATIC,7,7,183,21
!     LTEXT           "ｾﾏﾈ｣:",IDC_STATIC,7,41,35,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "ｺｼｷ ｺｹｿ - ｰ皺"
! FONT 9, "ｱｼｸｲ"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "ｴﾝｱ(&C)",IDC_CLOSE,225,266,50,14,WS_DISABLED
!     PUSHBUTTON      "ｵｵｿｸｻ",9,280,266,50,14
!     LTEXT           "<ｽﾇﾇ ﾁﾟ ｼｳﾁ､>",IDC_LOG_TITLE,7,38,263,8
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "<ｽﾇﾇ ﾁﾟ ｼｳﾁ､>",IDC_SALVAGE_STATUS,37,15,185,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 313
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 239
!         HORZGUIDE, 207
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 209
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 201
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 203
!         VERTGUIDE, 64
!         VERTGUIDE, 203
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 53
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 278
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 242
!         VERTGUIDE, 59
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 186
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 266
!         VERTGUIDE, 40
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 100
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 252
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 232
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ ｹﾗ ｸｶｹｻ""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "ｴﾙﾀｽ(&N) >"
!     IDS_FINISH              "ﾁｾｷ(&F)"
!     IDS_HELP_TITLE          "ｵｵｿｸｻ ｴﾜﾃﾟｸｦ ｴｩｸｧ"
!     IDS_HELP_DESC           "ﾁｱﾝﾀｺ ｵｵｿｸｻﾀｻ ｻ鄙ﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ."
!     IDS_CANCEL_DESC         "AFS ｺｸ･ ｽﾃﾀﾛ ｸｶｹｻ邵ｦ ﾃｼﾒﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
!     IDS_PARTITION_ALREADY_CREATED "AFS ﾆﾄﾆｼｼﾇﾀﾌ ﾀﾌｹﾌ ﾀﾌ ｱ箍霑｡ ﾁｸﾀ酩ﾕｴﾏｴﾙ."
!     IDS_NOT_A_FS_SERVER     "ﾀﾌ ｱ箍雍ﾂ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺｵﾇﾁ ｾﾊｾﾒｽﾀｴﾏｴﾙ. ｺｼｷﾀｺ ﾆﾄﾀﾏ ｼｭｹ ｱ箍霑｡ｼｭｸｸ ﾀﾛｼｺｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_ROOT_AFS_ALREADY_EXISTS "ｷ酥ｮ ｺｼｷﾀﾌ ﾀﾌｹﾌ ﾁｸﾀ酩ﾕｴﾏｴﾙ."
!     IDS_NO_PARTITION_EXISTS "ｷ酥ｮ ｺｼｷﾀｻ ﾀﾛｼｺﾇﾒ ﾆﾄﾆｼｼﾇﾀﾌ ｾｽﾀｴﾏｴﾙ. ｷ酥ｮ ｺｼｷﾀｻ ﾀﾛｼｺﾇﾏｷﾁｸ ｸﾕﾀ ﾆﾄﾆｼｼﾇﾀﾌ ﾁｸﾀ酩ﾘｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_ALREADY_REPLICATED  "ｷ酥ｮ ｺｼｷﾀﾌ ﾀﾌｹﾌ ｺｹﾁｦｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_ROOT_AFS_DOESNT_EXIST 
!                             "ｷ酥ｮ ｺｼｷﾀﾌ ｾｽﾀｴﾏｴﾙ. ｷ酥ｮ ｺｼｷﾀﾌ ﾀﾖｾｾﾟ ﾀﾌｸｦ ｺｹﾁｦﾇﾒ ｼ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_ALREADY_CONFIGURED  "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ AFS ｼｭｹｷﾎ ｱｸｼｺｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_NOTHING_TO_CONFIGURE "ｱｸｼｺﾇﾒ ｳｻｿﾀｻ ｼｱﾅﾃﾇﾏﾁ ｾﾊｾﾒｽﾀｴﾏｴﾙ."
!     IDS_EXIT                "ﾁｾｷ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "ﾆﾄﾀﾏ ｼｭｺｽｺ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_CANCEL_CONFIG_MSG   "ﾀﾌ ｽﾃﾁ｡ｿ｡ｼｭ ﾃｼﾒﾇﾏｸ, ﾄﾄﾇｻﾅﾍｴﾂ ｺﾎｺﾐﾀﾀｸｷﾎｸｸ AFS ｼｭｹｷﾎ ｱｸｼｺｵﾋｴﾏｴﾙ. ｱﾗｷ｡ｵｵ ﾃｼﾒﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
!     IDS_WIZARD_APP_TITLE    "AFS ｼｭｹ ｺｸ･ ｽﾃﾀﾛ ｸｶｹｻ"
!     IDS_CANCEL_PENDING      "*** ｺｸｷ ﾃｼﾒ - ﾀ眇ﾃｸｸ ｱ箒ﾙｸｮｽﾊｽﾃｿﾀ...***"
!     IDS_CHECK_FS_CONFIG     "ﾆﾄﾀﾏ ｼｭｹ ﾈｮﾀﾎ..."
!     IDS_CHECK_DB_CONFIG     "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹ ﾈｮﾀﾎ..."
!     IDS_CHECK_BAK_CONFIG    "ｹ鮴 ｼｭｹ ﾈｮﾀﾎ..."
!     IDS_CHECK_PARTITION     "AFS ﾆﾄﾆｼｼﾇ ﾈｮﾀﾎ..."
!     IDS_CHECK_ROOT_AFS      "ｷ酥ｮ ｺｼｷ ﾈｮﾀﾎ..."
!     IDS_CHECK_REP           "ｷ酥ｮ ｺｼｷ ｺｹﾁｦ ﾈｮﾀﾎ..."
!     IDS_CANCEL_GET_CONFIG   "ﾃｼﾒ ﾁﾟ...ﾀ眇ﾃｸｸ ｱ箒ﾙｸｮｽﾊｽﾃｿﾀ..."
!     IDS_ALREADY_A_BACKUP_SERVER "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ｹ鮴 ｼｭｹｷﾎ ｱｸｼｺｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_NOT_A_DB_SERVER     "ﾀﾌ ｱ箍雍ﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺｵﾇﾁ ｾﾊｾﾒｽﾀｴﾏｴﾙ. ｹ鮴 ｼｭｹｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹ ｱ箍霑｡ｼｭｸｸ ｽﾇﾇ犒ﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_ALREADY_A_SYS_CONTROL_SERVER 
!                             "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｷﾎ ｱｸｼｺｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT 
!                             "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｷﾎ ｱｸｼｺｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "ﾀﾌ ｱ箍雍ﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｶﾇｴﾂ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺｵﾇﾁ ｾﾊｾﾒｽﾀｴﾏｴﾙ. ﾄﾄﾇｻﾅﾍｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｶﾇｴﾂ ﾆﾄﾀﾏ ｼｭｹ ｱ箍霍ﾎ ｱｸｼｺｵﾈ ｰ豼ｿ｡ｸｸ ｽﾃｽｺﾅﾛ ﾁｦｾ ｱ箍霍ﾎ ｱｸｼｺｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "ｺｼｷ"
!     IDS_NAME_OR_ERROR       "ﾀﾌｸｧ(ｶﾇｴﾂ ｿﾀｷ ｸﾞｽﾃﾁ)"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "ﾀﾌ ｱ箍雍ﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｶﾇｴﾂ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺｵﾇﾁ ｾﾊｾﾒｽﾀｴﾏｴﾙ. ﾄﾄﾇｻﾅﾍｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｶﾇｴﾂ ﾆﾄﾀﾏ ｼｭｹ ｱ箍霍ﾎ ｱｸｼｺｵﾈ ｰ豼ｿ｡ｸｸ ﾀﾌﾁ ｺﾐｹ ｱ箍霍ﾎ ｱｸｼｺｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_CHECK_SCS           "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ ﾈｮﾀﾎ..."
!     IDS_CHECK_SCC           "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮ ﾈｮﾀﾎ..."
!     IDS_SIZE                "ﾅｩｱ"
!     IDS_ERROR_SEP           ",   "
!     IDS_MUST_CONFIG_FS      "ｼｿﾀﾇ ﾃｹｹﾂｰ AFS ｼｭｹﾀﾌｹﾇｷﾎ ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ｱｸｼｺｵﾋｴﾏｴﾙ."
!     IDS_MUST_CONFIG_DB      "ｼｿﾀﾇ ﾃｹｹﾂｰ AFS ｼｭｹﾀﾌｹﾇｷﾎ, ｵ･ﾀﾌﾅｸｺ｣ﾀﾌｽｺ ｼｭｺｽｺｰ｡ ｱｸｼｺｵﾋｴﾏｴﾙ."
!     IDS_MUST_MAKE_PARTITION "ﾆﾄﾆｼｼﾇﾀｺ ｼｿﾀﾇ ﾃｹｹﾂｰ AFS ｼｭｹﾀﾌｹﾇｷﾎ ﾀﾛｼｺｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "ｼｿﾀﾇ ﾃｹｹﾂｰ AFS ｼｭｹﾀﾌｹﾇｷﾎ root.afs ｹﾗ root.cell ｺｼｷﾀﾌ ﾀﾛｼｺｵﾋｴﾏｴﾙ."
!     IDS_MUST_REPLICATE      "ｼｿﾀﾇ ﾃｹｹﾂｰ AFS ｼｭｹﾀﾌｹﾇｷﾎ root.afs ｹﾗ root.cell ｺｼｷﾀﾌ ｺｹﾁｦｵﾋｴﾏｴﾙ."
!     IDS_CHECK_AFS_CLIENT    "AFS ﾅｬｶﾀﾌｾﾆｮ ｼｳﾄ｡ ﾈｮﾀﾎ..."
!     IDS_ERROR_HOST_NAME     "ﾀﾌ ｱ箍霏ﾇ ﾈ｣ｽｺﾆｮ ﾀﾌｸｧﾀｻ ﾆﾇｺｰﾇﾏｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_ERROR_DRIVE_COMPRESSED "ｵ蠍ﾀﾌｺｰ｡ ｾﾐﾃ犒ﾇｾｽﾀｴﾏｴﾙ"
!     IDS_ERROR_CFG_HOST_OPEN "ｼｭｹ ｱｸｼｺ ｶﾀﾌｺｷｯｸｮｸｦ ﾃﾊｱ ｼｳﾁ､ﾇﾏｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "AFS ﾅｬｶﾀﾌｾﾆｮ ﾁ､ﾁ ﾁﾟ"
!     IDS_ERROR_LOCAL_HOST_NAME 
!                             "ﾀﾌ ｱ箍霏ﾇ ﾁｿｪ ﾈ｣ｽｺﾆｮ ﾀﾌｸｧﾀｻ ﾆﾇｺｰﾇﾏﾁ ｸﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_GET_TOKENS_ERROR    "ﾅ菁ｫﾀｻ ﾈｮｺｸﾇﾏｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ. ﾀﾔｷﾂﾇﾑ ｻ鄙ﾀﾚ ﾀﾌｸｧ ｹﾗ ｾﾏﾈ｣ｰ｡ ｿﾃｹﾙｸ･ﾁ ｰﾋﾁﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ｽﾃﾀﾛｵﾇﾁ ｾﾊｾﾆ ｺｹｿﾀｻ ｼﾇ猊ﾒ ｼ ｾｽﾀｴﾏｴﾙ. ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ｽﾃﾀﾛﾇﾑ ﾈﾄ ｺｹｿﾀｻ ﾀ鄂ﾃｵｵﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_SALVAGING           "ｺｹｿﾀﾌ ﾁﾇ ﾁﾟﾀﾔｴﾏｴﾙ. ｱ箒ﾙｸｮｽﾊｽﾃｿﾀ..."
!     IDS_CURRENT_SALVAGE_LOG "ﾇﾀ ｺｹｿ ｷﾎｱﾗ ｳｻｿ:"
!     IDS_FINAL_SALVAGE_LOG   "ﾃﾖﾁｾ ｺｹｿ ｷﾎｱﾗ ｳｻｿ:"
!     IDS_SALVAGE_COMPLETE    "ｺｹｿﾀﾌ ｿﾏｷ盞ﾇｾｽﾀｴﾏｴﾙ."
!     IDS_CANT_GET_SALVAGE_LOG "ｺｹｿ ｷﾎｱﾗｸｦ ｰﾋｻﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ."
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK 
!                             "ｺｹｿ ｷﾎｱﾗｸｦ ｵｽｺﾅｩｿ｡ ﾀﾀ衂ﾒ ｼ ｾｽﾀｴﾏｴﾙ."
!     IDS_VALIDATION_ERROR_TEMPLATE 
!                             "ﾁﾁ､ｵﾈ %1ﾀﾌ(ｰ｡) ﾀｯﾈｿﾇﾏﾁ ｾﾊｽﾀｴﾏｴﾙ. %2ﾀｻ(ｸｦ) ｴﾙｽﾃ ﾀﾔｷﾂﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_CELL_NAME_VALIDATION_TYPE "ｼｿ ﾀﾌｸｧ"
!     IDS_SERVER_NAME_VALIDATION_TYPE "ｼｭｹ ﾀﾌｸｧ"
!     IDS_PASSWORD_VALIDATION_TYPE "ｾﾏﾈ｣"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "ｻ鄙ﾀﾚ ﾀﾌｸｧ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "AFS ﾅｬｶﾀﾌｾﾆｮｰ｡ ｼｳﾄ｡ｵﾇﾁ ｾﾊｾﾒｽﾀｴﾏｴﾙ. AFS ﾅｬｶﾀﾌｾﾆｮｴﾂ AFS ｼｭｹｰ｡ ｱｸｼｺｵﾇｱ ﾀｿ｡ ｼｳﾄ｡ｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_ERROR_AFS_CLIENT_CHECK "AFS ｼｳﾄ｡ ｿｩｺﾎｸｦ ﾆﾇｺｰﾇﾏｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_ERROR_FS_IS_NOT_NTFS "ﾆﾄﾀﾏ ｽﾃｽｺﾅﾛﾀﾌ NTFSｰ｡ ｾﾆｴﾕｴﾏｴﾙ"
!     IDS_ERROR_DRIVE_HAS_DATA "ｵ蠍ﾀﾌｺｿ｡ ｵ･ﾀﾌﾅﾍｰ｡ ﾀﾖｽﾀｴﾏｴﾙ"
!     IDS_PARTITION_STEP_DESC "AFS ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_ERROR_DRIVE_CONTAINS_NT "ｵ蠍ﾀﾌｺｿ｡ NT ｼｳﾄ｡ｰ｡ ﾀﾖｽﾀｴﾏｴﾙ"
!     IDS_DB_STEP_DESC        "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_FS_STEP_DESC        "ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_SCC_STEP_DESC       "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｸｦ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_SCS_STEP_DESC       "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｸｦ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_ROOT_AFS_STEP_DESC  "ｷ酥ｮ ｺｼｷﾀｻ ﾀﾛｼｺﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_REP_STEP_DESC       "ｷ酥ｮ ｺｼｷﾀｻ ｺｹﾁｦﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_PARTITIONS_PAGE_TITLE "ﾆﾄﾆｼｼﾇ"
!     IDS_CONFIGURE           "ｱｸｼｺ(&C)"
!     IDS_DB_AND_BK_STEP_DESC "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ(ｹ鮴 ｼｭｹ ﾆﾇﾔ)ｸｦ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "AFS ﾆﾄﾆｼｼﾇ ﾀﾛｼｺ ﾁﾟ"
!     IDS_CONFIG_COMMON_FUNCS "ｸｵ ｼｭｺｽｺｿ｡ ｰﾅﾀﾎ ｱ箒ﾉ ｱｸｼｺ ﾁﾟ"
!     IDS_START_DB_STEP       "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_START_SCC_STEP      "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｷﾎ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｺｽｺ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_START_SCS_STEP      "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｷﾎ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｺｽｺ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_CREATE_ROOT_AFS_STEP "root.afs ｺｼｷ ﾀﾛｼｺ ﾁﾟ"
!     IDS_REP_STEP            "ｷ酥ｮ ｺｼｷ ｺｹﾁｦ ﾁﾟ"
!     IDS_START_AUTH_STEP     "ﾀﾌ ｼｭｹｿ｡ ｴﾇﾑ ﾅ菁ｫ ﾈｮｺｸ ﾁﾟ"
!     IDS_SERVICES_PAGE_TITLE "ｼｭｺｽｺ"
!     IDS_CONFIG_SUCCEEDED    "ｱｸｼｺﾀﾌ ｿﾏｷ盞ﾇｾｽﾀｴﾏｴﾙ."
!     IDS_CONFIG_CANCELED     "ｱｸｼｺﾀﾌ ﾃｼﾒｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_CONFIG_FAILED       "ｱｸｼｺｿ｡ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ.\r\nﾀﾚｼｼﾇﾑ %1 ｷﾎｱﾗ ﾆﾄﾀﾏﾀﾌ %2 ﾀｧﾄ｡ｿ｡ ﾀﾛｼｺｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_ERROR_NO_LICENSE_NUM "AFS ｻ鄙ｱﾇ ｹﾈ｣ｸｦ ﾃ｣ﾁ ｸﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_VERIFY_CLIENT_INSTALL_STEP "AFS ﾅｬｶﾀﾌｾﾆｮﾀﾇ ｼｳﾄ｡ ﾈｮﾀﾎ ﾁﾟ"
!     IDS_SET_SERVER_LICENSE_STEP "ﾀﾌ ｼｭｹｿ｡ ｴﾇﾑ ｻ鄙ｱﾇ ｼｳﾁ､ ﾁﾟ"
!     IDS_DEFINE_CELL_NAME_STEP "ﾀﾌ ｼｿｿ｡ ｴﾇﾑ ﾀﾌｸｧ ﾁ､ﾀﾇ ﾁﾟ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP "ﾀﾌ ｼｭｹｸｦ ｼｿﾀﾇ ｱｸｼｺｿﾀｸｷﾎ ﾀﾛｼｺ ﾁﾟ"
!     IDS_START_BOS_SERVER_STEP "BOS ｼｭｹ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_START_AUTH_SERVER_STEP "ﾀﾎﾁ ｼｭｹ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP "ﾀﾌ ｼｭｹｿ｡ ｴﾇﾑ ｰ霖､ ｹﾗ ﾅｰ ﾀﾛｼｺ ﾁﾟ"
!     IDS_START_DB_AND_BK_STEP "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ(ｹ鮴 ｼｭｹ ﾆﾇﾔ) ｽﾃﾀﾛ ﾁﾟ"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP "ｼｿ ｰｸｮ ｰ霖､ ﾀﾛｼｺ ﾁﾟ"
!     IDS_START_CLIENT_STEP   "AFS ﾅｬｶﾀﾌｾﾆｮ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_SET_ROOT_ACL_STEP   "root.afs ｺｼｷｿ｡ｼｭ ACL ｼｳﾁ､ ﾁﾟ"
!     IDS_CREATE_ROOT_CELL_STEP "root.cell ｺｼｷ ﾀﾛｼｺ ﾁﾟ"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP 
!                             "ﾇ･ﾁﾘ ｸｶｿﾆｮ ﾆﾀﾎﾆｮｸｦ ｻ鄙ﾇﾏｿｩ root.cell ｸｶｿﾆｮ ﾁﾟ"
!     IDS_SET_ROOT_CELL_ACL_STEP "root.cell ｺｼｷｿ｡ｼｭ ACL ｼｳﾁ､ ﾁﾟ"
!     IDS_MOUNT_ROOT_CELL_RW_STEP 
!                             "ﾀﾐｱ/ｾｲｱ ｸｶｿﾆｮ ﾆﾀﾎﾆｮｸｦ ｻ鄙ﾇﾏｿｩ root.cell ｺｼｷ ｸｶｿﾆｮ ﾁﾟ"
!     IDS_ENABLE_AUTH_CHECKING_STEP "ﾀﾎﾁ ﾈｮﾀﾎ ﾀﾛｵｿ ﾁﾟ"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "ｰｸｮ ﾅ菁ｫ ﾈｮｺｸ ﾁﾟ"
!     IDS_RESTART_SERVERS_STEP "ﾀﾌ ｱ箍霑｡ｼｭ ｸｵ ｼｭｹｸｦ ﾀﾎﾁｵﾈ ｼｭｹｷﾎ ﾀ鄂ﾃﾀﾛ ﾁﾟ"
!     IDS_ALREADY_A_FS_SERVER "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ﾆﾄﾀﾏ ｼｭｹｷﾎ ｱｸｼｺｵﾇｾｽﾀｴﾏｴﾙ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "ﾀﾌ ｱ箍雍ﾂ ﾀﾌｹﾌ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｷﾎ ｱｸｼｺｵﾇｾ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_INTRO_PAGE          "ｰｳｿ"
!     IDS_INFO_PAGE           "ｼｿ ｹﾗ ｼｭｹ ﾁ､ｺｸ"
!     IDS_FS_PAGE             "ﾆﾄﾀﾏ ｼｭｺｽｺ"
!     IDS_DB_PAGE             "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ"
!     IDS_CFG_TOOL_APP_TITLE  "AFS ｼｭｹ ｱｸｼｺ"
!     IDS_BK_PAGE             "ｹ鮴 ｼｭｹ"
!     IDS_ROOT_AFS_PAGE       "ｷ酥ｮ AFS ｺｼｷ"
!     IDS_NAME                "ﾀﾌｸｧ"
!     IDS_REP_PAGE            "ｺｹﾁｦ"
!     IDS_SC_PAGE             "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｺｽｺ"
!     IDS_CONFIG_PAGE         "ｽﾃｽｺﾅﾛﾀｻ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "AFS ﾆﾄﾆｼｼﾇ"
!     IDS_GRAPHIC_FONT        "ｱｼｸｲ, 12, B"
!     IDS_CURRENT_STEP        "ﾇﾀ ｴﾜｰ:"
!     IDS_ADD_TO_CELLSERVDB_STEP "ﾀﾌ ｼｭｹｸｦ CellServDBｿ｡ ﾃﾟｰ｡ ﾁﾟ"
!     IDS_RESTART_ALL_DB_SERVERS_STEP "ｼｿ ｳｻﾀﾇ ｸｵ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹ ﾀ鄂ﾃﾀﾛ ﾁﾟ"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "ｱｸｼｺﾀﾌ ｿﾏｷ盞ﾇｾｽﾀｴﾏｴﾙ. ﾁﾖ: ｻ鄙ﾀﾚ ｼｿｿ｡ ﾀﾖｴﾂ ｸｵ AFS ﾅｬｶﾀﾌｾﾆｮﾀﾇ CellServDB ﾆﾄﾀﾏﾀｻ ｰｻｽﾅﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ. ｴﾙｸ･ ｻ鄲ﾌﾆｮｿ｡ｼｭ ｻ鄙ﾀﾚ ｼｿﾀｻ ｻ鄙ﾇﾒ ｼ ﾀﾖｵｵｷﾏ ﾇﾏｷﾁｸ AFS ﾁｦﾇｰ ﾁｿｿ｡ ﾃﾖｽﾅ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹﾀﾇ ｸｷﾏﾀｻ ﾁｦｰﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ. "
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG 
!                             "ﾀﾌ ｱ箍雕ｦ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG 
!                             "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｷﾎ ｱｸｼｺﾇﾏﾁ ｾﾊﾀｽ(&O)"
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "AFS ｼｭｹﾀﾇ ｱｸｼｺｿ｡ｼｭｴﾂ AFS ﾅｬｶﾀﾌｾﾆｮｰ｡ ｼｭｹｿﾍ ｰｰﾀｺ ｼｿｿ｡ ｱｸｼｺｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ.  ﾀﾌｴﾂ ﾀﾚｵｿﾀｸｷﾎ ﾀﾌｷ鄒ﾁｴﾏｴﾙ."
!     IDS_INFO_PAGE2          "ｰｸｮ ﾁ､ｺｸ"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "ｱｸｼｺﾀﾌ ｿﾏｷ盞ﾇｾｽﾀｴﾏｴﾙ.\r\nﾁﾖ: ｴﾙｸ･ ｻ鄲ﾌﾆｮｿ｡ｼｭ ｼｿﾀｻ ｻ鄙ﾇﾒ ｼ ﾀﾖｰﾔ ﾇﾏｷﾁｸ ｻ鄙ﾀﾚﾀﾇ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹ ｸｷﾏﾀｻ ﾁｦｰﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_CONFIG_SCS          "ｼｿﾀﾇ ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｷﾎ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_CONFIG_INTO_CELL_MSG "ﾀﾌ ﾈ｣ｽｺﾆｮｸｦ ｼｿｿ｡ ｱｸｼｺﾇﾏｽﾊｽﾃｿﾀ "
!     IDS_VIEW_LOG            "ｷﾎｱﾗ ｺｸｱ(&V)"
!     IDS_VIEW_LOG_ERROR      "ｷﾎｱﾗ ﾆﾄﾀﾏﾀｻ ｺｼ ｼ ｾｽﾀｴﾏｴﾙ"
!     IDS_ERROR_NO_LOG_FILE   "ｷﾎｱﾗ ﾆﾄﾀﾏﾀﾌ ｾｽﾀｴﾏｴﾙ."
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED 
!                             "ﾈ｣ｽｺﾆｮｿ｡ｼｭ CellServDBｸｦ ｰｻｽﾅﾇﾟｽﾀｴﾏｴﾙ "
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED 
!                             "ﾈ｣ｽｺﾆｮｿ｡ｼｭ CellServDBｸｦ ｰｻｽﾅﾇﾏﾁ ｸﾇﾟｽﾀｴﾏｴﾙ "
!     IDS_CELL_NAME_LEN_ERROR "ﾀﾔｷﾂﾇﾑ ｼｿ ﾀﾌｸｧﾀﾌ ｳﾊｹｫ ｱ魘ﾏｴﾙ. ｼｿ ﾀﾌｸｧﾀｺ 64 ｹｮﾀﾚｸｦ ﾃﾊｰﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ."
!     IDS_CONFIG_CHECK_FAILED "ﾀﾌ ｱ箍霏ﾇ ﾇﾀ ｱｸｼｺﾀｻ ﾆﾇｺｰﾇﾏﾁ ｸﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_YES                 "ｿｹ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "ｾﾆｴﾏｿﾀ"
!     IDS_FREE                "ｻ鄙ｰ｡ｴﾉﾇﾑ ｰｰ｣"
!     IDS_TOTAL               "ﾃﾑ ﾅｩｱ"
!     IDS_DRIVE2              "ｵ蠍ﾀﾌｺ"
!     IDS_SERVICE_STATUS      "ｻﾅﾂ"
!     IDS_SERVICE             "ｼｭｺｽｺ"
!     IDS_FS_RUNNING          "ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ."
!     IDS_FS_STOPPED          "ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾌ ｾﾆｴﾕｴﾏｴﾙ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ."
!     IDS_DB_STOPPED          "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾌ ｾﾆｴﾕｴﾏｴﾙ."
!     IDS_BK_RUNNING          "ｹ鮴 ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ."
!     IDS_BK_STOPPED          "ｹ鮴 ｼｭｺｽｺｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾌ ｾﾆｴﾕｴﾏｴﾙ."
!     IDS_SCS_STOPPED         "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾌ ｾﾆｴﾕｴﾏｴﾙ."
!     IDS_SCC_STOPPED         "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｰ｡ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾌ ｾﾆｴﾕｴﾏｴﾙ."
!     IDS_FS_HOW_TO_RUN       "ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ｽﾃﾀﾛﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_FS_HOW_TO_STOP      "ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_DB_HOW_TO_RUN       "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｽﾃﾀﾛﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_DB_HOW_TO_STOP      "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_BK_HOW_TO_RUN       "ｹ鮴 ｼｭｺｽｺｸｦ ｽﾃﾀﾛﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "ｹ鮴 ｼｭｺｽｺｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_SCS_HOW_TO_RUN      "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｸｦ ｽﾃﾀﾛﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_SCS_HOW_TO_STOP     "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_DB_PARTIAL_CONFIG   "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｴﾂ ｺﾎｺﾐﾀﾀｸｷﾎ ｱｸｼｺｵﾋｴﾏｴﾙ."
!     IDS_DB_DETAILS          "ｴ ﾀﾚｼｼﾇﾑ ﾁ､ｺｸｸｦ ｾﾀｸｷﾁｸ, ﾀﾚｼｼﾈｸｦ ｴｩｸ｣ｽﾊｽﾃｿﾀ."
!     IDS_BK_DISABLED         "ｹ鮴 ｼｭｺｽｺｴﾂ ｻ鄙ｺﾒｰ｡ｴﾉﾇﾕｴﾏｴﾙ."
!     IDS_BK_ENABLE           "ｹ鮴 ｼｭｺｽｺｸｦ ｻ鄙 ｰ｡ｴﾉﾇﾏｰﾔ ﾇﾏｷﾁｸ, ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｽﾇﾇ猊ﾘｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_SC_DISABLED         "ﾀﾌ ｼｭｹｴﾂ ｻ鄙ｺﾒｰ｡ｴﾉﾇﾕｴﾏｴﾙ."
!     IDS_SC_ENABLE           "ﾀﾌ ｼｭｹｸｦ ｻ鄙 ﾇﾏｷﾁｸ, ﾆﾄﾀﾏ ｼｭｺｽｺ ｶﾇｴﾂ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｽﾇﾇ猊ﾘｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_FS_WILL_RUN         "ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ｽﾃﾀﾛｵﾋｴﾏｴﾙ."
!     IDS_FS_WILL_STOP        "ﾆﾄﾀﾏ ｼｭｹｰ｡ ﾁ､ﾁｵﾋｴﾏｴﾙ."
!     IDS_DB_WILL_RUN         "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｰ｡ ｽﾃﾀﾛｵﾋｴﾏｴﾙ."
!     IDS_DB_WILL_STOP        "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｰ｡ ﾁ､ﾁｵﾋｴﾏｴﾙ."
!     IDS_BK_WILL_RUN         "ｹ鮴 ｼｭｺｽｺｰ｡ ｽﾃﾀﾛｵﾋｴﾏｴﾙ."
!     IDS_BK_WILL_STOP        "ｹ鮴 ｼｭｺｽｺｰ｡ ﾁ､ﾁｵﾋｴﾏｴﾙ."
!     IDS_SCS_WILL_RUN        "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｰ｡ ｽﾃﾀﾛｵﾋｴﾏｴﾙ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｰ｡ ﾁ､ﾁｵﾋｴﾏｴﾙ."
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "ｵ蠍ﾀﾌｺｴﾂ ﾀﾌｹﾌ AFS ﾆﾄﾆｼｼﾇﾀﾔｴﾏｴﾙ"
!     IDS_VOLUME_HAS_NO_NAME  "<ｺｼｷｿ｡ ﾀﾌｸｧﾀﾌ ｾｽﾀｴﾏｴﾙ>"
!     IDS_PARTITION_CREATED   "ｻ AFS ﾆﾄﾆｼｼﾇﾀﾌ ﾀﾛｼｺｵﾇｾｽﾀｴﾏｴﾙ."
!     IDS_PARTITION_EXISTS    "ﾀﾔｷﾂﾇﾑ ﾆﾄﾆｼｼﾇ ﾀﾌｸｧﾀﾌ ﾀﾌｹﾌ ｴﾙｸ･ ﾆﾄﾆｼｼﾇｿ｡ｼｭ ｻ鄙ﾇﾏｰ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_SCS_RUNNING         "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｴﾂ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ."
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN "ﾀﾌ ｵ蠍ﾀﾌｺｿ｡ｴﾂ ﾈﾞﾁﾅｸｸ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_SCC_WILL_RUN        "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｰ｡ ｽﾃﾀﾛｵﾋｴﾏｴﾙ."
!     IDS_SCC_WILL_STOP       "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｰ｡ ﾁ､ﾁｵﾋｴﾏｴﾙ."
!     IDS_SCC_RUNNING         "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｴﾂ ﾇﾀ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ."
!     IDS_SCC_HOW_TO_RUN      "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｸｦ ｽﾃﾀﾛﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_SCC_HOW_TO_STOP     "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｸｦ ﾁ､ﾁﾇﾏｷﾁｸ, ﾀｧﾀﾇ ｻﾀﾚｸｦ ｼｱﾅﾃﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ."
!     IDS_SCS_ENABLE          "ﾀﾌ ｼｭｹｸｦ ﾀﾛｵｿｽﾃﾅｰｷﾁｸ, ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮﾀﾇ ｽﾇﾇ狢ｻ ﾁ､ﾁｽﾃﾄﾑｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_SCC_ENABLE          "ﾀﾌ ｼｭｹｸｦ ﾀﾛｵｿｽﾃﾅｰｷﾁｸ, ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹﾀﾇ ｽﾇﾇ狢ｻ ﾁ､ﾁｽﾃﾄﾑｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_UNCONFIG_DB_STEP    "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_DB_STEP_DESC "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｱｸｼｺﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP 
!                             "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ(ｹ鮴 ｼｭｹ ﾆﾇﾔ) ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC 
!                             "ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺ(ｹﾗ ｹ鮴 ｼｭｹ) ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_BK_STEP    "ｹ鮴 ｼｭｹ ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_BK_STEP_DESC "ｹ鮴 ｼｭｹｸｦ ｱｸｼｺﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_UNCONFIG_FS_STEP    "ﾆﾄﾀﾏ ｼｭｺｽｺ ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_FS_STEP_DESC "ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ｱｸｼｺﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_UNCONFIG_SCS_STEP   "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹ ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_SCS_STEP_DESC "ｽﾃｽｺﾅﾛ ﾁｦｾ ｼｭｹｸｦ ｱｸｼｺﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_UNCONFIG_SCC_STEP   "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮ ｱｸｼｺﾃｼﾒ ﾁﾟ"
!     IDS_UNCONFIG_SCC_STEP_DESC "ｽﾃｽｺﾅﾛ ﾁｦｾ ﾅｬｶﾀﾌｾﾆｮｸｦ ｱｸｼｺﾃｼﾒﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_INVALIDATE_CONFIG_INFO_STEP "ﾀﾌ ｱ箍霏ﾇ ｱｸｼｺ ﾁ､ｺｸ ｹｫﾈｿﾈｭ"
!     IDS_CLOSE               "ｴﾝｱ(&C)"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "ｾﾆｷ｡ﾀﾇ AFS ｼｭｹｿ｡ｼｭｴﾂ CellServDB ﾆﾄﾀﾏﾀｻ ｰｻｽﾅﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ. ﾀﾌｴﾂ ﾄ｡ｸﾀﾀﾎ ｿﾀｷｴﾂ ｾﾆｴﾕｴﾏｴﾙ.\r\n"
!     IDS_DELETE_PARTITION_PROMPT "'%1' ﾆﾄﾆｼｼﾇﾀｻ ｻ霖ｦﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
!     IDS_INVALIDATE_CFG_INFO "ﾁｱﾝ ﾀﾌ ﾄﾄﾇｻﾅﾍｿ｡ｼｭ ｽﾇﾇ ﾁﾟﾀﾎ AFS ｼｭｹ ﾇﾁｷﾎｼｼｽｺｰ｡ ｾｽﾀｴﾏｴﾙ. ﾀﾌ ｱ箍霑｡ｼｭ ｱｸｼｺ ﾁ､ｺｸｸｦ ﾁｦｰﾅﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "ｴ ﾀﾌｻ ｼｿﾀﾌ ｾｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ﾀｺ AFS ｼｿｿ｡ ﾀﾌｹﾌ ｱｸｼｺｵﾈ ｼｭｹ ｱ箍雕ｦ ｱｸｼｺﾇﾒ ｶｧｸｸ ｻ鄙ｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ｸｶｹｻ邏ﾂ ｻ ｼｿﾀｻ ｽﾃﾀﾛﾇﾒ ｶｧ ｻ鄙ｵﾋｴﾏｴﾙ."
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ﾀｺ ﾀﾌﾁｦ ﾁﾟｴﾜｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ. ﾀﾌｴﾂ ﾀﾌｹﾌ AFS ｼｭｹｷﾎ ｱｸｼｺｵﾈ ｱ箍霑｡ｼｭｸｸ ｽﾇﾇ犒ﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ. ﾀﾌ ｱ箍雕ｦ ｴﾙｽﾃ AFS ｼｭｹｷﾎ ｱｸｼｺﾇﾏｷﾁｸ, AFS ｱｸｼｺ ｸｶｹｻ邵ｦ ｽﾇﾇ猊ﾏｽﾊｽﾃｿﾀ."
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "ﾀﾌ ｱ箍雍ﾂ ｴ ﾀﾌｻ AFS ｼｭｹｷﾎ ｱｸｼｺｵﾇﾁ ｾﾊｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ﾀｺ AFS ｼｭｹ ｱ箍雕ｦ ｱｸｼｺﾇﾒ ｶｧｸｸ ｻ鄙ｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ｸｶｹｻ邏ﾂ ﾀﾌ ｱ箍雕ｦ AFS ｼｭｹｷﾎ ﾀ邀ｸｼｺﾇﾒ ｶｧ ｻ鄙ｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_GET_TOKENS_FAILED   "ﾁﾁ､ｵﾈ ｼｿｿ｡ ｴﾇﾑ ﾅ菁ｫ ﾈｮｺｸｿ｡ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "ｹ鮴 ｼｭｹ ｽﾃﾀﾛ ﾁﾟ"
!     IDS_BK_STEP_DESC        "ｹ鮴 ｼｭｹｸｦ ｽﾃﾀﾛﾇﾏｽﾊｽﾃｿﾀ"
!     IDS_CONFIG_ERROR        "ｱｸｼｺ ｿﾀｷｰ｡ ｹﾟｻﾇﾟｽﾀｴﾏｴﾙ"
!     IDS_CREATE_PARTITION_ERROR "ﾆﾄﾆｼｼﾇﾀｻ ﾀﾛｼｺﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ"
!     IDS_REMOVE_PARTITION_ERROR "ﾆﾄﾆｼｼﾇﾀｻ ﾁｦｰﾅﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ"
!     IDS_READ_PARTITIONS_ERROR "ﾆﾄﾆｼｼﾇ ﾅﾗﾀﾌｺﾀｻ ﾀﾐﾀｻ ｼ ｾｽﾀｴﾏｴﾙ"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\nCellServDB ｰｻｽﾅ ﾇﾁｷﾎｼｼｽｺｰ｡ ｹﾌｿﾏﾀﾇ ｻﾅﾂｷﾎ ﾁﾟｴﾜｵﾇｾｽﾀｴﾏｴﾙ. ｸｵ ｼｭｹｰ｡ ｰｻｽﾅｵﾇﾁ ｾﾊｾﾒﾀｻ ｼｵｵ ﾀﾖｽﾀｴﾏｴﾙ."
!     IDS_GET_PARTITION_LIST_ERROR "ﾀﾌ ｼｭｹｿ｡ｼｭ ﾆﾄﾆｼｼﾇﾀｻ ﾆﾇｺｰﾇﾒ ｼ ｾｽﾀｴﾏｴﾙ"
!     IDS_EXPORTED            "ｹﾝﾃ箏ﾊ"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "ﾆﾄﾀﾏ ｼｭｺｽｺｰ｡ ｽﾇﾇ ﾁﾟﾀﾏ ｶｧｴﾂ ｹﾝﾃ箏ﾈ ﾆﾄﾆｼｼﾇﾀｻ ﾁｦｰﾅｵﾉ ｼ ｾｽﾀｴﾏｴﾙ. ﾀﾌ ﾆﾄﾆｼｼﾇﾀｻ ﾁｦｰﾅﾇﾏｱ ﾀｿ｡ ﾆﾄﾀﾏ ｼｭｺｽｺｸｦ ﾁ､ﾁﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_CHECK_CONFIG_INFO   "ﾀｯﾈｿﾇﾑ ｱｸｼｺ ﾁ､ｺｸ ﾈｮﾀﾎ ﾁﾟ..."
!     IDS_ERROR_CFG_HOST_CLOSE "ｼｭｹ ｱｸｼｺ ｶﾀﾌｺｷｯｸｮｸｦ ｴﾝｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ"
!     IDS_FAILED_OPEN_CELL    "ｼｿﾀｻ ｿｩｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ"
!     IDS_FAILED_OPEN_NULL_CELL "ｳﾎ ｼｿ ﾇﾚｵ鯊ｻ ｿｩｴﾂ ｵ･ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ｷ酥ｮ ｺｼｷﾀﾌ ｾﾀｻ ｰ豼, ﾀﾌｸｦ ﾀﾛｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ｷ酥ｮ ｺｼｷﾀﾌ ｺｹﾁｦｵﾇﾁ ｾﾊｾﾒﾀｻ ｰ豼, ﾀﾌｸｦ ｺｹﾁｦﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS ｼｭｹ"
!     IDS_CANT_INIT_ADMIN_LIBS 
!                             "ﾀﾌ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ﾀｻ ｽﾇﾇ猊ﾒ ｼ ｾｽﾀｴﾏｴﾙ. ｶﾀﾌｺｷｯｸｮｸｦ ﾃﾊｱ箴ｳﾁ､ﾇﾏﾁ ｸﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_CANT_OPEN_LOG_FILE  "ｷﾎｱﾗ ﾆﾄﾀﾏﾀｻ ｿｭ ｼ ｾｽﾀｴﾏｴﾙ."
!     IDS_NEED_CLIENT_INFO    "AFS ﾅｬｶﾀﾌｾﾆｮｰ｡ ﾀﾌ ﾄﾄﾇｻﾅﾍｿ｡ ｱｸｼｺｵﾇｾ ﾀﾖﾁ ｾﾊﾀｸｹﾇｷﾎ AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ﾀｻ ｽﾇﾇ猊ﾒ ｼ ｾｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ｸｶｹｻ邏ﾂ ﾀﾌｷｱ ｰ豼ｿ｡ ｻ鄙ｵﾉ ｼ ﾀﾖｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ｸｶｹｻ邵ｦ ｽﾇﾇ猊ﾏｽﾃｰﾚｽﾀｴﾏｱ?"
!     IDS_NEED_SERVER_INFO    "ﾀﾌ ﾄﾄﾇｻﾅﾍｴﾂ AFS ｼｭｹｷﾎ ｱｸｼｺｵﾇｾ ﾀﾖﾁ ｾﾊｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ｸｶｹｻ邏ﾂ AFS ｼｭｹｸｦ ﾃﾊｱ ｱｸｼｺﾇﾒ ｶｧ ｻ鄙ｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ. ｱﾗｷｱ ｴﾙﾀｽ, AFS ｱｸｼｺ ﾀﾀｿﾇﾁｷﾎｱﾗｷ･ﾀｻ ｻ鄙ﾇﾒ ｼ ﾀﾖｽﾀｴﾏｴﾙ. AFS ｱｸｼｺ ｸｶｹｻ邵ｦ ｽﾇﾇ猊ﾏｿｩ ﾀﾌ ﾄﾄﾇｻﾅﾍｸｦ ﾃﾊｱ ｱｸｼｺﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
!     IDS_ADVANCED_OPEN       "<< ｰｱﾞ(&A)"
!     IDS_ADVANCED_CLOSED     "ｰｱﾞ(&A) >>"
!     IDS_BOS_OPEN_FAILED     "ｼｭｹｿ｡ ｿｬｰ睇ﾒ ｼ ｾｽﾀｴﾏｴﾙ(bos ｿｭｱ ｽﾇﾆﾐ)."
!     IDS_SALVAGE_ERROR       "ｺｹｿ ﾁｶﾀﾛﾀﾌ ｽﾇﾆﾐﾇﾟｽﾀｴﾏｴﾙ."
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "ﾁﾁ､ｵﾈ ｺｹｿ ﾇﾁｷﾎｼｼｽｺﾀﾇ ｼｰ｡ ﾀｯﾈｿﾇﾏﾁ ｾﾊｽﾀｴﾏｴﾙ. ｺｹｿ ﾇﾁｷﾎｼｼｽｺﾀﾇ ｼｴﾂ 1-32ｰｳﾀﾔｴﾏｴﾙ."
!     IDS_WRONG_CELL          "ﾀﾌﾀ ｴﾜｰ霑｡ｼｭ ｱｸｼｺ ﾁ､ｺｸｸｦ ｰﾋｻﾇﾘｾﾟ ﾇﾒ ｼｭｹｸｦ ﾁﾁ､ﾇﾟｽﾀｴﾏｴﾙ. ﾁﾁ､ｵﾈ ｼｭｹｴﾂ ﾁｶﾀﾎﾇﾒ ｼｿｿ｡ ｼﾓﾇﾏﾁ ｾﾊｽﾀｴﾏｴﾙ."
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "ｼｿﾀﾇ ﾀﾏｺﾎ ｼｭｹｿ｡ ﾀﾖｴﾂ CellServDB ﾆﾄﾀﾏﾀｺ ｰｻｽﾅｵﾉ ｼ ｾｽﾀｴﾏｴﾙ. ｰｻｽﾅｵﾈ ｼｭｹ ｹﾗ ｰｻｽﾅｵﾇﾁ ｾﾊﾀｺ ｼｭｹ ｸｷﾏﾀｻ ｾﾀｸｷﾁｸ ﾆﾄﾀﾏｿ｡ ﾀﾀ蠏ﾈ ｱｸｼｺ ｷﾎｱﾗｸｦ ｺｸｽﾊｽﾃｿﾀ."
!     IDS_GET_CREDENTIALS_STEP "ｰｸｮ ﾅ菁ｫ ﾈｮｺｸ ﾁﾟ"
!     IDS_MUST_ENTER_SCS_NAME "ｽﾃｽｺﾅﾛ ﾁｦｾ ｱ箍 ﾀﾌｸｧﾀｺ ｱｸｼｺﾀﾌ ｽﾃﾀﾛｵﾇｱ ﾀｿ｡ ﾀﾔｷﾂｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_NOT_SAME_CELL       "AFS ﾅｬｶﾀﾌｾﾆｮｴﾂ AFS ｼｭｹｿﾍ ｴﾙｸ･ ｼｿｿ｡ ｱｸｼｺｵﾋｴﾏｴﾙ. AFS ｼｭｹｸｦ ｱｸｼｺﾇﾏｷﾁｸ ｸﾕﾀ AFS ﾅｬｶﾀﾌｾﾆｮｸｦ ｼｭｹﾀﾇ ｼｿｿ｡ ﾀ邀ｸｼｺﾇﾘｾﾟ ﾇﾕｴﾏｴﾙ."
!     IDS_LAST_DB_SERVER      "ﾀﾌ ｱ箍雍ﾂ ｼｿﾀﾇ ｸｶﾁｸｷ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｹｸｦ ｽﾇﾇ ﾁﾟﾀﾔｴﾏｴﾙ. ｰ霈ﾓ ﾁﾇ猊ﾏｿｩ ﾀﾌ ｱ箍霑｡ｼｭ ｵ･ﾀﾌﾅﾍｺ｣ﾀﾌｽｺ ｼｭｺｽｺｸｦ ｱｸｼｺﾇﾘﾁｦﾇﾏｸ, ｼｿﾀｺ ｴ ﾀﾌｻ ﾁｸﾀ酩ﾏﾁ ｾﾊｰ ﾀﾌ ｱ箍霑｡ｼｭ ｽﾇﾇ ﾁﾟﾀﾎ ｴﾙｸ･ ｸｵ AFS ｼｭｺｽｺｵｵ ｱｸｼｺﾇﾘﾁｦｵﾋｴﾏｴﾙ. ｱﾗｷ｡ｵｵ ｰ霈ﾓﾇﾏｽﾃｰﾚｽﾀｴﾏｱ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "AFS ｰ霖､ｿ｡ ｴﾇﾑ ｾﾏﾈ｣ｰ｡ ﾀｯﾈｿﾇﾏﾁ ｾﾊｽﾀｴﾏｴﾙ."
!     IDS_ERROR_CLIENT_VERSION 
!                             "ﾀﾌ ﾄﾄﾇｻﾅﾍｿ｡ｼｭ AFS ﾅｬｶﾀﾌｾﾆｮﾀﾇ ｹﾀﾀｺ AFS ｼｭｹｿﾍ ﾈ｣ﾈｯｵﾉ ｼ ｾｽﾀｴﾏｴﾙ. AFS ｼｭｹｴﾂ ﾃﾖｼﾒﾇﾑ ｹﾀ 3.5ﾀﾇ AFS ﾅｬｶﾀﾌｾﾆｮｰ｡ ﾇﾊｿ萇ﾕｴﾏｴﾙ."
!     IDS_CANT_MAP_ROOT_AFS   "ACLﾀｻ ｷ酥ｮ ｺｼｷｿ｡ ｼｳﾁ､ﾇﾏｷﾁｸ, ｵ蠍ﾀﾌｺ ﾀﾌｸｧﾀﾌ AFSｿ｡ ｴﾀﾀｵﾇｾｾﾟ ﾇﾕｴﾏｴﾙ. ﾇﾀ ｻ鄙ｰ｡ｴﾉﾇﾑ ｵ蠍ﾀﾌｺ ﾀﾌｸｧﾀﾌ ｾｽﾀｴﾏｴﾙ. ｵ蠍ﾀﾌｺ ﾀﾌｸｧﾀｻ ｻ鄙ﾇﾒ ｼ ﾀﾖｵｵｷﾏ ﾇﾘﾁｦﾇﾏｰ ﾈｮﾀﾎﾀｻ ｴｩｸ｣ｽﾊｽﾃｿﾀ."
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "ﾆﾄﾆｼｼﾇ ﾀﾌｸｧ"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "ｺｼｷ ﾀﾌｸｧ"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE "ｺｹｿ ﾇﾁｷﾎｼｼｽｺ ｼ"
!     IDS_PATH_NAME_VALIDATION_TYPE "ｰ豺ﾎ ﾀﾌｸｧ"
!     IDS_FILE_NAME_VALIDATION_TYPE "ﾆﾄﾀﾏ ﾀﾌｸｧ"
!     IDS_GENERIC_VALIDATION_TYPE "ｰｪ"
! END
! 
! #endif    // Korean resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
Index: openafs/src/WINNT/afssvrcfg/lang/pt_BR/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/pt_BR/afscfg.rc:1.3 openafs/src/WINNT/afssvrcfg/lang/pt_BR/afscfg.rc:1.3.2.1
*** openafs/src/WINNT/afssvrcfg/lang/pt_BR/afscfg.rc:1.3	Thu Jun 19 15:00:56 2003
--- openafs/src/WINNT/afssvrcfg/lang/pt_BR/afscfg.rc	Fri Mar 11 01:59:14 2005
***************
*** 7,1204 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "Aplica鈬o e assistente de Configura鈬o do AFSｮ"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x416
  #define AFS_VERINFO_CHARSET 1252
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 320, 246
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "Assistente de Inicia鈬o R疳ida do AFSｮ Server"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "Cance&lar",IDCANCEL,101,225,50,14
!     PUSHBUTTON      "< Vol&tar",IDBACK,155,225,50,14
!     DEFPUSHBUTTON   "A&van軋r >",IDNEXT,209,225,50,14
!     PUSHBUTTON      "&Ajuda",9,263,225,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,214,305,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,103,7,210,200
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     CONTROL         "&Sim, crie uma parti鈬o.",IDC_CREATE_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,116,
!                     186,52,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,101,177,20,12,ES_AUTOHSCROLL
!     CONTROL         "&N縊, n縊 crie uma parti鈬o.",IDC_DONT_CREATE_PARTITION,
!                     "Button",BS_AUTORADIOBUTTON,0,191,102,8
!     LTEXT           "Este Servidor de Arquivos ir armazenar e entregar arquivos e programas a clientes do AFS. Para que dados armazenados neste sistema sejam compartilhados atrav駸 do AFS, pelo menos um volume NTFS deve estar dedicado como uma parti鈬o do AFS.",
!                     -1,0,12,209,34
!     LTEXT           "&Selecione o volume para ser usado na parti鈬o:",
!                     IDC_SELECT_DRIVE,12,106,163,9
!     LTEXT           "No&me da parti鈬o do AFS:  /vicep",IDC_NAME_LABEL,12,
!                     179,89,8
!     LTEXT           "Criar uma parti鈬o do AFS neste Servidor de Arquivos.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Uma parti鈬o do AFS  fisicamente equivalente a um volume NTFS, mas ela tamb駑 cont駑 metadados especializados sobre a estrutura e localiza鈬o das informa鋏es na parti鈬o.",
!                     -1,0,49,209,25
!     LTEXT           "Deseja criar uma parti鈬o neste Servidor de Arquivos?",
!                     IDC_ASK_CREATE_PARTITION,0,79,209,12
!     LTEXT           "Mensagem definida no runtime, se necess疵io.",
!                     IDC_PARTITION_MSG,0,167,210,33,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,210,92,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Sim, configure como Servidor de Arquivos.",
!                     IDC_SHOULD_CONFIG_FILE_SERVER,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,153,10
!     CONTROL         "&N縊, n縊 configure como Servidor de Arquivos.",
!                     IDC_DONT_CONFIG_FILE_SERVER,"Button",BS_AUTORADIOBUTTON,
!                     0,190,177,10
!     LTEXT           "O Servi輟 de Arquivos do AFS entrega arquivos e programas solicitados deste servidor a clientes do AFS. Este servi輟 tamb駑 manipula todas as opera鋏es de administra鈬o de volumes, tais como criar, excluir, mover e replicar.",
!                     -1,0,38,210,34
!     LTEXT           "Configurar esta m痃uina como Servidor de Arquivos.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Deseja configurar esta m痃uina como Servidor de Arquivos?",
!                     IDC_CREATE_FS_QUESTION,0,166,210,8
!     LTEXT           "Para configurar esta m痃uina como Servidor de Arquivos,  preciso configurar o Servi輟 de Arquivos.",
!                     -1,0,14,210,17
!     LTEXT           "Nota: Esta m痃uina n縊 possui no momento uma unidade de disco disponvel para armazenar arquivos no AFS. Embora esta m痃uina possa ser configurada como Servidor de Arquivos, n縊 ser possvel armazenar nela dados do AFS.",
!                     IDC_NO_DRIVES_NOTE,0,77,210,32,NOT WS_VISIBLE
!     LTEXT           "Para criar unidades de disco, use o Administrador de Discos do Windows NT.",
!                     IDC_DISK_ADMIN_NOTE,0,112,210,16,NOT WS_VISIBLE
!     LTEXT           "Esta m痃uina j est configurada como Servidor de Arquivos.",
!                     IDC_MSG,0,166,209,34,NOT WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Bem-vindo ao Assistente de Inicia鈬o R疳ida para o AFS Server. Este assistente ir ajud-lo a configurar rapidamente o AFS Server neste sistema Windows NT.",
!                     IDC_TITLE,0,0,209,26
!     LTEXT           "Pressione Avan軋r para iniciar a configura鈬o para o AFS Server.",
!                     IDC_STATIC,0,166,209,8
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Sim, replique os volumes da raiz.",IDC_REPLICATE,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,179,115,10
!     CONTROL         "&N縊, n縊 replique os volumes da raiz.",
!                     IDC_DONT_REPLICATE,"Button",BS_AUTORADIOBUTTON,0,190,134,
!                     10
!     LTEXT           "Replica鈬o  o processo de criar cpias somente de leitura de um volume em v疵ias parti鋏es, geralmente em outros Servidores de Arquivos. A replica鈬o aumenta a disponibilidade de um volume em caso de interrup鈬o",
!                     IDC_STATIC,0,35,193,34
!     LTEXT           "Deseja replicar os volumes da raiz?",
!                     IDC_REPLICATE_QUESTION,0,159,209,8
!     LTEXT           "A replica鈬o tamb駑 ajuda a evitar que qualquer servidor seja sobrecarregado com pedidos para volumes acessados freqentemente.",
!                     IDC_STATIC,0,98,193,25
!     LTEXT           "Replicar os volumes da raiz da c駘ula.",IDC_TITLE,0,0,
!                     209,8
!     LTEXT           "Se planejar replicar outros volumes nesta c駘ula do AFS, voc deve antes replicar os volumes da raiz.",
!                     IDC_STATIC,0,15,209,16
!     LTEXT           "da rede ou do servidor, porque se um dos servidores que abriga o volume n縊 estiver disponvel, o volume ainda poder ser acessado a partir de outro servidor.",
!                     IDC_STATIC,0,67,193,24
!     LTEXT           "Mensagem definida no runtime, se necess疵io.",
!                     IDC_CANT_REPLICATE_MSG,0,159,209,34,NOT WS_VISIBLE | NOT 
!                     WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Sim, crie os volumes da raiz.",IDC_CREATE_ROOT_VOLUMES,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,179,108,10
!     CONTROL         "N&o, n縊 crie os volumes da raiz.",
!                     IDC_DONT_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON,
!                     0,190,124,10
!     LTEXT           "No AFS, volumes s縊 cole鋏es de arquivos relacionados que s縊 organizados em unidades nicas, facilmente gerenciadas para facilitar a administra鈬o do sistema.",
!                     IDC_STATIC,0,15,209,17
!     LTEXT           "Deseja criar os volumes da raiz?",IDC_ROOT_AFS_QUESTION,
!                     0,157,209,8
!     LTEXT           "Criar os volumes da raiz da c駘ula.",IDC_TITLE,0,0,209,
!                     8
!     LTEXT           "Uma vez criados, os volumes da raiz estar縊 automaticamente acessveis no espa輟 de arquivos do AFS.",
!                     IDC_STATIC,0,67,209,17
!     LTEXT           "Mensagem definida no runtime, se necess疵io.",
!                     IDC_ROOT_AFS_MSG,0,156,209,33,NOT WS_VISIBLE
!     LTEXT           "O volume root.afs  a raiz do espa輟 de arquivos do AFS. O volume root.cell  a raiz da sub疵vore do espa輟 de arquivos do AFS nesta c駘ula, e  acessado atrav駸 de um ponto de montagem de root.afs.",
!                     IDC_STATIC,0,31,209,32
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 84
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "Configura鈬o do AFSｮ Server"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,41,148,14
!     LTEXT           "Texto de opera鈬o - definido no runtime.",IDC_OPERATION,
!                     35,19,156,17
!     ICON            "",IDC_LOGO,7,7,20,20
!     PUSHBUTTON      "Cancelar",IDCANCEL,73,63,50,14
!     LTEXT           "Determinando a configura鈬o atual:",IDC_OPERATION2,35,5,
!                     156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Sim, configure como Servidor de Backup.",
!                     IDC_CONFIG_BACKUP_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,179,143,10
!     CONTROL         "&N縊, n縊 configure como Servidor de Backup.",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,0,190,163,10
!     LTEXT           "O Servidor de Backup s pode ser executado em m痃uinas configuradas como Servidores de Banco de Dados. Al駑 disso, se ele for executado em um Servidor de Banco de Dados na c駘ula, deve ser executado em TODOS os Servidores de Bancos de Dados na c駘ula.",
!                     -1,0,38,207,40
!     LTEXT           "Deseja configurar esta m痃uina como Servidor de Backup?",
!                     IDC_BACKUP_SERVER_QUESTION,0,166,209,10
!     LTEXT           "Configurar esta m痃uina como Servidor de Backup.",
!                     IDC_TITLE,0,0,207,8
!     LTEXT           "O Servidor de Backup  um recurso opcional do Servi輟 de Banco de Dados.",
!                     -1,0,14,209,16
!     LTEXT           "Esta m痃uina j est configurada como Servidor de Banco de Dados.",
!                     IDC_CANT_BACKUP_MSG,0,163,210,33,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Configure como o &Servidor de Controle do Sistema.",
!                     IDC_SYS_CONTROL_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,146,179,10
!     CONTROL         "Configure como um &Cliente de Controle do Sistema.",
!                     IDC_SYS_CONTROL_CLIENT,"Button",BS_AUTORADIOBUTTON,0,158,
!                     182,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,106,167,101,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "N&o configure como um Cliente ou Servidor de Controle do Sistema.",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON | 
!                     BS_MULTILINE,0,182,206,17
!     LTEXT           "O Servidor de Controle do Sistema fornece arquivos comuns de configura鈬o a outras m痃uinas de Servidores do AFS em execu鈬o como Clientes de Controle do Sistema. Deve haver um nico Servidor de Controle do Sistema em execu鈬o nas c駘ulas do AFS.",
!                     -1,0,18,209,40
!     LTEXT           "Configurar como um Servidor ou Cliente de Controle do Sistema.",
!                     IDC_TITLE,1,1,195,18
!     LTEXT           "Deseja configurar esta m痃uina como Servidor ou Cliente de Controle do Sistema?",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,0,127,207,17
!     LTEXT           "Um Cliente de Controle do Sistema recebe do Servidor de Controle do Sistema da c駘ula quaisquer atualiza鋏es disponveis para seus arquivos de configura鈬o do AFS.",
!                     IDC_SYS_CONTROL_CLIENT_DESC,0,59,209,25
!     LTEXT           "Ser&vidor de Controle do Sistema:",
!                     IDC_SYS_CONTROL_MACHINE_LABEL,1,169,104,8,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,0,166,210,34,NOT WS_VISIBLE
!     LTEXT           "AVISO: Locais que n縊 usem a distribui鈬o norte-americana do AFSｮ n縊 devem distribuir arquivos de configura鈬o via Servidor de Controle do Sistema. Isto resultar em uma transmiss縊 n縊 criptografada das informa鋏es delicadas do sistema.",
!                     -1,2,86,207,35
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Estas s縊 todas as informa鋏es necess疵ias para configurar o AFS Server neste sistema.",
!                     IDC_ALL_NEEDED_MSG,1,14,209,17
!     LTEXT           "Configurar esta m痃uina na c駘ula <definido no runtime>",
!                     IDC_TITLE,1,3,208,8
!     LTEXT           "As seguintes etapas de configura鈬o ser縊 realizadas:",
!                     IDC_FOLLOWING_STEPS_MSG,1,36,187,8
!     LTEXT           "Etapa 1 - Texto definido no runtime",IDC_STEP1,30,50,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Etapa 3 - Texto definido no runtime",IDC_STEP3,30,74,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Etapa 2 - Texto definido no runtime",IDC_STEP2,30,62,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Etapa 4 - Texto definido no runtime",IDC_STEP4,30,86,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Etapa 5 - Texto definido no runtime",IDC_STEP5,30,98,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Etapa 6 - Texto definido no runtime",IDC_STEP6,30,110,
!                     165,8,NOT WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,178,200,11
!     LTEXT           "Etapa 8 - Texto definido no runtime",IDC_STEP8,30,134,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Etapa 7 - Texto definido no runtime",IDC_STEP7,30,122,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Mensagem definida no runtime, se necess疵io.",
!                     IDC_CANT_CONFIG_MSG,1,13,209,17,NOT WS_VISIBLE
!     LTEXT           "Porcentagem Concluda:",IDC_PERCENT_COMPLETE_LABEL,1,
!                     191,61,8,NOT WS_VISIBLE
!     LTEXT           "Opera鈬o Atual:",IDC_CURRENT_STEP_LABEL,1,157,108,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "Descri鈬o da etapa atual - definida no runtime",
!                     IDC_CURRENT_STEP,1,167,208,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,63,191,49,8,NOT WS_VISIBLE
!     LTEXT           "Para iniciar a configura鈬o deste computador, pressione o bot縊 Configurar.  Para alterar as etapas de configura鈬o a serem realizadas, pressione o bot縊 Voltar.",
!                     IDC_STATUS_MSG,1,159,208,41
!     LTEXT           "",IDC_STEP1_GRAPHIC,10,49,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,10,61,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,10,73,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,10,85,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,10,97,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,10,109,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,10,121,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,10,133,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,64,55,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,64,71,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,64,87,138,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,100,155,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,137,154,11,14
!     LTEXT           "Informa鋏es Administrativas",IDC_TITLE,0,0,202,8
!     LTEXT           "&Nome:",IDC_ADMIN_NAME_LABEL,7,57,22,8
!     LTEXT           "&Senha:",IDC_ADMIN_PW_LABEL,7,73,34,8
!     GROUPBOX        "Nome e Senha da Conta",IDC_ADMIN_INFO_FRAME,0,41,210,65
!     LTEXT           "Veri&ficar senha:",IDC_VERIFY_ADMIN_PW_LABEL,7,90,52,8
!     LTEXT           "As informa鋏es abaixo s縊 necess疵ias para criar a conta administrativa para esta nova c駘ula.",
!                     IDC_STATIC,0,15,209,17
!     CONTROL         "&Usar esta UID do AFS:",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,157,89,10
!     CONTROL         "Usar a &prxima UID disponvel do AFS",IDC_USE_NEXT_UID,
!                     "Button",BS_AUTORADIOBUTTON,6,144,153,10
!     GROUPBOX        "UID do AFS",IDC_STATIC,0,118,209,57
!     LTEXT           "Digite a ID de usu疵io para a conta administrativa do AFS:",
!                     IDC_STATIC,6,130,196,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Sim, configure como Servidor de Banco de Dados.",
!                     IDC_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,100,183,10
!     CONTROL         "&N縊, n縊 configure como Servidor de Banco de Dados.",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,0,
!                     190,200,10
!     LTEXT           "O Servi輟 de Banco de Dados mant駑 o conjunto de bancos de dados replicados requeridos por uma c駘ula do AFS. Este servi輟 mant駑 todas as informa鋏es de conta, localiza鈬o de volumes e (opcionalmente) de backup para a c駘ula.",
!                     -1,0,43,209,38
!     LTEXT           "Deseja configurar esta m痃uina como Servidor de Banco de Dados?",
!                     IDC_DB_SERVER_QUESTION,0,81,209,17
!     LTEXT           "Configurar esta m痃uina como Servidor de Banco de Dados.",
!                     IDC_TITLE,0,0,209,18
!     LTEXT           "Para configurar esta m痃uina como Servidor de Banco de Dados,  preciso configurar o Servi輟 de Banco de Dados. ",
!                     -1,0,21,209,16
!     LTEXT           "Esta m痃uina j est configurada como Servidor de Banco de Dados.",
!                     IDC_MSG,6,148,200,17,NOT WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,74,171,131,12,ES_AUTOHSCROLL
!     LTEXT           "Ser&vidor de Controle do Sistema:",
!                     IDC_SYS_CONTROL_MACHINE_LABEL,3,172,67,17
!     LTEXT           "Se sua c駘ula possui um Servidor de Controle do Sistema, informe seu nome de host abaixo. Os arquivos de configura鈬o do AFS ser縊 atualizados atrav駸 desse servidor.",
!                     IDC_SCM_PROMPT,12,113,195,34
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     CONTROL         "Tornar este &host um servidor em uma c駘ula existente do AFS",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON,0,37,
!                     203,11
!     CONTROL         "&Este ser o primeiro servidor em uma nova c駘ula do AFS",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,0,51,203,10
!     EDITTEXT        IDC_CELL_NAME,64,91,139,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,64,166,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,64,180,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "Informa鋏es sobre a C駘ula e o Servidor",IDC_TITLE,0,0,
!                     203,8
!     LTEXT           "Nome da &C駘ula:",IDC_CELL_NAME_LABEL,7,93,57,8
!     LTEXT           "&Senha:",IDC_SERVER_PW_LABEL,7,167,34,8,WS_DISABLED
!     LTEXT           "Digite o nome da c駘ula do AFS.",IDC_CELL_NAME_PROMPT,8,
!                     78,195,11
!     LTEXT           "Digite a senha para o propriet疵io do AFS. Todos os servidores do AFS obt麥 tokens como este propriet疵io.",
!                     IDC_SERVER_PW_PROMPT,7,130,196,19,WS_DISABLED
!     GROUPBOX        "Nome da C駘ula",IDC_CELL_NAME_FRAME,0,67,210,43
!     GROUPBOX        "Senha do Servidor",IDC_SERVER_PW_FRAME,0,119,210,81,
!                     WS_DISABLED
!     LTEXT           "Veri&ficar senha:",IDC_VERIFY_PW_LABEL,7,180,52,8,
!                     WS_DISABLED
!     LTEXT           "Uma c駘ula do AFS  uma cole鈬o de servidores que fornecem um espa輟 de nome uniforme para acesso a arquivos.",
!                     IDC_CELL_NAME_PROMPT2,1,12,202,17
!     LTEXT           "Nome:",IDC_PRINCIPAL_LABEL,7,152,22,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,64,150,139,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,53,43,149,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,53,59,149,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,53,132,149,12,ES_AUTOHSCROLL
!     LTEXT           "Informa鋏es Administrativas",IDC_TITLE,0,0,209,8
!     LTEXT           "Forne軋 abaixo as informa鋏es administrativas da conta:",
!                     IDC_ADMIN_INFO_PROMPT,7,30,196,10
!     LTEXT           "&Nome:",IDC_ADMIN_NAME_LABEL,7,46,22,8
!     LTEXT           "&Senha:",IDC_ADMIN_PW_LABEL,7,62,34,8
!     GROUPBOX        "Nome e Senha da Conta",IDC_ADMIN_INFO_FRAME,0,17,210,62
!     GROUPBOX        "AFS Server Existente",IDC_HOSTNAME_FRAME,1,92,209,60
!     LTEXT           "AFS Server:",IDC_HOSTNAME_LABEL,9,134,43,8
!     LTEXT           "Digite o nome de host de algum outro AFS Server na c駘ula  qual deseja se unir.  As informa鋏es de configura鈬o do AFS ser縊 recuperadas a partir desse servidor.",
!                     IDC_HOSTNAME_PROMPT,7,105,202,25
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 265
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "Servi輟s"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,17,281,40
!     GROUPBOX        "",IDC_STATIC,7,63,281,43
!     GROUPBOX        "",IDC_STATIC,7,112,281,40
!     GROUPBOX        "",IDC_STATIC,7,158,281,40
!     CONTROL         "Servi輟 de Arquivos",IDC_FS_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,16,94,10
!     CONTROL         "Servi輟 de Banco de Dados",IDC_DB_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,62,132,10
!     PUSHBUTTON      "Detalhes...",IDC_DB_DETAILS,215,72,50,14,NOT WS_VISIBLE
!     CONTROL         "Servidor de Backup",IDC_BK_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,111,104,10
!     CONTROL         "Servidor de Controle do Sistema",IDC_SCS,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,157,135,10
!     EDITTEXT        IDC_SC_MACHINE,147,225,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "Selecione os servi輟s a serem executados neste AFS Server:",
!                     IDC_STATIC,7,4,144,8
!     LTEXT           "O Servi輟 de Arquivos est em execu鈬o.",
!                     IDC_FS_STATUS_MSG,14,29,261,8
!     LTEXT           "O Servi輟 de Banco de Dados est parcialmente instalado.",
!                     IDC_DB_STATUS_MSG,14,77,195,8
!     LTEXT           "Ser&vidor de Controle do Sistema:",IDC_SC_MACHINE_LABEL,
!                     31,227,110,8,WS_DISABLED
!     LTEXT           "Para interromper o Servi輟 de Arquivos, desmarque a caixa acima.",
!                     IDC_FS_ACTION_MSG,14,41,262,8
!     LTEXT           "Clique em detalhes para obter maiores informa鋏es.",
!                     IDC_DB_ACTION_MSG,14,89,264,8
!     LTEXT           "O Servidor de Backup est em execu鈬o.",
!                     IDC_BK_STATUS_MSG,14,124,259,8
!     LTEXT           "Para interromper o Servidor de Backup, desmarque a caixa acima.",
!                     IDC_BK_ACTION_MSG,14,136,262,8
!     LTEXT           "Para ativar este servidor,  preciso executar o Servi輟 de Arquivos ou o Servi輟 de Banco de Dados.",
!                     IDC_SCS_ACTION_MSG,14,180,268,16
!     LTEXT           "O Servi輟 de Controle do Sistema n縊 est em execu鈬o.",
!                     IDC_SCS_STATUS_MSG,14,169,263,9
!     GROUPBOX        "",IDC_STATIC,7,204,281,51
!     CONTROL         "Cliente de Controle do Sistema.",IDC_SCC,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,203,135,10
!     LTEXT           "Para ativar este servidor,  preciso executar o Servi輟 de Arquivos ou o Servi輟 de Banco de Dados.",
!                     IDC_SCC_ACTION_MSG,14,239,268,15
!     LTEXT           "O servi輟 de Controle do Sistema n縊 est em execu鈬o.",
!                     IDC_SCC_STATUS_MSG,14,216,263,9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "Parti鋏es"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "As seguintes parti鋏es do &AFS existem em seu computador:",
!                     IDC_STATIC,8,7,222,8
!     PUSHBUTTON      "&Criar...",IDC_CREATE_PARTITIONS,17,118,53,14
!     LTEXT           "Para recuperar uma parti鈬o ou um volume em uma parti鈬o, selecione a parti鈬o na lista e clique no bot縊 acima. Para recuperar todas as parti鋏es neste servidor, clique no bot縊 acima.",
!                     IDC_SALVAGE_MSG,30,179,250,25
!     PUSHBUTTON      "&Recuperar...",IDC_SALVAGE,17,159,53,14
!     LTEXT           "Para remover uma parti鈬o, selecione a parti鈬o na lista e clique no bot縊 acima.",
!                     IDC_REMOVE_MSG,30,235,253,16,WS_DISABLED
!     PUSHBUTTON      "Re&mover",IDC_REMOVE,17,217,53,14,WS_DISABLED
!     GROUPBOX        "Parti鋏es",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
!                     281,79,WS_EX_CLIENTEDGE
!     LTEXT           "Para criar uma nova parti鈬o neste servidor, clique no bot縊 acima.",
!                     IDC_CREATE_MSG,30,136,254,8
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 313, 177
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "Criar Parti鈬o do AFS"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Selecione um volume NTFS na lista abaixo para criar nele a nova parti鈬o:",
!                     IDC_TITLE,7,5,250,8
!     LTEXT           "Nome da Parti鈬o do AFS:",IDC_NAME_STATIC,17,131,66,8
!     EDITTEXT        IDC_PARTITION_NAME,117,129,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Criar",IDC_CREATE,134,158,50,14,WS_DISABLED
!     PUSHBUTTON      "&Fechar",IDC_CLOSE,190,158,50,14
!     PUSHBUTTON      "Ajuda",9,245,158,50,14
!     GROUPBOX        "Par穃etros da Parti鈬o",IDC_ARGS_FRAME,7,117,293,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,293,
!                     95,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 247, 175
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Configura鈬o do AFSｮ Server"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,69,33,151,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,69,49,151,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,69,119,151,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Configurar",IDOK,108,154,50,14,WS_DISABLED
!     PUSHBUTTON      "Cancelar",IDCANCEL,48,154,50,14
!     PUSHBUTTON      "Ajuda",9,190,154,50,14
!     LTEXT           "Forne軋 abaixo as informa鋏es administrativas da conta:",
!                     IDC_ADMIN_INFO_PROMPT,14,20,196,10
!     LTEXT           "&Nome:",IDC_ADMIN_NAME_LABEL,15,36,22,8
!     LTEXT           "&Senha:",IDC_ADMIN_PW_LABEL,15,52,34,8
!     GROUPBOX        "Nome e Senha da Conta",IDC_ADMIN_INFO_FRAME,7,7,233,62
!     GROUPBOX        "Servidor de Controle do Sistema",IDC_HOSTNAME_FRAME,7,
!                     76,233,66
!     LTEXT           "Nome do &Host:",IDC_HOSTNAME_LABEL,15,121,52,8
!     LTEXT           "Se sua c駘ula possui um Servidor de Controle do Sistema, informe seu nome de host abaixo. Os arquivos de configura鈬o do AFS ser縊 atualizados atrav駸 desse servidor.",
!                     IDC_HOSTNAME_PROMPT,13,88,221,27
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,150,225,9,NOT WS_VISIBLE
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 257, 81
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Configura鈬o do AFSｮ Server"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "Cancelar",IDCANCEL,103,60,50,14
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,35,200,11
!     LTEXT           "Porcentagem Concluda:",IDC_PERCENT_COMPLETE_LABEL,40,
!                     48,61,8,NOT WS_VISIBLE
!     LTEXT           "Opera鈬o Atual:",IDC_CURRENT_STEP_LABEL,40,11,108,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "Descri鈬o da etapa atual - definida no runtime",
!                     IDC_CURRENT_STEP,40,23,210,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,101,50,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "Para iniciar a configura鈬o deste computador, pressione o bot縊 Configurar.  Para alterar as etapas de configura鈬o a serem realizadas, pressione o bot縊 Voltar.",
!                     IDC_STATUS_MSG,40,11,210,41
!     PUSHBUTTON      "E&xibir Log",IDNEXT,161,60,50,14,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Erros de Atualiza鈬o de CellServCB"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LISTBOX         IDC_LIST,7,26,173,127,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "OK",IDOK,22,162,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "Ajuda",9,130,162,50,14
!     LTEXT           "O arquivo CellServDB nos seguintes servidores do AFS n縊 pde ser atualizado automaticamente:",
!                     IDC_STATIC,7,7,173,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 243, 188
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Recuperar"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     DEFPUSHBUTTON   "OK",IDOK,79,99,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,133,99,50,14
!     PUSHBUTTON      "&Ajuda",9,187,99,50,14
!     CONTROL         "Recuperar todas as parti鋏es neste &Servidor de Arquivos",
!                     IDC_SERVER,"Button",BS_AUTORADIOBUTTON,11,35,206,10
!     CONTROL         "Recuperar todos os volumes na &parti鈬o selecionada",
!                     IDC_PARTITION,"Button",BS_AUTORADIOBUTTON,11,48,199,10
!     CONTROL         "Recuperar um volume &especfico na parti鈬o selecionada",
!                     IDC_VOLUME,"Button",BS_AUTORADIOBUTTON,11,61,203,10
!     EDITTEXT        IDC_VOLUME_NAME,81,74,97,12,ES_AUTOHSCROLL | WS_DISABLED
!     PUSHBUTTON      "<< A&van軋do ",IDC_ADVANCED,4,99,50,14
!     GROUPBOX        "",IDC_STATIC,4,25,232,67
!     LTEXT           "&Nome do Volume:",IDC_VOLUME_NAME_LABEL,17,75,60,8,
!                     WS_DISABLED
!     GROUPBOX        "Op鋏es Avan軋das de Recupera鈬o",IDC_ADVANCED_FRAME,4,
!                     119,232,62
!     LTEXT           "Caminho para arquivos &tempor疵ios:",IDC_TEMP_DIR_LABEL,
!                     9,160,84,21
!     EDITTEXT        IDC_LOG_FILE,95,146,133,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,211,129,21,12,ES_AUTOHSCROLL
!     LTEXT           "Nome do arquivo para o &log de resultados:",
!                     IDC_LOG_FILE_LABEL,9,142,83,17
!     EDITTEXT        IDC_TEMP_DIR,95,163,133,12,ES_AUTOHSCROLL
!     CONTROL         "Opera鋏es Pa&ralelas de recupera鈬o; nmero de processos:",
!                     IDC_NUM_PROCESSES_CHECKBOX,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,8,130,204,10
!     LTEXT           "Se voc recuperar o servidor ou toda uma parti鈬o, o servidor ser posto temporariamente em estado off-line.",
!                     IDC_STATIC,35,7,198,17
!     LTEXT           "NOTA:",IDC_STATIC,4,7,23,8
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,180,243,8,NOT WS_VISIBLE
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Senha de Usu疵io Principal do AFS"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_PW,48,42,142,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "OK",IDOK,31,61,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "Ajuda",9,140,61,50,14
!     LTEXT           "A chave de propriet疵io do AFS n縊 pode ser recuperada de um Servidor de Autentica鈬o da vers縊 anterior  3.5. Digite abaixo a senha do propriet疵io do AFS.",
!                     IDC_STATIC,7,7,183,31
!     LTEXT           "Senha:",IDC_STATIC,7,44,35,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "Recuperar Volumes - Resultados"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "&Fechar",IDC_CLOSE,225,266,50,14,WS_DISABLED
!     PUSHBUTTON      "Ajuda",9,280,266,50,14
!     LTEXT           "<Definido no runtime>",IDC_LOG_TITLE,7,38,263,8
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "<Definido no runtime>",IDC_SALVAGE_STATUS,37,15,185,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 313
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 239
!         HORZGUIDE, 207
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 209
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 201
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 203
!         VERTGUIDE, 64
!         VERTGUIDE, 203
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 53
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 240
!         VERTGUIDE, 59
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 168
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 250
!         VERTGUIDE, 40
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 74
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 236
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 181
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""Aplica鈬o e assistente de Configura鈬o do AFSｮ""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "A&van軋r >"
!     IDS_FINISH              "&Finalizar"
!     IDS_HELP_TITLE          "Bot縊 de Ajuda Pressionado"
!     IDS_HELP_DESC           "N縊 h ajuda disponvel no momento."
!     IDS_CANCEL_DESC         "Cancelar o Assistente de Inicia鈬o R疳ida do AFS?"
!     IDS_PARTITION_ALREADY_CREATED 
!                             "J existe uma parti鈬o do AFS nesta m痃uina."
!     IDS_NOT_A_FS_SERVER     "Esta m痃uina n縊 est configurada como Servidor de Arquivos. Volumes s podem ser criados em m痃uinas de Servidores de Arquivos."
!     IDS_ROOT_AFS_ALREADY_EXISTS "Os volumes da raiz j existem."
!     IDS_NO_PARTITION_EXISTS "N縊 existem parti鋏es onde criar os volumes da raiz. ﾉ preciso que exista uma parti鈬o para que os volumes da raiz possam ser criados."
!     IDS_ALREADY_REPLICATED  "Os volumes da raiz j est縊 replicados."
!     IDS_ROOT_AFS_DOESNT_EXIST 
!                             "Os volumes da raiz n縊 existem.  Eles devem existir para que possam ser replicados."
!     IDS_ALREADY_CONFIGURED  "Esta m痃uina j est configurada como um AFS Server."
!     IDS_NOTHING_TO_CONFIGURE "Nada foi selecionado para ser configurado."
!     IDS_EXIT                "Sair"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "Iniciando o Servi輟 de Arquivos"
!     IDS_CANCEL_CONFIG_MSG   "Cancelar neste ponto deixar seu computador configurado parcialmente como um AFS Server. Deseja cancelar assim mesmo?"
!     IDS_WIZARD_APP_TITLE    "Assistente de Inicia鈬o R疳ida do AFSｮ Server"
!     IDS_CANCEL_PENDING      "*** Cancelamento pendente - aguarde... ***"
!     IDS_CHECK_FS_CONFIG     "Verifica鈬o do servidor de arquivos..."
!     IDS_CHECK_DB_CONFIG     "Verifica鈬o do servidor de banco de dados..."
!     IDS_CHECK_BAK_CONFIG    "Verifica鈬o do servidor de backup..."
!     IDS_CHECK_PARTITION     "Verifica鈬o da parti鈬o do AFS..."
!     IDS_CHECK_ROOT_AFS      "Verifica鈬o dos volumes da raiz..."
!     IDS_CHECK_REP           "Verifica鈬o da replica鈬o dos volumes da raiz..."
!     IDS_CANCEL_GET_CONFIG   "Cancelando...Aguarde..."
!     IDS_ALREADY_A_BACKUP_SERVER 
!                             "Esta m痃uina j est configurada como Servidor de Backup."
!     IDS_NOT_A_DB_SERVER     "Esta m痃uina n縊 est configurada como Servidor de Banco de Dados.  O Servidor de Backup s pode ser executado em m痃uinas de Servidores de Bancos de Dados."
!     IDS_ALREADY_A_SYS_CONTROL_SERVER 
!                             "Esta m痃uina j est configurada como Servidor de Controle do Sistema."
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT 
!                             "Esta m痃uina j est configurada como Cliente de Controle do Sistema."
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "Esta m痃uina n縊 est configurada como Servidor de Arquivos ou de Banco de Dados.  Um computador s pode ser configurado como uma m痃uina de Controle do Sistema se estiver tamb駑 configurado como uma m痃uina de Servidor de Arquivos ou de Banco de Dados."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "Volume"
!     IDS_NAME_OR_ERROR       "Nome (ou Mensagem de Erro)"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "Esta m痃uina n縊 est configurada como Servidor de Arquivos ou de Banco de Dados.  Um computador s pode ser configurado como uma m痃uina de Distribui鈬o Bin疵ia se estiver tamb駑 configurado como uma m痃uina Servidor de Arquivos ou de Banco de Dados."
!     IDS_CHECK_SCS           "Verifica鈬o do Servidor de Controle do Sistema..."
!     IDS_CHECK_SCC           "Verifica鈬o do Cliente de Controle do Sistema..."
!     IDS_SIZE                "Tamanho"
!     IDS_ERROR_SEP           ",   "
!     IDS_MUST_CONFIG_FS      "O Servi輟 de Arquivos ser configurado como padr縊 por ser este o primeiro AFS Server na c駘ula."
!     IDS_MUST_CONFIG_DB      "O Servi輟 de Banco de Dados ser configurado como padr縊 por ser este o primeiro AFS Server na c駘ula."
!     IDS_MUST_MAKE_PARTITION "Uma parti鈬o deve ser criada por ser este o primeiro AFS Server na c駘ula."
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "Os volumes root.afs e root.cell ser縊 criados como padr縊 por ser este o primeiro AFS Server na c駘ula."
!     IDS_MUST_REPLICATE      "Os volumes root.afs e root.cell ser縊 replicados como padr縊 por ser este o primeiro AFS Server na c駘ula."
!     IDS_CHECK_AFS_CLIENT    "Verifica鈬o da instala鈬o do AFS Client..."
!     IDS_ERROR_HOST_NAME     "N縊 foi possvel determinar o nome de host desta m痃uina."
!     IDS_ERROR_DRIVE_COMPRESSED "A unidade est compactada"
!     IDS_ERROR_CFG_HOST_OPEN "N縊 foi possvel inicializar a Biblioteca de Configura鈬o do Servidor."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "Parando o AFS Client."
!     IDS_ERROR_LOCAL_HOST_NAME 
!                             "N縊 foi possvel determinar o nome de host local desta m痃uina."
!     IDS_GET_TOKENS_ERROR    "N縊 foi possvel obter tokens. Verifique se o nome de usu疵io e senha informados est縊 corretos."
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "A recupera鈬o n縊 pode ser realizada porque o servi輟 de arquivos n縊 foi iniciado.  Inicie o servi輟 de arquivos e tente novamente a recupera鈬o."
!     IDS_SALVAGING           "Recupera鈬o em andamento. Aguarde..."
!     IDS_CURRENT_SALVAGE_LOG "Contedo atual do log de recupera鈬o:"
!     IDS_FINAL_SALVAGE_LOG   "Contedo final do log de recupera鈬o:"
!     IDS_SALVAGE_COMPLETE    "A recupera鈬o foi concluda."
!     IDS_CANT_GET_SALVAGE_LOG "Incapaz de recuperar o log de recupera鈬o."
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK 
!                             "Incapaz de salvar o log de recupera鈬o no disco."
!     IDS_VALIDATION_ERROR_TEMPLATE 
!                             "O %1 especificado  inv疝ido. Digite novamente o %2."
!     IDS_CELL_NAME_VALIDATION_TYPE "nome da c駘ula"
!     IDS_SERVER_NAME_VALIDATION_TYPE "nome do servidor"
!     IDS_PASSWORD_VALIDATION_TYPE "senha"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "nome do usu疵io"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "O AFS Client n縊 est instalado.  Ele deve estar instalado para que o AFS Client possa ser configurado."
!     IDS_ERROR_AFS_CLIENT_CHECK 
!                             "N縊 foi possvel determinar se o cliente do AFS est instalado."
!     IDS_ERROR_FS_IS_NOT_NTFS "O sistema de arquivos n縊  NTFS"
!     IDS_ERROR_DRIVE_HAS_DATA "A unidade cont駑 dados"
!     IDS_PARTITION_STEP_DESC "Criar a parti鈬o AFS"
!     IDS_ERROR_DRIVE_CONTAINS_NT "A unidade cont駑 instala鈬o NT"
!     IDS_DB_STEP_DESC        "Iniciar o Servi輟 de Banco de Dados"
!     IDS_FS_STEP_DESC        "Iniciar o Servi輟 de Arquivos"
!     IDS_SCC_STEP_DESC       "Iniciar o Cliente de Controle do Sistema"
!     IDS_SCS_STEP_DESC       "Iniciar o Servidor de Controle do Sistema"
!     IDS_ROOT_AFS_STEP_DESC  "Criar os volumes da raiz"
!     IDS_REP_STEP_DESC       "Replicar os volumes da raiz"
!     IDS_PARTITIONS_PAGE_TITLE "Parti鋏es"
!     IDS_CONFIGURE           "&Configurar"
!     IDS_DB_AND_BK_STEP_DESC "Iniciar o Servi輟 de Banco de Dados (inclui Backup)"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "Criando a parti鈬o AFS"
!     IDS_CONFIG_COMMON_FUNCS "Configurando fun鋏es comuns a todos os servi輟s"
!     IDS_START_DB_STEP       "Iniciando o Servi輟 de Banco de Dados"
!     IDS_START_SCC_STEP      "Iniciando o Servi輟 de Controle do Sistema como Cliente de Controle do Sistema"
!     IDS_START_SCS_STEP      "Iniciando o Servi輟 de Controle do Sistema como Servidor de Controle do Sistema"
!     IDS_CREATE_ROOT_AFS_STEP "Criando o volume root.afs"
!     IDS_REP_STEP            "Replicando os volumes da raiz"
!     IDS_START_AUTH_STEP     "Obtendo tokens para este servidor"
!     IDS_SERVICES_PAGE_TITLE "Servi輟s"
!     IDS_CONFIG_SUCCEEDED    "A configura鈬o obteve 黜ito."
!     IDS_CONFIG_CANCELED     "A configura鈬o foi cancelada."
!     IDS_CONFIG_FAILED       "A configura鈬o falhou.\r\n\r\nUm arquivo detalhado de log, %1, foi criado na localiza鈬o %2."
!     IDS_ERROR_NO_LICENSE_NUM "N縊 foi encontrado um nmero de licen軋 do AFS."
!     IDS_VERIFY_CLIENT_INSTALL_STEP "Verificando a instala鈬o do AFS Client"
!     IDS_SET_SERVER_LICENSE_STEP "Definindo a licen軋 para este servidor"
!     IDS_DEFINE_CELL_NAME_STEP "Definindo o nome para esta c駘ula"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP 
!                             "Tornando este servidor um membro da c駘ula"
!     IDS_START_BOS_SERVER_STEP "Iniciando o servidor BOS"
!     IDS_START_AUTH_SERVER_STEP "Iniciando o servidor de autentica鈬o"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP 
!                             "Criando um propriet疵io e uma chave para este servidor"
!     IDS_START_DB_AND_BK_STEP 
!                             "Iniciando o Servi輟 de Banco de Dados (inclusive o Servidor de Backup)"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP 
!                             "Criando o propriet疵io de administra鈬o da c駘ula"
!     IDS_START_CLIENT_STEP   "Iniciando o AFS Client"
!     IDS_SET_ROOT_ACL_STEP   "Definindo a ACL no volume root.afs"
!     IDS_CREATE_ROOT_CELL_STEP "Criando o volume root.cell"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP 
!                             "Montando o volume root.cell usando um ponto de montagem padr縊"
!     IDS_SET_ROOT_CELL_ACL_STEP "Definindo a ACL no volume root.cell"
!     IDS_MOUNT_ROOT_CELL_RW_STEP 
!                             "Montando o volume root.cell usando um ponto de montagem de leitura/grava鈬o"
!     IDS_ENABLE_AUTH_CHECKING_STEP "Ativando verifica鈬o de autentica鈬o"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "Obtendo tokens administrativos"
!     IDS_RESTART_SERVERS_STEP 
!                             "Reiniciando todos os servidores nesta m痃uina como servidores autenticados"
!     IDS_ALREADY_A_FS_SERVER "Esta m痃uina j est configurada como Servidor de Arquivos."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "Esta m痃uina j est configurada como Servidor de Banco de Dados."
!     IDS_INTRO_PAGE          "Introdu鈬o"
!     IDS_INFO_PAGE           "Informa鋏es do Servidor e da C駘ula"
!     IDS_FS_PAGE             "Servi輟 de Arquivos"
!     IDS_DB_PAGE             "Servi輟 de Banco de Dados"
!     IDS_CFG_TOOL_APP_TITLE  "Configura鈬o do AFSｮ Server"
!     IDS_BK_PAGE             "Servidor de Backup"
!     IDS_ROOT_AFS_PAGE       "Volumes da Raiz do AFS"
!     IDS_NAME                "Nome"
!     IDS_REP_PAGE            "Replica鈬o"
!     IDS_SC_PAGE             "Servi輟 de Controle do Sistema"
!     IDS_CONFIG_PAGE         "Configurar o Sistema"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "Parti鈬o do AFS"
!     IDS_GRAPHIC_FONT        "Times New Roman, 10, B"
!     IDS_CURRENT_STEP        "Etapa Atual:"
!     IDS_ADD_TO_CELLSERVDB_STEP "Incluindo este servidor em CellServDB"
!     IDS_RESTART_ALL_DB_SERVERS_STEP 
!                             "Reiniciando todos os servidores de bancos de dados na c駘ula"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "A configura鈬o obteve 黜ito. NOTA:  O arquivo CellServDB de todos os clientes do AFS em sua c駘ula precisa ser atualizado. Certifique-se de fornecer ao Suporte de Produto do AFS uma lista atualizada de seus Servidores de Bancos de Dados se for tornar sua c駘ula disponvel a outros locais."
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG 
!                             "Deseja configurar esta m痃uina como o Servidor de Controle do Sistema?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG 
!                             "N&o configurar como o Servidor de Controle do Sistema."
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "A configura鈬o de AFS Server exige que o AFS Client seja configurado na mesma c駘ula do Servidor. Isto ser feito automaticamente."
!     IDS_INFO_PAGE2          "Informa鋏es Administrativas"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "A configura鈬o obteve 黜ito.\r\n\r\nNoTa:  Certifique-se de fornecer ao Suporte de Produto do AFS uma lista atualizada de seus Servidores de Bancos de Dados se for tornar sua c駘ula disponvel a outros locais."
!     IDS_CONFIG_SCS          "Configurar como o Servidor de Controle do Sistema da c駘ula."
!     IDS_CONFIG_INTO_CELL_MSG "Configurar este host na c駘ula "
!     IDS_VIEW_LOG            "E&xibir Log"
!     IDS_VIEW_LOG_ERROR      "N縊  possvel exibir o arquivo de log"
!     IDS_ERROR_NO_LOG_FILE   "O arquivo de log n縊 existe."
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED "CellServDB atualizado no host "
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED 
!                             "N縊 foi possvel atualizar CellServDB no host "
!     IDS_CELL_NAME_LEN_ERROR "O nome de c駘ula fornecido  muito longo.  Nomes de c駘ulas n縊 podem ter mais que 64 caracteres."
!     IDS_CONFIG_CHECK_FAILED "N縊 foi possvel determinar a configura鈬o atual desta m痃uina."
!     IDS_YES                 "Sim"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "N縊"
!     IDS_FREE                "Espa輟 Livre"
!     IDS_TOTAL               "Tamanho Total"
!     IDS_DRIVE2              "Unidade"
!     IDS_SERVICE_STATUS      "Status"
!     IDS_SERVICE             "Servi輟"
!     IDS_FS_RUNNING          "O Servi輟 de Arquivos est em execu鈬o."
!     IDS_FS_STOPPED          "O Servi輟 de Arquivos n縊 est em execu鈬o."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "O Servi輟 de Banco de Dados est em execu鈬o."
!     IDS_DB_STOPPED          "O Servi輟 de Banco de Dados n縊 est em execu鈬o."
!     IDS_BK_RUNNING          "O Servi輟 de Backup est em execu鈬o."
!     IDS_BK_STOPPED          "O Servi輟 de Backup n縊 est em execu鈬o."
!     IDS_SCS_STOPPED         "O Servidor de Controle do Sistema n縊 est em execu鈬o."
!     IDS_SCC_STOPPED         "O Cliente de Controle do Sistema n縊 est em execu鈬o."
!     IDS_FS_HOW_TO_RUN       "Para iniciar o Servi輟 de Arquivos, marque a caixa acima."
!     IDS_FS_HOW_TO_STOP      "Para interromper o Servi輟 de Arquivos, desmarque a caixa acima."
!     IDS_DB_HOW_TO_RUN       "Para iniciar o Servi輟 de Banco de Dados, marque a caixa acima."
!     IDS_DB_HOW_TO_STOP      "Para interromper o Servi輟 de Banco de Dados, desmarque a caixa acima."
!     IDS_BK_HOW_TO_RUN       "Para iniciar o Servi輟 de Backup, marque a caixa acima."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "Para interromper o Servi輟 de Backup, desmarque a caixa acima."
!     IDS_SCS_HOW_TO_RUN      "Para iniciar o Servidor de Controle do Sistema, marque a caixa acima."
!     IDS_SCS_HOW_TO_STOP     "Para interromper o Servidor de Controle do Sistema, desmarque a caixa acima."
!     IDS_DB_PARTIAL_CONFIG   "O Servi輟 de Banco de Dados est parcialmente configurado."
!     IDS_DB_DETAILS          "Pressione o bot縊 Detalhes para obter maiores informa鋏es."
!     IDS_BK_DISABLED         "O Servi輟 de Backup est desativado."
!     IDS_BK_ENABLE           "Para ativar o Servi輟 de Backup,  preciso executar o Servi輟 de Banco de Dados."
!     IDS_SC_DISABLED         "Este servidor est desativado."
!     IDS_SC_ENABLE           "Para ativar este servidor,  preciso executar o Servi輟 de Arquivos ou o Servi輟 de Banco de Dados."
!     IDS_FS_WILL_RUN         "O Servi輟 de Arquivos ser iniciado."
!     IDS_FS_WILL_STOP        "O Servi輟 de Arquivos ser interrompido."
!     IDS_DB_WILL_RUN         "O Servi輟 de Banco de Dados ser iniciado."
!     IDS_DB_WILL_STOP        "O Servi輟 de Banco de Dados ser interrompido."
!     IDS_BK_WILL_RUN         "O Servi輟 de Backup ser iniciado."
!     IDS_BK_WILL_STOP        "O Servi輟 de Backup ser interrompido."
!     IDS_SCS_WILL_RUN        "O Servidor de Controle do sistema ser iniciado."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "O Servidor de Controle do sistema ser interrompido."
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "A unidade j  uma parti鈬o do AFS"
!     IDS_VOLUME_HAS_NO_NAME  "<O volume n縊 tem nome>"
!     IDS_PARTITION_CREATED   "Uma nova parti鈬o do AFS foi criada com 黜ito."
!     IDS_PARTITION_EXISTS    "O nome da parti鈬o fornecido j est em uso por outra parti鈬o."
!     IDS_SCS_RUNNING         "O Servidor de Controle do Sistema est em execu鈬o."
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN "Esta unidade cont駑 somente a Lixeira."
!     IDS_SCC_WILL_RUN        "O Cliente de Controle do sistema ser iniciado."
!     IDS_SCC_WILL_STOP       "O Cliente de Controle do sistema ser interrompido."
!     IDS_SCC_RUNNING         "O Cliente de Controle do Sistema est em execu鈬o."
!     IDS_SCC_HOW_TO_RUN      "Para iniciar o Cliente de Controle do Sistema, marque a caixa acima."
!     IDS_SCC_HOW_TO_STOP     "Para interromper o Cliente de Controle do Sistema, desmarque a caixa acima."
!     IDS_SCS_ENABLE          "Para ativar este servidor,  preciso interromper a execu鈬o do Cliente de Controle do Sistema."
!     IDS_SCC_ENABLE          "Para ativar este servidor,  preciso interromper a execu鈬o do Servidor de Controle do Sistema."
!     IDS_UNCONFIG_DB_STEP    "Removendo a configura鈬o do Servi輟 de Banco de Dados"
!     IDS_UNCONFIG_DB_STEP_DESC 
!                             "Remover Configura鈬o do Servi輟 de Banco de Dados"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP 
!                             "Removendo Configura鈬o do Servi輟 de Banco de Dados (e Servidor de Backup)"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC 
!                             "Remover Configura鈬o do Servi輟 de Banco de Dados (e Servidor de Backup)"
!     IDS_UNCONFIG_BK_STEP    "Removendo Configura鈬o do Servidor de Backup"
!     IDS_UNCONFIG_BK_STEP_DESC "Remover Configura鈬o do Servidor de Backup"
!     IDS_UNCONFIG_FS_STEP    "Removendo a configura鈬o do Servi輟 Arquivos"
!     IDS_UNCONFIG_FS_STEP_DESC "Remover Configura鈬o do Servi輟 de Arquivos"
!     IDS_UNCONFIG_SCS_STEP   "Removendo a Configura鈬o do Servidor de Controle do Sistema"
!     IDS_UNCONFIG_SCS_STEP_DESC 
!                             "Remover Configura鈬o do Servidor de Controle do Sistema"
!     IDS_UNCONFIG_SCC_STEP   "Removendo a Configura鈬o do Cliente de Controle do Sistema"
!     IDS_UNCONFIG_SCC_STEP_DESC 
!                             "Remover Configura鈬o do Cliente de Controle do Sistema"
!     IDS_INVALIDATE_CONFIG_INFO_STEP 
!                             "Invalidando as informa鋏es de configura鈬o desta m痃uina"
!     IDS_CLOSE               "&Fechar"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "O arquivo CellServDB n縊 pde ser atualizado nos servidores do AFS abaixo. Este n縊  um erro grave.\r\n"
!     IDS_DELETE_PARTITION_PROMPT "Realmente excluir a parti鈬o '%1'?"
!     IDS_INVALIDATE_CFG_INFO "N縊 h processos do AFS em execu鈬o neste computador.  Deseja remover as informa鋏es de configura鈬o desta m痃uina?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "A c駘ula n縊 existe mais.  A aplica鈬o de configura鈬o do AFS pode ser usada somente para configurar m痃uinas de servidor j configuradas em uma c駘ula do AFS. O Assistente de Configura鈬o do AFS pode ser usado para iniciar uma nova c駘ula."
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "A aplica鈬o de Configura鈬o do AFS deve ser terminada agora.  Ela pode ser executada somente em m痃uinas j configuradas como servidores do AFS. Para configurar novamente esta m痃uina como um AFS Server, execute o Assistente de Configura鈬o do AFS."
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "Esta m痃uina n縊 est mais configurada como um AFS Server. A aplica鈬o de configura鈬o do AFS pode ser usada somente para configurar m痃uinas de AFS Server. O Assistente de Configura鈬o do AFS pode ser usado para reconfigurar esta m痃uina como um AFS Server."
!     IDS_GET_TOKENS_FAILED   "N縊 foi possvel obter tokens para a c駘ula especificada."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "Iniciando o Servidor de Backup"
!     IDS_BK_STEP_DESC        "Iniciar o Servidor de Backup"
!     IDS_CONFIG_ERROR        "Ocorreu um erro de configura鈬o"
!     IDS_CREATE_PARTITION_ERROR "Incapaz de criar parti鈬o"
!     IDS_REMOVE_PARTITION_ERROR "Incapaz de remover parti鈬o"
!     IDS_READ_PARTITIONS_ERROR "Incapaz de ler a tabela de parti鈬o"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\nO processo de atualiza鈬o de CellServDB foi terminado prematuramente. ﾉ possvel que nem todos os servidores tenham sido atualizados."
!     IDS_GET_PARTITION_LIST_ERROR 
!                             "Incapaz de determinar as parti鋏es neste servidor"
!     IDS_EXPORTED            "Exportada"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "Parti鋏es exportadas n縊 podem ser removidas enquanto o Servi輟 de Arquivos estiver em execu鈬o.  Deve-se interromper o Servi輟 de Arquivos antes de remover esta parti鈬o."
!     IDS_CHECK_CONFIG_INFO   "Verificando a validade das informa鋏es de configura鈬o..."
!     IDS_ERROR_CFG_HOST_CLOSE 
!                             "N縊 foi possvel fechar a Biblioteca de Configura鈬o do Servidor"
!     IDS_FAILED_OPEN_CELL    "n縊 foi possvel abrir a c駘ula."
!     IDS_FAILED_OPEN_NULL_CELL 
!                             "N縊 foi possvel abrir um identificador de c駘ula NULL"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "Se os volumes da raiz n縊 existirem, gostaria de cri-los?"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "Se os volumes da raiz n縊 estiverem replicados, gostaria de replic-los?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS Server"
!     IDS_CANT_INIT_ADMIN_LIBS 
!                             "N縊  possvel executar esta aplica鈬o: falha na inicializa鈬o da biblioteca."
!     IDS_CANT_OPEN_LOG_FILE  "O arquivo de log n縊 pde ser aberto."
!     IDS_NEED_CLIENT_INFO    "A aplica鈬o de Configura鈬o do AFS n縊 pode ser executada porque o AFS Client n縊 est configurado neste computador.  O Assistente de Configura鈬o do AFS pode ser usado nesta situa鈬o.  Executar o Assistente de Configura鈬o do AFS?"
!     IDS_NEED_SERVER_INFO    "Esta m痃uina n縊 est configurada como AFS Server. Deve-se usar o Assistente de Configura鈬o do AFS para a configura鈬o inicial do AFS Server. A aplica鈬o de Configura鈬o do AFS pode ser usada depois disso. Executar o Assistente de Configura鈬o do AFS?"
!     IDS_ADVANCED_OPEN       "<< A&van軋do"
!     IDS_ADVANCED_CLOSED     "A&van軋do >>"
!     IDS_BOS_OPEN_FAILED     "Incapaz de efetuar conex縊 com o servidor (falha ao abrir bos)."
!     IDS_SALVAGE_ERROR       "Falha na opera鈬o de recupera鈬o."
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "O nmero especificado de processos de recupera鈬o  inv疝ido. O nmero de processos de recupera鈬o deve estar entre 1 e 32."
!     IDS_WRONG_CELL          "Em uma etapa anterior, foi especificado um servidor no qual as informa鋏es de configura鈬o deveriam ser recuperadas. O servidor especificado n縊 pertence  c駘ula a qual voc deseja se unir!"
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "O arquivo CellServDB em alguns servidores na c駘ula n縊 pde ser atualizado.  Para obter a lista dos servidores que foram ou n縊 atualizados, veja o arquivo de log armazenado no arquivo "
!     IDS_GET_CREDENTIALS_STEP "Obtendo tokens administrativos"
!     IDS_MUST_ENTER_SCS_NAME "Um nome de M痃uina de Controle do Sistema deve ser fornecido para que a configura鈬o possa come軋r."
!     IDS_NOT_SAME_CELL       "O AFS Client est configurado em uma c駘ula diferente daquela do AFS Server.  Antes de configurar o AFS Server,  preciso reconfigurar o AFS Client na c駘ula do Server."
!     IDS_LAST_DB_SERVER      "Esta m痃uina est executando o ltimo servidor de servidor na c駘ula. Se voc prosseguir e remover a configura鈬o do servi輟 de banco de dados nesta m痃uina, a c駘ula deixar de existir, e ser removida a configura鈬o de quaisquer outros servi輟s do AFS nesta m痃uina. Deseja continuar mesmo assim?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "A senha para o propriet疵io do AFS  inv疝ida."
!     IDS_ERROR_CLIENT_VERSION 
!                             "A vers縊 do AFS Client neste computador n縊  compatvel com o AFS Server. Este exige no mnimo a vers縊 3.5 do AFS Client."
!     IDS_CANT_MAP_ROOT_AFS   "Para definir as ACLs nos volumes da raiz, uma letra de unidade deve ser mapeada para o AFS.  No momento n縊 h letras de unidades disponveis.  Libere uma letra de unidade e, em seguida, pressione OK."
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "nome da parti鈬o"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "nome do volume"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE "nmero de processos de recupera鈬o"
!     IDS_PATH_NAME_VALIDATION_TYPE "nome do caminho"
!     IDS_FILE_NAME_VALIDATION_TYPE "nome do arquivo"
!     IDS_GENERIC_VALIDATION_TYPE "valor"
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 7,1204 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "Aplica鈬o e assistente de Configura鈬o do AFSｮ"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x416
  #define AFS_VERINFO_CHARSET 1252
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 320, 246
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "Assistente de Inicia鈬o R疳ida do AFSｮ Server"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "Cance&lar",IDCANCEL,101,225,50,14
!     PUSHBUTTON      "< Vol&tar",IDBACK,155,225,50,14
!     DEFPUSHBUTTON   "A&van軋r >",IDNEXT,209,225,50,14
!     PUSHBUTTON      "&Ajuda",9,263,225,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,214,305,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,103,7,210,200
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     CONTROL         "&Sim, crie uma parti鈬o.",IDC_CREATE_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,116,
!                     186,52,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,101,177,20,12,ES_AUTOHSCROLL
!     CONTROL         "&N縊, n縊 crie uma parti鈬o.",IDC_DONT_CREATE_PARTITION,
!                     "Button",BS_AUTORADIOBUTTON,0,191,102,8
!     LTEXT           "Este Servidor de Arquivos ir armazenar e entregar arquivos e programas a clientes do AFS. Para que dados armazenados neste sistema sejam compartilhados atrav駸 do AFS, pelo menos um volume NTFS deve estar dedicado como uma parti鈬o do AFS.",
!                     -1,0,12,209,34
!     LTEXT           "&Selecione o volume para ser usado na parti鈬o:",
!                     IDC_SELECT_DRIVE,12,106,163,9
!     LTEXT           "No&me da parti鈬o do AFS:  /vicep",IDC_NAME_LABEL,12,
!                     179,89,8
!     LTEXT           "Criar uma parti鈬o do AFS neste Servidor de Arquivos.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Uma parti鈬o do AFS  fisicamente equivalente a um volume NTFS, mas ela tamb駑 cont駑 metadados especializados sobre a estrutura e localiza鈬o das informa鋏es na parti鈬o.",
!                     -1,0,49,209,25
!     LTEXT           "Deseja criar uma parti鈬o neste Servidor de Arquivos?",
!                     IDC_ASK_CREATE_PARTITION,0,79,209,12
!     LTEXT           "Mensagem definida no runtime, se necess疵io.",
!                     IDC_PARTITION_MSG,0,167,210,33,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,210,92,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Sim, configure como Servidor de Arquivos.",
!                     IDC_SHOULD_CONFIG_FILE_SERVER,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,153,10
!     CONTROL         "&N縊, n縊 configure como Servidor de Arquivos.",
!                     IDC_DONT_CONFIG_FILE_SERVER,"Button",BS_AUTORADIOBUTTON,
!                     0,190,177,10
!     LTEXT           "O Servi輟 de Arquivos do AFS entrega arquivos e programas solicitados deste servidor a clientes do AFS. Este servi輟 tamb駑 manipula todas as opera鋏es de administra鈬o de volumes, tais como criar, excluir, mover e replicar.",
!                     -1,0,38,210,34
!     LTEXT           "Configurar esta m痃uina como Servidor de Arquivos.",
!                     IDC_TITLE,0,0,209,8
!     LTEXT           "Deseja configurar esta m痃uina como Servidor de Arquivos?",
!                     IDC_CREATE_FS_QUESTION,0,166,210,8
!     LTEXT           "Para configurar esta m痃uina como Servidor de Arquivos,  preciso configurar o Servi輟 de Arquivos.",
!                     -1,0,14,210,17
!     LTEXT           "Nota: Esta m痃uina n縊 possui no momento uma unidade de disco disponvel para armazenar arquivos no AFS. Embora esta m痃uina possa ser configurada como Servidor de Arquivos, n縊 ser possvel armazenar nela dados do AFS.",
!                     IDC_NO_DRIVES_NOTE,0,77,210,32,NOT WS_VISIBLE
!     LTEXT           "Para criar unidades de disco, use o Administrador de Discos do Windows NT.",
!                     IDC_DISK_ADMIN_NOTE,0,112,210,16,NOT WS_VISIBLE
!     LTEXT           "Esta m痃uina j est configurada como Servidor de Arquivos.",
!                     IDC_MSG,0,166,209,34,NOT WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Bem-vindo ao Assistente de Inicia鈬o R疳ida para o AFS Server. Este assistente ir ajud-lo a configurar rapidamente o AFS Server neste sistema Windows NT.",
!                     IDC_TITLE,0,0,209,26
!     LTEXT           "Pressione Avan軋r para iniciar a configura鈬o para o AFS Server.",
!                     IDC_STATIC,0,166,209,8
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Sim, replique os volumes da raiz.",IDC_REPLICATE,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,179,115,10
!     CONTROL         "&N縊, n縊 replique os volumes da raiz.",
!                     IDC_DONT_REPLICATE,"Button",BS_AUTORADIOBUTTON,0,190,134,
!                     10
!     LTEXT           "Replica鈬o  o processo de criar cpias somente de leitura de um volume em v疵ias parti鋏es, geralmente em outros Servidores de Arquivos. A replica鈬o aumenta a disponibilidade de um volume em caso de interrup鈬o",
!                     IDC_STATIC,0,35,193,34
!     LTEXT           "Deseja replicar os volumes da raiz?",
!                     IDC_REPLICATE_QUESTION,0,159,209,8
!     LTEXT           "A replica鈬o tamb駑 ajuda a evitar que qualquer servidor seja sobrecarregado com pedidos para volumes acessados freqentemente.",
!                     IDC_STATIC,0,98,193,25
!     LTEXT           "Replicar os volumes da raiz da c駘ula.",IDC_TITLE,0,0,
!                     209,8
!     LTEXT           "Se planejar replicar outros volumes nesta c駘ula do AFS, voc deve antes replicar os volumes da raiz.",
!                     IDC_STATIC,0,15,209,16
!     LTEXT           "da rede ou do servidor, porque se um dos servidores que abriga o volume n縊 estiver disponvel, o volume ainda poder ser acessado a partir de outro servidor.",
!                     IDC_STATIC,0,67,193,24
!     LTEXT           "Mensagem definida no runtime, se necess疵io.",
!                     IDC_CANT_REPLICATE_MSG,0,159,209,34,NOT WS_VISIBLE | NOT 
!                     WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Sim, crie os volumes da raiz.",IDC_CREATE_ROOT_VOLUMES,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,179,108,10
!     CONTROL         "N&o, n縊 crie os volumes da raiz.",
!                     IDC_DONT_CREATE_ROOT_VOLUMES,"Button",BS_AUTORADIOBUTTON,
!                     0,190,124,10
!     LTEXT           "No AFS, volumes s縊 cole鋏es de arquivos relacionados que s縊 organizados em unidades nicas, facilmente gerenciadas para facilitar a administra鈬o do sistema.",
!                     IDC_STATIC,0,15,209,17
!     LTEXT           "Deseja criar os volumes da raiz?",IDC_ROOT_AFS_QUESTION,
!                     0,157,209,8
!     LTEXT           "Criar os volumes da raiz da c駘ula.",IDC_TITLE,0,0,209,
!                     8
!     LTEXT           "Uma vez criados, os volumes da raiz estar縊 automaticamente acessveis no espa輟 de arquivos do AFS.",
!                     IDC_STATIC,0,67,209,17
!     LTEXT           "Mensagem definida no runtime, se necess疵io.",
!                     IDC_ROOT_AFS_MSG,0,156,209,33,NOT WS_VISIBLE
!     LTEXT           "O volume root.afs  a raiz do espa輟 de arquivos do AFS. O volume root.cell  a raiz da sub疵vore do espa輟 de arquivos do AFS nesta c駘ula, e  acessado atrav駸 de um ponto de montagem de root.afs.",
!                     IDC_STATIC,0,31,209,32
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 84
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "Configura鈬o do AFSｮ Server"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,41,148,14
!     LTEXT           "Texto de opera鈬o - definido no runtime.",IDC_OPERATION,
!                     35,19,156,17
!     ICON            "",IDC_LOGO,7,7,20,20
!     PUSHBUTTON      "Cancelar",IDCANCEL,73,63,50,14
!     LTEXT           "Determinando a configura鈬o atual:",IDC_OPERATION2,35,5,
!                     156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Sim, configure como Servidor de Backup.",
!                     IDC_CONFIG_BACKUP_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,179,143,10
!     CONTROL         "&N縊, n縊 configure como Servidor de Backup.",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,0,190,163,10
!     LTEXT           "O Servidor de Backup s pode ser executado em m痃uinas configuradas como Servidores de Banco de Dados. Al駑 disso, se ele for executado em um Servidor de Banco de Dados na c駘ula, deve ser executado em TODOS os Servidores de Bancos de Dados na c駘ula.",
!                     -1,0,38,207,40
!     LTEXT           "Deseja configurar esta m痃uina como Servidor de Backup?",
!                     IDC_BACKUP_SERVER_QUESTION,0,166,209,10
!     LTEXT           "Configurar esta m痃uina como Servidor de Backup.",
!                     IDC_TITLE,0,0,207,8
!     LTEXT           "O Servidor de Backup  um recurso opcional do Servi輟 de Banco de Dados.",
!                     -1,0,14,209,16
!     LTEXT           "Esta m痃uina j est configurada como Servidor de Banco de Dados.",
!                     IDC_CANT_BACKUP_MSG,0,163,210,33,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Configure como o &Servidor de Controle do Sistema.",
!                     IDC_SYS_CONTROL_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,146,179,10
!     CONTROL         "Configure como um &Cliente de Controle do Sistema.",
!                     IDC_SYS_CONTROL_CLIENT,"Button",BS_AUTORADIOBUTTON,0,158,
!                     182,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,106,167,101,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "N&o configure como um Cliente ou Servidor de Controle do Sistema.",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON | 
!                     BS_MULTILINE,0,182,206,17
!     LTEXT           "O Servidor de Controle do Sistema fornece arquivos comuns de configura鈬o a outras m痃uinas de Servidores do AFS em execu鈬o como Clientes de Controle do Sistema. Deve haver um nico Servidor de Controle do Sistema em execu鈬o nas c駘ulas do AFS.",
!                     -1,0,18,209,40
!     LTEXT           "Configurar como um Servidor ou Cliente de Controle do Sistema.",
!                     IDC_TITLE,1,1,195,18
!     LTEXT           "Deseja configurar esta m痃uina como Servidor ou Cliente de Controle do Sistema?",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,0,127,207,17
!     LTEXT           "Um Cliente de Controle do Sistema recebe do Servidor de Controle do Sistema da c駘ula quaisquer atualiza鋏es disponveis para seus arquivos de configura鈬o do AFS.",
!                     IDC_SYS_CONTROL_CLIENT_DESC,0,59,209,25
!     LTEXT           "Ser&vidor de Controle do Sistema:",
!                     IDC_SYS_CONTROL_MACHINE_LABEL,1,169,104,8,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,0,166,210,34,NOT WS_VISIBLE
!     LTEXT           "AVISO: Locais que n縊 usem a distribui鈬o norte-americana do AFSｮ n縊 devem distribuir arquivos de configura鈬o via Servidor de Controle do Sistema. Isto resultar em uma transmiss縊 n縊 criptografada das informa鋏es delicadas do sistema.",
!                     -1,2,86,207,35
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Estas s縊 todas as informa鋏es necess疵ias para configurar o AFS Server neste sistema.",
!                     IDC_ALL_NEEDED_MSG,1,14,209,17
!     LTEXT           "Configurar esta m痃uina na c駘ula <definido no runtime>",
!                     IDC_TITLE,1,3,208,8
!     LTEXT           "As seguintes etapas de configura鈬o ser縊 realizadas:",
!                     IDC_FOLLOWING_STEPS_MSG,1,36,187,8
!     LTEXT           "Etapa 1 - Texto definido no runtime",IDC_STEP1,30,50,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Etapa 3 - Texto definido no runtime",IDC_STEP3,30,74,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Etapa 2 - Texto definido no runtime",IDC_STEP2,30,62,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Etapa 4 - Texto definido no runtime",IDC_STEP4,30,86,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Etapa 5 - Texto definido no runtime",IDC_STEP5,30,98,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Etapa 6 - Texto definido no runtime",IDC_STEP6,30,110,
!                     165,8,NOT WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,178,200,11
!     LTEXT           "Etapa 8 - Texto definido no runtime",IDC_STEP8,30,134,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Etapa 7 - Texto definido no runtime",IDC_STEP7,30,122,
!                     165,8,NOT WS_VISIBLE
!     LTEXT           "Mensagem definida no runtime, se necess疵io.",
!                     IDC_CANT_CONFIG_MSG,1,13,209,17,NOT WS_VISIBLE
!     LTEXT           "Porcentagem Concluda:",IDC_PERCENT_COMPLETE_LABEL,1,
!                     191,61,8,NOT WS_VISIBLE
!     LTEXT           "Opera鈬o Atual:",IDC_CURRENT_STEP_LABEL,1,157,108,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "Descri鈬o da etapa atual - definida no runtime",
!                     IDC_CURRENT_STEP,1,167,208,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,63,191,49,8,NOT WS_VISIBLE
!     LTEXT           "Para iniciar a configura鈬o deste computador, pressione o bot縊 Configurar.  Para alterar as etapas de configura鈬o a serem realizadas, pressione o bot縊 Voltar.",
!                     IDC_STATUS_MSG,1,159,208,41
!     LTEXT           "",IDC_STEP1_GRAPHIC,10,49,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,10,61,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,10,73,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,10,85,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,10,97,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,10,109,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,10,121,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,10,133,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,64,55,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,64,71,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,64,87,138,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,100,155,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,137,154,11,14
!     LTEXT           "Informa鋏es Administrativas",IDC_TITLE,0,0,202,8
!     LTEXT           "&Nome:",IDC_ADMIN_NAME_LABEL,7,57,22,8
!     LTEXT           "&Senha:",IDC_ADMIN_PW_LABEL,7,73,34,8
!     GROUPBOX        "Nome e Senha da Conta",IDC_ADMIN_INFO_FRAME,0,41,210,65
!     LTEXT           "Veri&ficar senha:",IDC_VERIFY_ADMIN_PW_LABEL,7,90,52,8
!     LTEXT           "As informa鋏es abaixo s縊 necess疵ias para criar a conta administrativa para esta nova c駘ula.",
!                     IDC_STATIC,0,15,209,17
!     CONTROL         "&Usar esta UID do AFS:",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,157,89,10
!     CONTROL         "Usar a &prxima UID disponvel do AFS",IDC_USE_NEXT_UID,
!                     "Button",BS_AUTORADIOBUTTON,6,144,153,10
!     GROUPBOX        "UID do AFS",IDC_STATIC,0,118,209,57
!     LTEXT           "Digite a ID de usu疵io para a conta administrativa do AFS:",
!                     IDC_STATIC,6,130,196,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Sim, configure como Servidor de Banco de Dados.",
!                     IDC_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,0,100,183,10
!     CONTROL         "&N縊, n縊 configure como Servidor de Banco de Dados.",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,0,
!                     190,200,10
!     LTEXT           "O Servi輟 de Banco de Dados mant駑 o conjunto de bancos de dados replicados requeridos por uma c駘ula do AFS. Este servi輟 mant駑 todas as informa鋏es de conta, localiza鈬o de volumes e (opcionalmente) de backup para a c駘ula.",
!                     -1,0,43,209,38
!     LTEXT           "Deseja configurar esta m痃uina como Servidor de Banco de Dados?",
!                     IDC_DB_SERVER_QUESTION,0,81,209,17
!     LTEXT           "Configurar esta m痃uina como Servidor de Banco de Dados.",
!                     IDC_TITLE,0,0,209,18
!     LTEXT           "Para configurar esta m痃uina como Servidor de Banco de Dados,  preciso configurar o Servi輟 de Banco de Dados. ",
!                     -1,0,21,209,16
!     LTEXT           "Esta m痃uina j est configurada como Servidor de Banco de Dados.",
!                     IDC_MSG,6,148,200,17,NOT WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,74,171,131,12,ES_AUTOHSCROLL
!     LTEXT           "Ser&vidor de Controle do Sistema:",
!                     IDC_SYS_CONTROL_MACHINE_LABEL,3,172,67,17
!     LTEXT           "Se sua c駘ula possui um Servidor de Controle do Sistema, informe seu nome de host abaixo. Os arquivos de configura鈬o do AFS ser縊 atualizados atrav駸 desse servidor.",
!                     IDC_SCM_PROMPT,12,113,195,34
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     CONTROL         "Tornar este &host um servidor em uma c駘ula existente do AFS",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON,0,37,
!                     203,11
!     CONTROL         "&Este ser o primeiro servidor em uma nova c駘ula do AFS",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,0,51,203,10
!     EDITTEXT        IDC_CELL_NAME,64,91,139,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,64,166,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,64,180,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "Informa鋏es sobre a C駘ula e o Servidor",IDC_TITLE,0,0,
!                     203,8
!     LTEXT           "Nome da &C駘ula:",IDC_CELL_NAME_LABEL,7,93,57,8
!     LTEXT           "&Senha:",IDC_SERVER_PW_LABEL,7,167,34,8,WS_DISABLED
!     LTEXT           "Digite o nome da c駘ula do AFS.",IDC_CELL_NAME_PROMPT,8,
!                     78,195,11
!     LTEXT           "Digite a senha para o propriet疵io do AFS. Todos os servidores do AFS obt麥 tokens como este propriet疵io.",
!                     IDC_SERVER_PW_PROMPT,7,130,196,19,WS_DISABLED
!     GROUPBOX        "Nome da C駘ula",IDC_CELL_NAME_FRAME,0,67,210,43
!     GROUPBOX        "Senha do Servidor",IDC_SERVER_PW_FRAME,0,119,210,81,
!                     WS_DISABLED
!     LTEXT           "Veri&ficar senha:",IDC_VERIFY_PW_LABEL,7,180,52,8,
!                     WS_DISABLED
!     LTEXT           "Uma c駘ula do AFS  uma cole鈬o de servidores que fornecem um espa輟 de nome uniforme para acesso a arquivos.",
!                     IDC_CELL_NAME_PROMPT2,1,12,202,17
!     LTEXT           "Nome:",IDC_PRINCIPAL_LABEL,7,152,22,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,64,150,139,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,53,43,149,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,53,59,149,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,53,132,149,12,ES_AUTOHSCROLL
!     LTEXT           "Informa鋏es Administrativas",IDC_TITLE,0,0,209,8
!     LTEXT           "Forne軋 abaixo as informa鋏es administrativas da conta:",
!                     IDC_ADMIN_INFO_PROMPT,7,30,196,10
!     LTEXT           "&Nome:",IDC_ADMIN_NAME_LABEL,7,46,22,8
!     LTEXT           "&Senha:",IDC_ADMIN_PW_LABEL,7,62,34,8
!     GROUPBOX        "Nome e Senha da Conta",IDC_ADMIN_INFO_FRAME,0,17,210,62
!     GROUPBOX        "AFS Server Existente",IDC_HOSTNAME_FRAME,1,92,209,60
!     LTEXT           "AFS Server:",IDC_HOSTNAME_LABEL,9,134,43,8
!     LTEXT           "Digite o nome de host de algum outro AFS Server na c駘ula  qual deseja se unir.  As informa鋏es de configura鈬o do AFS ser縊 recuperadas a partir desse servidor.",
!                     IDC_HOSTNAME_PROMPT,7,105,202,25
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 265
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "Servi輟s"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,17,281,40
!     GROUPBOX        "",IDC_STATIC,7,63,281,43
!     GROUPBOX        "",IDC_STATIC,7,112,281,40
!     GROUPBOX        "",IDC_STATIC,7,158,281,40
!     CONTROL         "Servi輟 de Arquivos",IDC_FS_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,16,94,10
!     CONTROL         "Servi輟 de Banco de Dados",IDC_DB_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,62,132,10
!     PUSHBUTTON      "Detalhes...",IDC_DB_DETAILS,215,72,50,14,NOT WS_VISIBLE
!     CONTROL         "Servidor de Backup",IDC_BK_SERVICE,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,111,104,10
!     CONTROL         "Servidor de Controle do Sistema",IDC_SCS,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,157,135,10
!     EDITTEXT        IDC_SC_MACHINE,147,225,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "Selecione os servi輟s a serem executados neste AFS Server:",
!                     IDC_STATIC,7,4,144,8
!     LTEXT           "O Servi輟 de Arquivos est em execu鈬o.",
!                     IDC_FS_STATUS_MSG,14,29,261,8
!     LTEXT           "O Servi輟 de Banco de Dados est parcialmente instalado.",
!                     IDC_DB_STATUS_MSG,14,77,195,8
!     LTEXT           "Ser&vidor de Controle do Sistema:",IDC_SC_MACHINE_LABEL,
!                     31,227,110,8,WS_DISABLED
!     LTEXT           "Para interromper o Servi輟 de Arquivos, desmarque a caixa acima.",
!                     IDC_FS_ACTION_MSG,14,41,262,8
!     LTEXT           "Clique em detalhes para obter maiores informa鋏es.",
!                     IDC_DB_ACTION_MSG,14,89,264,8
!     LTEXT           "O Servidor de Backup est em execu鈬o.",
!                     IDC_BK_STATUS_MSG,14,124,259,8
!     LTEXT           "Para interromper o Servidor de Backup, desmarque a caixa acima.",
!                     IDC_BK_ACTION_MSG,14,136,262,8
!     LTEXT           "Para ativar este servidor,  preciso executar o Servi輟 de Arquivos ou o Servi輟 de Banco de Dados.",
!                     IDC_SCS_ACTION_MSG,14,180,268,16
!     LTEXT           "O Servi輟 de Controle do Sistema n縊 est em execu鈬o.",
!                     IDC_SCS_STATUS_MSG,14,169,263,9
!     GROUPBOX        "",IDC_STATIC,7,204,281,51
!     CONTROL         "Cliente de Controle do Sistema.",IDC_SCC,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,14,203,135,10
!     LTEXT           "Para ativar este servidor,  preciso executar o Servi輟 de Arquivos ou o Servi輟 de Banco de Dados.",
!                     IDC_SCC_ACTION_MSG,14,239,268,15
!     LTEXT           "O servi輟 de Controle do Sistema n縊 est em execu鈬o.",
!                     IDC_SCC_STATUS_MSG,14,216,263,9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "Parti鋏es"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "As seguintes parti鋏es do &AFS existem em seu computador:",
!                     IDC_STATIC,8,7,222,8
!     PUSHBUTTON      "&Criar...",IDC_CREATE_PARTITIONS,17,118,53,14
!     LTEXT           "Para recuperar uma parti鈬o ou um volume em uma parti鈬o, selecione a parti鈬o na lista e clique no bot縊 acima. Para recuperar todas as parti鋏es neste servidor, clique no bot縊 acima.",
!                     IDC_SALVAGE_MSG,30,179,250,25
!     PUSHBUTTON      "&Recuperar...",IDC_SALVAGE,17,159,53,14
!     LTEXT           "Para remover uma parti鈬o, selecione a parti鈬o na lista e clique no bot縊 acima.",
!                     IDC_REMOVE_MSG,30,235,253,16,WS_DISABLED
!     PUSHBUTTON      "Re&mover",IDC_REMOVE,17,217,53,14,WS_DISABLED
!     GROUPBOX        "Parti鋏es",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
!                     281,79,WS_EX_CLIENTEDGE
!     LTEXT           "Para criar uma nova parti鈬o neste servidor, clique no bot縊 acima.",
!                     IDC_CREATE_MSG,30,136,254,8
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 313, 177
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "Criar Parti鈬o do AFS"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Selecione um volume NTFS na lista abaixo para criar nele a nova parti鈬o:",
!                     IDC_TITLE,7,5,250,8
!     LTEXT           "Nome da Parti鈬o do AFS:",IDC_NAME_STATIC,17,131,66,8
!     EDITTEXT        IDC_PARTITION_NAME,117,129,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Criar",IDC_CREATE,134,158,50,14,WS_DISABLED
!     PUSHBUTTON      "&Fechar",IDC_CLOSE,190,158,50,14
!     PUSHBUTTON      "Ajuda",9,245,158,50,14
!     GROUPBOX        "Par穃etros da Parti鈬o",IDC_ARGS_FRAME,7,117,293,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,293,
!                     95,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 247, 175
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Configura鈬o do AFSｮ Server"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,69,33,151,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,69,49,151,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,69,119,151,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Configurar",IDOK,108,154,50,14,WS_DISABLED
!     PUSHBUTTON      "Cancelar",IDCANCEL,48,154,50,14
!     PUSHBUTTON      "Ajuda",9,190,154,50,14
!     LTEXT           "Forne軋 abaixo as informa鋏es administrativas da conta:",
!                     IDC_ADMIN_INFO_PROMPT,14,20,196,10
!     LTEXT           "&Nome:",IDC_ADMIN_NAME_LABEL,15,36,22,8
!     LTEXT           "&Senha:",IDC_ADMIN_PW_LABEL,15,52,34,8
!     GROUPBOX        "Nome e Senha da Conta",IDC_ADMIN_INFO_FRAME,7,7,233,62
!     GROUPBOX        "Servidor de Controle do Sistema",IDC_HOSTNAME_FRAME,7,
!                     76,233,66
!     LTEXT           "Nome do &Host:",IDC_HOSTNAME_LABEL,15,121,52,8
!     LTEXT           "Se sua c駘ula possui um Servidor de Controle do Sistema, informe seu nome de host abaixo. Os arquivos de configura鈬o do AFS ser縊 atualizados atrav駸 desse servidor.",
!                     IDC_HOSTNAME_PROMPT,13,88,221,27
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,150,225,9,NOT WS_VISIBLE
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 257, 81
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Configura鈬o do AFSｮ Server"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "Cancelar",IDCANCEL,103,60,50,14
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,35,200,11
!     LTEXT           "Porcentagem Concluda:",IDC_PERCENT_COMPLETE_LABEL,40,
!                     48,61,8,NOT WS_VISIBLE
!     LTEXT           "Opera鈬o Atual:",IDC_CURRENT_STEP_LABEL,40,11,108,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "Descri鈬o da etapa atual - definida no runtime",
!                     IDC_CURRENT_STEP,40,23,210,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,101,50,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "Para iniciar a configura鈬o deste computador, pressione o bot縊 Configurar.  Para alterar as etapas de configura鈬o a serem realizadas, pressione o bot縊 Voltar.",
!                     IDC_STATUS_MSG,40,11,210,41
!     PUSHBUTTON      "E&xibir Log",IDNEXT,161,60,50,14,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "Erros de Atualiza鈬o de CellServCB"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LISTBOX         IDC_LIST,7,26,173,127,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "OK",IDOK,22,162,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "Ajuda",9,130,162,50,14
!     LTEXT           "O arquivo CellServDB nos seguintes servidores do AFS n縊 pde ser atualizado automaticamente:",
!                     IDC_STATIC,7,7,173,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 243, 188
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Recuperar"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     DEFPUSHBUTTON   "OK",IDOK,79,99,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,133,99,50,14
!     PUSHBUTTON      "&Ajuda",9,187,99,50,14
!     CONTROL         "Recuperar todas as parti鋏es neste &Servidor de Arquivos",
!                     IDC_SERVER,"Button",BS_AUTORADIOBUTTON,11,35,206,10
!     CONTROL         "Recuperar todos os volumes na &parti鈬o selecionada",
!                     IDC_PARTITION,"Button",BS_AUTORADIOBUTTON,11,48,199,10
!     CONTROL         "Recuperar um volume &especfico na parti鈬o selecionada",
!                     IDC_VOLUME,"Button",BS_AUTORADIOBUTTON,11,61,203,10
!     EDITTEXT        IDC_VOLUME_NAME,81,74,97,12,ES_AUTOHSCROLL | WS_DISABLED
!     PUSHBUTTON      "<< A&van軋do ",IDC_ADVANCED,4,99,50,14
!     GROUPBOX        "",IDC_STATIC,4,25,232,67
!     LTEXT           "&Nome do Volume:",IDC_VOLUME_NAME_LABEL,17,75,60,8,
!                     WS_DISABLED
!     GROUPBOX        "Op鋏es Avan軋das de Recupera鈬o",IDC_ADVANCED_FRAME,4,
!                     119,232,62
!     LTEXT           "Caminho para arquivos &tempor疵ios:",IDC_TEMP_DIR_LABEL,
!                     9,160,84,21
!     EDITTEXT        IDC_LOG_FILE,95,146,133,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,211,129,21,12,ES_AUTOHSCROLL
!     LTEXT           "Nome do arquivo para o &log de resultados:",
!                     IDC_LOG_FILE_LABEL,9,142,83,17
!     EDITTEXT        IDC_TEMP_DIR,95,163,133,12,ES_AUTOHSCROLL
!     CONTROL         "Opera鋏es Pa&ralelas de recupera鈬o; nmero de processos:",
!                     IDC_NUM_PROCESSES_CHECKBOX,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,8,130,204,10
!     LTEXT           "Se voc recuperar o servidor ou toda uma parti鈬o, o servidor ser posto temporariamente em estado off-line.",
!                     IDC_STATIC,35,7,198,17
!     LTEXT           "NOTA:",IDC_STATIC,4,7,23,8
!     LTEXT           "Translators: Please Read This! This dialog resizes at runtime.  In certain situaions, the dialog is resized and everything that is part of the bottom group box is hidden.",
!                     IDC_STATIC,0,180,243,8,NOT WS_VISIBLE
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Senha de Usu疵io Principal do AFS"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_PW,48,42,142,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "OK",IDOK,31,61,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "Ajuda",9,140,61,50,14
!     LTEXT           "A chave de propriet疵io do AFS n縊 pode ser recuperada de um Servidor de Autentica鈬o da vers縊 anterior  3.5. Digite abaixo a senha do propriet疵io do AFS.",
!                     IDC_STATIC,7,7,183,31
!     LTEXT           "Senha:",IDC_STATIC,7,44,35,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "Recuperar Volumes - Resultados"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "&Fechar",IDC_CLOSE,225,266,50,14,WS_DISABLED
!     PUSHBUTTON      "Ajuda",9,280,266,50,14
!     LTEXT           "<Definido no runtime>",IDC_LOG_TITLE,7,38,263,8
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "<Definido no runtime>",IDC_SALVAGE_STATUS,37,15,185,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 313
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 239
!         HORZGUIDE, 207
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 209
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 201
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 203
!         VERTGUIDE, 64
!         VERTGUIDE, 203
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 53
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 240
!         VERTGUIDE, 59
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 168
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 250
!         VERTGUIDE, 40
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 74
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 236
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 181
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""Aplica鈬o e assistente de Configura鈬o do AFSｮ""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "A&van軋r >"
!     IDS_FINISH              "&Finalizar"
!     IDS_HELP_TITLE          "Bot縊 de Ajuda Pressionado"
!     IDS_HELP_DESC           "N縊 h ajuda disponvel no momento."
!     IDS_CANCEL_DESC         "Cancelar o Assistente de Inicia鈬o R疳ida do AFS?"
!     IDS_PARTITION_ALREADY_CREATED 
!                             "J existe uma parti鈬o do AFS nesta m痃uina."
!     IDS_NOT_A_FS_SERVER     "Esta m痃uina n縊 est configurada como Servidor de Arquivos. Volumes s podem ser criados em m痃uinas de Servidores de Arquivos."
!     IDS_ROOT_AFS_ALREADY_EXISTS "Os volumes da raiz j existem."
!     IDS_NO_PARTITION_EXISTS "N縊 existem parti鋏es onde criar os volumes da raiz. ﾉ preciso que exista uma parti鈬o para que os volumes da raiz possam ser criados."
!     IDS_ALREADY_REPLICATED  "Os volumes da raiz j est縊 replicados."
!     IDS_ROOT_AFS_DOESNT_EXIST 
!                             "Os volumes da raiz n縊 existem.  Eles devem existir para que possam ser replicados."
!     IDS_ALREADY_CONFIGURED  "Esta m痃uina j est configurada como um AFS Server."
!     IDS_NOTHING_TO_CONFIGURE "Nada foi selecionado para ser configurado."
!     IDS_EXIT                "Sair"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "Iniciando o Servi輟 de Arquivos"
!     IDS_CANCEL_CONFIG_MSG   "Cancelar neste ponto deixar seu computador configurado parcialmente como um AFS Server. Deseja cancelar assim mesmo?"
!     IDS_WIZARD_APP_TITLE    "Assistente de Inicia鈬o R疳ida do AFSｮ Server"
!     IDS_CANCEL_PENDING      "*** Cancelamento pendente - aguarde... ***"
!     IDS_CHECK_FS_CONFIG     "Verifica鈬o do servidor de arquivos..."
!     IDS_CHECK_DB_CONFIG     "Verifica鈬o do servidor de banco de dados..."
!     IDS_CHECK_BAK_CONFIG    "Verifica鈬o do servidor de backup..."
!     IDS_CHECK_PARTITION     "Verifica鈬o da parti鈬o do AFS..."
!     IDS_CHECK_ROOT_AFS      "Verifica鈬o dos volumes da raiz..."
!     IDS_CHECK_REP           "Verifica鈬o da replica鈬o dos volumes da raiz..."
!     IDS_CANCEL_GET_CONFIG   "Cancelando...Aguarde..."
!     IDS_ALREADY_A_BACKUP_SERVER 
!                             "Esta m痃uina j est configurada como Servidor de Backup."
!     IDS_NOT_A_DB_SERVER     "Esta m痃uina n縊 est configurada como Servidor de Banco de Dados.  O Servidor de Backup s pode ser executado em m痃uinas de Servidores de Bancos de Dados."
!     IDS_ALREADY_A_SYS_CONTROL_SERVER 
!                             "Esta m痃uina j est configurada como Servidor de Controle do Sistema."
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT 
!                             "Esta m痃uina j est configurada como Cliente de Controle do Sistema."
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "Esta m痃uina n縊 est configurada como Servidor de Arquivos ou de Banco de Dados.  Um computador s pode ser configurado como uma m痃uina de Controle do Sistema se estiver tamb駑 configurado como uma m痃uina de Servidor de Arquivos ou de Banco de Dados."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "Volume"
!     IDS_NAME_OR_ERROR       "Nome (ou Mensagem de Erro)"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "Esta m痃uina n縊 est configurada como Servidor de Arquivos ou de Banco de Dados.  Um computador s pode ser configurado como uma m痃uina de Distribui鈬o Bin疵ia se estiver tamb駑 configurado como uma m痃uina Servidor de Arquivos ou de Banco de Dados."
!     IDS_CHECK_SCS           "Verifica鈬o do Servidor de Controle do Sistema..."
!     IDS_CHECK_SCC           "Verifica鈬o do Cliente de Controle do Sistema..."
!     IDS_SIZE                "Tamanho"
!     IDS_ERROR_SEP           ",   "
!     IDS_MUST_CONFIG_FS      "O Servi輟 de Arquivos ser configurado como padr縊 por ser este o primeiro AFS Server na c駘ula."
!     IDS_MUST_CONFIG_DB      "O Servi輟 de Banco de Dados ser configurado como padr縊 por ser este o primeiro AFS Server na c駘ula."
!     IDS_MUST_MAKE_PARTITION "Uma parti鈬o deve ser criada por ser este o primeiro AFS Server na c駘ula."
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "Os volumes root.afs e root.cell ser縊 criados como padr縊 por ser este o primeiro AFS Server na c駘ula."
!     IDS_MUST_REPLICATE      "Os volumes root.afs e root.cell ser縊 replicados como padr縊 por ser este o primeiro AFS Server na c駘ula."
!     IDS_CHECK_AFS_CLIENT    "Verifica鈬o da instala鈬o do AFS Client..."
!     IDS_ERROR_HOST_NAME     "N縊 foi possvel determinar o nome de host desta m痃uina."
!     IDS_ERROR_DRIVE_COMPRESSED "A unidade est compactada"
!     IDS_ERROR_CFG_HOST_OPEN "N縊 foi possvel inicializar a Biblioteca de Configura鈬o do Servidor."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "Parando o AFS Client."
!     IDS_ERROR_LOCAL_HOST_NAME 
!                             "N縊 foi possvel determinar o nome de host local desta m痃uina."
!     IDS_GET_TOKENS_ERROR    "N縊 foi possvel obter tokens. Verifique se o nome de usu疵io e senha informados est縊 corretos."
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "A recupera鈬o n縊 pode ser realizada porque o servi輟 de arquivos n縊 foi iniciado.  Inicie o servi輟 de arquivos e tente novamente a recupera鈬o."
!     IDS_SALVAGING           "Recupera鈬o em andamento. Aguarde..."
!     IDS_CURRENT_SALVAGE_LOG "Contedo atual do log de recupera鈬o:"
!     IDS_FINAL_SALVAGE_LOG   "Contedo final do log de recupera鈬o:"
!     IDS_SALVAGE_COMPLETE    "A recupera鈬o foi concluda."
!     IDS_CANT_GET_SALVAGE_LOG "Incapaz de recuperar o log de recupera鈬o."
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK 
!                             "Incapaz de salvar o log de recupera鈬o no disco."
!     IDS_VALIDATION_ERROR_TEMPLATE 
!                             "O %1 especificado  inv疝ido. Digite novamente o %2."
!     IDS_CELL_NAME_VALIDATION_TYPE "nome da c駘ula"
!     IDS_SERVER_NAME_VALIDATION_TYPE "nome do servidor"
!     IDS_PASSWORD_VALIDATION_TYPE "senha"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "nome do usu疵io"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "O AFS Client n縊 est instalado.  Ele deve estar instalado para que o AFS Client possa ser configurado."
!     IDS_ERROR_AFS_CLIENT_CHECK 
!                             "N縊 foi possvel determinar se o cliente do AFS est instalado."
!     IDS_ERROR_FS_IS_NOT_NTFS "O sistema de arquivos n縊  NTFS"
!     IDS_ERROR_DRIVE_HAS_DATA "A unidade cont駑 dados"
!     IDS_PARTITION_STEP_DESC "Criar a parti鈬o AFS"
!     IDS_ERROR_DRIVE_CONTAINS_NT "A unidade cont駑 instala鈬o NT"
!     IDS_DB_STEP_DESC        "Iniciar o Servi輟 de Banco de Dados"
!     IDS_FS_STEP_DESC        "Iniciar o Servi輟 de Arquivos"
!     IDS_SCC_STEP_DESC       "Iniciar o Cliente de Controle do Sistema"
!     IDS_SCS_STEP_DESC       "Iniciar o Servidor de Controle do Sistema"
!     IDS_ROOT_AFS_STEP_DESC  "Criar os volumes da raiz"
!     IDS_REP_STEP_DESC       "Replicar os volumes da raiz"
!     IDS_PARTITIONS_PAGE_TITLE "Parti鋏es"
!     IDS_CONFIGURE           "&Configurar"
!     IDS_DB_AND_BK_STEP_DESC "Iniciar o Servi輟 de Banco de Dados (inclui Backup)"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "Criando a parti鈬o AFS"
!     IDS_CONFIG_COMMON_FUNCS "Configurando fun鋏es comuns a todos os servi輟s"
!     IDS_START_DB_STEP       "Iniciando o Servi輟 de Banco de Dados"
!     IDS_START_SCC_STEP      "Iniciando o Servi輟 de Controle do Sistema como Cliente de Controle do Sistema"
!     IDS_START_SCS_STEP      "Iniciando o Servi輟 de Controle do Sistema como Servidor de Controle do Sistema"
!     IDS_CREATE_ROOT_AFS_STEP "Criando o volume root.afs"
!     IDS_REP_STEP            "Replicando os volumes da raiz"
!     IDS_START_AUTH_STEP     "Obtendo tokens para este servidor"
!     IDS_SERVICES_PAGE_TITLE "Servi輟s"
!     IDS_CONFIG_SUCCEEDED    "A configura鈬o obteve 黜ito."
!     IDS_CONFIG_CANCELED     "A configura鈬o foi cancelada."
!     IDS_CONFIG_FAILED       "A configura鈬o falhou.\r\n\r\nUm arquivo detalhado de log, %1, foi criado na localiza鈬o %2."
!     IDS_ERROR_NO_LICENSE_NUM "N縊 foi encontrado um nmero de licen軋 do AFS."
!     IDS_VERIFY_CLIENT_INSTALL_STEP "Verificando a instala鈬o do AFS Client"
!     IDS_SET_SERVER_LICENSE_STEP "Definindo a licen軋 para este servidor"
!     IDS_DEFINE_CELL_NAME_STEP "Definindo o nome para esta c駘ula"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP 
!                             "Tornando este servidor um membro da c駘ula"
!     IDS_START_BOS_SERVER_STEP "Iniciando o servidor BOS"
!     IDS_START_AUTH_SERVER_STEP "Iniciando o servidor de autentica鈬o"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP 
!                             "Criando um propriet疵io e uma chave para este servidor"
!     IDS_START_DB_AND_BK_STEP 
!                             "Iniciando o Servi輟 de Banco de Dados (inclusive o Servidor de Backup)"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP 
!                             "Criando o propriet疵io de administra鈬o da c駘ula"
!     IDS_START_CLIENT_STEP   "Iniciando o AFS Client"
!     IDS_SET_ROOT_ACL_STEP   "Definindo a ACL no volume root.afs"
!     IDS_CREATE_ROOT_CELL_STEP "Criando o volume root.cell"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP 
!                             "Montando o volume root.cell usando um ponto de montagem padr縊"
!     IDS_SET_ROOT_CELL_ACL_STEP "Definindo a ACL no volume root.cell"
!     IDS_MOUNT_ROOT_CELL_RW_STEP 
!                             "Montando o volume root.cell usando um ponto de montagem de leitura/grava鈬o"
!     IDS_ENABLE_AUTH_CHECKING_STEP "Ativando verifica鈬o de autentica鈬o"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "Obtendo tokens administrativos"
!     IDS_RESTART_SERVERS_STEP 
!                             "Reiniciando todos os servidores nesta m痃uina como servidores autenticados"
!     IDS_ALREADY_A_FS_SERVER "Esta m痃uina j est configurada como Servidor de Arquivos."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "Esta m痃uina j est configurada como Servidor de Banco de Dados."
!     IDS_INTRO_PAGE          "Introdu鈬o"
!     IDS_INFO_PAGE           "Informa鋏es do Servidor e da C駘ula"
!     IDS_FS_PAGE             "Servi輟 de Arquivos"
!     IDS_DB_PAGE             "Servi輟 de Banco de Dados"
!     IDS_CFG_TOOL_APP_TITLE  "Configura鈬o do AFSｮ Server"
!     IDS_BK_PAGE             "Servidor de Backup"
!     IDS_ROOT_AFS_PAGE       "Volumes da Raiz do AFS"
!     IDS_NAME                "Nome"
!     IDS_REP_PAGE            "Replica鈬o"
!     IDS_SC_PAGE             "Servi輟 de Controle do Sistema"
!     IDS_CONFIG_PAGE         "Configurar o Sistema"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "Parti鈬o do AFS"
!     IDS_GRAPHIC_FONT        "Times New Roman, 10, B"
!     IDS_CURRENT_STEP        "Etapa Atual:"
!     IDS_ADD_TO_CELLSERVDB_STEP "Incluindo este servidor em CellServDB"
!     IDS_RESTART_ALL_DB_SERVERS_STEP 
!                             "Reiniciando todos os servidores de bancos de dados na c駘ula"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "A configura鈬o obteve 黜ito. NOTA:  O arquivo CellServDB de todos os clientes do AFS em sua c駘ula precisa ser atualizado. Certifique-se de fornecer ao Suporte de Produto do AFS uma lista atualizada de seus Servidores de Bancos de Dados se for tornar sua c駘ula disponvel a outros locais."
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG 
!                             "Deseja configurar esta m痃uina como o Servidor de Controle do Sistema?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG 
!                             "N&o configurar como o Servidor de Controle do Sistema."
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "A configura鈬o de AFS Server exige que o AFS Client seja configurado na mesma c駘ula do Servidor. Isto ser feito automaticamente."
!     IDS_INFO_PAGE2          "Informa鋏es Administrativas"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "A configura鈬o obteve 黜ito.\r\n\r\nNoTa:  Certifique-se de fornecer ao Suporte de Produto do AFS uma lista atualizada de seus Servidores de Bancos de Dados se for tornar sua c駘ula disponvel a outros locais."
!     IDS_CONFIG_SCS          "Configurar como o Servidor de Controle do Sistema da c駘ula."
!     IDS_CONFIG_INTO_CELL_MSG "Configurar este host na c駘ula "
!     IDS_VIEW_LOG            "E&xibir Log"
!     IDS_VIEW_LOG_ERROR      "N縊  possvel exibir o arquivo de log"
!     IDS_ERROR_NO_LOG_FILE   "O arquivo de log n縊 existe."
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED "CellServDB atualizado no host "
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED 
!                             "N縊 foi possvel atualizar CellServDB no host "
!     IDS_CELL_NAME_LEN_ERROR "O nome de c駘ula fornecido  muito longo.  Nomes de c駘ulas n縊 podem ter mais que 64 caracteres."
!     IDS_CONFIG_CHECK_FAILED "N縊 foi possvel determinar a configura鈬o atual desta m痃uina."
!     IDS_YES                 "Sim"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "N縊"
!     IDS_FREE                "Espa輟 Livre"
!     IDS_TOTAL               "Tamanho Total"
!     IDS_DRIVE2              "Unidade"
!     IDS_SERVICE_STATUS      "Status"
!     IDS_SERVICE             "Servi輟"
!     IDS_FS_RUNNING          "O Servi輟 de Arquivos est em execu鈬o."
!     IDS_FS_STOPPED          "O Servi輟 de Arquivos n縊 est em execu鈬o."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "O Servi輟 de Banco de Dados est em execu鈬o."
!     IDS_DB_STOPPED          "O Servi輟 de Banco de Dados n縊 est em execu鈬o."
!     IDS_BK_RUNNING          "O Servi輟 de Backup est em execu鈬o."
!     IDS_BK_STOPPED          "O Servi輟 de Backup n縊 est em execu鈬o."
!     IDS_SCS_STOPPED         "O Servidor de Controle do Sistema n縊 est em execu鈬o."
!     IDS_SCC_STOPPED         "O Cliente de Controle do Sistema n縊 est em execu鈬o."
!     IDS_FS_HOW_TO_RUN       "Para iniciar o Servi輟 de Arquivos, marque a caixa acima."
!     IDS_FS_HOW_TO_STOP      "Para interromper o Servi輟 de Arquivos, desmarque a caixa acima."
!     IDS_DB_HOW_TO_RUN       "Para iniciar o Servi輟 de Banco de Dados, marque a caixa acima."
!     IDS_DB_HOW_TO_STOP      "Para interromper o Servi輟 de Banco de Dados, desmarque a caixa acima."
!     IDS_BK_HOW_TO_RUN       "Para iniciar o Servi輟 de Backup, marque a caixa acima."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "Para interromper o Servi輟 de Backup, desmarque a caixa acima."
!     IDS_SCS_HOW_TO_RUN      "Para iniciar o Servidor de Controle do Sistema, marque a caixa acima."
!     IDS_SCS_HOW_TO_STOP     "Para interromper o Servidor de Controle do Sistema, desmarque a caixa acima."
!     IDS_DB_PARTIAL_CONFIG   "O Servi輟 de Banco de Dados est parcialmente configurado."
!     IDS_DB_DETAILS          "Pressione o bot縊 Detalhes para obter maiores informa鋏es."
!     IDS_BK_DISABLED         "O Servi輟 de Backup est desativado."
!     IDS_BK_ENABLE           "Para ativar o Servi輟 de Backup,  preciso executar o Servi輟 de Banco de Dados."
!     IDS_SC_DISABLED         "Este servidor est desativado."
!     IDS_SC_ENABLE           "Para ativar este servidor,  preciso executar o Servi輟 de Arquivos ou o Servi輟 de Banco de Dados."
!     IDS_FS_WILL_RUN         "O Servi輟 de Arquivos ser iniciado."
!     IDS_FS_WILL_STOP        "O Servi輟 de Arquivos ser interrompido."
!     IDS_DB_WILL_RUN         "O Servi輟 de Banco de Dados ser iniciado."
!     IDS_DB_WILL_STOP        "O Servi輟 de Banco de Dados ser interrompido."
!     IDS_BK_WILL_RUN         "O Servi輟 de Backup ser iniciado."
!     IDS_BK_WILL_STOP        "O Servi輟 de Backup ser interrompido."
!     IDS_SCS_WILL_RUN        "O Servidor de Controle do sistema ser iniciado."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "O Servidor de Controle do sistema ser interrompido."
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "A unidade j  uma parti鈬o do AFS"
!     IDS_VOLUME_HAS_NO_NAME  "<O volume n縊 tem nome>"
!     IDS_PARTITION_CREATED   "Uma nova parti鈬o do AFS foi criada com 黜ito."
!     IDS_PARTITION_EXISTS    "O nome da parti鈬o fornecido j est em uso por outra parti鈬o."
!     IDS_SCS_RUNNING         "O Servidor de Controle do Sistema est em execu鈬o."
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN "Esta unidade cont駑 somente a Lixeira."
!     IDS_SCC_WILL_RUN        "O Cliente de Controle do sistema ser iniciado."
!     IDS_SCC_WILL_STOP       "O Cliente de Controle do sistema ser interrompido."
!     IDS_SCC_RUNNING         "O Cliente de Controle do Sistema est em execu鈬o."
!     IDS_SCC_HOW_TO_RUN      "Para iniciar o Cliente de Controle do Sistema, marque a caixa acima."
!     IDS_SCC_HOW_TO_STOP     "Para interromper o Cliente de Controle do Sistema, desmarque a caixa acima."
!     IDS_SCS_ENABLE          "Para ativar este servidor,  preciso interromper a execu鈬o do Cliente de Controle do Sistema."
!     IDS_SCC_ENABLE          "Para ativar este servidor,  preciso interromper a execu鈬o do Servidor de Controle do Sistema."
!     IDS_UNCONFIG_DB_STEP    "Removendo a configura鈬o do Servi輟 de Banco de Dados"
!     IDS_UNCONFIG_DB_STEP_DESC 
!                             "Remover Configura鈬o do Servi輟 de Banco de Dados"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP 
!                             "Removendo Configura鈬o do Servi輟 de Banco de Dados (e Servidor de Backup)"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC 
!                             "Remover Configura鈬o do Servi輟 de Banco de Dados (e Servidor de Backup)"
!     IDS_UNCONFIG_BK_STEP    "Removendo Configura鈬o do Servidor de Backup"
!     IDS_UNCONFIG_BK_STEP_DESC "Remover Configura鈬o do Servidor de Backup"
!     IDS_UNCONFIG_FS_STEP    "Removendo a configura鈬o do Servi輟 Arquivos"
!     IDS_UNCONFIG_FS_STEP_DESC "Remover Configura鈬o do Servi輟 de Arquivos"
!     IDS_UNCONFIG_SCS_STEP   "Removendo a Configura鈬o do Servidor de Controle do Sistema"
!     IDS_UNCONFIG_SCS_STEP_DESC 
!                             "Remover Configura鈬o do Servidor de Controle do Sistema"
!     IDS_UNCONFIG_SCC_STEP   "Removendo a Configura鈬o do Cliente de Controle do Sistema"
!     IDS_UNCONFIG_SCC_STEP_DESC 
!                             "Remover Configura鈬o do Cliente de Controle do Sistema"
!     IDS_INVALIDATE_CONFIG_INFO_STEP 
!                             "Invalidando as informa鋏es de configura鈬o desta m痃uina"
!     IDS_CLOSE               "&Fechar"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "O arquivo CellServDB n縊 pde ser atualizado nos servidores do AFS abaixo. Este n縊  um erro grave.\r\n"
!     IDS_DELETE_PARTITION_PROMPT "Realmente excluir a parti鈬o '%1'?"
!     IDS_INVALIDATE_CFG_INFO "N縊 h processos do AFS em execu鈬o neste computador.  Deseja remover as informa鋏es de configura鈬o desta m痃uina?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "A c駘ula n縊 existe mais.  A aplica鈬o de configura鈬o do AFS pode ser usada somente para configurar m痃uinas de servidor j configuradas em uma c駘ula do AFS. O Assistente de Configura鈬o do AFS pode ser usado para iniciar uma nova c駘ula."
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "A aplica鈬o de Configura鈬o do AFS deve ser terminada agora.  Ela pode ser executada somente em m痃uinas j configuradas como servidores do AFS. Para configurar novamente esta m痃uina como um AFS Server, execute o Assistente de Configura鈬o do AFS."
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "Esta m痃uina n縊 est mais configurada como um AFS Server. A aplica鈬o de configura鈬o do AFS pode ser usada somente para configurar m痃uinas de AFS Server. O Assistente de Configura鈬o do AFS pode ser usado para reconfigurar esta m痃uina como um AFS Server."
!     IDS_GET_TOKENS_FAILED   "N縊 foi possvel obter tokens para a c駘ula especificada."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "Iniciando o Servidor de Backup"
!     IDS_BK_STEP_DESC        "Iniciar o Servidor de Backup"
!     IDS_CONFIG_ERROR        "Ocorreu um erro de configura鈬o"
!     IDS_CREATE_PARTITION_ERROR "Incapaz de criar parti鈬o"
!     IDS_REMOVE_PARTITION_ERROR "Incapaz de remover parti鈬o"
!     IDS_READ_PARTITIONS_ERROR "Incapaz de ler a tabela de parti鈬o"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\nO processo de atualiza鈬o de CellServDB foi terminado prematuramente. ﾉ possvel que nem todos os servidores tenham sido atualizados."
!     IDS_GET_PARTITION_LIST_ERROR 
!                             "Incapaz de determinar as parti鋏es neste servidor"
!     IDS_EXPORTED            "Exportada"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "Parti鋏es exportadas n縊 podem ser removidas enquanto o Servi輟 de Arquivos estiver em execu鈬o.  Deve-se interromper o Servi輟 de Arquivos antes de remover esta parti鈬o."
!     IDS_CHECK_CONFIG_INFO   "Verificando a validade das informa鋏es de configura鈬o..."
!     IDS_ERROR_CFG_HOST_CLOSE 
!                             "N縊 foi possvel fechar a Biblioteca de Configura鈬o do Servidor"
!     IDS_FAILED_OPEN_CELL    "n縊 foi possvel abrir a c駘ula."
!     IDS_FAILED_OPEN_NULL_CELL 
!                             "N縊 foi possvel abrir um identificador de c駘ula NULL"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "Se os volumes da raiz n縊 existirem, gostaria de cri-los?"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "Se os volumes da raiz n縊 estiverem replicados, gostaria de replic-los?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS Server"
!     IDS_CANT_INIT_ADMIN_LIBS 
!                             "N縊  possvel executar esta aplica鈬o: falha na inicializa鈬o da biblioteca."
!     IDS_CANT_OPEN_LOG_FILE  "O arquivo de log n縊 pde ser aberto."
!     IDS_NEED_CLIENT_INFO    "A aplica鈬o de Configura鈬o do AFS n縊 pode ser executada porque o AFS Client n縊 est configurado neste computador.  O Assistente de Configura鈬o do AFS pode ser usado nesta situa鈬o.  Executar o Assistente de Configura鈬o do AFS?"
!     IDS_NEED_SERVER_INFO    "Esta m痃uina n縊 est configurada como AFS Server. Deve-se usar o Assistente de Configura鈬o do AFS para a configura鈬o inicial do AFS Server. A aplica鈬o de Configura鈬o do AFS pode ser usada depois disso. Executar o Assistente de Configura鈬o do AFS?"
!     IDS_ADVANCED_OPEN       "<< A&van軋do"
!     IDS_ADVANCED_CLOSED     "A&van軋do >>"
!     IDS_BOS_OPEN_FAILED     "Incapaz de efetuar conex縊 com o servidor (falha ao abrir bos)."
!     IDS_SALVAGE_ERROR       "Falha na opera鈬o de recupera鈬o."
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "O nmero especificado de processos de recupera鈬o  inv疝ido. O nmero de processos de recupera鈬o deve estar entre 1 e 32."
!     IDS_WRONG_CELL          "Em uma etapa anterior, foi especificado um servidor no qual as informa鋏es de configura鈬o deveriam ser recuperadas. O servidor especificado n縊 pertence  c駘ula a qual voc deseja se unir!"
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "O arquivo CellServDB em alguns servidores na c駘ula n縊 pde ser atualizado.  Para obter a lista dos servidores que foram ou n縊 atualizados, veja o arquivo de log armazenado no arquivo "
!     IDS_GET_CREDENTIALS_STEP "Obtendo tokens administrativos"
!     IDS_MUST_ENTER_SCS_NAME "Um nome de M痃uina de Controle do Sistema deve ser fornecido para que a configura鈬o possa come軋r."
!     IDS_NOT_SAME_CELL       "O AFS Client est configurado em uma c駘ula diferente daquela do AFS Server.  Antes de configurar o AFS Server,  preciso reconfigurar o AFS Client na c駘ula do Server."
!     IDS_LAST_DB_SERVER      "Esta m痃uina est executando o ltimo servidor de servidor na c駘ula. Se voc prosseguir e remover a configura鈬o do servi輟 de banco de dados nesta m痃uina, a c駘ula deixar de existir, e ser removida a configura鈬o de quaisquer outros servi輟s do AFS nesta m痃uina. Deseja continuar mesmo assim?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "A senha para o propriet疵io do AFS  inv疝ida."
!     IDS_ERROR_CLIENT_VERSION 
!                             "A vers縊 do AFS Client neste computador n縊  compatvel com o AFS Server. Este exige no mnimo a vers縊 3.5 do AFS Client."
!     IDS_CANT_MAP_ROOT_AFS   "Para definir as ACLs nos volumes da raiz, uma letra de unidade deve ser mapeada para o AFS.  No momento n縊 h letras de unidades disponveis.  Libere uma letra de unidade e, em seguida, pressione OK."
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "nome da parti鈬o"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "nome do volume"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE "nmero de processos de recupera鈬o"
!     IDS_PATH_NAME_VALIDATION_TYPE "nome do caminho"
!     IDS_FILE_NAME_VALIDATION_TYPE "nome do arquivo"
!     IDS_GENERIC_VALIDATION_TYPE "valor"
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
Index: openafs/src/WINNT/afssvrcfg/lang/zh_CN/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/zh_CN/afscfg.rc:1.3 openafs/src/WINNT/afssvrcfg/lang/zh_CN/afscfg.rc:1.3.2.1
*** openafs/src/WINNT/afssvrcfg/lang/zh_CN/afscfg.rc:1.3	Thu Jun 19 15:00:57 2003
--- openafs/src/WINNT/afssvrcfg/lang/zh_CN/afscfg.rc	Fri Mar 11 01:59:16 2005
***************
*** 7,1140 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐｺﾍﾏｵｼ"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x804
  #define AFS_VERINFO_CHARSET 936
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // Chinese (P.R.C.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
! #ifdef _WIN32
! LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 320, 246
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "AFS ｷﾎﾆｿﾋﾙﾆｶｯﾏｵｼ"
! FONT 9, "ﾋﾎﾌ", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "ﾈ｡ﾏ(&L)",IDCANCEL,101,225,50,14
!     PUSHBUTTON      "< ﾉﾏﾒｻｲｽ(&B)",IDBACK,155,225,50,14
!     DEFPUSHBUTTON   "ﾏﾂﾒｻｲｽ(&N) >",IDNEXT,209,225,50,14
!     PUSHBUTTON      "ｰﾖ(&H)",9,263,225,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,214,305,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,103,7,210,200
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ", 0, 0, 0x1
! BEGIN
!     CONTROL         "ﾊﾇ｣ｬｴｴｽｨｷﾖﾇ(&Y)",IDC_CREATE_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,116,
!                     186,41,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,101,175,20,12,ES_AUTOHSCROLL
!     CONTROL         "ｷ｣ｬｲｻﾒｪｴｴｽｨｷﾖﾇ(&O)",IDC_DONT_CREATE_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON,0,191,102,8
!     LTEXT           "ｸﾃﾎﾄｼｷﾎﾆｽｫﾎﾄｼｺﾍｳﾌﾐｴ豢｢ｺﾍｴｫﾋﾍﾖﾁ AFS ｿﾍｻｧｻ｡｣ｶﾔﾓﾚｴ豢｢ﾔﾚｸﾃﾏｵﾍｳﾉﾏｲ｢ﾒｪﾍｨｹ AFS ﾊｵﾏﾖｹｲﾏｵﾄﾊｾﾝ｣ｬﾖﾁﾉﾙﾓﾐﾒｻｸ NTFS ｾｱﾘﾐﾗﾎｪﾗｨﾓﾃｵﾄ AFS ｷﾖﾇ｡｣",
!                     -1,0,12,209,25
!     LTEXT           "ﾑ｡ﾔﾓﾃﾓﾚｴﾋｷﾖﾇｵﾄｾ(&S)｣ｺ",IDC_SELECT_DRIVE,12,106,163,9
!     LTEXT           "AFS ｷﾖﾇﾃ(&M)｣ｺ/vicep",IDC_NAME_LABEL,12,177,89,8
!     LTEXT           "ﾔﾚｸﾃﾎﾄｼｷﾎﾆﾉﾏｴｴｽｨﾒｻｸ AFS ｷﾖﾇ｡｣",IDC_TITLE,0,0,209,
!                     8
!     LTEXT           "ﾒｻｸ AFS ｷﾖﾇﾔﾚﾎﾀﾉﾏｵﾈｼﾛﾓﾚﾒｻｸ NTFS ｾ｣ｬｵｫﾊﾇﾋﾒｲｰｺｬｹﾘﾓﾚｷﾖﾇﾖﾐﾐﾅﾏ｢ｵﾄｽ盪ｹｺﾍﾎｻﾖﾃｵﾄﾌﾘﾊ籌ｪﾊｾﾝ｡｣",
!                     -1,0,40,209,25
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍﾔﾚｸﾃﾎﾄｼｷﾎﾆﾉﾏｴｴｽｨﾒｻｸｷﾖﾇ?",
!                     IDC_ASK_CREATE_PARTITION,0,75,209,18
!     LTEXT           "ﾈ郢ｱﾘﾒｪｵﾄｻｰ｣ｬﾔﾚﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾏﾏ｢｡｣",IDC_PARTITION_MSG,0,
!                     159,210,41,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,210,92,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "ﾊﾇ｣ｬﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ(&Y)｡｣",
!                     IDC_SHOULD_CONFIG_FILE_SERVER,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,114,10
!     CONTROL         "ｷ｣ｬｲｻﾒｪﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ(&O)｡｣",
!                     IDC_DONT_CONFIG_FILE_SERVER,"Button",BS_AUTORADIOBUTTON,
!                     0,190,133,10
!     LTEXT           "AFS ﾎﾄｼｷﾎｽｫﾇﾇｵﾄﾎﾄｼｺﾍｳﾌﾐｴﾓｸﾃｷﾎﾆｴｫﾋﾍﾖﾁ AFS ｿﾍｻｧｻ｡｣ｸﾃｷﾎﾒｲｴｦﾀﾋﾓﾐｵﾄｾｹﾜﾀｲﾙﾗ｣ｬﾀﾈ邏ｴｽｨ｡｢ﾉｾｳ｡｢ﾒﾆｶｯｺﾍｸｴﾖﾆｾ｡｣",
!                     -1,0,38,210,34
!     LTEXT           "ｽｫｻﾆﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ｡｣",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ?",
!                     IDC_CREATE_FS_QUESTION,0,166,210,8
!     LTEXT           "ﾒｪｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ｣ｬﾄｱﾘﾐﾅ葷ﾃﾎﾄｼｷﾎ｡｣",-1,0,
!                     14,210,17
!     LTEXT           "ﾗ｢ﾒ筌ｺｸﾃｻﾆｵｱﾇｰﾃｻﾓﾐｿﾉﾓﾃｵﾄｴﾅﾅﾌﾇｶｯﾆｽｫﾎﾄｼｴ豢｢ﾔﾚ AFS ﾖﾐ｡｣ｾ｡ｹﾜﾄｿﾉﾒﾔｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ｣ｬｵｫﾄｽｫﾎﾞｷｨﾔﾚｸﾃｻﾆﾉﾏｴ豢｢ AFS ﾊｾﾝ｡｣",
!                     IDC_NO_DRIVES_NOTE,0,77,210,32,NOT WS_VISIBLE
!     LTEXT           "ﾒｪｴｴｽｨｴﾅﾅﾌﾇｶｯﾆ｣ｬﾇﾊｹﾓﾃ Windows NT ｴﾅﾅﾌｹﾜﾀﾆ｡｣",
!                     IDC_DISK_ADMIN_NOTE,0,112,210,16,NOT WS_VISIBLE
!     LTEXT           "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ｡｣",IDC_MSG,0,166,209,34,NOT 
!                     WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     LTEXT           "ｻｶﾓｭﾊｹﾓﾃ AFS ｷﾎﾆｿﾋﾙﾆｶｯﾏｵｼ｡｣ｸﾃﾏｵｼｽｫｰﾖﾄﾔﾚ Windows NT ﾏｵﾍｳﾉﾏｿﾋﾙｵﾘﾅ葷ﾃ AFS ｷﾎﾆ｡｣",
!                     IDC_TITLE,0,0,209,26
!     LTEXT           "ｰｴ｡ｰﾏﾂﾒｻｲｽ｡ｱｿｪﾊｼﾅ葷ﾃ AFS ｷﾎﾆ｡｣",IDC_STATIC,0,166,209,
!                     8
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "ﾊﾇ｣ｬｸｴﾖﾆｸｾ(&Y)｡｣",IDC_REPLICATE,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,115,10
!     CONTROL         "ｷ｣ｬｲｻﾒｪｸｴﾖﾆｸｾ(&O)｡｣",IDC_DONT_REPLICATE,"Button",
!                     BS_AUTORADIOBUTTON,0,190,134,10
!     LTEXT           "ｸｴﾖﾆﾊﾇﾔﾚｶ犧ｷﾖﾇｴｴｽｨｾｵﾄﾖｻｶﾁｸｱｱｾｵﾄｹｳﾌ｣ｬﾍｨｳ｣ﾊﾇﾔﾚﾆ萢ﾎﾄｼｷﾎﾆﾉﾏ｡｣ｸｴﾖﾆﾔｼﾓﾁﾋｾﾔﾚﾍﾂ醋ﾂｼﾖﾐｵﾄｿﾉﾓﾃﾐﾔ｡｣",
!                     IDC_STATIC,0,36,209,25
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍｸｴﾖﾆｸｾ?",IDC_REPLICATE_QUESTION,0,166,209,8
!     LTEXT           "ｸｴﾖﾆﾒｲｿﾉﾒﾔｷﾀﾖｹﾈﾎｺﾎｷﾎﾆｵﾄｾｭｳ｣ｴ貶｡ｵﾄｾﾒﾇﾇｹｶ犖ｳｬｸｺｺﾉ｡｣",
!                     IDC_STATIC,0,90,209,25
!     LTEXT           "ｸｴﾖﾆｵ･ﾔｪｸｾ｡｣",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾈ郢ﾄｼﾆｻｮｸｴﾖﾆｸﾃ AFS ｵ･ﾔｪﾖﾐｵﾄﾆ萢ｾ｣ｬﾊﾗﾏﾈｱﾘﾐｸｴﾖﾆｸｾ｡｣",
!                     IDC_STATIC,0,15,209,16
!     LTEXT           "ﾓﾉﾓﾚﾌ盪ｩｾｵﾄｷﾎﾆﾖｮﾒｻｲｻｿﾉﾓﾃ｣ｬﾋﾒﾔｷﾎﾆﾍ｣ｻ｣ｬｵｫｴﾓﾆ萢ｷﾎﾆﾈﾔｿﾉｴ貶｡ｸﾃｾ｡｣",
!                     IDC_STATIC,0,63,209,22
!     LTEXT           "ﾈ郢ｱﾘﾒｪｵﾄｻｰ｣ｬﾔﾚﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾏﾏ｢｡｣",
!                     IDC_CANT_REPLICATE_MSG,0,166,209,34,NOT WS_VISIBLE | NOT 
!                     WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "ﾊﾇ｣ｬｴｴｽｨｸｾ(&Y)｡｣",IDC_CREATE_ROOT_VOLUMES,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,108,10
!     CONTROL         "ｷ｣ｬｲｻﾒｪｴｴｽｨｸｾ(&O)｡｣",IDC_DONT_CREATE_ROOT_VOLUMES,
!                     "Button",BS_AUTORADIOBUTTON,0,190,124,10
!     LTEXT           "ﾔﾚ AFS ﾖﾐ｣ｬｾﾊﾇﾏ犹ﾘﾎﾄｼｵﾄｼｯｺﾏ｣ｬﾋﾃﾇﾗ鰒ｯｳﾉｵ･ｸ｡｢ﾒﾗﾓﾚｹﾜﾀｵﾄｵ･ﾔｪﾒﾔｼｻｯﾏｵﾍｳｹﾜﾀ｡｣",
!                     IDC_STATIC,0,15,209,17
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍｴｴｽｨｸｾ?",IDC_ROOT_AFS_QUESTION,0,166,209,8
!     LTEXT           "ｴｴｽｨｵ･ﾔｪｵﾄｸｾ｡｣",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾒｻｵｩｴｴｽｨ｣ｬｸｾｽｫﾗﾔｶｯｳﾉﾎｪ AFS ﾎﾄｼｿﾕｼ葷ﾐｿﾉｴ貶｡ｵﾄｾ｡｣",
!                     IDC_STATIC,0,67,209,17
!     LTEXT           "ﾈ郢ｱﾘﾒｪｵﾄｻｰ｣ｬﾔﾚﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾏﾏ｢｡｣",IDC_ROOT_AFS_MSG,0,
!                     166,209,33,NOT WS_VISIBLE
!     LTEXT           "root.afs ｾﾊﾇ AFS ﾎﾄｼｿﾕｼ莊ﾄｸｾ｡｣root.cell ｾﾊﾇｸﾃｵ･ﾔｪｵﾄ AFS ﾎﾄｼｿﾕｼ葫ﾓﾊｵﾄｸｾ｣ｬｲ｢ﾍｨｹﾒｻｸﾀｴﾗﾔﾓﾚ root.afs ｵﾄｰｲﾗｰｵ羔貶｡ﾋ｡｣",
!                     IDC_STATIC,0,35,209,25
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 84
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "AFS ｷﾎﾆﾅ葷ﾃ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,38,148,14
!     LTEXT           "ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄｲﾙﾗﾎﾄｱｾ｡｣",IDC_OPERATION,35,20,145,10
!     ICON            "",IDC_LOGO,7,7,20,20
!     PUSHBUTTON      "ﾈ｡ﾏ",IDCANCEL,73,63,50,14
!     LTEXT           "ﾈｷｶｨｵｱﾇｰﾅ葷ﾃ｣ｺ",IDC_OPERATION2,35,7,156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "ﾊﾇ｣ｬﾅ葷ﾃｳﾉｱｸｷﾝｷﾎﾆ(&Y)｡｣",IDC_CONFIG_BACKUP_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,179,128,10
!     CONTROL         "ｷ｣ｬｲｻﾒｪﾅ葷ﾃｳﾉｱｸｷﾝｷﾎﾆ(&O)｡｣",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,0,190,147,10
!     LTEXT           "ｱｸｷﾝｷﾎﾆﾖｻﾄﾜﾔﾋﾐﾐﾔﾚﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆｵﾄｻﾆﾉﾏ｡｣ﾁﾍ筌ｬﾈ郢ｱｸｷﾝｷﾎﾆﾔﾋﾐﾐﾔﾚｵ･ﾔｪﾖﾐｵﾄﾄｳｸﾊｾﾝｿ箙ﾎﾆﾉﾏ｣ｬﾔﾋｱﾘﾐﾔﾋﾐﾐﾔﾚｵ･ﾔｪﾖﾐｵﾄﾋﾓﾐﾊｾﾝｿ箙ﾎﾆﾉﾏ｡｣",
!                     -1,0,38,199,32
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍｽｫｸﾃｻﾆﾅ葷ﾃｳﾉｱｸｷﾝｷﾎﾆ?",
!                     IDC_BACKUP_SERVER_QUESTION,0,166,209,10
!     LTEXT           "ｽｫｸﾃｻﾆﾅ葷ﾃｳﾉｱｸｷﾝｷﾎﾆ｡｣",IDC_TITLE,0,0,207,8
!     LTEXT           "ｱｸｷﾝｷﾎﾆﾊﾇﾊｾﾝｿ箙ﾎｵﾄﾒｻｸｿﾉﾑ｡ﾏ｡｣",-1,0,14,209,16
!     LTEXT           "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ｡｣",IDC_CANT_BACKUP_MSG,0,166,
!                     210,33,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "ﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ(&S)｡｣",IDC_SYS_CONTROL_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,151,141,10
!     CONTROL         "ﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ(&C)｡｣",IDC_SYS_CONTROL_CLIENT,
!                     "Button",BS_AUTORADIOBUTTON,0,164,131,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,90,174,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "ｲｻﾒｪﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻｻｷﾎﾆ(&O)｡｣",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON,0,190,183,
!                     9
!     LTEXT           "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾆﾏﾆ萢ﾗﾎｪﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻﾔﾋﾐﾐｵﾄ AFS ｷﾎﾆﾌ盪ｩﾁﾋｹｫｹｲﾅ葷ﾃﾎﾄｼ｡｣AFS ｵ･ﾔｪｱﾘﾐｽﾔﾋﾐﾐｵ･ｸﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣",
!                     -1,0,14,209,25
!     LTEXT           "ﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｷﾎﾆｻｿﾍｻｧｻ｡｣",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｷﾎﾆｻｿﾍｻｧｻ?",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,0,131,207,17
!     LTEXT           "ﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻｴﾓｵ･ﾔｪｵﾄﾏｵﾍｳｿﾘﾖﾆｷﾎﾆｽﾓﾊﾕﾈﾎｺﾎｶﾔﾆ AFS ﾅ葷ﾃﾎﾄｼｵﾄｿﾉﾓﾃｸﾐﾂ｡｣",
!                     IDC_SYS_CONTROL_CLIENT_DESC,0,43,209,18
!     LTEXT           "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ(&Y)｣ｺ",IDC_SYS_CONTROL_MACHINE_LABEL,11,
!                     176,76,8,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,0,166,210,34,NOT WS_VISIBLE
!     LTEXT           "ｾｯｸ譽ｺｲｻﾊｹﾓﾃﾃﾀｹｷﾖｲｼｵﾄ AFS ﾕｾｵ羇ｻﾄﾜﾍｨｹﾏｵﾍｳｿﾘﾖﾆｷﾎﾆｷﾖｲｼﾅ葷ﾃﾎﾄｼ｡｣ﾈ郢ﾕ簷ﾗｵﾄｻｰ｣ｬｽｫｵｼﾖﾂﾃｸﾐﾏｵﾍｳﾐﾅﾏ｢ﾎｴｾｭｼﾓﾃﾜｶｴｫﾊ茖｣",
!                     -1,9,73,183,34
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     LTEXT           "ﾕ簗ﾇﾔﾚｸﾃﾏｵﾍｳﾖﾐﾅ葷ﾃ AFS ｷﾎﾆﾋﾐ襍ﾄﾋﾓﾐﾐﾅﾏ｢｡｣",
!                     IDC_ALL_NEEDED_MSG,1,14,209,17
!     LTEXT           "ｽｫｸﾃｻﾆﾅ葷ﾃｵｽｵ･ﾔｪﾄﾚ <ﾔﾋﾐﾐﾊｱﾉ靹ﾃ>",IDC_TITLE,1,0,208,8
!     LTEXT           "ｽｫﾖｴﾐﾐﾏﾂﾁﾐﾅ葷ﾃｲｽﾖ陬ｺ",IDC_FOLLOWING_STEPS_MSG,1,36,187,
!                     8
!     LTEXT           "ｲｽﾖ 1 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP1,22,49,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｲｽﾖ 3 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP3,22,73,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｲｽﾖ 2 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP2,22,61,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｲｽﾖ 4 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP4,22,85,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｲｽﾖ 5 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP5,22,97,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｲｽﾖ 6 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP6,22,109,179,8,NOT 
!                     WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,178,200,11
!     LTEXT           "ｲｽﾖ 8 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP8,22,133,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｲｽﾖ 7 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP7,22,121,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ﾈ郢ｱﾘﾒｪｵﾄｻｰ｣ｬﾔﾚﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾏﾏ｢｡｣",IDC_CANT_CONFIG_MSG,
!                     1,13,209,17,NOT WS_VISIBLE
!     LTEXT           "ﾍｳﾉｰﾙｷﾖｱﾈ｣ｺ",IDC_PERCENT_COMPLETE_LABEL,1,191,61,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｵｱﾇｰｲﾙﾗ｣ｺ",IDC_CURRENT_STEP_LABEL,1,157,108,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｵｱﾇｰｲｽﾖ霤靆 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃ",IDC_CURRENT_STEP,1,167,208,8,
!                     NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,63,191,49,8,NOT WS_VISIBLE
!     LTEXT           "ﾒｪｿｪﾊｼﾅ葷ﾃｸﾃｼﾆﾋ羹｣ｬﾇｰｴ｡ｰﾅ葷ﾃ｡ｱｰｴﾅ･｡｣ﾒｪｸｸﾄﾒﾑﾖｴﾐﾐｵﾄﾅ葷ﾃｲｽﾖ陬ｬﾇｰｴ｡ｰﾉﾏﾒｻｲｽ｡ｱｰｴﾅ･｡｣",
!                     IDC_STATUS_MSG,1,159,208,41
!     LTEXT           "",IDC_STEP1_GRAPHIC,10,49,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,10,61,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,10,73,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,10,85,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,10,97,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,10,109,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,10,121,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,10,133,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,64,55,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,64,71,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,64,87,138,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,97,155,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,134,154,11,14
!     LTEXT           "ｹﾜﾀﾐﾅﾏ｢",IDC_TITLE,0,0,202,8
!     LTEXT           "ﾃｳﾆ(&M)｣ｺ",IDC_ADMIN_NAME_LABEL,7,57,52,8
!     LTEXT           "ｿﾚﾁ(&P)｣ｺ",IDC_ADMIN_PW_LABEL,7,73,52,8
!     GROUPBOX        "ﾕﾊｻｧﾃｺﾍｿﾚﾁ",IDC_ADMIN_INFO_FRAME,0,41,210,65
!     LTEXT           "ﾑ鰒､ｿﾚﾁ(&V)｣ｺ",IDC_VERIFY_ADMIN_PW_LABEL,7,90,52,8
!     LTEXT           "ﾒﾔﾏﾂﾐﾅﾏ｢ﾊﾇﾎｪｸﾃﾐﾂｵ･ﾔｪｴｴｽｨｹﾜﾀﾕﾊｻｧﾊｱｱﾘﾐｵﾄ｡｣",IDC_STATIC,
!                     0,15,209,17
!     CONTROL         "ﾊｹﾓﾃｴﾋ AFS UID(&S)｣ｺ",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,157,87,10
!     CONTROL         "ﾊｹﾓﾃﾏﾂﾒｻｸｿﾉﾓﾃｵﾄ AFS UID(&U)",IDC_USE_NEXT_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,144,126,10
!     GROUPBOX        "AFS UID",IDC_STATIC,0,118,209,57
!     LTEXT           "ﾊ菠 AFS ｹﾜﾀﾕﾊｻｧｵﾄﾓﾃｻｧｱﾊｶｷ｣ｺ",IDC_STATIC,6,130,196,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "ﾊﾇ｣ｬﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ(&Y)｡｣",IDC_CONFIG_DB_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,142,134,10
!     CONTROL         "ｷ｣ｬｲｻﾒｪﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ(&O)｡｣",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,0,
!                     190,153,10
!     LTEXT           "ﾊｾﾝｿ箙ﾎﾎｬｻ､ AFS ｵ･ﾔｪｱﾘﾐｵﾄﾒｻﾌﾗｸｴﾖﾆﾊｾﾝｿ筍｣ｸﾃｷﾎﾎｬｻ､ｵ･ﾔｪｵﾄﾋﾓﾐﾕﾊｻｧ｡｢ｾﾎｻﾖﾃｺﾍｱｸｷﾝﾐﾅﾏ｢(ｿﾉﾑ｡)｡｣",
!                     -1,0,38,209,54
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ?",
!                     IDC_DB_SERVER_QUESTION,0,129,209,10
!     LTEXT           "ｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ｡｣",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾒｪｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ｣ｬﾄｱﾘﾐﾅ葷ﾃﾊｾﾝｿ箙ﾎ｡｣",
!                     -1,0,14,209,16
!     LTEXT           "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ｡｣",IDC_MSG,0,167,210,33,NOT 
!                     WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,86,174,119,12,ES_AUTOHSCROLL
!     LTEXT           "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ(&Y)｣ｺ",IDC_SYS_CONTROL_MACHINE_LABEL,12,
!                     176,73,8
!     LTEXT           "ﾈ郢ﾄｵﾄｵ･ﾔｪﾖﾐﾓﾐﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｣ｬﾇﾔﾚﾏﾂﾃ賁菠ﾋｵﾄﾖｻﾃ｡｣ｽｫﾍｨｹｸﾃｷﾎﾆｸﾐﾂ AFS ﾅ葷ﾃﾎﾄｼ｡｣",
!                     IDC_SCM_PROMPT,12,154,195,17
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ", 0, 0, 0x1
! BEGIN
!     CONTROL         "ｽｫｸﾃﾖｻﾉ靹ﾃｳﾉﾏﾖﾓﾐ AFS ｵ･ﾔｪﾖﾐｵﾄｷﾎﾆ(&M)",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON,0,37,
!                     180,10
!     CONTROL         "ﾕ篆ｫﾊﾇﾐﾂｵﾄ AFS ｵ･ﾔｪﾖﾐｵﾄｵﾚﾒｻｸｷﾎﾆ(&T)",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,0,49,180,10
!     EDITTEXT        IDC_CELL_NAME,64,91,139,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,64,166,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,64,180,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "ｵ･ﾔｪｺﾍｷﾎﾆﾐﾅﾏ｢",IDC_TITLE,0,0,203,8
!     LTEXT           "ｵ･ﾔｪﾃ(&C)｣ｺ",IDC_CELL_NAME_LABEL,7,93,49,8
!     LTEXT           "ｿﾚﾁ(&P)｣ｺ",IDC_SERVER_PW_LABEL,7,167,52,8,WS_DISABLED
!     LTEXT           "ﾊ菠 AFS ｵ･ﾔｪﾃ｡｣",IDC_CELL_NAME_PROMPT,8,78,195,11
!     LTEXT           "ﾊ菠 AFS ﾎｯﾍﾐﾈﾋｵﾄｿﾚﾁ｡｣ﾋﾓﾐ AFS ｷﾎﾆｶｼﾗﾎｪｸﾃﾎｯﾍﾐﾈﾋｻｵﾃﾁﾅﾆ｡｣ ",
!                     IDC_SERVER_PW_PROMPT,7,130,196,19,WS_DISABLED
!     GROUPBOX        "ｵ･ﾔｪﾃ",IDC_CELL_NAME_FRAME,0,67,210,43
!     GROUPBOX        "ｷﾎﾆｿﾚﾁ",IDC_SERVER_PW_FRAME,0,119,210,81,
!                     WS_DISABLED
!     LTEXT           "ﾑ鰒､ｿﾚﾁ(&V)｣ｺ",IDC_VERIFY_PW_LABEL,7,180,52,8,
!                     WS_DISABLED
!     LTEXT           "AFS ｵ･ﾔｪﾊﾇﾎｪﾎﾄｼｴ貶｡ﾌ盪ｩﾍｳﾒｻﾃｳﾆｿﾕｼ莊ﾄｷﾎﾆｵﾄｼｯｺﾏ｡｣",
!                     IDC_CELL_NAME_PROMPT2,1,14,202,17
!     LTEXT           "ﾃｳﾆ｣ｺ",IDC_PRINCIPAL_LABEL,7,152,52,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,64,150,139,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,66,43,136,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,66,59,136,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,65,132,137,12,ES_AUTOHSCROLL
!     LTEXT           "ｹﾜﾀﾐﾅﾏ｢",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾔﾚﾏﾂﾃ賁菠ｹﾜﾀﾕﾊｻｧﾐﾅﾏ｢｣ｺ",IDC_ADMIN_INFO_PROMPT,7,30,
!                     196,10
!     LTEXT           "ﾃｳﾆ(&M)｣ｺ",IDC_ADMIN_NAME_LABEL,7,46,40,8
!     LTEXT           "ｿﾚﾁ(&P)｣ｺ",IDC_ADMIN_PW_LABEL,7,62,40,8
!     GROUPBOX        "ﾕﾊｻｧﾃｺﾍｿﾚﾁ",IDC_ADMIN_INFO_FRAME,0,17,210,62
!     GROUPBOX        "ﾏﾖﾓﾐ AFS ｷﾎﾆ",IDC_HOSTNAME_FRAME,1,92,209,60
!     LTEXT           "AFS ｷﾎﾆ｣ｺ",IDC_HOSTNAME_LABEL,7,134,52,8
!     LTEXT           "ﾊ菠ﾄﾏ｣ﾍｼﾓﾈｵﾄｵ･ﾔｪﾖﾐﾆ萢 AFS ｷﾎﾆｵﾄﾖｻﾃ｡｣ｿﾉｴﾓｸﾃｷﾎﾆｼﾋ AFS ﾅ葷ﾃﾐﾅﾏ｢｡｣",
!                     IDC_HOSTNAME_PROMPT,7,105,202,25
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 265
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "ｷﾎ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,20,281,40
!     GROUPBOX        "",IDC_STATIC,7,66,281,43
!     GROUPBOX        "",IDC_STATIC,7,115,281,40
!     GROUPBOX        "",IDC_STATIC,7,161,281,40
!     CONTROL         "ﾎﾄｼｷﾎ",IDC_FS_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,19,60,10
!     CONTROL         "ﾊｾﾝｿ箙ﾎ",IDC_DB_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,65,82,10
!     PUSHBUTTON      "ﾏﾏｸﾐﾅﾏ｢...",IDC_DB_DETAILS,215,81,50,14,NOT WS_VISIBLE
!     CONTROL         "ｱｸｷﾝｷﾎﾆ",IDC_BK_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,114,71,10
!     CONTROL         "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ",IDC_SCS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,160,98,10
!     EDITTEXT        IDC_SC_MACHINE,107,230,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "ﾑ｡ﾔﾒｪﾔﾋﾐﾐﾔﾚｸﾃ AFS ｷﾎﾆﾉﾏｵﾄｷﾎ｣ｺ",IDC_STATIC,7,7,144,
!                     8
!     LTEXT           "ｵｱﾇｰﾎﾄｼｷﾎﾕﾔﾚﾔﾋﾐﾐ｡｣",IDC_FS_STATUS_MSG,14,32,261,8
!     LTEXT           "ｵｱﾇｰﾒﾑｲｿｷﾖｰｲﾗｰﾁﾋﾊｾﾝｿ箙ﾎ｡｣",IDC_DB_STATUS_MSG,14,78,
!                     195,8
!     LTEXT           "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ(&Y)｣ｺ",IDC_SC_MACHINE_LABEL,21,232,79,8,
!                     WS_DISABLED
!     LTEXT           "ﾒｪﾍ｣ﾖｹﾎﾄｼｷﾎ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ｴﾋｸｴﾑ｡ｿ｡｣",IDC_FS_ACTION_MSG,
!                     14,44,262,8
!     LTEXT           "ﾈ醪雕ｶ獎ﾅﾏ｢｣ｬﾇｵ･ｻ｡ｰﾏﾏｸﾐﾅﾏ｢｡ｱｰｴﾅ･｡｣",
!                     IDC_DB_ACTION_MSG,14,92,186,8
!     LTEXT           "ｵｱﾇｰｱｸｷﾝｷﾎﾆﾕﾔﾚﾔﾋﾐﾐ｡｣",IDC_BK_STATUS_MSG,14,127,259,
!                     8
!     LTEXT           "ﾒｪﾍ｣ﾖｹｱｸｷﾝｷﾎﾆ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ｴﾋｸｴﾑ｡ｿ｡｣",
!                     IDC_BK_ACTION_MSG,14,139,262,8
!     LTEXT           "ﾒｪﾆﾓﾃｸﾃｷﾎﾆ｣ｬﾄｱﾘﾐﾔﾋﾐﾐﾎﾄｼｷﾎｻﾊｾﾝｿ箙ﾎ｡｣",
!                     IDC_SCS_ACTION_MSG,14,185,268,9
!     LTEXT           "ｵｱﾇｰﾏｵﾍｳｿﾘﾖﾆｷﾎﾎｴﾔﾋﾐﾐ｡｣",IDC_SCS_STATUS_MSG,14,172,263,
!                     9
!     GROUPBOX        "",IDC_STATIC,7,207,281,51
!     CONTROL         "ﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ",IDC_SCC,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,206,95,10
!     LTEXT           "ﾒｪﾆﾓﾃｸﾃｷﾎﾆ｣ｬﾄｱﾘﾐﾔﾋﾐﾐﾎﾄｼｷﾎｻﾊｾﾝｿ箙ﾎ｡｣",
!                     IDC_SCC_ACTION_MSG,14,245,268,9
!     LTEXT           "ｵｱﾇｰﾏｵﾍｳｿﾘﾖﾆｷﾎﾎｴﾔﾋﾐﾐ｡｣",IDC_SCC_STATUS_MSG,14,219,263,
!                     9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "ｷﾖﾇ"
! FONT 9, "ﾋﾎﾌ", 0, 0, 0x1
! BEGIN
!     LTEXT           "ﾄｵﾄｼﾆﾋ羹ﾉﾏﾓﾐﾏﾂﾁﾐ AFS ｷﾖﾇ(&A)｣ｺ",IDC_STATIC,8,7,175,8
!     PUSHBUTTON      "ｴｴｽｨ(&C)...",IDC_CREATE_PARTITIONS,17,118,53,14
!     LTEXT           "ﾒｪﾍｾﾈｷﾖﾇｻｷﾖﾇﾉﾏｵﾄｾ｣ｬﾇﾑ｡ﾔﾁﾐｱﾖﾐｵﾄｷﾖﾇｲ｢ｵ･ｻﾉﾏﾃ豬ﾄｰｴﾅ･｡｣ﾒｪﾍｾﾈｷﾎﾆﾉﾏｵﾄﾋﾓﾐｷﾖﾇ｣ｬｵ･ｻﾉﾏﾃ豬ﾄｰｴﾅ･｡｣",
!                     IDC_SALVAGE_MSG,30,179,250,25
!     PUSHBUTTON      "ﾍｾﾈ(&S)...",IDC_SALVAGE,17,159,53,14
!     LTEXT           "ﾒｪﾉｾｳｷﾖﾇ｣ｬﾇﾑ｡ﾔﾁﾐｱﾖﾐｵﾄｷﾖﾇｲ｢ｵ･ｻﾉﾏﾃ豬ﾄｰｴﾅ･｡｣",
!                     IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
!     PUSHBUTTON      "ｳﾈ･(&M)",IDC_REMOVE,17,217,53,14,WS_DISABLED
!     GROUPBOX        "ｷﾖﾇ",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
!                     281,79,WS_EX_CLIENTEDGE
!     LTEXT           "ﾒｪﾔﾚｸﾃｷﾎﾆﾉﾏﾐﾂｽｨｷﾖﾇ｣ｬｵ･ｻﾉﾏﾃ豬ﾄｰｴﾅ･｡｣",
!                     IDC_CREATE_MSG,30,136,254,8
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 264, 177
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "ｴｴｽｨ AFS ｷﾖﾇ"
! FONT 9, "ﾋﾎﾌ", 0, 0, 0x1
! BEGIN
!     LTEXT           "ｴﾓﾏﾂﾃ戝ﾐｱﾖﾐﾑ｡ﾔﾒｪﾐﾂｽｨｷﾖﾇﾋﾔﾚｵﾄ NTFS ｾ｣ｺ",IDC_TITLE,7,
!                     5,250,8
!     LTEXT           "AFS ｷﾖﾇﾃ｣ｺ",IDC_NAME_STATIC,17,131,66,8
!     EDITTEXT        IDC_PARTITION_NAME,119,129,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ｴｴｽｨ(&C)",IDC_CREATE,96,158,50,14,WS_DISABLED
!     PUSHBUTTON      "ｹﾘｱﾕ(&O)",IDC_CLOSE,152,158,50,14
!     PUSHBUTTON      "ｰﾖ",9,207,158,50,14
!     GROUPBOX        "ｷﾖﾇｲﾎﾊ",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,250,
!                     95,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,24,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 225, 159
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS ｷﾎﾆﾅ葷ﾃ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,61,33,151,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,61,49,151,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,61,110,151,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ﾅ葷ﾃ(&C)",IDOK,108,138,50,14,WS_DISABLED
!     PUSHBUTTON      "ﾈ｡ﾏ",IDCANCEL,48,138,50,14
!     PUSHBUTTON      "ｰﾖ",9,168,138,50,14
!     LTEXT           "ﾔﾚﾏﾂﾃ賁菠ｹﾜﾀﾕﾊｻｧﾐﾅﾏ｢｣ｺ",IDC_ADMIN_INFO_PROMPT,14,20,
!                     196,10
!     LTEXT           "ﾃｳﾆ(&M)｣ｺ",IDC_ADMIN_NAME_LABEL,15,36,38,8
!     LTEXT           "ｿﾚﾁ(&P)｣ｺ",IDC_ADMIN_PW_LABEL,15,52,38,8
!     GROUPBOX        "ﾕﾊｻｧﾃｺﾍｿﾚﾁ",IDC_ADMIN_INFO_FRAME,7,7,211,62
!     GROUPBOX        "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ",IDC_HOSTNAME_FRAME,7,76,211,54
!     LTEXT           "ﾖｻﾃ(&H)｣ｺ",IDC_HOSTNAME_LABEL,15,112,44,8
!     LTEXT           "ﾈ郢ﾄｵﾄｵ･ﾔｪﾖﾐﾓﾐﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｣ｬﾇﾔﾚﾏﾂﾃ賁菠ﾋｵﾄﾖｻﾃ｡｣ｽｫﾍｨｹｸﾃｷﾎﾆｸﾐﾂ AFS ﾅ葷ﾃﾎﾄｼ｡｣",
!                     IDC_HOSTNAME_PROMPT,13,88,197,18
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 257, 87
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS ｷﾎﾆﾅ葷ﾃ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     PUSHBUTTON      "ﾈ｡ﾏ",IDCANCEL,103,66,50,14
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,37,200,11
!     LTEXT           "ﾍｳﾉｰﾙｷﾖｱﾈ｣ｺ",IDC_PERCENT_COMPLETE_LABEL,40,50,61,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｵｱﾇｰｲﾙﾗ｣ｺ",IDC_CURRENT_STEP_LABEL,40,15,108,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｵｱﾇｰｲｽﾖ霤靆 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃ",IDC_CURRENT_STEP,40,26,210,8,
!                     NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,101,50,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,7,20,20
!     LTEXT           "ﾒｪｿｪﾊｼﾅ葷ﾃｸﾃｼﾆﾋ羹｣ｬﾇｰｴ｡ｰﾅ葷ﾃ｡ｱｰｴﾅ･｡｣ﾒｪｸｸﾄﾒﾑﾖｴﾐﾐｵﾄﾅ葷ﾃｲｽﾖ陬ｬﾇｰｴ｡ｰﾉﾏﾒｻｲｽ｡ｱｰｴﾅ･｡｣",
!                     IDC_STATUS_MSG,40,16,210,41
!     PUSHBUTTON      "ｲ鯀ｴﾈﾕﾖｾ(&V)",IDNEXT,158,66,50,14,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "CellServCB ｸﾐﾂｳｴ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     LISTBOX         IDC_LIST,7,26,173,127,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "ﾈｷｶｨ",IDOK,22,162,50,14
!     PUSHBUTTON      "ﾈ｡ﾏ",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "ｰﾖ",9,130,162,50,14
!     LTEXT           "ﾏﾂﾁﾐ AFS ｷﾎﾆﾉﾏｵﾄ CellServDB ﾎﾄｼﾎﾞｷｨﾗﾔｶｯｸﾐﾂ｣ｺ",
!                     IDC_STATIC,7,7,173,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 243, 188
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "ﾍｾﾈ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     DEFPUSHBUTTON   "ﾈｷｶｨ",IDOK,79,99,50,14
!     PUSHBUTTON      "ﾈ｡ﾏ",IDCANCEL,133,99,50,14
!     PUSHBUTTON      "ｰﾖ(&H)",9,187,99,50,14
!     CONTROL         "ﾍｾﾈｸﾃﾎﾄｼｷﾎﾆﾉﾏｵﾄﾋﾓﾐｷﾖﾇ(&S)",IDC_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,14,35,176,10
!     CONTROL         "ﾍｾﾈﾋﾑ｡ｷﾖﾇﾉﾏｵﾄﾋﾓﾐｾ(&P)",IDC_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON,14,48,177,10
!     CONTROL         "ﾍｾﾈﾋﾑ｡ｷﾖﾇﾉﾏｵﾄﾌﾘｶｨｾ(&V)",IDC_VOLUME,"Button",
!                     BS_AUTORADIOBUTTON,14,61,177,10
!     EDITTEXT        IDC_VOLUME_NAME,76,74,97,12,ES_AUTOHSCROLL | WS_DISABLED
!     PUSHBUTTON      "<< ｸﾟｼｶ(&A) ",IDC_ADVANCED,7,99,50,14
!     GROUPBOX        "",IDC_STATIC,7,25,229,67
!     LTEXT           "ｾﾃ(&N)｣ｺ",IDC_VOLUME_NAME_LABEL,27,75,47,8,
!                     WS_DISABLED
!     GROUPBOX        "ｸﾟｼｶﾍｾﾈﾑ｡ﾏ",IDC_ADVANCED_FRAME,7,119,229,62
!     LTEXT           "ﾁﾙﾊｱﾎﾄｼｵﾄﾂｷｾｶ(&T)｣ｺ",IDC_TEMP_DIR_LABEL,17,165,92,8
!     EDITTEXT        IDC_LOG_FILE,112,147,114,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,188,130,21,12,ES_AUTOHSCROLL
!     LTEXT           "ｽ盪ﾈﾕﾖｾｵﾄﾎﾄｼﾃ(&L)｣ｺ",IDC_LOG_FILE_LABEL,17,149,92,8
!     EDITTEXT        IDC_TEMP_DIR,112,163,114,12,ES_AUTOHSCROLL
!     CONTROL         "ｲ｢ﾐﾐﾍｾﾈｲﾙﾗ(&R)｣ｻｽｳﾌﾊ｣ｺ",IDC_NUM_PROCESSES_CHECKBOX,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,132,168,10
!     LTEXT           "ﾈ郢ﾄﾍｾﾈｷﾎﾆｻﾒｻｸﾍﾕｷﾖﾇ｣ｬﾔｷﾎﾆｽｫﾁﾙﾊｱﾍﾑｻ｡｣",
!                     IDC_STATIC,38,7,198,17
!     LTEXT           "ﾗ｢ﾒ筌ｺ",IDC_STATIC,7,7,28,8
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS ﾎｯﾍﾐﾈﾋｿﾚﾁ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     EDITTEXT        IDC_PW,48,39,142,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ﾈｷｶｨ",IDOK,31,61,50,14
!     PUSHBUTTON      "ﾈ｡ﾏ",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "ｰﾖ",9,140,61,50,14
!     LTEXT           "AFS ﾎｯﾍﾐﾈﾋﾃﾜﾔｿｲｻﾄﾜｴﾓﾔ醺ﾚ 3.5 ｵﾄﾈﾏﾖ､ｷﾎﾆﾉﾏｼﾋ｡｣ﾇﾔﾚﾏﾂﾃ賁菠 AFS ﾎｯﾍﾐﾈﾋｿﾚﾁ｡｣",
!                     IDC_STATIC,7,7,183,26
!     LTEXT           "ｿﾚﾁ｣ｺ",IDC_STATIC,7,41,35,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "ﾍｾﾈｾ - ｽ盪"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "ｹﾘｱﾕ(&C)",IDC_CLOSE,225,266,50,14,WS_DISABLED
!     PUSHBUTTON      "ｰﾖ",9,280,266,50,14
!     LTEXT           "<ﾔﾋﾐﾐﾊｱﾉ靹ﾃ>",IDC_LOG_TITLE,7,38,263,8
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "<ﾔﾋﾐﾐﾊｱﾉ靹ﾃ>",IDC_SALVAGE_STATUS,37,15,185,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 313
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 239
!         HORZGUIDE, 207
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 209
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 201
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 203
!         VERTGUIDE, 64
!         VERTGUIDE, 203
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 66
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 218
!         VERTGUIDE, 59
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 152
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 250
!         VERTGUIDE, 40
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 80
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 236
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 181
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐｺﾍﾏｵｼ""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "ﾏﾂﾒｻｲｽ(&N) >"
!     IDS_FINISH              "ﾍｳﾉ(&F)"
!     IDS_HELP_TITLE          "ｰｴﾏﾂｰﾖｰｴﾅ･"
!     IDS_HELP_DESC           "ｰﾖｴﾋﾊｱｲｻｿﾉﾓﾃ｡｣"
!     IDS_CANCEL_DESC         "ﾈ｡ﾏ AFS ｿﾋﾙﾆｶｯﾏｵｼ?"
!     IDS_PARTITION_ALREADY_CREATED "ｸﾃｻﾆﾉﾏﾒﾑｴ贇ﾚ AFS ｷﾖﾇ｡｣"
!     IDS_NOT_A_FS_SERVER     "ｸﾃｻﾆﾎｴﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ｡｣ｾﾖｻﾄﾜﾔﾚﾎﾄｼｷﾎﾆﾉﾏｴｴｽｨ｡｣"
!     IDS_ROOT_AFS_ALREADY_EXISTS "ｸｾﾒﾑｴ贇ﾚ｡｣"
!     IDS_NO_PARTITION_EXISTS "ｲｻｴ贇ﾚﾒｪｴｴｽｨｸｾｵﾄｷﾖﾇ｡｣ｴｴｽｨｸｾﾇｰ｣ｬｱﾘﾐｴ贇ﾚｷﾖﾇ｡｣"
!     IDS_ALREADY_REPLICATED  "ﾒﾑｸｴﾖﾆｸｾ｡｣"
!     IDS_ROOT_AFS_DOESNT_EXIST "ｲｻｴ贇ﾚｸｾ｡｣ｸｴﾖﾆｸｾﾇｰ｣ｬｱﾘﾐｴ贇ﾚｸﾃｸｾ｡｣"
!     IDS_ALREADY_CONFIGURED  "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉ AFS ｷﾎﾆ｡｣"
!     IDS_NOTHING_TO_CONFIGURE "ﾄﾃｻﾓﾐﾑ｡ﾔﾈﾎｺﾎｶﾔﾏｽﾐﾐﾅ葷ﾃ｡｣"
!     IDS_EXIT                "ﾍﾋｳ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "ﾆｶｯﾎﾄｼｷﾎ"
!     IDS_CANCEL_CONFIG_MSG   "ﾔﾚｴﾋｴｦﾈ｡ﾏｽｫﾊｹﾄｵﾄｼﾆﾋ羹ｲｿｷﾖｵﾘﾅ葷ﾃｳﾉ AFS ｷﾎﾆ｡｣ﾈﾔﾒｪﾈ｡ﾏﾂ?"
!     IDS_WIZARD_APP_TITLE    "AFS ｷﾎﾆｿﾋﾙﾆｶｯﾏｵｼ"
!     IDS_CANCEL_PENDING      "*** ﾈ｡ﾏﾔﾝｹﾒ - ﾇﾉﾔｺ... ***"
!     IDS_CHECK_FS_CONFIG     "ｼｲ鯰ﾄｼｷﾎﾆ..."
!     IDS_CHECK_DB_CONFIG     "ｼｲ鯡ｾﾝｿ箙ﾎﾆ..."
!     IDS_CHECK_BAK_CONFIG    "ｼｲ魍ｸｷﾝｷﾎﾆ..."
!     IDS_CHECK_PARTITION     "ｼｲ AFS ｷﾖﾇ..."
!     IDS_CHECK_ROOT_AFS      "ｼｲ鮑ｾ..."
!     IDS_CHECK_REP           "ｼｲ鮑ｾｸｴﾖﾆ..."
!     IDS_CANCEL_GET_CONFIG   "ﾕﾔﾚﾈ｡ﾏ...ﾇﾉﾔｺ..."
!     IDS_ALREADY_A_BACKUP_SERVER "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉｱｸｷﾝｷﾎﾆ｡｣"
!     IDS_NOT_A_DB_SERVER     "ｸﾃｻﾆﾎｴﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ｡｣ｱｸｷﾝｷﾎﾆﾖｻﾄﾜﾔﾋﾐﾐﾔﾚﾊｾﾝｿ箙ﾎﾆｻﾆﾉﾏ｡｣"
!     IDS_ALREADY_A_SYS_CONTROL_SERVER "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｡｣"
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "ｸﾃｻﾆﾎｴﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆｻﾎﾄｼｷﾎﾆ｡｣ﾈ郢ｼﾆﾋ羹ﾅ葷ﾃｳﾉﾊｾﾝｿ篏ﾎﾄｼｷﾎﾆｻﾆﾊｱ｣ｬﾔﾍｬﾊｱﾋﾖｻﾄﾜﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆﾆ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "ｾ"
!     IDS_NAME_OR_ERROR       "ﾃｳﾆ(ｻｳｴﾏﾏ｢)"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "ｽｫｸﾃｻﾆﾎｴﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆｻﾎﾄｼｷﾎﾆ｡｣ﾈ郢ｼﾆﾋ羹ﾅ葷ﾃｳﾉﾊｾﾝｿ篏ﾎﾄｼｷﾎﾆｻﾆﾊｱ｣ｬﾔﾍｬﾊｱﾋﾖｻﾄﾜﾅ葷ﾃｳﾉｶｽﾖﾆｷﾖｲｼｻﾆ｡｣"
!     IDS_CHECK_SCS           "ｼｲ鰕ｵﾍｳｿﾘﾖﾆｷﾎﾆ..."
!     IDS_CHECK_SCC           "ｼｲ鰕ｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ..."
!     IDS_SIZE                "ｴﾐ｡"
!     IDS_ERROR_SEP           ","
!     IDS_MUST_CONFIG_FS      "ﾓﾉﾓﾚﾋﾊﾇｵ･ﾔｪﾖﾐｵﾄｵﾚﾒｻｸ AFS ｷﾎﾆ｣ｬﾒｴﾋｽｫﾈｱﾊ｡ｵﾘﾅ葷ﾃﾎﾄｼｷﾎ｡｣"
!     IDS_MUST_CONFIG_DB      "ﾓﾉﾓﾚﾋﾊﾇｵ･ﾔｪﾖﾐｵﾄｵﾚﾒｻｸ AFS ｷﾎﾆ｣ｬﾒｴﾋｽｫﾈｱﾊ｡ｵﾘﾅ葷ﾃﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_MUST_MAKE_PARTITION "ﾓﾉﾓﾚﾋﾊﾇｵ･ﾔｪﾖﾐｵﾄｵﾚﾒｻｸ AFS ｷﾎﾆ｣ｬﾒｴﾋｱﾘﾐｴｴｽｨｷﾖﾇ｡｣"
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "ﾓﾉﾓﾚﾋﾊﾇｵ･ﾔｪﾖﾐｵﾄｵﾚﾒｻｸ AFS ｷﾎﾆ｣ｬﾒｴﾋｽｫﾈｱﾊ｡ｵﾘｴｴｽｨ root.afs ｺﾍ root.cell ｾ｡｣"
!     IDS_MUST_REPLICATE      "ﾓﾉﾓﾚﾋﾊﾇｵ･ﾔｪﾖﾐｵﾄｵﾚﾒｻｸ AFS ｷﾎﾆ｣ｬﾒｴﾋｽｫﾈｱﾊ｡ｵﾘｸｴﾖﾆ root.afs ｺﾍ root.cell ｾ｡｣"
!     IDS_CHECK_AFS_CLIENT    "ｼｲ AFS ｿﾍｻｧｻｰｲﾗｰ..."
!     IDS_ERROR_HOST_NAME     "ﾎﾞｷｨﾈｷｶｨｻﾆｵﾄﾖｻﾃ｡｣"
!     IDS_ERROR_DRIVE_COMPRESSED "ﾇｶｯﾆﾒﾑﾑｹﾋ"
!     IDS_ERROR_CFG_HOST_OPEN "ｳﾊｼｻｯｷﾎﾆﾅ葷ﾃｿ簗ｧｰﾜ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "ﾕﾔﾚﾍ｣ﾖｹ AFS ｿﾍｻｧｻ"
!     IDS_ERROR_LOCAL_HOST_NAME "ﾎﾞｷｨﾈｷｶｨｻﾆｵﾄｱｾｵﾘﾖｻﾃ｡｣"
!     IDS_GET_TOKENS_ERROR    "ﾎﾞｷｨｻｵﾃﾁﾅﾆ｡｣ﾇﾑ鰒､ﾄﾊ菠ﾁﾋﾕﾈｷｵﾄﾓﾃｻｧﾃｺﾍｿﾚﾁ｡｣"
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "ﾓﾉﾓﾚﾎﾄｼｷﾎﾎｴﾆｶｯ｣ｬｲｻﾄﾜﾖｴﾐﾐﾍｾﾈ｡｣ﾇﾆｶｯﾎﾄｼｷﾎ｣ｬﾈｻｺﾖﾘﾊﾔﾍｾﾈ｡｣"
!     IDS_SALVAGING           "ﾕﾔﾚｽﾐﾐﾍｾﾈ｡｣ﾇｵﾈｴ..."
!     IDS_CURRENT_SALVAGE_LOG "ｵｱﾇｰﾍｾﾈﾈﾕﾖｾｵﾄﾄﾚﾈﾝ:"
!     IDS_FINAL_SALVAGE_LOG   "ﾍｾﾈﾈﾕﾖｾｵﾄﾗｺﾄﾚﾈﾝ:"
!     IDS_SALVAGE_COMPLETE    "ﾍｾﾈﾒﾑﾍｳﾉ｡｣"
!     IDS_CANT_GET_SALVAGE_LOG "ﾎﾞｷｨｼﾋﾍｾﾈﾈﾕﾖｾ｡｣"
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK "ﾎﾞｷｨｽｫﾍｾﾈﾈﾕﾖｾｱ｣ｴ豬ｽｴﾅﾅﾌ｡｣"
!     IDS_VALIDATION_ERROR_TEMPLATE "ﾖｸｶｨｵﾄ %1 ﾎﾞﾐｧ｡｣ﾇﾖﾘﾐﾂﾊ菠 %2 ｡｣"
!     IDS_CELL_NAME_VALIDATION_TYPE "ｵ･ﾔｪﾃ"
!     IDS_SERVER_NAME_VALIDATION_TYPE "ｷﾎﾆﾃ"
!     IDS_PASSWORD_VALIDATION_TYPE "ｿﾚﾁ"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "ﾓﾃｻｧﾃ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "ﾃｻﾓﾐｰｲﾗｰ AFS ｿﾍｻｧｻ｡｣ｱﾘﾐﾔﾚﾄﾜｹｻﾅ葷ﾃ AFS ｷﾎﾆﾇｰｰｲﾗｰ AFS ｿﾍｻｧｻ｡｣"
!     IDS_ERROR_AFS_CLIENT_CHECK "ﾎﾞｷｨﾈｷｶｨﾊﾇｷﾒﾑｰｲﾗｰ AFS ｿﾍｻｧｻ｡｣"
!     IDS_ERROR_FS_IS_NOT_NTFS "ﾎﾄｼﾏｵﾍｳｲｻﾊﾇ NTFS"
!     IDS_ERROR_DRIVE_HAS_DATA "ﾇｶｯﾆｰｺｬﾊｾﾝ"
!     IDS_PARTITION_STEP_DESC "ｴｴｽｨ AFS ｷﾖﾇ"
!     IDS_ERROR_DRIVE_CONTAINS_NT "ﾇｶｯﾆｰｺｬ NT ｰｲﾗｰ"
!     IDS_DB_STEP_DESC        "ﾆｶｯﾊｾﾝｿ箙ﾎ"
!     IDS_FS_STEP_DESC        "ﾆｶｯﾎﾄｼｷﾎ"
!     IDS_SCC_STEP_DESC       "ﾆｶｯﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ"
!     IDS_SCS_STEP_DESC       "ﾆｶｯﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ"
!     IDS_ROOT_AFS_STEP_DESC  "ｴｴｽｨｸｾ"
!     IDS_REP_STEP_DESC       "ｸｴﾖﾆｸｾ"
!     IDS_PARTITIONS_PAGE_TITLE "ｷﾖﾇ"
!     IDS_CONFIGURE           "ﾅ葷ﾃ(&C)"
!     IDS_DB_AND_BK_STEP_DESC "ﾆｶｯﾊｾﾝｿ箙ﾎ(ｰﾀｨｱｸｷﾝｷﾎﾆ)"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "ﾕﾔﾚｴｴｽｨ AFS ｷﾖﾇ"
!     IDS_CONFIG_COMMON_FUNCS "ﾕﾔﾚﾅ葷ﾃﾋﾓﾐｷﾎｵﾄｹｫｹｲｹｦﾄﾜ"
!     IDS_START_DB_STEP       "ﾕﾔﾚﾆｶｯﾊｾﾝｿ箙ﾎ"
!     IDS_START_SCC_STEP      "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾗﾎｪﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻﾕﾔﾚﾆｶｯ"
!     IDS_START_SCS_STEP      "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾗﾎｪﾏｵﾍｳｿﾘﾖﾆｷﾎﾆﾕﾔﾚﾆｶｯ"
!     IDS_CREATE_ROOT_AFS_STEP "ﾕﾔﾚｴｴｽｨ root.afs ｾ"
!     IDS_REP_STEP            "ﾕﾔﾚｸｴﾖﾆｸｾ"
!     IDS_START_AUTH_STEP     "ﾕﾔﾚｻｵﾃｷﾎﾆﾁﾅﾆ"
!     IDS_SERVICES_PAGE_TITLE "ｷﾎ"
!     IDS_CONFIG_SUCCEEDED    "ﾅ葷ﾃｳﾉｹｦﾍｳﾉ｡｣"
!     IDS_CONFIG_CANCELED     "ﾅ葷ﾃﾒﾑﾈ｡ﾏ｡｣"
!     IDS_CONFIG_FAILED       "ﾅ葷ﾃﾊｧｰﾜ｡｣\r\n\r\nﾒﾑﾔﾚﾎｻﾖﾃ %2 ｴｴｽｨﾁﾋﾏﾏｸｵﾄﾈﾕﾖｾﾎﾄｼ %1｡｣"
!     IDS_ERROR_NO_LICENSE_NUM "ﾃｻﾓﾐﾕﾒｵｽ AFS ﾐｿﾉﾖ､ｺﾅﾂ｡｣"
!     IDS_VERIFY_CLIENT_INSTALL_STEP "ﾕﾔﾚﾑ鰒､ AFS ｿﾍｻｧｻｵﾄｰｲﾗｰ"
!     IDS_SET_SERVER_LICENSE_STEP "ﾕﾔﾚﾉ靹ﾃｸﾃｷﾎﾆｵﾄﾐｿﾉﾖ､"
!     IDS_DEFINE_CELL_NAME_STEP "ﾕﾔﾚｶｨﾒ蟶ﾃｵ･ﾔｪｵﾄﾃｳﾆ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP "ﾕﾔﾚｽｫｸﾃｷﾎﾆﾉ靹ﾃﾎｪｵ･ﾔｪｳﾉﾔｱ"
!     IDS_START_BOS_SERVER_STEP "ﾕﾔﾚﾆｶｯ BOS ｷﾎﾆ"
!     IDS_START_AUTH_SERVER_STEP "ﾕﾔﾚﾆｶｯﾈﾏﾖ､ｷﾎﾆ"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP "ﾕﾔﾚｴｴｽｨｸﾃｷﾎﾆｵﾄﾎｯﾍﾐﾈﾋｺﾍﾃﾜﾔｿ"
!     IDS_START_DB_AND_BK_STEP "ﾕﾔﾚﾆｶｯﾊｾﾝｿ箙ﾎ(ｰﾀｨｱｸｷﾝｷﾎﾆ)"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP "ﾕﾔﾚｴｴｽｨｵ･ﾔｪｹﾜﾀﾎｯﾍﾐﾈﾋ"
!     IDS_START_CLIENT_STEP   "ﾕﾔﾚﾆｶｯ AFS ｿﾍｻｧｻ"
!     IDS_SET_ROOT_ACL_STEP   "ﾕﾔﾚ root.afs ｾﾉﾏﾉ靹ﾃ ACL"
!     IDS_CREATE_ROOT_CELL_STEP "ﾕﾔﾚｴｴｽｨ root.cell ｾ"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP "ﾕﾔﾚﾊｹﾓﾃｱﾗｼｰｲﾗｰｵ羃ｲﾗｰ root.cell ｾ"
!     IDS_SET_ROOT_CELL_ACL_STEP "ﾕﾔﾚ root.cell ｾﾉﾏﾉ靹ﾃ ACL"
!     IDS_MOUNT_ROOT_CELL_RW_STEP "ﾕﾔﾚﾊｹﾓﾃﾒｻｸｶﾁ｣ｯﾐｴｰｲﾗｰｵ羃ｲﾗｰ root.cell ｾ"
!     IDS_ENABLE_AUTH_CHECKING_STEP "ﾕﾔﾚﾆﾓﾃﾈﾏﾖ､ｼｲ"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "ﾕﾔﾚｻｵﾃｹﾜﾀﾁﾅﾆ"
!     IDS_RESTART_SERVERS_STEP "ﾕﾔﾚｸﾃｻﾆﾉﾏｽｫﾋﾓﾐｷﾎﾆﾗﾎｪﾈﾏﾖ､ｷﾎﾆﾖﾘﾐﾂﾆｶｯ"
!     IDS_ALREADY_A_FS_SERVER "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ｡｣"
!     IDS_INTRO_PAGE          "ｽ鯔ﾜ"
!     IDS_INFO_PAGE           "ｵ･ﾔｪｺﾍｷﾎﾆﾐﾅﾏ｢"
!     IDS_FS_PAGE             "ﾎﾄｼｷﾎ"
!     IDS_DB_PAGE             "ﾊｾﾝｿ箙ﾎ"
!     IDS_CFG_TOOL_APP_TITLE  "AFS ｷﾎﾆﾅ葷ﾃ"
!     IDS_BK_PAGE             "ｱｸｷﾝｷﾎﾆ"
!     IDS_ROOT_AFS_PAGE       "ｸ AFS ｾ"
!     IDS_NAME                "ﾃｳﾆ"
!     IDS_REP_PAGE            "ｸｴﾖﾆ"
!     IDS_SC_PAGE             "ﾏｵﾍｳｿﾘﾖﾆｷﾎ"
!     IDS_CONFIG_PAGE         "ﾅ葷ﾃﾏｵﾍｳ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "AFS ｷﾖﾇ"
!     IDS_GRAPHIC_FONT        "Times New Roman, 12, B"
!     IDS_CURRENT_STEP        "ｵｱﾇｰｲｽﾖ陬ｺ"
!     IDS_ADD_TO_CELLSERVDB_STEP "ﾕﾔﾚｽｫｸﾃｷﾎﾆﾌｼﾓﾖﾁ CellServDB"
!     IDS_RESTART_ALL_DB_SERVERS_STEP "ﾕﾔﾚﾖﾘﾐﾂﾆｶｯｵ･ﾔｪﾖﾐｵﾄﾋﾓﾐﾊｾﾝｿ箙ﾎﾆ"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "ﾅ葷ﾃﾒﾑｳﾉｹｦﾍｳﾉ｡｣ﾗ｢ﾒ筌ｺｱﾘﾐｸﾐﾂﾄｵ･ﾔｪﾖﾐﾋﾓﾐ AFS ｿﾍｻｧｻｵﾄ CellServDB ﾎﾄｼ｡｣ﾈ郢ﾄﾒｪﾊｹﾆ萢ﾕｾｵ譱ﾉﾓﾃﾄｵﾄｵ･ﾔｪ｣ｬﾔﾇﾈｷﾈﾏﾌ盪ｩｴﾓﾐﾄｵﾄﾊｾﾝｿ箙ﾎﾆﾗﾐﾂﾁﾐｱｵﾄ AFS ｲﾆｷﾖｧｳﾖ｡｣"
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG "ﾄﾊﾇｷﾏ｣ﾍｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG "ｲｻﾒｪﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ(&O)｡｣"
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "AFS ｷﾎﾆｵﾄﾅ葷ﾃﾐ霓ｫ AFS ｿﾍｻｧｻｺﾍｷﾎﾆﾅ葷ﾃﾔﾚﾍｬﾒｻｵ･ﾔｪﾖﾐ｡｣ﾕ簟ｩｽｫﾗﾔｶｯﾖｴﾐﾐ｡｣"
!     IDS_INFO_PAGE2          "ｹﾜﾀﾐﾅﾏ｢"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "ﾅ葷ﾃﾒﾑｳﾉｹｦﾍｳﾉ｡｣\r\n\r\nﾗ｢ﾒ筌ｺﾈ郢ﾄﾒｪﾊｹﾆ萢ﾕｾｵ譱ﾉﾓﾃﾄｵﾄｵ･ﾔｪ｣ｬﾔﾇﾈｷﾈﾏﾌ盪ｩｴﾓﾐﾄｵﾄﾊｾﾝｿ箙ﾎﾆﾁﾐｱｵﾄ AFS ｲﾆｷﾖｧｳﾖ｡｣"
!     IDS_CONFIG_SCS          "ﾅ葷ﾃｳﾉｵ･ﾔｪｵﾄﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_CONFIG_INTO_CELL_MSG "ｽｫﾖｻﾅ葷ﾃﾖﾁｵ･ﾔｪ"
!     IDS_VIEW_LOG            "ｲ鯀ｴﾈﾕﾖｾ(&V)"
!     IDS_VIEW_LOG_ERROR      "ﾎﾞｷｨｲ鯀ｴﾈﾕﾖｾﾎﾄｼ"
!     IDS_ERROR_NO_LOG_FILE   "ﾈﾕﾖｾﾎﾄｼｲｻｴ贇ﾚ｡｣"
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED "ﾖｻﾉﾏｸﾐﾂｵﾄ CellServDB"
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED "ﾔﾚﾖｻﾉﾏｸﾐﾂ CellServDB ﾊｧｰﾜ"
!     IDS_CELL_NAME_LEN_ERROR "ﾄﾊ菠ｵﾄｵ･ﾔｪﾃﾌｫｳ､｡｣ｵ･ﾔｪﾃｲｻﾄﾜｳｬｹ 64 ｸﾗﾖｷ｡｣"
!     IDS_CONFIG_CHECK_FAILED "ﾎﾞｷｨﾈｷｶｨｸﾃｻﾆﾉﾏｵﾄｵｱﾇｰﾅ葷ﾃ｡｣"
!     IDS_YES                 "ﾊﾇ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "ｷ"
!     IDS_FREE                "ｿﾕﾏﾐｿﾕｼ"
!     IDS_TOTAL               "ﾗﾜｼﾆｴﾐ｡"
!     IDS_DRIVE2              "ﾇｶｯﾆ"
!     IDS_SERVICE_STATUS      "ﾗｴﾌｬ"
!     IDS_SERVICE             "ｷﾎ"
!     IDS_FS_RUNNING          "ｵｱﾇｰﾕﾔﾚﾔﾋﾐﾐﾎﾄｼｷﾎ｡｣"
!     IDS_FS_STOPPED          "ｵｱﾇｰﾃｻﾓﾐﾔﾋﾐﾐﾎﾄｼｷﾎ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "ｵｱﾇｰﾕﾔﾚﾔﾋﾐﾐﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_DB_STOPPED          "ｵｱﾇｰﾃｻﾓﾐﾔﾋﾐﾐﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_BK_RUNNING          "ｵｱﾇｰﾕﾔﾚﾔﾋﾐﾐｱｸｷﾝｷﾎ｡｣"
!     IDS_BK_STOPPED          "ｵｱﾇｰﾃｻﾓﾐﾔﾋﾐﾐｱｸｷﾝｷﾎ｡｣"
!     IDS_SCS_STOPPED         "ｵｱﾇｰﾃｻﾓﾐﾔﾋﾐﾐﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_SCC_STOPPED         "ｵｱﾇｰﾃｻﾓﾐﾔﾋﾐﾐﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_FS_HOW_TO_RUN       "ﾒｪﾆｶｯﾎﾄｼｷﾎ｣ｬﾇﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_FS_HOW_TO_STOP      "ﾒｪﾍ｣ﾖｹﾎﾄｼｷﾎ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_DB_HOW_TO_RUN       "ﾒｪﾆｶｯﾊｾﾝｿ箙ﾎ｣ｬﾇﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_DB_HOW_TO_STOP      "ﾒｪﾍ｣ﾖｹﾊｾﾝｿ箙ﾎ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_BK_HOW_TO_RUN       "ﾒｪﾆｶｯｱｸｷﾝｷﾎ｣ｬﾇﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "ﾒｪﾍ｣ﾖｹｱｸｷﾝｷﾎ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_SCS_HOW_TO_RUN      "ﾒｪﾆｶｯﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｣ｬﾇﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_SCS_HOW_TO_STOP     "ﾒｪﾍ｣ﾖｹﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_DB_PARTIAL_CONFIG   "ﾒﾑﾅ葷ﾃﾁﾋｲｿｷﾖﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_DB_DETAILS          "ﾈ醪雕ｶ獎ﾅﾏ｢｣ｬﾇｰｴ｡ｰﾏﾏｸﾐﾅﾏ｢｡ｱｰｴﾅ･｡｣"
!     IDS_BK_DISABLED         "ｽﾓﾃｱｸｷﾝｷﾎ｡｣"
!     IDS_BK_ENABLE           "ﾒｪﾆﾓﾃｱｸｷﾝｷﾎ｣ｬﾄｱﾘﾐﾔﾋﾐﾐﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_SC_DISABLED         "ｽﾓﾃｸﾃｷﾎﾆ｡｣"
!     IDS_SC_ENABLE           "ﾒｪﾆﾓﾃｸﾃｷﾎﾆ｣ｬﾄｱﾘﾐﾔﾋﾐﾐﾎﾄｼｷﾎｻﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_FS_WILL_RUN         "ｽｫﾆｶｯﾎﾄｼｷﾎ｡｣"
!     IDS_FS_WILL_STOP        "ｽｫﾍ｣ﾖｹﾎﾄｼｷﾎ｡｣"
!     IDS_DB_WILL_RUN         "ｽｫﾆｶｯﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_DB_WILL_STOP        "ｽｫﾍ｣ﾖｹﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_BK_WILL_RUN         "ｽｫﾆｶｯｱｸｷﾝｷﾎ｡｣"
!     IDS_BK_WILL_STOP        "ｽｫﾍ｣ﾖｹｱｸｷﾝｷﾎ｡｣"
!     IDS_SCS_WILL_RUN        "ｽｫﾆｶｯﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "ｽｫﾍ｣ﾖｹﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "ﾇｶｯﾆﾒﾑﾓﾐﾒｻｸ AFS ｷﾖﾇ"
!     IDS_VOLUME_HAS_NO_NAME  "< ｾﾃｻﾓﾐﾃｳﾆ >"
!     IDS_PARTITION_CREATED   "ﾒﾑｳﾉｹｦﾐﾂｽｨ AFS ｷﾖﾇ｡｣"
!     IDS_PARTITION_EXISTS    "ﾄﾊ菠ｵﾄｷﾖﾇﾃﾒﾑｱｻﾁﾒｻｸｷﾖﾇﾊｹﾓﾃ｡｣"
!     IDS_SCS_RUNNING         "ｵｱﾇｰﾕﾔﾚﾔﾋﾐﾐﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN "ｸﾃﾇｶｯﾆｽｰｺｬｻﾘﾊﾕﾕｾ｡｣"
!     IDS_SCC_WILL_RUN        "ｽｫﾆｶｯﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｡｣"
!     IDS_SCC_WILL_STOP       "ｽｫﾍ｣ﾖｹﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｡｣"
!     IDS_SCC_RUNNING         "ｵｱﾇｰﾕﾔﾚﾔﾋﾐﾐﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｡｣"
!     IDS_SCC_HOW_TO_RUN      "ﾒｪﾆｶｯﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｣ｬﾇﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_SCC_HOW_TO_STOP     "ﾒｪﾍ｣ﾖｹﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_SCS_ENABLE          "ﾒｪﾆﾓﾃｸﾃｷﾎﾆ｣ｬﾄｱﾘﾐﾍ｣ﾖｹﾕﾔﾚﾔﾋﾐﾐｵﾄﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｡｣"
!     IDS_SCC_ENABLE          "ﾒｪﾆﾓﾃｸﾃｷﾎﾆ｣ｬﾄｱﾘﾐﾍ｣ﾖｹﾕﾔﾚﾔﾋﾐﾐｵﾄﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_UNCONFIG_DB_STEP    "ﾕﾔﾚﾈ｡ﾏｶﾔﾊｾﾝｿ箙ﾎｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_DB_STEP_DESC "ﾈ｡ﾏｶﾔﾊｾﾝｿ箙ﾎｵﾄﾅ葷ﾃ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP "ﾕﾔﾚﾈ｡ﾏｶﾔﾊｾﾝｿ箙ﾎ(ｺﾍｱｸｷﾝｷﾎﾆ)ｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC "ﾈ｡ﾏｶﾔﾊｾﾝｿ箙ﾎ(ｺﾍｱｸｷﾝｷﾎﾆ)ｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_BK_STEP    "ﾕﾔﾚﾈ｡ﾏｶﾔｱｸｷﾝｷﾎﾆｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_BK_STEP_DESC "ﾈ｡ﾏｱｸｷﾝｷﾎﾆｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_FS_STEP    "ﾕﾔﾚﾈ｡ﾏｶﾔﾎﾄｼｷﾎｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_FS_STEP_DESC "ﾈ｡ﾏｶﾔﾎﾄｼｷﾎｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_SCS_STEP   "ﾕﾔﾚﾈ｡ﾏｶﾔﾏｵﾍｳｿﾘﾖﾆｷﾎﾆｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_SCS_STEP_DESC "ﾈ｡ﾏｶﾔﾏｵﾍｳｿﾘﾖﾆｷﾎﾆｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_SCC_STEP   "ﾕﾔﾚﾈ｡ﾏｶﾔﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_SCC_STEP_DESC "ﾈ｡ﾏｶﾔﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻｵﾄﾅ葷ﾃ"
!     IDS_INVALIDATE_CONFIG_INFO_STEP "ﾕﾔﾚﾊｹｸﾃｻﾆｵﾄﾅ葷ﾃﾐﾅﾏ｢ﾊｧﾐｧ"
!     IDS_CLOSE               "ｹﾘｱﾕ(&C)"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "ﾔﾚﾒﾔﾏﾂ AFS ｷﾎﾆﾉﾏﾎﾞｷｨｸﾐﾂ CellServDB ﾎﾄｼ｡｣ﾕ簗ﾇﾒｻｸｷﾇﾖﾂﾃﾐﾔｴﾎ｡｣\r\n"
!     IDS_DELETE_PARTITION_PROMPT "ﾈｷﾊｵﾒｪﾉｾｳｷﾖﾇ｡ｮ%1｡ｯﾂ?"
!     IDS_INVALIDATE_CFG_INFO "ｸﾃｼﾆﾋ羹ﾉﾏﾏﾖﾔﾚﾃｻﾓﾐﾔﾋﾐﾐ AFS ｷﾎﾆｽｳﾌ｡｣ﾄﾊﾇｷﾏ｣ﾍｴﾓｸﾃｻﾆﾉﾏｳﾈ･ﾅ葷ﾃﾐﾅﾏ｢?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "ｵ･ﾔｪﾒﾑｲｻｴ贇ﾚ｡｣AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐｽﾓﾃﾓﾚﾅ葷ﾃﾒﾑﾅ葷ﾃｵｽ AFS ｵ･ﾔｪﾖﾐｵﾄｷﾎﾆ｡｣AFS ﾅ葷ﾃﾏｵｼｿﾉﾓﾃﾓﾚﾆｶｯﾐﾂｵ･ﾔｪ｡｣"
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐﾏﾖﾔﾚｱﾘﾐﾖﾕﾖｹ｡｣ﾋﾖｻﾄﾜﾔﾋﾐﾐﾔﾚﾒﾑﾅ葷ﾃｳﾉ AFS ｷﾎﾆｵﾄｻﾆﾉﾏ｡｣ﾒｪﾔﾙｴﾎｽｫｸﾃｻﾆﾅ葷ﾃｳﾉ AFS ｷﾎﾆ｣ｬﾇﾔﾋﾐﾐ AFS ﾅ葷ﾃﾏｵｼ｡｣"
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "ｲｻﾔﾙｽｫｸﾃｻﾆﾅ葷ﾃｳﾉ AFS ｷﾎﾆ｡｣AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐﾖｻﾄﾜﾓﾃﾓﾚﾅ葷ﾃ AFS ｷﾎﾆｻﾆ｡｣AFS ﾅ葷ﾃﾏｵｼｿﾉﾓﾃﾓﾚｽｫｸﾃｻﾆﾖﾘﾐﾂﾅ葷ﾃｳﾉ AFS ｷﾎﾆ｡｣"
!     IDS_GET_TOKENS_FAILED   "ｻｵﾃﾖｸｶｨｵ･ﾔｪｵﾄﾁﾅﾆﾊｧｰﾜ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "ﾕﾔﾚﾆｶｯｱｸｷﾝｷﾎﾆ"
!     IDS_BK_STEP_DESC        "ﾆｶｯｱｸｷﾝｷﾎﾆ"
!     IDS_CONFIG_ERROR        "ﾅ葷ﾃｳｴ"
!     IDS_CREATE_PARTITION_ERROR "ﾎﾞｷｨｴｴｽｨｷﾖﾇ"
!     IDS_REMOVE_PARTITION_ERROR "ﾎﾞｷｨｳﾈ･ｷﾖﾇ"
!     IDS_READ_PARTITIONS_ERROR "ﾎﾞｷｨｶﾁﾈ｡ｷﾖﾇｱ"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\n CellServDB ｸﾐﾂｽｳﾌｹﾔ釉ﾕﾖｹ｡｣ｿﾉﾄﾜﾓﾐｷﾎﾆﾎｴｸﾐﾂ｡｣"
!     IDS_GET_PARTITION_LIST_ERROR "ﾎﾞｷｨﾈｷｶｨｸﾃｷﾎﾆﾉﾏｵﾄｷﾖﾇ"
!     IDS_EXPORTED            "ﾒﾑｵｼｳ"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "ｵｱﾎﾄｼｷﾎﾔﾋﾐﾐﾊｱ｣ｬﾎﾞｷｨｳﾈ･ﾒﾑｵｼｳｵﾄｷﾖﾇ｡｣ﾄｱﾘﾐﾔﾚｳﾈ･ｸﾃｷﾖﾇﾇｰﾍ｣ﾖｹﾎﾄｼｷﾎ｡｣"
!     IDS_CHECK_CONFIG_INFO   "ﾕﾔﾚｼｲ鰌ﾐﾐｧｵﾄﾅ葷ﾃﾐﾅﾏ｢..."
!     IDS_ERROR_CFG_HOST_CLOSE "ｹﾘｱﾕｷﾎﾆﾅ葷ﾃｿ簗ｧｰﾜ"
!     IDS_FAILED_OPEN_CELL    "ｴｿｪｵ･ﾔｪﾊｧｰﾜ｡｣"
!     IDS_FAILED_OPEN_NULL_CELL "ｴｿｪｿﾕｵ･ﾔｪｾ莖ﾊｧｰﾜ"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ﾈ郢ｲｻｴ贇ﾚｸｾ｣ｬﾄﾊﾇｷﾏ｣ﾍｴｴｽｨｸｾ?"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ﾈ郢ﾃｻﾓﾐｸｴﾖﾆｸｾ｣ｬﾄﾊﾇｷﾏ｣ﾍｸｴﾖﾆｸｾ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS ｷﾎﾆ"
!     IDS_CANT_INIT_ADMIN_LIBS "ﾎﾞｷｨﾖｴﾐﾐｸﾃﾓｦﾓﾃｳﾌﾐ｣ｺｿ箋ﾊｼｻｯﾊｧｰﾜ｡｣"
!     IDS_CANT_OPEN_LOG_FILE  "ﾎﾞｷｨｴｿｪﾈﾕﾖｾﾎﾄｼ｡｣"
!     IDS_NEED_CLIENT_INFO    "AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐﾎﾞｷｨﾔﾋﾐﾐ｣ｬﾒﾎｪｸﾃｼﾆﾋ羹ﾉﾏﾃｻﾓﾐﾅ葷ﾃ AFS ｿﾍｻｧｻ｡｣ﾕ籔ﾖﾇ鯀ﾏﾂｿﾉﾊｹﾓﾃ AFS ﾅ葷ﾃﾏｵｼ｡｣ﾊﾇｷﾔﾋﾐﾐ AFS ﾅ葷ﾃﾏｵｼ?"
!     IDS_NEED_SERVER_INFO    "ﾃｻﾓﾐｽｫｼﾆﾋ羹ﾅ葷ﾃｳﾉ AFS ｷﾎﾆ｡｣AFS ﾅ葷ﾃﾏｵｼﾓﾃﾓﾚｳﾊｼﾅ葷ﾃ AFS ｷﾎﾆ｡｣ﾈｻｺｿﾉﾒﾔﾊｹﾓﾃ AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐ｡｣ﾊﾇｷﾔﾋﾐﾐ AFS ﾅ葷ﾃﾏｵｼﾒﾔｳﾊｼﾅ葷ﾃｸﾃｼﾆﾋ羹?"
!     IDS_ADVANCED_OPEN       "<< ｸﾟｼｶ(&A)"
!     IDS_ADVANCED_CLOSED     "ｸﾟｼｶ(&A) >>"
!     IDS_BOS_OPEN_FAILED     "ﾎﾞｷｨﾁｬｽﾓｵｽｷﾎﾆ(ｴｿｪ bos ﾊｧｰﾜ)｡｣"
!     IDS_SALVAGE_ERROR       "ﾍｾﾈｲﾙﾗﾊｧｰﾜ｡｣"
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "ﾖｸｶｨｵﾄﾍｾﾈｽｳﾌﾊﾎﾞﾐｧ｡｣ﾍｾﾈｽｳﾌﾊｱﾘﾐﾔﾚ 1 ｵｽ 32 ﾖｮｼ茖｣"
!     IDS_WRONG_CELL          "ﾔﾚﾇｰﾃ豐ｽﾖ靹ﾐﾄﾖｸｶｨﾁﾋﾓﾃﾓﾚｼﾋﾅ葷ﾃﾐﾅﾏ｢ｵﾄｷﾎﾆ｡｣ｸﾃﾖｸｶｨｵﾄｷﾎﾆｲｻﾊﾓﾚﾄﾏ｣ﾍｼﾓﾈｵﾄｵ･ﾔｪ｡｣"
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "ﾎﾞｷｨｸﾐﾂｵ･ﾔｪﾖﾐﾄｳﾐｩｷﾎﾆﾉﾏｵﾄ CellServDB ﾎﾄｼ｡｣ﾈ醪靨ｻﾕﾅﾁﾐｱ(ｸﾃﾁﾐｱﾏﾔﾊｾｷﾎﾆｵﾄｸﾐﾂﾇ鯀)｣ｬﾇｲ鯀ｴｴ豢｢ﾔﾚﾎﾄｼﾖﾐｵﾄﾅ葷ﾃﾈﾕﾖｾ｡｣"
!     IDS_GET_CREDENTIALS_STEP "ﾕﾔﾚｻｵﾃｹﾜﾀﾁﾅﾆ"
!     IDS_MUST_ENTER_SCS_NAME "ｱﾘﾐﾔﾚﾅ葷ﾃﾇｰﾊ菠ﾏｵﾍｳｿﾘﾖﾆﾆﾃ｡｣"
!     IDS_NOT_SAME_CELL       "AFS ｿﾍｻｧｻﾅ葷ﾃｵｽﾁﾋﾓ AFS ｷﾎﾆｲｻﾍｬｵﾄｵ･ﾔｪﾖﾐ｡｣ﾅ葷ﾃ AFS ｷﾎﾆﾇｰ｣ｬﾄﾊﾗﾏﾈｱﾘﾐｽｫ AFS ｿﾍｻｧｻﾖﾘﾐﾂﾅ葷ﾃｵｽｷﾎﾆｵﾄｵ･ﾔｪﾖﾐ｡｣"
!     IDS_LAST_DB_SERVER      "ｸﾃｻﾆﾕﾔﾚﾔﾋﾐﾐｵ･ﾔｪﾖﾐﾗｺｵﾄﾊｾﾝｿ箙ﾎﾆ｡｣ﾈ郢ﾄｼﾌﾐｲ｢ﾈ｡ﾏｸﾃｻﾆﾉﾏｵﾄﾊｾﾝｿ箙ﾎﾅ葷ﾃ｣ｬｵ･ﾔｪｽｫｲｻﾔﾙｴ贇ﾚ｣ｬｲ｢ｽｫﾈ｡ﾏﾕﾔﾋﾐﾐﾔﾚｸﾃｻﾆﾉﾏｵﾄﾋﾓﾐﾆ萢 AFS ｷﾎｵﾄﾅ葷ﾃ｡｣ｻｹﾒｪｼﾌﾐﾂ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "AFS ﾎｯﾍﾐﾈﾋｿﾚﾁﾎﾞﾐｧ｡｣"
!     IDS_ERROR_CLIENT_VERSION 
!                             "ｸﾃｼﾆﾋ羹ﾉﾏｵﾄ AFS ｿﾍｻｧｻｰ豎ｾﾓ AFS ｷﾎﾆｰ豎ｾｲｻｼ貶ﾝ｡｣AFS ｷﾎﾆﾖﾁﾉﾙﾐ靨ｪ AFS ｿﾍｻｧｻｰ豎ｾ 3.5｡｣"
!     IDS_CANT_MAP_ROOT_AFS   "ﾎｪﾁﾋﾔﾚｸｾﾉﾏﾉ靹ﾃ ACL｣ｬﾅﾌｷｱﾘﾐﾓｳﾉ莊ｽ AFS ｡｣ｵｱﾇｰﾃｻﾓﾐｿﾉﾓﾃｵﾄﾅﾌｷ｡｣ﾇﾊﾍｷﾅﾒｻｸﾅﾌｷｲ｢ｰｴﾈｷｶｨ｡｣"
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "ｷﾖﾇﾃ"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "ｾﾃ"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE "ﾍｾﾈｽｳﾌｺﾅ"
!     IDS_PATH_NAME_VALIDATION_TYPE "ﾂｷｾｶﾃ"
!     IDS_FILE_NAME_VALIDATION_TYPE "ﾎﾄｼﾃ"
!     IDS_GENERIC_VALIDATION_TYPE "ﾖｵ"
! END
! 
! #endif    // Chinese (P.R.C.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 7,1140 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐｺﾍﾏｵｼ"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x804
  #define AFS_VERINFO_CHARSET 936
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // Chinese (P.R.C.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
! #ifdef _WIN32
! LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 320, 246
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "AFS ｷﾎﾆｿﾋﾙﾆｶｯﾏｵｼ"
! FONT 9, "ﾋﾎﾌ", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "ﾈ｡ﾏ(&L)",IDCANCEL,101,225,50,14
!     PUSHBUTTON      "< ﾉﾏﾒｻｲｽ(&B)",IDBACK,155,225,50,14
!     DEFPUSHBUTTON   "ﾏﾂﾒｻｲｽ(&N) >",IDNEXT,209,225,50,14
!     PUSHBUTTON      "ｰﾖ(&H)",9,263,225,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,214,305,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,103,7,210,200
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ", 0, 0, 0x1
! BEGIN
!     CONTROL         "ﾊﾇ｣ｬｴｴｽｨｷﾖﾇ(&Y)",IDC_CREATE_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,116,
!                     186,41,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,101,175,20,12,ES_AUTOHSCROLL
!     CONTROL         "ｷ｣ｬｲｻﾒｪｴｴｽｨｷﾖﾇ(&O)",IDC_DONT_CREATE_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON,0,191,102,8
!     LTEXT           "ｸﾃﾎﾄｼｷﾎﾆｽｫﾎﾄｼｺﾍｳﾌﾐｴ豢｢ｺﾍｴｫﾋﾍﾖﾁ AFS ｿﾍｻｧｻ｡｣ｶﾔﾓﾚｴ豢｢ﾔﾚｸﾃﾏｵﾍｳﾉﾏｲ｢ﾒｪﾍｨｹ AFS ﾊｵﾏﾖｹｲﾏｵﾄﾊｾﾝ｣ｬﾖﾁﾉﾙﾓﾐﾒｻｸ NTFS ｾｱﾘﾐﾗﾎｪﾗｨﾓﾃｵﾄ AFS ｷﾖﾇ｡｣",
!                     -1,0,12,209,25
!     LTEXT           "ﾑ｡ﾔﾓﾃﾓﾚｴﾋｷﾖﾇｵﾄｾ(&S)｣ｺ",IDC_SELECT_DRIVE,12,106,163,9
!     LTEXT           "AFS ｷﾖﾇﾃ(&M)｣ｺ/vicep",IDC_NAME_LABEL,12,177,89,8
!     LTEXT           "ﾔﾚｸﾃﾎﾄｼｷﾎﾆﾉﾏｴｴｽｨﾒｻｸ AFS ｷﾖﾇ｡｣",IDC_TITLE,0,0,209,
!                     8
!     LTEXT           "ﾒｻｸ AFS ｷﾖﾇﾔﾚﾎﾀﾉﾏｵﾈｼﾛﾓﾚﾒｻｸ NTFS ｾ｣ｬｵｫﾊﾇﾋﾒｲｰｺｬｹﾘﾓﾚｷﾖﾇﾖﾐﾐﾅﾏ｢ｵﾄｽ盪ｹｺﾍﾎｻﾖﾃｵﾄﾌﾘﾊ籌ｪﾊｾﾝ｡｣",
!                     -1,0,40,209,25
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍﾔﾚｸﾃﾎﾄｼｷﾎﾆﾉﾏｴｴｽｨﾒｻｸｷﾖﾇ?",
!                     IDC_ASK_CREATE_PARTITION,0,75,209,18
!     LTEXT           "ﾈ郢ｱﾘﾒｪｵﾄｻｰ｣ｬﾔﾚﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾏﾏ｢｡｣",IDC_PARTITION_MSG,0,
!                     159,210,41,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,210,92,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "ﾊﾇ｣ｬﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ(&Y)｡｣",
!                     IDC_SHOULD_CONFIG_FILE_SERVER,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,114,10
!     CONTROL         "ｷ｣ｬｲｻﾒｪﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ(&O)｡｣",
!                     IDC_DONT_CONFIG_FILE_SERVER,"Button",BS_AUTORADIOBUTTON,
!                     0,190,133,10
!     LTEXT           "AFS ﾎﾄｼｷﾎｽｫﾇﾇｵﾄﾎﾄｼｺﾍｳﾌﾐｴﾓｸﾃｷﾎﾆｴｫﾋﾍﾖﾁ AFS ｿﾍｻｧｻ｡｣ｸﾃｷﾎﾒｲｴｦﾀﾋﾓﾐｵﾄｾｹﾜﾀｲﾙﾗ｣ｬﾀﾈ邏ｴｽｨ｡｢ﾉｾｳ｡｢ﾒﾆｶｯｺﾍｸｴﾖﾆｾ｡｣",
!                     -1,0,38,210,34
!     LTEXT           "ｽｫｻﾆﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ｡｣",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ?",
!                     IDC_CREATE_FS_QUESTION,0,166,210,8
!     LTEXT           "ﾒｪｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ｣ｬﾄｱﾘﾐﾅ葷ﾃﾎﾄｼｷﾎ｡｣",-1,0,
!                     14,210,17
!     LTEXT           "ﾗ｢ﾒ筌ｺｸﾃｻﾆｵｱﾇｰﾃｻﾓﾐｿﾉﾓﾃｵﾄｴﾅﾅﾌﾇｶｯﾆｽｫﾎﾄｼｴ豢｢ﾔﾚ AFS ﾖﾐ｡｣ｾ｡ｹﾜﾄｿﾉﾒﾔｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ｣ｬｵｫﾄｽｫﾎﾞｷｨﾔﾚｸﾃｻﾆﾉﾏｴ豢｢ AFS ﾊｾﾝ｡｣",
!                     IDC_NO_DRIVES_NOTE,0,77,210,32,NOT WS_VISIBLE
!     LTEXT           "ﾒｪｴｴｽｨｴﾅﾅﾌﾇｶｯﾆ｣ｬﾇﾊｹﾓﾃ Windows NT ｴﾅﾅﾌｹﾜﾀﾆ｡｣",
!                     IDC_DISK_ADMIN_NOTE,0,112,210,16,NOT WS_VISIBLE
!     LTEXT           "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ｡｣",IDC_MSG,0,166,209,34,NOT 
!                     WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     LTEXT           "ｻｶﾓｭﾊｹﾓﾃ AFS ｷﾎﾆｿﾋﾙﾆｶｯﾏｵｼ｡｣ｸﾃﾏｵｼｽｫｰﾖﾄﾔﾚ Windows NT ﾏｵﾍｳﾉﾏｿﾋﾙｵﾘﾅ葷ﾃ AFS ｷﾎﾆ｡｣",
!                     IDC_TITLE,0,0,209,26
!     LTEXT           "ｰｴ｡ｰﾏﾂﾒｻｲｽ｡ｱｿｪﾊｼﾅ葷ﾃ AFS ｷﾎﾆ｡｣",IDC_STATIC,0,166,209,
!                     8
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "ﾊﾇ｣ｬｸｴﾖﾆｸｾ(&Y)｡｣",IDC_REPLICATE,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,115,10
!     CONTROL         "ｷ｣ｬｲｻﾒｪｸｴﾖﾆｸｾ(&O)｡｣",IDC_DONT_REPLICATE,"Button",
!                     BS_AUTORADIOBUTTON,0,190,134,10
!     LTEXT           "ｸｴﾖﾆﾊﾇﾔﾚｶ犧ｷﾖﾇｴｴｽｨｾｵﾄﾖｻｶﾁｸｱｱｾｵﾄｹｳﾌ｣ｬﾍｨｳ｣ﾊﾇﾔﾚﾆ萢ﾎﾄｼｷﾎﾆﾉﾏ｡｣ｸｴﾖﾆﾔｼﾓﾁﾋｾﾔﾚﾍﾂ醋ﾂｼﾖﾐｵﾄｿﾉﾓﾃﾐﾔ｡｣",
!                     IDC_STATIC,0,36,209,25
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍｸｴﾖﾆｸｾ?",IDC_REPLICATE_QUESTION,0,166,209,8
!     LTEXT           "ｸｴﾖﾆﾒｲｿﾉﾒﾔｷﾀﾖｹﾈﾎｺﾎｷﾎﾆｵﾄｾｭｳ｣ｴ貶｡ｵﾄｾﾒﾇﾇｹｶ犖ｳｬｸｺｺﾉ｡｣",
!                     IDC_STATIC,0,90,209,25
!     LTEXT           "ｸｴﾖﾆｵ･ﾔｪｸｾ｡｣",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾈ郢ﾄｼﾆｻｮｸｴﾖﾆｸﾃ AFS ｵ･ﾔｪﾖﾐｵﾄﾆ萢ｾ｣ｬﾊﾗﾏﾈｱﾘﾐｸｴﾖﾆｸｾ｡｣",
!                     IDC_STATIC,0,15,209,16
!     LTEXT           "ﾓﾉﾓﾚﾌ盪ｩｾｵﾄｷﾎﾆﾖｮﾒｻｲｻｿﾉﾓﾃ｣ｬﾋﾒﾔｷﾎﾆﾍ｣ｻ｣ｬｵｫｴﾓﾆ萢ｷﾎﾆﾈﾔｿﾉｴ貶｡ｸﾃｾ｡｣",
!                     IDC_STATIC,0,63,209,22
!     LTEXT           "ﾈ郢ｱﾘﾒｪｵﾄｻｰ｣ｬﾔﾚﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾏﾏ｢｡｣",
!                     IDC_CANT_REPLICATE_MSG,0,166,209,34,NOT WS_VISIBLE | NOT 
!                     WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "ﾊﾇ｣ｬｴｴｽｨｸｾ(&Y)｡｣",IDC_CREATE_ROOT_VOLUMES,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,179,108,10
!     CONTROL         "ｷ｣ｬｲｻﾒｪｴｴｽｨｸｾ(&O)｡｣",IDC_DONT_CREATE_ROOT_VOLUMES,
!                     "Button",BS_AUTORADIOBUTTON,0,190,124,10
!     LTEXT           "ﾔﾚ AFS ﾖﾐ｣ｬｾﾊﾇﾏ犹ﾘﾎﾄｼｵﾄｼｯｺﾏ｣ｬﾋﾃﾇﾗ鰒ｯｳﾉｵ･ｸ｡｢ﾒﾗﾓﾚｹﾜﾀｵﾄｵ･ﾔｪﾒﾔｼｻｯﾏｵﾍｳｹﾜﾀ｡｣",
!                     IDC_STATIC,0,15,209,17
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍｴｴｽｨｸｾ?",IDC_ROOT_AFS_QUESTION,0,166,209,8
!     LTEXT           "ｴｴｽｨｵ･ﾔｪｵﾄｸｾ｡｣",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾒｻｵｩｴｴｽｨ｣ｬｸｾｽｫﾗﾔｶｯｳﾉﾎｪ AFS ﾎﾄｼｿﾕｼ葷ﾐｿﾉｴ貶｡ｵﾄｾ｡｣",
!                     IDC_STATIC,0,67,209,17
!     LTEXT           "ﾈ郢ｱﾘﾒｪｵﾄｻｰ｣ｬﾔﾚﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾏﾏ｢｡｣",IDC_ROOT_AFS_MSG,0,
!                     166,209,33,NOT WS_VISIBLE
!     LTEXT           "root.afs ｾﾊﾇ AFS ﾎﾄｼｿﾕｼ莊ﾄｸｾ｡｣root.cell ｾﾊﾇｸﾃｵ･ﾔｪｵﾄ AFS ﾎﾄｼｿﾕｼ葫ﾓﾊｵﾄｸｾ｣ｬｲ｢ﾍｨｹﾒｻｸﾀｴﾗﾔﾓﾚ root.afs ｵﾄｰｲﾗｰｵ羔貶｡ﾋ｡｣",
!                     IDC_STATIC,0,35,209,25
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 84
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "AFS ｷﾎﾆﾅ葷ﾃ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,38,148,14
!     LTEXT           "ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄｲﾙﾗﾎﾄｱｾ｡｣",IDC_OPERATION,35,20,145,10
!     ICON            "",IDC_LOGO,7,7,20,20
!     PUSHBUTTON      "ﾈ｡ﾏ",IDCANCEL,73,63,50,14
!     LTEXT           "ﾈｷｶｨｵｱﾇｰﾅ葷ﾃ｣ｺ",IDC_OPERATION2,35,7,156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "ﾊﾇ｣ｬﾅ葷ﾃｳﾉｱｸｷﾝｷﾎﾆ(&Y)｡｣",IDC_CONFIG_BACKUP_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,179,128,10
!     CONTROL         "ｷ｣ｬｲｻﾒｪﾅ葷ﾃｳﾉｱｸｷﾝｷﾎﾆ(&O)｡｣",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,0,190,147,10
!     LTEXT           "ｱｸｷﾝｷﾎﾆﾖｻﾄﾜﾔﾋﾐﾐﾔﾚﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆｵﾄｻﾆﾉﾏ｡｣ﾁﾍ筌ｬﾈ郢ｱｸｷﾝｷﾎﾆﾔﾋﾐﾐﾔﾚｵ･ﾔｪﾖﾐｵﾄﾄｳｸﾊｾﾝｿ箙ﾎﾆﾉﾏ｣ｬﾔﾋｱﾘﾐﾔﾋﾐﾐﾔﾚｵ･ﾔｪﾖﾐｵﾄﾋﾓﾐﾊｾﾝｿ箙ﾎﾆﾉﾏ｡｣",
!                     -1,0,38,199,32
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍｽｫｸﾃｻﾆﾅ葷ﾃｳﾉｱｸｷﾝｷﾎﾆ?",
!                     IDC_BACKUP_SERVER_QUESTION,0,166,209,10
!     LTEXT           "ｽｫｸﾃｻﾆﾅ葷ﾃｳﾉｱｸｷﾝｷﾎﾆ｡｣",IDC_TITLE,0,0,207,8
!     LTEXT           "ｱｸｷﾝｷﾎﾆﾊﾇﾊｾﾝｿ箙ﾎｵﾄﾒｻｸｿﾉﾑ｡ﾏ｡｣",-1,0,14,209,16
!     LTEXT           "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ｡｣",IDC_CANT_BACKUP_MSG,0,166,
!                     210,33,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "ﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ(&S)｡｣",IDC_SYS_CONTROL_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,151,141,10
!     CONTROL         "ﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ(&C)｡｣",IDC_SYS_CONTROL_CLIENT,
!                     "Button",BS_AUTORADIOBUTTON,0,164,131,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,90,174,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "ｲｻﾒｪﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻｻｷﾎﾆ(&O)｡｣",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON,0,190,183,
!                     9
!     LTEXT           "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾆﾏﾆ萢ﾗﾎｪﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻﾔﾋﾐﾐｵﾄ AFS ｷﾎﾆﾌ盪ｩﾁﾋｹｫｹｲﾅ葷ﾃﾎﾄｼ｡｣AFS ｵ･ﾔｪｱﾘﾐｽﾔﾋﾐﾐｵ･ｸﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣",
!                     -1,0,14,209,25
!     LTEXT           "ﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｷﾎﾆｻｿﾍｻｧｻ｡｣",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｷﾎﾆｻｿﾍｻｧｻ?",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,0,131,207,17
!     LTEXT           "ﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻｴﾓｵ･ﾔｪｵﾄﾏｵﾍｳｿﾘﾖﾆｷﾎﾆｽﾓﾊﾕﾈﾎｺﾎｶﾔﾆ AFS ﾅ葷ﾃﾎﾄｼｵﾄｿﾉﾓﾃｸﾐﾂ｡｣",
!                     IDC_SYS_CONTROL_CLIENT_DESC,0,43,209,18
!     LTEXT           "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ(&Y)｣ｺ",IDC_SYS_CONTROL_MACHINE_LABEL,11,
!                     176,76,8,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,0,166,210,34,NOT WS_VISIBLE
!     LTEXT           "ｾｯｸ譽ｺｲｻﾊｹﾓﾃﾃﾀｹｷﾖｲｼｵﾄ AFS ﾕｾｵ羇ｻﾄﾜﾍｨｹﾏｵﾍｳｿﾘﾖﾆｷﾎﾆｷﾖｲｼﾅ葷ﾃﾎﾄｼ｡｣ﾈ郢ﾕ簷ﾗｵﾄｻｰ｣ｬｽｫｵｼﾖﾂﾃｸﾐﾏｵﾍｳﾐﾅﾏ｢ﾎｴｾｭｼﾓﾃﾜｶｴｫﾊ茖｣",
!                     -1,9,73,183,34
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     LTEXT           "ﾕ簗ﾇﾔﾚｸﾃﾏｵﾍｳﾖﾐﾅ葷ﾃ AFS ｷﾎﾆﾋﾐ襍ﾄﾋﾓﾐﾐﾅﾏ｢｡｣",
!                     IDC_ALL_NEEDED_MSG,1,14,209,17
!     LTEXT           "ｽｫｸﾃｻﾆﾅ葷ﾃｵｽｵ･ﾔｪﾄﾚ <ﾔﾋﾐﾐﾊｱﾉ靹ﾃ>",IDC_TITLE,1,0,208,8
!     LTEXT           "ｽｫﾖｴﾐﾐﾏﾂﾁﾐﾅ葷ﾃｲｽﾖ陬ｺ",IDC_FOLLOWING_STEPS_MSG,1,36,187,
!                     8
!     LTEXT           "ｲｽﾖ 1 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP1,22,49,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｲｽﾖ 3 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP3,22,73,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｲｽﾖ 2 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP2,22,61,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｲｽﾖ 4 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP4,22,85,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｲｽﾖ 5 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP5,22,97,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｲｽﾖ 6 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP6,22,109,179,8,NOT 
!                     WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,178,200,11
!     LTEXT           "ｲｽﾖ 8 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP8,22,133,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｲｽﾖ 7 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾎﾄｱｾ",IDC_STEP7,22,121,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ﾈ郢ｱﾘﾒｪｵﾄｻｰ｣ｬﾔﾚﾔﾋﾐﾐﾊｱﾉ靹ﾃｵﾄﾏﾏ｢｡｣",IDC_CANT_CONFIG_MSG,
!                     1,13,209,17,NOT WS_VISIBLE
!     LTEXT           "ﾍｳﾉｰﾙｷﾖｱﾈ｣ｺ",IDC_PERCENT_COMPLETE_LABEL,1,191,61,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｵｱﾇｰｲﾙﾗ｣ｺ",IDC_CURRENT_STEP_LABEL,1,157,108,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｵｱﾇｰｲｽﾖ霤靆 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃ",IDC_CURRENT_STEP,1,167,208,8,
!                     NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,63,191,49,8,NOT WS_VISIBLE
!     LTEXT           "ﾒｪｿｪﾊｼﾅ葷ﾃｸﾃｼﾆﾋ羹｣ｬﾇｰｴ｡ｰﾅ葷ﾃ｡ｱｰｴﾅ･｡｣ﾒｪｸｸﾄﾒﾑﾖｴﾐﾐｵﾄﾅ葷ﾃｲｽﾖ陬ｬﾇｰｴ｡ｰﾉﾏﾒｻｲｽ｡ｱｰｴﾅ･｡｣",
!                     IDC_STATUS_MSG,1,159,208,41
!     LTEXT           "",IDC_STEP1_GRAPHIC,10,49,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,10,61,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,10,73,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,10,85,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,10,97,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,10,109,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,10,121,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,10,133,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,64,55,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,64,71,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,64,87,138,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,97,155,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,134,154,11,14
!     LTEXT           "ｹﾜﾀﾐﾅﾏ｢",IDC_TITLE,0,0,202,8
!     LTEXT           "ﾃｳﾆ(&M)｣ｺ",IDC_ADMIN_NAME_LABEL,7,57,52,8
!     LTEXT           "ｿﾚﾁ(&P)｣ｺ",IDC_ADMIN_PW_LABEL,7,73,52,8
!     GROUPBOX        "ﾕﾊｻｧﾃｺﾍｿﾚﾁ",IDC_ADMIN_INFO_FRAME,0,41,210,65
!     LTEXT           "ﾑ鰒､ｿﾚﾁ(&V)｣ｺ",IDC_VERIFY_ADMIN_PW_LABEL,7,90,52,8
!     LTEXT           "ﾒﾔﾏﾂﾐﾅﾏ｢ﾊﾇﾎｪｸﾃﾐﾂｵ･ﾔｪｴｴｽｨｹﾜﾀﾕﾊｻｧﾊｱｱﾘﾐｵﾄ｡｣",IDC_STATIC,
!                     0,15,209,17
!     CONTROL         "ﾊｹﾓﾃｴﾋ AFS UID(&S)｣ｺ",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,157,87,10
!     CONTROL         "ﾊｹﾓﾃﾏﾂﾒｻｸｿﾉﾓﾃｵﾄ AFS UID(&U)",IDC_USE_NEXT_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,144,126,10
!     GROUPBOX        "AFS UID",IDC_STATIC,0,118,209,57
!     LTEXT           "ﾊ菠 AFS ｹﾜﾀﾕﾊｻｧｵﾄﾓﾃｻｧｱﾊｶｷ｣ｺ",IDC_STATIC,6,130,196,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     CONTROL         "ﾊﾇ｣ｬﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ(&Y)｡｣",IDC_CONFIG_DB_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,0,142,134,10
!     CONTROL         "ｷ｣ｬｲｻﾒｪﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ(&O)｡｣",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,0,
!                     190,153,10
!     LTEXT           "ﾊｾﾝｿ箙ﾎﾎｬｻ､ AFS ｵ･ﾔｪｱﾘﾐｵﾄﾒｻﾌﾗｸｴﾖﾆﾊｾﾝｿ筍｣ｸﾃｷﾎﾎｬｻ､ｵ･ﾔｪｵﾄﾋﾓﾐﾕﾊｻｧ｡｢ｾﾎｻﾖﾃｺﾍｱｸｷﾝﾐﾅﾏ｢(ｿﾉﾑ｡)｡｣",
!                     -1,0,38,209,54
!     LTEXT           "ﾄﾊﾇｷﾏ｣ﾍｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ?",
!                     IDC_DB_SERVER_QUESTION,0,129,209,10
!     LTEXT           "ｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ｡｣",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾒｪｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ｣ｬﾄｱﾘﾐﾅ葷ﾃﾊｾﾝｿ箙ﾎ｡｣",
!                     -1,0,14,209,16
!     LTEXT           "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ｡｣",IDC_MSG,0,167,210,33,NOT 
!                     WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,86,174,119,12,ES_AUTOHSCROLL
!     LTEXT           "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ(&Y)｣ｺ",IDC_SYS_CONTROL_MACHINE_LABEL,12,
!                     176,73,8
!     LTEXT           "ﾈ郢ﾄｵﾄｵ･ﾔｪﾖﾐﾓﾐﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｣ｬﾇﾔﾚﾏﾂﾃ賁菠ﾋｵﾄﾖｻﾃ｡｣ｽｫﾍｨｹｸﾃｷﾎﾆｸﾐﾂ AFS ﾅ葷ﾃﾎﾄｼ｡｣",
!                     IDC_SCM_PROMPT,12,154,195,17
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ", 0, 0, 0x1
! BEGIN
!     CONTROL         "ｽｫｸﾃﾖｻﾉ靹ﾃｳﾉﾏﾖﾓﾐ AFS ｵ･ﾔｪﾖﾐｵﾄｷﾎﾆ(&M)",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON,0,37,
!                     180,10
!     CONTROL         "ﾕ篆ｫﾊﾇﾐﾂｵﾄ AFS ｵ･ﾔｪﾖﾐｵﾄｵﾚﾒｻｸｷﾎﾆ(&T)",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,0,49,180,10
!     EDITTEXT        IDC_CELL_NAME,64,91,139,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,64,166,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,64,180,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "ｵ･ﾔｪｺﾍｷﾎﾆﾐﾅﾏ｢",IDC_TITLE,0,0,203,8
!     LTEXT           "ｵ･ﾔｪﾃ(&C)｣ｺ",IDC_CELL_NAME_LABEL,7,93,49,8
!     LTEXT           "ｿﾚﾁ(&P)｣ｺ",IDC_SERVER_PW_LABEL,7,167,52,8,WS_DISABLED
!     LTEXT           "ﾊ菠 AFS ｵ･ﾔｪﾃ｡｣",IDC_CELL_NAME_PROMPT,8,78,195,11
!     LTEXT           "ﾊ菠 AFS ﾎｯﾍﾐﾈﾋｵﾄｿﾚﾁ｡｣ﾋﾓﾐ AFS ｷﾎﾆｶｼﾗﾎｪｸﾃﾎｯﾍﾐﾈﾋｻｵﾃﾁﾅﾆ｡｣ ",
!                     IDC_SERVER_PW_PROMPT,7,130,196,19,WS_DISABLED
!     GROUPBOX        "ｵ･ﾔｪﾃ",IDC_CELL_NAME_FRAME,0,67,210,43
!     GROUPBOX        "ｷﾎﾆｿﾚﾁ",IDC_SERVER_PW_FRAME,0,119,210,81,
!                     WS_DISABLED
!     LTEXT           "ﾑ鰒､ｿﾚﾁ(&V)｣ｺ",IDC_VERIFY_PW_LABEL,7,180,52,8,
!                     WS_DISABLED
!     LTEXT           "AFS ｵ･ﾔｪﾊﾇﾎｪﾎﾄｼｴ貶｡ﾌ盪ｩﾍｳﾒｻﾃｳﾆｿﾕｼ莊ﾄｷﾎﾆｵﾄｼｯｺﾏ｡｣",
!                     IDC_CELL_NAME_PROMPT2,1,14,202,17
!     LTEXT           "ﾃｳﾆ｣ｺ",IDC_PRINCIPAL_LABEL,7,152,52,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,64,150,139,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,66,43,136,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,66,59,136,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,65,132,137,12,ES_AUTOHSCROLL
!     LTEXT           "ｹﾜﾀﾐﾅﾏ｢",IDC_TITLE,0,0,209,8
!     LTEXT           "ﾔﾚﾏﾂﾃ賁菠ｹﾜﾀﾕﾊｻｧﾐﾅﾏ｢｣ｺ",IDC_ADMIN_INFO_PROMPT,7,30,
!                     196,10
!     LTEXT           "ﾃｳﾆ(&M)｣ｺ",IDC_ADMIN_NAME_LABEL,7,46,40,8
!     LTEXT           "ｿﾚﾁ(&P)｣ｺ",IDC_ADMIN_PW_LABEL,7,62,40,8
!     GROUPBOX        "ﾕﾊｻｧﾃｺﾍｿﾚﾁ",IDC_ADMIN_INFO_FRAME,0,17,210,62
!     GROUPBOX        "ﾏﾖﾓﾐ AFS ｷﾎﾆ",IDC_HOSTNAME_FRAME,1,92,209,60
!     LTEXT           "AFS ｷﾎﾆ｣ｺ",IDC_HOSTNAME_LABEL,7,134,52,8
!     LTEXT           "ﾊ菠ﾄﾏ｣ﾍｼﾓﾈｵﾄｵ･ﾔｪﾖﾐﾆ萢 AFS ｷﾎﾆｵﾄﾖｻﾃ｡｣ｿﾉｴﾓｸﾃｷﾎﾆｼﾋ AFS ﾅ葷ﾃﾐﾅﾏ｢｡｣",
!                     IDC_HOSTNAME_PROMPT,7,105,202,25
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 265
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "ｷﾎ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,20,281,40
!     GROUPBOX        "",IDC_STATIC,7,66,281,43
!     GROUPBOX        "",IDC_STATIC,7,115,281,40
!     GROUPBOX        "",IDC_STATIC,7,161,281,40
!     CONTROL         "ﾎﾄｼｷﾎ",IDC_FS_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,19,60,10
!     CONTROL         "ﾊｾﾝｿ箙ﾎ",IDC_DB_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,65,82,10
!     PUSHBUTTON      "ﾏﾏｸﾐﾅﾏ｢...",IDC_DB_DETAILS,215,81,50,14,NOT WS_VISIBLE
!     CONTROL         "ｱｸｷﾝｷﾎﾆ",IDC_BK_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,114,71,10
!     CONTROL         "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ",IDC_SCS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,160,98,10
!     EDITTEXT        IDC_SC_MACHINE,107,230,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "ﾑ｡ﾔﾒｪﾔﾋﾐﾐﾔﾚｸﾃ AFS ｷﾎﾆﾉﾏｵﾄｷﾎ｣ｺ",IDC_STATIC,7,7,144,
!                     8
!     LTEXT           "ｵｱﾇｰﾎﾄｼｷﾎﾕﾔﾚﾔﾋﾐﾐ｡｣",IDC_FS_STATUS_MSG,14,32,261,8
!     LTEXT           "ｵｱﾇｰﾒﾑｲｿｷﾖｰｲﾗｰﾁﾋﾊｾﾝｿ箙ﾎ｡｣",IDC_DB_STATUS_MSG,14,78,
!                     195,8
!     LTEXT           "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ(&Y)｣ｺ",IDC_SC_MACHINE_LABEL,21,232,79,8,
!                     WS_DISABLED
!     LTEXT           "ﾒｪﾍ｣ﾖｹﾎﾄｼｷﾎ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ｴﾋｸｴﾑ｡ｿ｡｣",IDC_FS_ACTION_MSG,
!                     14,44,262,8
!     LTEXT           "ﾈ醪雕ｶ獎ﾅﾏ｢｣ｬﾇｵ･ｻ｡ｰﾏﾏｸﾐﾅﾏ｢｡ｱｰｴﾅ･｡｣",
!                     IDC_DB_ACTION_MSG,14,92,186,8
!     LTEXT           "ｵｱﾇｰｱｸｷﾝｷﾎﾆﾕﾔﾚﾔﾋﾐﾐ｡｣",IDC_BK_STATUS_MSG,14,127,259,
!                     8
!     LTEXT           "ﾒｪﾍ｣ﾖｹｱｸｷﾝｷﾎﾆ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ｴﾋｸｴﾑ｡ｿ｡｣",
!                     IDC_BK_ACTION_MSG,14,139,262,8
!     LTEXT           "ﾒｪﾆﾓﾃｸﾃｷﾎﾆ｣ｬﾄｱﾘﾐﾔﾋﾐﾐﾎﾄｼｷﾎｻﾊｾﾝｿ箙ﾎ｡｣",
!                     IDC_SCS_ACTION_MSG,14,185,268,9
!     LTEXT           "ｵｱﾇｰﾏｵﾍｳｿﾘﾖﾆｷﾎﾎｴﾔﾋﾐﾐ｡｣",IDC_SCS_STATUS_MSG,14,172,263,
!                     9
!     GROUPBOX        "",IDC_STATIC,7,207,281,51
!     CONTROL         "ﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ",IDC_SCC,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,206,95,10
!     LTEXT           "ﾒｪﾆﾓﾃｸﾃｷﾎﾆ｣ｬﾄｱﾘﾐﾔﾋﾐﾐﾎﾄｼｷﾎｻﾊｾﾝｿ箙ﾎ｡｣",
!                     IDC_SCC_ACTION_MSG,14,245,268,9
!     LTEXT           "ｵｱﾇｰﾏｵﾍｳｿﾘﾖﾆｷﾎﾎｴﾔﾋﾐﾐ｡｣",IDC_SCC_STATUS_MSG,14,219,263,
!                     9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "ｷﾖﾇ"
! FONT 9, "ﾋﾎﾌ", 0, 0, 0x1
! BEGIN
!     LTEXT           "ﾄｵﾄｼﾆﾋ羹ﾉﾏﾓﾐﾏﾂﾁﾐ AFS ｷﾖﾇ(&A)｣ｺ",IDC_STATIC,8,7,175,8
!     PUSHBUTTON      "ｴｴｽｨ(&C)...",IDC_CREATE_PARTITIONS,17,118,53,14
!     LTEXT           "ﾒｪﾍｾﾈｷﾖﾇｻｷﾖﾇﾉﾏｵﾄｾ｣ｬﾇﾑ｡ﾔﾁﾐｱﾖﾐｵﾄｷﾖﾇｲ｢ｵ･ｻﾉﾏﾃ豬ﾄｰｴﾅ･｡｣ﾒｪﾍｾﾈｷﾎﾆﾉﾏｵﾄﾋﾓﾐｷﾖﾇ｣ｬｵ･ｻﾉﾏﾃ豬ﾄｰｴﾅ･｡｣",
!                     IDC_SALVAGE_MSG,30,179,250,25
!     PUSHBUTTON      "ﾍｾﾈ(&S)...",IDC_SALVAGE,17,159,53,14
!     LTEXT           "ﾒｪﾉｾｳｷﾖﾇ｣ｬﾇﾑ｡ﾔﾁﾐｱﾖﾐｵﾄｷﾖﾇｲ｢ｵ･ｻﾉﾏﾃ豬ﾄｰｴﾅ･｡｣",
!                     IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
!     PUSHBUTTON      "ｳﾈ･(&M)",IDC_REMOVE,17,217,53,14,WS_DISABLED
!     GROUPBOX        "ｷﾖﾇ",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
!                     281,79,WS_EX_CLIENTEDGE
!     LTEXT           "ﾒｪﾔﾚｸﾃｷﾎﾆﾉﾏﾐﾂｽｨｷﾖﾇ｣ｬｵ･ｻﾉﾏﾃ豬ﾄｰｴﾅ･｡｣",
!                     IDC_CREATE_MSG,30,136,254,8
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 264, 177
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "ｴｴｽｨ AFS ｷﾖﾇ"
! FONT 9, "ﾋﾎﾌ", 0, 0, 0x1
! BEGIN
!     LTEXT           "ｴﾓﾏﾂﾃ戝ﾐｱﾖﾐﾑ｡ﾔﾒｪﾐﾂｽｨｷﾖﾇﾋﾔﾚｵﾄ NTFS ｾ｣ｺ",IDC_TITLE,7,
!                     5,250,8
!     LTEXT           "AFS ｷﾖﾇﾃ｣ｺ",IDC_NAME_STATIC,17,131,66,8
!     EDITTEXT        IDC_PARTITION_NAME,119,129,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ｴｴｽｨ(&C)",IDC_CREATE,96,158,50,14,WS_DISABLED
!     PUSHBUTTON      "ｹﾘｱﾕ(&O)",IDC_CLOSE,152,158,50,14
!     PUSHBUTTON      "ｰﾖ",9,207,158,50,14
!     GROUPBOX        "ｷﾖﾇｲﾎﾊ",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,250,
!                     95,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,24,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 225, 159
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS ｷﾎﾆﾅ葷ﾃ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,61,33,151,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,61,49,151,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,61,110,151,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ﾅ葷ﾃ(&C)",IDOK,108,138,50,14,WS_DISABLED
!     PUSHBUTTON      "ﾈ｡ﾏ",IDCANCEL,48,138,50,14
!     PUSHBUTTON      "ｰﾖ",9,168,138,50,14
!     LTEXT           "ﾔﾚﾏﾂﾃ賁菠ｹﾜﾀﾕﾊｻｧﾐﾅﾏ｢｣ｺ",IDC_ADMIN_INFO_PROMPT,14,20,
!                     196,10
!     LTEXT           "ﾃｳﾆ(&M)｣ｺ",IDC_ADMIN_NAME_LABEL,15,36,38,8
!     LTEXT           "ｿﾚﾁ(&P)｣ｺ",IDC_ADMIN_PW_LABEL,15,52,38,8
!     GROUPBOX        "ﾕﾊｻｧﾃｺﾍｿﾚﾁ",IDC_ADMIN_INFO_FRAME,7,7,211,62
!     GROUPBOX        "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ",IDC_HOSTNAME_FRAME,7,76,211,54
!     LTEXT           "ﾖｻﾃ(&H)｣ｺ",IDC_HOSTNAME_LABEL,15,112,44,8
!     LTEXT           "ﾈ郢ﾄｵﾄｵ･ﾔｪﾖﾐﾓﾐﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｣ｬﾇﾔﾚﾏﾂﾃ賁菠ﾋｵﾄﾖｻﾃ｡｣ｽｫﾍｨｹｸﾃｷﾎﾆｸﾐﾂ AFS ﾅ葷ﾃﾎﾄｼ｡｣",
!                     IDC_HOSTNAME_PROMPT,13,88,197,18
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 257, 87
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS ｷﾎﾆﾅ葷ﾃ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     PUSHBUTTON      "ﾈ｡ﾏ",IDCANCEL,103,66,50,14
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,37,200,11
!     LTEXT           "ﾍｳﾉｰﾙｷﾖｱﾈ｣ｺ",IDC_PERCENT_COMPLETE_LABEL,40,50,61,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｵｱﾇｰｲﾙﾗ｣ｺ",IDC_CURRENT_STEP_LABEL,40,15,108,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｵｱﾇｰｲｽﾖ霤靆 - ﾔﾋﾐﾐﾊｱﾉ靹ﾃ",IDC_CURRENT_STEP,40,26,210,8,
!                     NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,101,50,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,7,20,20
!     LTEXT           "ﾒｪｿｪﾊｼﾅ葷ﾃｸﾃｼﾆﾋ羹｣ｬﾇｰｴ｡ｰﾅ葷ﾃ｡ｱｰｴﾅ･｡｣ﾒｪｸｸﾄﾒﾑﾖｴﾐﾐｵﾄﾅ葷ﾃｲｽﾖ陬ｬﾇｰｴ｡ｰﾉﾏﾒｻｲｽ｡ｱｰｴﾅ･｡｣",
!                     IDC_STATUS_MSG,40,16,210,41
!     PUSHBUTTON      "ｲ鯀ｴﾈﾕﾖｾ(&V)",IDNEXT,158,66,50,14,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "CellServCB ｸﾐﾂｳｴ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     LISTBOX         IDC_LIST,7,26,173,127,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "ﾈｷｶｨ",IDOK,22,162,50,14
!     PUSHBUTTON      "ﾈ｡ﾏ",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "ｰﾖ",9,130,162,50,14
!     LTEXT           "ﾏﾂﾁﾐ AFS ｷﾎﾆﾉﾏｵﾄ CellServDB ﾎﾄｼﾎﾞｷｨﾗﾔｶｯｸﾐﾂ｣ｺ",
!                     IDC_STATIC,7,7,173,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 243, 188
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "ﾍｾﾈ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     DEFPUSHBUTTON   "ﾈｷｶｨ",IDOK,79,99,50,14
!     PUSHBUTTON      "ﾈ｡ﾏ",IDCANCEL,133,99,50,14
!     PUSHBUTTON      "ｰﾖ(&H)",9,187,99,50,14
!     CONTROL         "ﾍｾﾈｸﾃﾎﾄｼｷﾎﾆﾉﾏｵﾄﾋﾓﾐｷﾖﾇ(&S)",IDC_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,14,35,176,10
!     CONTROL         "ﾍｾﾈﾋﾑ｡ｷﾖﾇﾉﾏｵﾄﾋﾓﾐｾ(&P)",IDC_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON,14,48,177,10
!     CONTROL         "ﾍｾﾈﾋﾑ｡ｷﾖﾇﾉﾏｵﾄﾌﾘｶｨｾ(&V)",IDC_VOLUME,"Button",
!                     BS_AUTORADIOBUTTON,14,61,177,10
!     EDITTEXT        IDC_VOLUME_NAME,76,74,97,12,ES_AUTOHSCROLL | WS_DISABLED
!     PUSHBUTTON      "<< ｸﾟｼｶ(&A) ",IDC_ADVANCED,7,99,50,14
!     GROUPBOX        "",IDC_STATIC,7,25,229,67
!     LTEXT           "ｾﾃ(&N)｣ｺ",IDC_VOLUME_NAME_LABEL,27,75,47,8,
!                     WS_DISABLED
!     GROUPBOX        "ｸﾟｼｶﾍｾﾈﾑ｡ﾏ",IDC_ADVANCED_FRAME,7,119,229,62
!     LTEXT           "ﾁﾙﾊｱﾎﾄｼｵﾄﾂｷｾｶ(&T)｣ｺ",IDC_TEMP_DIR_LABEL,17,165,92,8
!     EDITTEXT        IDC_LOG_FILE,112,147,114,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,188,130,21,12,ES_AUTOHSCROLL
!     LTEXT           "ｽ盪ﾈﾕﾖｾｵﾄﾎﾄｼﾃ(&L)｣ｺ",IDC_LOG_FILE_LABEL,17,149,92,8
!     EDITTEXT        IDC_TEMP_DIR,112,163,114,12,ES_AUTOHSCROLL
!     CONTROL         "ｲ｢ﾐﾐﾍｾﾈｲﾙﾗ(&R)｣ｻｽｳﾌﾊ｣ｺ",IDC_NUM_PROCESSES_CHECKBOX,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,132,168,10
!     LTEXT           "ﾈ郢ﾄﾍｾﾈｷﾎﾆｻﾒｻｸﾍﾕｷﾖﾇ｣ｬﾔｷﾎﾆｽｫﾁﾙﾊｱﾍﾑｻ｡｣",
!                     IDC_STATIC,38,7,198,17
!     LTEXT           "ﾗ｢ﾒ筌ｺ",IDC_STATIC,7,7,28,8
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS ﾎｯﾍﾐﾈﾋｿﾚﾁ"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     EDITTEXT        IDC_PW,48,39,142,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ﾈｷｶｨ",IDOK,31,61,50,14
!     PUSHBUTTON      "ﾈ｡ﾏ",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "ｰﾖ",9,140,61,50,14
!     LTEXT           "AFS ﾎｯﾍﾐﾈﾋﾃﾜﾔｿｲｻﾄﾜｴﾓﾔ醺ﾚ 3.5 ｵﾄﾈﾏﾖ､ｷﾎﾆﾉﾏｼﾋ｡｣ﾇﾔﾚﾏﾂﾃ賁菠 AFS ﾎｯﾍﾐﾈﾋｿﾚﾁ｡｣",
!                     IDC_STATIC,7,7,183,26
!     LTEXT           "ｿﾚﾁ｣ｺ",IDC_STATIC,7,41,35,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "ﾍｾﾈｾ - ｽ盪"
! FONT 9, "ﾋﾎﾌ"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "ｹﾘｱﾕ(&C)",IDC_CLOSE,225,266,50,14,WS_DISABLED
!     PUSHBUTTON      "ｰﾖ",9,280,266,50,14
!     LTEXT           "<ﾔﾋﾐﾐﾊｱﾉ靹ﾃ>",IDC_LOG_TITLE,7,38,263,8
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "<ﾔﾋﾐﾐﾊｱﾉ靹ﾃ>",IDC_SALVAGE_STATUS,37,15,185,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 313
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 239
!         HORZGUIDE, 207
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 209
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 201
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 203
!         VERTGUIDE, 64
!         VERTGUIDE, 203
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 66
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 218
!         VERTGUIDE, 59
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 152
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 250
!         VERTGUIDE, 40
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 80
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 236
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 181
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐｺﾍﾏｵｼ""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "ﾏﾂﾒｻｲｽ(&N) >"
!     IDS_FINISH              "ﾍｳﾉ(&F)"
!     IDS_HELP_TITLE          "ｰｴﾏﾂｰﾖｰｴﾅ･"
!     IDS_HELP_DESC           "ｰﾖｴﾋﾊｱｲｻｿﾉﾓﾃ｡｣"
!     IDS_CANCEL_DESC         "ﾈ｡ﾏ AFS ｿﾋﾙﾆｶｯﾏｵｼ?"
!     IDS_PARTITION_ALREADY_CREATED "ｸﾃｻﾆﾉﾏﾒﾑｴ贇ﾚ AFS ｷﾖﾇ｡｣"
!     IDS_NOT_A_FS_SERVER     "ｸﾃｻﾆﾎｴﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ｡｣ｾﾖｻﾄﾜﾔﾚﾎﾄｼｷﾎﾆﾉﾏｴｴｽｨ｡｣"
!     IDS_ROOT_AFS_ALREADY_EXISTS "ｸｾﾒﾑｴ贇ﾚ｡｣"
!     IDS_NO_PARTITION_EXISTS "ｲｻｴ贇ﾚﾒｪｴｴｽｨｸｾｵﾄｷﾖﾇ｡｣ｴｴｽｨｸｾﾇｰ｣ｬｱﾘﾐｴ贇ﾚｷﾖﾇ｡｣"
!     IDS_ALREADY_REPLICATED  "ﾒﾑｸｴﾖﾆｸｾ｡｣"
!     IDS_ROOT_AFS_DOESNT_EXIST "ｲｻｴ贇ﾚｸｾ｡｣ｸｴﾖﾆｸｾﾇｰ｣ｬｱﾘﾐｴ贇ﾚｸﾃｸｾ｡｣"
!     IDS_ALREADY_CONFIGURED  "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉ AFS ｷﾎﾆ｡｣"
!     IDS_NOTHING_TO_CONFIGURE "ﾄﾃｻﾓﾐﾑ｡ﾔﾈﾎｺﾎｶﾔﾏｽﾐﾐﾅ葷ﾃ｡｣"
!     IDS_EXIT                "ﾍﾋｳ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "ﾆｶｯﾎﾄｼｷﾎ"
!     IDS_CANCEL_CONFIG_MSG   "ﾔﾚｴﾋｴｦﾈ｡ﾏｽｫﾊｹﾄｵﾄｼﾆﾋ羹ｲｿｷﾖｵﾘﾅ葷ﾃｳﾉ AFS ｷﾎﾆ｡｣ﾈﾔﾒｪﾈ｡ﾏﾂ?"
!     IDS_WIZARD_APP_TITLE    "AFS ｷﾎﾆｿﾋﾙﾆｶｯﾏｵｼ"
!     IDS_CANCEL_PENDING      "*** ﾈ｡ﾏﾔﾝｹﾒ - ﾇﾉﾔｺ... ***"
!     IDS_CHECK_FS_CONFIG     "ｼｲ鯰ﾄｼｷﾎﾆ..."
!     IDS_CHECK_DB_CONFIG     "ｼｲ鯡ｾﾝｿ箙ﾎﾆ..."
!     IDS_CHECK_BAK_CONFIG    "ｼｲ魍ｸｷﾝｷﾎﾆ..."
!     IDS_CHECK_PARTITION     "ｼｲ AFS ｷﾖﾇ..."
!     IDS_CHECK_ROOT_AFS      "ｼｲ鮑ｾ..."
!     IDS_CHECK_REP           "ｼｲ鮑ｾｸｴﾖﾆ..."
!     IDS_CANCEL_GET_CONFIG   "ﾕﾔﾚﾈ｡ﾏ...ﾇﾉﾔｺ..."
!     IDS_ALREADY_A_BACKUP_SERVER "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉｱｸｷﾝｷﾎﾆ｡｣"
!     IDS_NOT_A_DB_SERVER     "ｸﾃｻﾆﾎｴﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ｡｣ｱｸｷﾝｷﾎﾆﾖｻﾄﾜﾔﾋﾐﾐﾔﾚﾊｾﾝｿ箙ﾎﾆｻﾆﾉﾏ｡｣"
!     IDS_ALREADY_A_SYS_CONTROL_SERVER "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｡｣"
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "ｸﾃｻﾆﾎｴﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆｻﾎﾄｼｷﾎﾆ｡｣ﾈ郢ｼﾆﾋ羹ﾅ葷ﾃｳﾉﾊｾﾝｿ篏ﾎﾄｼｷﾎﾆｻﾆﾊｱ｣ｬﾔﾍｬﾊｱﾋﾖｻﾄﾜﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆﾆ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "ｾ"
!     IDS_NAME_OR_ERROR       "ﾃｳﾆ(ｻｳｴﾏﾏ｢)"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "ｽｫｸﾃｻﾆﾎｴﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆｻﾎﾄｼｷﾎﾆ｡｣ﾈ郢ｼﾆﾋ羹ﾅ葷ﾃｳﾉﾊｾﾝｿ篏ﾎﾄｼｷﾎﾆｻﾆﾊｱ｣ｬﾔﾍｬﾊｱﾋﾖｻﾄﾜﾅ葷ﾃｳﾉｶｽﾖﾆｷﾖｲｼｻﾆ｡｣"
!     IDS_CHECK_SCS           "ｼｲ鰕ｵﾍｳｿﾘﾖﾆｷﾎﾆ..."
!     IDS_CHECK_SCC           "ｼｲ鰕ｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ..."
!     IDS_SIZE                "ｴﾐ｡"
!     IDS_ERROR_SEP           ","
!     IDS_MUST_CONFIG_FS      "ﾓﾉﾓﾚﾋﾊﾇｵ･ﾔｪﾖﾐｵﾄｵﾚﾒｻｸ AFS ｷﾎﾆ｣ｬﾒｴﾋｽｫﾈｱﾊ｡ｵﾘﾅ葷ﾃﾎﾄｼｷﾎ｡｣"
!     IDS_MUST_CONFIG_DB      "ﾓﾉﾓﾚﾋﾊﾇｵ･ﾔｪﾖﾐｵﾄｵﾚﾒｻｸ AFS ｷﾎﾆ｣ｬﾒｴﾋｽｫﾈｱﾊ｡ｵﾘﾅ葷ﾃﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_MUST_MAKE_PARTITION "ﾓﾉﾓﾚﾋﾊﾇｵ･ﾔｪﾖﾐｵﾄｵﾚﾒｻｸ AFS ｷﾎﾆ｣ｬﾒｴﾋｱﾘﾐｴｴｽｨｷﾖﾇ｡｣"
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "ﾓﾉﾓﾚﾋﾊﾇｵ･ﾔｪﾖﾐｵﾄｵﾚﾒｻｸ AFS ｷﾎﾆ｣ｬﾒｴﾋｽｫﾈｱﾊ｡ｵﾘｴｴｽｨ root.afs ｺﾍ root.cell ｾ｡｣"
!     IDS_MUST_REPLICATE      "ﾓﾉﾓﾚﾋﾊﾇｵ･ﾔｪﾖﾐｵﾄｵﾚﾒｻｸ AFS ｷﾎﾆ｣ｬﾒｴﾋｽｫﾈｱﾊ｡ｵﾘｸｴﾖﾆ root.afs ｺﾍ root.cell ｾ｡｣"
!     IDS_CHECK_AFS_CLIENT    "ｼｲ AFS ｿﾍｻｧｻｰｲﾗｰ..."
!     IDS_ERROR_HOST_NAME     "ﾎﾞｷｨﾈｷｶｨｻﾆｵﾄﾖｻﾃ｡｣"
!     IDS_ERROR_DRIVE_COMPRESSED "ﾇｶｯﾆﾒﾑﾑｹﾋ"
!     IDS_ERROR_CFG_HOST_OPEN "ｳﾊｼｻｯｷﾎﾆﾅ葷ﾃｿ簗ｧｰﾜ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "ﾕﾔﾚﾍ｣ﾖｹ AFS ｿﾍｻｧｻ"
!     IDS_ERROR_LOCAL_HOST_NAME "ﾎﾞｷｨﾈｷｶｨｻﾆｵﾄｱｾｵﾘﾖｻﾃ｡｣"
!     IDS_GET_TOKENS_ERROR    "ﾎﾞｷｨｻｵﾃﾁﾅﾆ｡｣ﾇﾑ鰒､ﾄﾊ菠ﾁﾋﾕﾈｷｵﾄﾓﾃｻｧﾃｺﾍｿﾚﾁ｡｣"
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "ﾓﾉﾓﾚﾎﾄｼｷﾎﾎｴﾆｶｯ｣ｬｲｻﾄﾜﾖｴﾐﾐﾍｾﾈ｡｣ﾇﾆｶｯﾎﾄｼｷﾎ｣ｬﾈｻｺﾖﾘﾊﾔﾍｾﾈ｡｣"
!     IDS_SALVAGING           "ﾕﾔﾚｽﾐﾐﾍｾﾈ｡｣ﾇｵﾈｴ..."
!     IDS_CURRENT_SALVAGE_LOG "ｵｱﾇｰﾍｾﾈﾈﾕﾖｾｵﾄﾄﾚﾈﾝ:"
!     IDS_FINAL_SALVAGE_LOG   "ﾍｾﾈﾈﾕﾖｾｵﾄﾗｺﾄﾚﾈﾝ:"
!     IDS_SALVAGE_COMPLETE    "ﾍｾﾈﾒﾑﾍｳﾉ｡｣"
!     IDS_CANT_GET_SALVAGE_LOG "ﾎﾞｷｨｼﾋﾍｾﾈﾈﾕﾖｾ｡｣"
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK "ﾎﾞｷｨｽｫﾍｾﾈﾈﾕﾖｾｱ｣ｴ豬ｽｴﾅﾅﾌ｡｣"
!     IDS_VALIDATION_ERROR_TEMPLATE "ﾖｸｶｨｵﾄ %1 ﾎﾞﾐｧ｡｣ﾇﾖﾘﾐﾂﾊ菠 %2 ｡｣"
!     IDS_CELL_NAME_VALIDATION_TYPE "ｵ･ﾔｪﾃ"
!     IDS_SERVER_NAME_VALIDATION_TYPE "ｷﾎﾆﾃ"
!     IDS_PASSWORD_VALIDATION_TYPE "ｿﾚﾁ"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "ﾓﾃｻｧﾃ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "ﾃｻﾓﾐｰｲﾗｰ AFS ｿﾍｻｧｻ｡｣ｱﾘﾐﾔﾚﾄﾜｹｻﾅ葷ﾃ AFS ｷﾎﾆﾇｰｰｲﾗｰ AFS ｿﾍｻｧｻ｡｣"
!     IDS_ERROR_AFS_CLIENT_CHECK "ﾎﾞｷｨﾈｷｶｨﾊﾇｷﾒﾑｰｲﾗｰ AFS ｿﾍｻｧｻ｡｣"
!     IDS_ERROR_FS_IS_NOT_NTFS "ﾎﾄｼﾏｵﾍｳｲｻﾊﾇ NTFS"
!     IDS_ERROR_DRIVE_HAS_DATA "ﾇｶｯﾆｰｺｬﾊｾﾝ"
!     IDS_PARTITION_STEP_DESC "ｴｴｽｨ AFS ｷﾖﾇ"
!     IDS_ERROR_DRIVE_CONTAINS_NT "ﾇｶｯﾆｰｺｬ NT ｰｲﾗｰ"
!     IDS_DB_STEP_DESC        "ﾆｶｯﾊｾﾝｿ箙ﾎ"
!     IDS_FS_STEP_DESC        "ﾆｶｯﾎﾄｼｷﾎ"
!     IDS_SCC_STEP_DESC       "ﾆｶｯﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ"
!     IDS_SCS_STEP_DESC       "ﾆｶｯﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ"
!     IDS_ROOT_AFS_STEP_DESC  "ｴｴｽｨｸｾ"
!     IDS_REP_STEP_DESC       "ｸｴﾖﾆｸｾ"
!     IDS_PARTITIONS_PAGE_TITLE "ｷﾖﾇ"
!     IDS_CONFIGURE           "ﾅ葷ﾃ(&C)"
!     IDS_DB_AND_BK_STEP_DESC "ﾆｶｯﾊｾﾝｿ箙ﾎ(ｰﾀｨｱｸｷﾝｷﾎﾆ)"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "ﾕﾔﾚｴｴｽｨ AFS ｷﾖﾇ"
!     IDS_CONFIG_COMMON_FUNCS "ﾕﾔﾚﾅ葷ﾃﾋﾓﾐｷﾎｵﾄｹｫｹｲｹｦﾄﾜ"
!     IDS_START_DB_STEP       "ﾕﾔﾚﾆｶｯﾊｾﾝｿ箙ﾎ"
!     IDS_START_SCC_STEP      "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾗﾎｪﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻﾕﾔﾚﾆｶｯ"
!     IDS_START_SCS_STEP      "ﾏｵﾍｳｿﾘﾖﾆｷﾎﾗﾎｪﾏｵﾍｳｿﾘﾖﾆｷﾎﾆﾕﾔﾚﾆｶｯ"
!     IDS_CREATE_ROOT_AFS_STEP "ﾕﾔﾚｴｴｽｨ root.afs ｾ"
!     IDS_REP_STEP            "ﾕﾔﾚｸｴﾖﾆｸｾ"
!     IDS_START_AUTH_STEP     "ﾕﾔﾚｻｵﾃｷﾎﾆﾁﾅﾆ"
!     IDS_SERVICES_PAGE_TITLE "ｷﾎ"
!     IDS_CONFIG_SUCCEEDED    "ﾅ葷ﾃｳﾉｹｦﾍｳﾉ｡｣"
!     IDS_CONFIG_CANCELED     "ﾅ葷ﾃﾒﾑﾈ｡ﾏ｡｣"
!     IDS_CONFIG_FAILED       "ﾅ葷ﾃﾊｧｰﾜ｡｣\r\n\r\nﾒﾑﾔﾚﾎｻﾖﾃ %2 ｴｴｽｨﾁﾋﾏﾏｸｵﾄﾈﾕﾖｾﾎﾄｼ %1｡｣"
!     IDS_ERROR_NO_LICENSE_NUM "ﾃｻﾓﾐﾕﾒｵｽ AFS ﾐｿﾉﾖ､ｺﾅﾂ｡｣"
!     IDS_VERIFY_CLIENT_INSTALL_STEP "ﾕﾔﾚﾑ鰒､ AFS ｿﾍｻｧｻｵﾄｰｲﾗｰ"
!     IDS_SET_SERVER_LICENSE_STEP "ﾕﾔﾚﾉ靹ﾃｸﾃｷﾎﾆｵﾄﾐｿﾉﾖ､"
!     IDS_DEFINE_CELL_NAME_STEP "ﾕﾔﾚｶｨﾒ蟶ﾃｵ･ﾔｪｵﾄﾃｳﾆ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP "ﾕﾔﾚｽｫｸﾃｷﾎﾆﾉ靹ﾃﾎｪｵ･ﾔｪｳﾉﾔｱ"
!     IDS_START_BOS_SERVER_STEP "ﾕﾔﾚﾆｶｯ BOS ｷﾎﾆ"
!     IDS_START_AUTH_SERVER_STEP "ﾕﾔﾚﾆｶｯﾈﾏﾖ､ｷﾎﾆ"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP "ﾕﾔﾚｴｴｽｨｸﾃｷﾎﾆｵﾄﾎｯﾍﾐﾈﾋｺﾍﾃﾜﾔｿ"
!     IDS_START_DB_AND_BK_STEP "ﾕﾔﾚﾆｶｯﾊｾﾝｿ箙ﾎ(ｰﾀｨｱｸｷﾝｷﾎﾆ)"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP "ﾕﾔﾚｴｴｽｨｵ･ﾔｪｹﾜﾀﾎｯﾍﾐﾈﾋ"
!     IDS_START_CLIENT_STEP   "ﾕﾔﾚﾆｶｯ AFS ｿﾍｻｧｻ"
!     IDS_SET_ROOT_ACL_STEP   "ﾕﾔﾚ root.afs ｾﾉﾏﾉ靹ﾃ ACL"
!     IDS_CREATE_ROOT_CELL_STEP "ﾕﾔﾚｴｴｽｨ root.cell ｾ"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP "ﾕﾔﾚﾊｹﾓﾃｱﾗｼｰｲﾗｰｵ羃ｲﾗｰ root.cell ｾ"
!     IDS_SET_ROOT_CELL_ACL_STEP "ﾕﾔﾚ root.cell ｾﾉﾏﾉ靹ﾃ ACL"
!     IDS_MOUNT_ROOT_CELL_RW_STEP "ﾕﾔﾚﾊｹﾓﾃﾒｻｸｶﾁ｣ｯﾐｴｰｲﾗｰｵ羃ｲﾗｰ root.cell ｾ"
!     IDS_ENABLE_AUTH_CHECKING_STEP "ﾕﾔﾚﾆﾓﾃﾈﾏﾖ､ｼｲ"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "ﾕﾔﾚｻｵﾃｹﾜﾀﾁﾅﾆ"
!     IDS_RESTART_SERVERS_STEP "ﾕﾔﾚｸﾃｻﾆﾉﾏｽｫﾋﾓﾐｷﾎﾆﾗﾎｪﾈﾏﾖ､ｷﾎﾆﾖﾘﾐﾂﾆｶｯ"
!     IDS_ALREADY_A_FS_SERVER "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾎﾄｼｷﾎﾆ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "ｸﾃｻﾆﾒﾑﾅ葷ﾃｳﾉﾊｾﾝｿ箙ﾎﾆ｡｣"
!     IDS_INTRO_PAGE          "ｽ鯔ﾜ"
!     IDS_INFO_PAGE           "ｵ･ﾔｪｺﾍｷﾎﾆﾐﾅﾏ｢"
!     IDS_FS_PAGE             "ﾎﾄｼｷﾎ"
!     IDS_DB_PAGE             "ﾊｾﾝｿ箙ﾎ"
!     IDS_CFG_TOOL_APP_TITLE  "AFS ｷﾎﾆﾅ葷ﾃ"
!     IDS_BK_PAGE             "ｱｸｷﾝｷﾎﾆ"
!     IDS_ROOT_AFS_PAGE       "ｸ AFS ｾ"
!     IDS_NAME                "ﾃｳﾆ"
!     IDS_REP_PAGE            "ｸｴﾖﾆ"
!     IDS_SC_PAGE             "ﾏｵﾍｳｿﾘﾖﾆｷﾎ"
!     IDS_CONFIG_PAGE         "ﾅ葷ﾃﾏｵﾍｳ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "AFS ｷﾖﾇ"
!     IDS_GRAPHIC_FONT        "Times New Roman, 12, B"
!     IDS_CURRENT_STEP        "ｵｱﾇｰｲｽﾖ陬ｺ"
!     IDS_ADD_TO_CELLSERVDB_STEP "ﾕﾔﾚｽｫｸﾃｷﾎﾆﾌｼﾓﾖﾁ CellServDB"
!     IDS_RESTART_ALL_DB_SERVERS_STEP "ﾕﾔﾚﾖﾘﾐﾂﾆｶｯｵ･ﾔｪﾖﾐｵﾄﾋﾓﾐﾊｾﾝｿ箙ﾎﾆ"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "ﾅ葷ﾃﾒﾑｳﾉｹｦﾍｳﾉ｡｣ﾗ｢ﾒ筌ｺｱﾘﾐｸﾐﾂﾄｵ･ﾔｪﾖﾐﾋﾓﾐ AFS ｿﾍｻｧｻｵﾄ CellServDB ﾎﾄｼ｡｣ﾈ郢ﾄﾒｪﾊｹﾆ萢ﾕｾｵ譱ﾉﾓﾃﾄｵﾄｵ･ﾔｪ｣ｬﾔﾇﾈｷﾈﾏﾌ盪ｩｴﾓﾐﾄｵﾄﾊｾﾝｿ箙ﾎﾆﾗﾐﾂﾁﾐｱｵﾄ AFS ｲﾆｷﾖｧｳﾖ｡｣"
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG "ﾄﾊﾇｷﾏ｣ﾍｽｫｸﾃｻﾆﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG "ｲｻﾒｪﾅ葷ﾃｳﾉﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ(&O)｡｣"
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "AFS ｷﾎﾆｵﾄﾅ葷ﾃﾐ霓ｫ AFS ｿﾍｻｧｻｺﾍｷﾎﾆﾅ葷ﾃﾔﾚﾍｬﾒｻｵ･ﾔｪﾖﾐ｡｣ﾕ簟ｩｽｫﾗﾔｶｯﾖｴﾐﾐ｡｣"
!     IDS_INFO_PAGE2          "ｹﾜﾀﾐﾅﾏ｢"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "ﾅ葷ﾃﾒﾑｳﾉｹｦﾍｳﾉ｡｣\r\n\r\nﾗ｢ﾒ筌ｺﾈ郢ﾄﾒｪﾊｹﾆ萢ﾕｾｵ譱ﾉﾓﾃﾄｵﾄｵ･ﾔｪ｣ｬﾔﾇﾈｷﾈﾏﾌ盪ｩｴﾓﾐﾄｵﾄﾊｾﾝｿ箙ﾎﾆﾁﾐｱｵﾄ AFS ｲﾆｷﾖｧｳﾖ｡｣"
!     IDS_CONFIG_SCS          "ﾅ葷ﾃｳﾉｵ･ﾔｪｵﾄﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_CONFIG_INTO_CELL_MSG "ｽｫﾖｻﾅ葷ﾃﾖﾁｵ･ﾔｪ"
!     IDS_VIEW_LOG            "ｲ鯀ｴﾈﾕﾖｾ(&V)"
!     IDS_VIEW_LOG_ERROR      "ﾎﾞｷｨｲ鯀ｴﾈﾕﾖｾﾎﾄｼ"
!     IDS_ERROR_NO_LOG_FILE   "ﾈﾕﾖｾﾎﾄｼｲｻｴ贇ﾚ｡｣"
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED "ﾖｻﾉﾏｸﾐﾂｵﾄ CellServDB"
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED "ﾔﾚﾖｻﾉﾏｸﾐﾂ CellServDB ﾊｧｰﾜ"
!     IDS_CELL_NAME_LEN_ERROR "ﾄﾊ菠ｵﾄｵ･ﾔｪﾃﾌｫｳ､｡｣ｵ･ﾔｪﾃｲｻﾄﾜｳｬｹ 64 ｸﾗﾖｷ｡｣"
!     IDS_CONFIG_CHECK_FAILED "ﾎﾞｷｨﾈｷｶｨｸﾃｻﾆﾉﾏｵﾄｵｱﾇｰﾅ葷ﾃ｡｣"
!     IDS_YES                 "ﾊﾇ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "ｷ"
!     IDS_FREE                "ｿﾕﾏﾐｿﾕｼ"
!     IDS_TOTAL               "ﾗﾜｼﾆｴﾐ｡"
!     IDS_DRIVE2              "ﾇｶｯﾆ"
!     IDS_SERVICE_STATUS      "ﾗｴﾌｬ"
!     IDS_SERVICE             "ｷﾎ"
!     IDS_FS_RUNNING          "ｵｱﾇｰﾕﾔﾚﾔﾋﾐﾐﾎﾄｼｷﾎ｡｣"
!     IDS_FS_STOPPED          "ｵｱﾇｰﾃｻﾓﾐﾔﾋﾐﾐﾎﾄｼｷﾎ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "ｵｱﾇｰﾕﾔﾚﾔﾋﾐﾐﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_DB_STOPPED          "ｵｱﾇｰﾃｻﾓﾐﾔﾋﾐﾐﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_BK_RUNNING          "ｵｱﾇｰﾕﾔﾚﾔﾋﾐﾐｱｸｷﾝｷﾎ｡｣"
!     IDS_BK_STOPPED          "ｵｱﾇｰﾃｻﾓﾐﾔﾋﾐﾐｱｸｷﾝｷﾎ｡｣"
!     IDS_SCS_STOPPED         "ｵｱﾇｰﾃｻﾓﾐﾔﾋﾐﾐﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_SCC_STOPPED         "ｵｱﾇｰﾃｻﾓﾐﾔﾋﾐﾐﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_FS_HOW_TO_RUN       "ﾒｪﾆｶｯﾎﾄｼｷﾎ｣ｬﾇﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_FS_HOW_TO_STOP      "ﾒｪﾍ｣ﾖｹﾎﾄｼｷﾎ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_DB_HOW_TO_RUN       "ﾒｪﾆｶｯﾊｾﾝｿ箙ﾎ｣ｬﾇﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_DB_HOW_TO_STOP      "ﾒｪﾍ｣ﾖｹﾊｾﾝｿ箙ﾎ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_BK_HOW_TO_RUN       "ﾒｪﾆｶｯｱｸｷﾝｷﾎ｣ｬﾇﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "ﾒｪﾍ｣ﾖｹｱｸｷﾝｷﾎ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_SCS_HOW_TO_RUN      "ﾒｪﾆｶｯﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｣ｬﾇﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_SCS_HOW_TO_STOP     "ﾒｪﾍ｣ﾖｹﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_DB_PARTIAL_CONFIG   "ﾒﾑﾅ葷ﾃﾁﾋｲｿｷﾖﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_DB_DETAILS          "ﾈ醪雕ｶ獎ﾅﾏ｢｣ｬﾇｰｴ｡ｰﾏﾏｸﾐﾅﾏ｢｡ｱｰｴﾅ･｡｣"
!     IDS_BK_DISABLED         "ｽﾓﾃｱｸｷﾝｷﾎ｡｣"
!     IDS_BK_ENABLE           "ﾒｪﾆﾓﾃｱｸｷﾝｷﾎ｣ｬﾄｱﾘﾐﾔﾋﾐﾐﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_SC_DISABLED         "ｽﾓﾃｸﾃｷﾎﾆ｡｣"
!     IDS_SC_ENABLE           "ﾒｪﾆﾓﾃｸﾃｷﾎﾆ｣ｬﾄｱﾘﾐﾔﾋﾐﾐﾎﾄｼｷﾎｻﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_FS_WILL_RUN         "ｽｫﾆｶｯﾎﾄｼｷﾎ｡｣"
!     IDS_FS_WILL_STOP        "ｽｫﾍ｣ﾖｹﾎﾄｼｷﾎ｡｣"
!     IDS_DB_WILL_RUN         "ｽｫﾆｶｯﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_DB_WILL_STOP        "ｽｫﾍ｣ﾖｹﾊｾﾝｿ箙ﾎ｡｣"
!     IDS_BK_WILL_RUN         "ｽｫﾆｶｯｱｸｷﾝｷﾎ｡｣"
!     IDS_BK_WILL_STOP        "ｽｫﾍ｣ﾖｹｱｸｷﾝｷﾎ｡｣"
!     IDS_SCS_WILL_RUN        "ｽｫﾆｶｯﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "ｽｫﾍ｣ﾖｹﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "ﾇｶｯﾆﾒﾑﾓﾐﾒｻｸ AFS ｷﾖﾇ"
!     IDS_VOLUME_HAS_NO_NAME  "< ｾﾃｻﾓﾐﾃｳﾆ >"
!     IDS_PARTITION_CREATED   "ﾒﾑｳﾉｹｦﾐﾂｽｨ AFS ｷﾖﾇ｡｣"
!     IDS_PARTITION_EXISTS    "ﾄﾊ菠ｵﾄｷﾖﾇﾃﾒﾑｱｻﾁﾒｻｸｷﾖﾇﾊｹﾓﾃ｡｣"
!     IDS_SCS_RUNNING         "ｵｱﾇｰﾕﾔﾚﾔﾋﾐﾐﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN "ｸﾃﾇｶｯﾆｽｰｺｬｻﾘﾊﾕﾕｾ｡｣"
!     IDS_SCC_WILL_RUN        "ｽｫﾆｶｯﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｡｣"
!     IDS_SCC_WILL_STOP       "ｽｫﾍ｣ﾖｹﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｡｣"
!     IDS_SCC_RUNNING         "ｵｱﾇｰﾕﾔﾚﾔﾋﾐﾐﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｡｣"
!     IDS_SCC_HOW_TO_RUN      "ﾒｪﾆｶｯﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｣ｬﾇﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_SCC_HOW_TO_STOP     "ﾒｪﾍ｣ﾖｹﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｣ｬﾇｲｻﾒｪﾑ｡ﾈ｡ﾉﾏﾃ豬ﾄｸｴﾑ｡ｿ｡｣"
!     IDS_SCS_ENABLE          "ﾒｪﾆﾓﾃｸﾃｷﾎﾆ｣ｬﾄｱﾘﾐﾍ｣ﾖｹﾕﾔﾚﾔﾋﾐﾐｵﾄﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻ｡｣"
!     IDS_SCC_ENABLE          "ﾒｪﾆﾓﾃｸﾃｷﾎﾆ｣ｬﾄｱﾘﾐﾍ｣ﾖｹﾕﾔﾚﾔﾋﾐﾐｵﾄﾏｵﾍｳｿﾘﾖﾆｷﾎﾆ｡｣"
!     IDS_UNCONFIG_DB_STEP    "ﾕﾔﾚﾈ｡ﾏｶﾔﾊｾﾝｿ箙ﾎｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_DB_STEP_DESC "ﾈ｡ﾏｶﾔﾊｾﾝｿ箙ﾎｵﾄﾅ葷ﾃ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP "ﾕﾔﾚﾈ｡ﾏｶﾔﾊｾﾝｿ箙ﾎ(ｺﾍｱｸｷﾝｷﾎﾆ)ｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC "ﾈ｡ﾏｶﾔﾊｾﾝｿ箙ﾎ(ｺﾍｱｸｷﾝｷﾎﾆ)ｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_BK_STEP    "ﾕﾔﾚﾈ｡ﾏｶﾔｱｸｷﾝｷﾎﾆｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_BK_STEP_DESC "ﾈ｡ﾏｱｸｷﾝｷﾎﾆｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_FS_STEP    "ﾕﾔﾚﾈ｡ﾏｶﾔﾎﾄｼｷﾎｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_FS_STEP_DESC "ﾈ｡ﾏｶﾔﾎﾄｼｷﾎｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_SCS_STEP   "ﾕﾔﾚﾈ｡ﾏｶﾔﾏｵﾍｳｿﾘﾖﾆｷﾎﾆｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_SCS_STEP_DESC "ﾈ｡ﾏｶﾔﾏｵﾍｳｿﾘﾖﾆｷﾎﾆｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_SCC_STEP   "ﾕﾔﾚﾈ｡ﾏｶﾔﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻｵﾄﾅ葷ﾃ"
!     IDS_UNCONFIG_SCC_STEP_DESC "ﾈ｡ﾏｶﾔﾏｵﾍｳｿﾘﾖﾆｿﾍｻｧｻｵﾄﾅ葷ﾃ"
!     IDS_INVALIDATE_CONFIG_INFO_STEP "ﾕﾔﾚﾊｹｸﾃｻﾆｵﾄﾅ葷ﾃﾐﾅﾏ｢ﾊｧﾐｧ"
!     IDS_CLOSE               "ｹﾘｱﾕ(&C)"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "ﾔﾚﾒﾔﾏﾂ AFS ｷﾎﾆﾉﾏﾎﾞｷｨｸﾐﾂ CellServDB ﾎﾄｼ｡｣ﾕ簗ﾇﾒｻｸｷﾇﾖﾂﾃﾐﾔｴﾎ｡｣\r\n"
!     IDS_DELETE_PARTITION_PROMPT "ﾈｷﾊｵﾒｪﾉｾｳｷﾖﾇ｡ｮ%1｡ｯﾂ?"
!     IDS_INVALIDATE_CFG_INFO "ｸﾃｼﾆﾋ羹ﾉﾏﾏﾖﾔﾚﾃｻﾓﾐﾔﾋﾐﾐ AFS ｷﾎﾆｽｳﾌ｡｣ﾄﾊﾇｷﾏ｣ﾍｴﾓｸﾃｻﾆﾉﾏｳﾈ･ﾅ葷ﾃﾐﾅﾏ｢?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "ｵ･ﾔｪﾒﾑｲｻｴ贇ﾚ｡｣AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐｽﾓﾃﾓﾚﾅ葷ﾃﾒﾑﾅ葷ﾃｵｽ AFS ｵ･ﾔｪﾖﾐｵﾄｷﾎﾆ｡｣AFS ﾅ葷ﾃﾏｵｼｿﾉﾓﾃﾓﾚﾆｶｯﾐﾂｵ･ﾔｪ｡｣"
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐﾏﾖﾔﾚｱﾘﾐﾖﾕﾖｹ｡｣ﾋﾖｻﾄﾜﾔﾋﾐﾐﾔﾚﾒﾑﾅ葷ﾃｳﾉ AFS ｷﾎﾆｵﾄｻﾆﾉﾏ｡｣ﾒｪﾔﾙｴﾎｽｫｸﾃｻﾆﾅ葷ﾃｳﾉ AFS ｷﾎﾆ｣ｬﾇﾔﾋﾐﾐ AFS ﾅ葷ﾃﾏｵｼ｡｣"
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "ｲｻﾔﾙｽｫｸﾃｻﾆﾅ葷ﾃｳﾉ AFS ｷﾎﾆ｡｣AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐﾖｻﾄﾜﾓﾃﾓﾚﾅ葷ﾃ AFS ｷﾎﾆｻﾆ｡｣AFS ﾅ葷ﾃﾏｵｼｿﾉﾓﾃﾓﾚｽｫｸﾃｻﾆﾖﾘﾐﾂﾅ葷ﾃｳﾉ AFS ｷﾎﾆ｡｣"
!     IDS_GET_TOKENS_FAILED   "ｻｵﾃﾖｸｶｨｵ･ﾔｪｵﾄﾁﾅﾆﾊｧｰﾜ｡｣"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "ﾕﾔﾚﾆｶｯｱｸｷﾝｷﾎﾆ"
!     IDS_BK_STEP_DESC        "ﾆｶｯｱｸｷﾝｷﾎﾆ"
!     IDS_CONFIG_ERROR        "ﾅ葷ﾃｳｴ"
!     IDS_CREATE_PARTITION_ERROR "ﾎﾞｷｨｴｴｽｨｷﾖﾇ"
!     IDS_REMOVE_PARTITION_ERROR "ﾎﾞｷｨｳﾈ･ｷﾖﾇ"
!     IDS_READ_PARTITIONS_ERROR "ﾎﾞｷｨｶﾁﾈ｡ｷﾖﾇｱ"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\n CellServDB ｸﾐﾂｽｳﾌｹﾔ釉ﾕﾖｹ｡｣ｿﾉﾄﾜﾓﾐｷﾎﾆﾎｴｸﾐﾂ｡｣"
!     IDS_GET_PARTITION_LIST_ERROR "ﾎﾞｷｨﾈｷｶｨｸﾃｷﾎﾆﾉﾏｵﾄｷﾖﾇ"
!     IDS_EXPORTED            "ﾒﾑｵｼｳ"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "ｵｱﾎﾄｼｷﾎﾔﾋﾐﾐﾊｱ｣ｬﾎﾞｷｨｳﾈ･ﾒﾑｵｼｳｵﾄｷﾖﾇ｡｣ﾄｱﾘﾐﾔﾚｳﾈ･ｸﾃｷﾖﾇﾇｰﾍ｣ﾖｹﾎﾄｼｷﾎ｡｣"
!     IDS_CHECK_CONFIG_INFO   "ﾕﾔﾚｼｲ鰌ﾐﾐｧｵﾄﾅ葷ﾃﾐﾅﾏ｢..."
!     IDS_ERROR_CFG_HOST_CLOSE "ｹﾘｱﾕｷﾎﾆﾅ葷ﾃｿ簗ｧｰﾜ"
!     IDS_FAILED_OPEN_CELL    "ｴｿｪｵ･ﾔｪﾊｧｰﾜ｡｣"
!     IDS_FAILED_OPEN_NULL_CELL "ｴｿｪｿﾕｵ･ﾔｪｾ莖ﾊｧｰﾜ"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ﾈ郢ｲｻｴ贇ﾚｸｾ｣ｬﾄﾊﾇｷﾏ｣ﾍｴｴｽｨｸｾ?"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ﾈ郢ﾃｻﾓﾐｸｴﾖﾆｸｾ｣ｬﾄﾊﾇｷﾏ｣ﾍｸｴﾖﾆｸｾ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS ｷﾎﾆ"
!     IDS_CANT_INIT_ADMIN_LIBS "ﾎﾞｷｨﾖｴﾐﾐｸﾃﾓｦﾓﾃｳﾌﾐ｣ｺｿ箋ﾊｼｻｯﾊｧｰﾜ｡｣"
!     IDS_CANT_OPEN_LOG_FILE  "ﾎﾞｷｨｴｿｪﾈﾕﾖｾﾎﾄｼ｡｣"
!     IDS_NEED_CLIENT_INFO    "AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐﾎﾞｷｨﾔﾋﾐﾐ｣ｬﾒﾎｪｸﾃｼﾆﾋ羹ﾉﾏﾃｻﾓﾐﾅ葷ﾃ AFS ｿﾍｻｧｻ｡｣ﾕ籔ﾖﾇ鯀ﾏﾂｿﾉﾊｹﾓﾃ AFS ﾅ葷ﾃﾏｵｼ｡｣ﾊﾇｷﾔﾋﾐﾐ AFS ﾅ葷ﾃﾏｵｼ?"
!     IDS_NEED_SERVER_INFO    "ﾃｻﾓﾐｽｫｼﾆﾋ羹ﾅ葷ﾃｳﾉ AFS ｷﾎﾆ｡｣AFS ﾅ葷ﾃﾏｵｼﾓﾃﾓﾚｳﾊｼﾅ葷ﾃ AFS ｷﾎﾆ｡｣ﾈｻｺｿﾉﾒﾔﾊｹﾓﾃ AFS ﾅ葷ﾃﾓｦﾓﾃｳﾌﾐ｡｣ﾊﾇｷﾔﾋﾐﾐ AFS ﾅ葷ﾃﾏｵｼﾒﾔｳﾊｼﾅ葷ﾃｸﾃｼﾆﾋ羹?"
!     IDS_ADVANCED_OPEN       "<< ｸﾟｼｶ(&A)"
!     IDS_ADVANCED_CLOSED     "ｸﾟｼｶ(&A) >>"
!     IDS_BOS_OPEN_FAILED     "ﾎﾞｷｨﾁｬｽﾓｵｽｷﾎﾆ(ｴｿｪ bos ﾊｧｰﾜ)｡｣"
!     IDS_SALVAGE_ERROR       "ﾍｾﾈｲﾙﾗﾊｧｰﾜ｡｣"
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "ﾖｸｶｨｵﾄﾍｾﾈｽｳﾌﾊﾎﾞﾐｧ｡｣ﾍｾﾈｽｳﾌﾊｱﾘﾐﾔﾚ 1 ｵｽ 32 ﾖｮｼ茖｣"
!     IDS_WRONG_CELL          "ﾔﾚﾇｰﾃ豐ｽﾖ靹ﾐﾄﾖｸｶｨﾁﾋﾓﾃﾓﾚｼﾋﾅ葷ﾃﾐﾅﾏ｢ｵﾄｷﾎﾆ｡｣ｸﾃﾖｸｶｨｵﾄｷﾎﾆｲｻﾊﾓﾚﾄﾏ｣ﾍｼﾓﾈｵﾄｵ･ﾔｪ｡｣"
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "ﾎﾞｷｨｸﾐﾂｵ･ﾔｪﾖﾐﾄｳﾐｩｷﾎﾆﾉﾏｵﾄ CellServDB ﾎﾄｼ｡｣ﾈ醪靨ｻﾕﾅﾁﾐｱ(ｸﾃﾁﾐｱﾏﾔﾊｾｷﾎﾆｵﾄｸﾐﾂﾇ鯀)｣ｬﾇｲ鯀ｴｴ豢｢ﾔﾚﾎﾄｼﾖﾐｵﾄﾅ葷ﾃﾈﾕﾖｾ｡｣"
!     IDS_GET_CREDENTIALS_STEP "ﾕﾔﾚｻｵﾃｹﾜﾀﾁﾅﾆ"
!     IDS_MUST_ENTER_SCS_NAME "ｱﾘﾐﾔﾚﾅ葷ﾃﾇｰﾊ菠ﾏｵﾍｳｿﾘﾖﾆﾆﾃ｡｣"
!     IDS_NOT_SAME_CELL       "AFS ｿﾍｻｧｻﾅ葷ﾃｵｽﾁﾋﾓ AFS ｷﾎﾆｲｻﾍｬｵﾄｵ･ﾔｪﾖﾐ｡｣ﾅ葷ﾃ AFS ｷﾎﾆﾇｰ｣ｬﾄﾊﾗﾏﾈｱﾘﾐｽｫ AFS ｿﾍｻｧｻﾖﾘﾐﾂﾅ葷ﾃｵｽｷﾎﾆｵﾄｵ･ﾔｪﾖﾐ｡｣"
!     IDS_LAST_DB_SERVER      "ｸﾃｻﾆﾕﾔﾚﾔﾋﾐﾐｵ･ﾔｪﾖﾐﾗｺｵﾄﾊｾﾝｿ箙ﾎﾆ｡｣ﾈ郢ﾄｼﾌﾐｲ｢ﾈ｡ﾏｸﾃｻﾆﾉﾏｵﾄﾊｾﾝｿ箙ﾎﾅ葷ﾃ｣ｬｵ･ﾔｪｽｫｲｻﾔﾙｴ贇ﾚ｣ｬｲ｢ｽｫﾈ｡ﾏﾕﾔﾋﾐﾐﾔﾚｸﾃｻﾆﾉﾏｵﾄﾋﾓﾐﾆ萢 AFS ｷﾎｵﾄﾅ葷ﾃ｡｣ｻｹﾒｪｼﾌﾐﾂ?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "AFS ﾎｯﾍﾐﾈﾋｿﾚﾁﾎﾞﾐｧ｡｣"
!     IDS_ERROR_CLIENT_VERSION 
!                             "ｸﾃｼﾆﾋ羹ﾉﾏｵﾄ AFS ｿﾍｻｧｻｰ豎ｾﾓ AFS ｷﾎﾆｰ豎ｾｲｻｼ貶ﾝ｡｣AFS ｷﾎﾆﾖﾁﾉﾙﾐ靨ｪ AFS ｿﾍｻｧｻｰ豎ｾ 3.5｡｣"
!     IDS_CANT_MAP_ROOT_AFS   "ﾎｪﾁﾋﾔﾚｸｾﾉﾏﾉ靹ﾃ ACL｣ｬﾅﾌｷｱﾘﾐﾓｳﾉ莊ｽ AFS ｡｣ｵｱﾇｰﾃｻﾓﾐｿﾉﾓﾃｵﾄﾅﾌｷ｡｣ﾇﾊﾍｷﾅﾒｻｸﾅﾌｷｲ｢ｰｴﾈｷｶｨ｡｣"
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "ｷﾖﾇﾃ"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "ｾﾃ"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE "ﾍｾﾈｽｳﾌｺﾅ"
!     IDS_PATH_NAME_VALIDATION_TYPE "ﾂｷｾｶﾃ"
!     IDS_FILE_NAME_VALIDATION_TYPE "ﾎﾄｼﾃ"
!     IDS_GENERIC_VALIDATION_TYPE "ﾖｵ"
! END
! 
! #endif    // Chinese (P.R.C.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
Index: openafs/src/WINNT/afssvrcfg/lang/zh_TW/afscfg.rc
diff -c openafs/src/WINNT/afssvrcfg/lang/zh_TW/afscfg.rc:1.3 openafs/src/WINNT/afssvrcfg/lang/zh_TW/afscfg.rc:1.3.2.1
*** openafs/src/WINNT/afssvrcfg/lang/zh_TW/afscfg.rc:1.3	Thu Jun 19 15:00:58 2003
--- openafs/src/WINNT/afssvrcfg/lang/zh_TW/afscfg.rc	Fri Mar 11 01:59:20 2005
***************
*** 7,1159 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS Configuration application and wizard"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x404
  #define AFS_VERINFO_CHARSET 950
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // Chinese (Taiwan) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHT)
! #ifdef _WIN32
! LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 320, 246
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "AFS ｦｪAｾｹｧﾖｳtｱﾒｰﾊｺﾆF"
! FONT 9, "ｷsｲﾓｩﾅ", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "ｨｮ(&L)",IDCANCEL,101,225,50,14
!     PUSHBUTTON      "< ､W､@ｨB(&B)",IDBACK,155,225,50,14
!     DEFPUSHBUTTON   "､U､@ｨB(&N) >",IDNEXT,209,225,50,14
!     PUSHBUTTON      "ｻ｡ｩ(&H)",9,263,225,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,214,305,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,103,7,210,200
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ", 0, 0, 0x1
! BEGIN
!     CONTROL         "ｬO(&Y)｡Aｫﾘ･ﾟ､ﾀｳﾎｰﾏ｡C",IDC_CREATE_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,121,
!                     186,38,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,124,165,33,12,ES_AUTOHSCROLL
!     CONTROL         "ｧ_(&O)｡A､｣ｭnｫﾘ･ﾟ､ﾀｳﾎｰﾏ｡C",IDC_DONT_CREATE_PARTITION,
!                     "Button",BS_AUTORADIOBUTTON,0,184,102,8
!     LTEXT           "｡uﾀﾉｮﾗｦｪAｾｹ｡vｷ|ﾀxｦsｨﾃｶﾇｰeﾀﾉｮﾗｻPｵ{ｦ｡ｨ AFS ･ﾎ､蘯ﾝ｡CｦpｪGｭnｳzｹL AFS ｦ@ｨﾉﾀxｦsｦb･ｻｨtｲﾎｪｺｸｮﾆ｡Aｦﾜ､ﾖｦｳ､@ｭﾓ NTFS ｮeﾅ鬣ｲｶｷｬOｱMﾄﾝｪｺ AFS ､ﾀｳﾎｰﾏ｡C",
!                     -1,4,15,198,25
!     LTEXT           "ｿｨｧ@ｬｰ､ﾀｳﾎｰﾏｨﾏ･ﾎｪｺｮeﾅ(&S)｡G",IDC_SELECT_DRIVE,12,106,
!                     163,9
!     LTEXT           "AFS ､ﾀｳﾎｰﾏｦWｺﾙ(&M)｡G  /vicep",IDC_NAME_LABEL,11,167,107,
!                     8
!     LTEXT           "ｦb･ｻ｡uﾀﾉｮﾗｦｪAｾｹ｡v､Wｫﾘ･ﾟ AFS ､ﾀｳﾎｰﾏ｡C",IDC_TITLE,4,2,
!                     198,8
!     LTEXT           "AFS ､ﾀｳﾎｰﾏｹｻﾚ､Wｬﾛｷｩ NTFS ｮeﾅ鬘AｵMｦﾓ･ｦﾁﾙ･]ｬA､ﾀｳﾎｰﾏ､W｡AｦｳﾃｸｰTｵｲｺcｻPｦｸmｪｺｯSｩw meta ｸｮﾆ｡C",
!                     -1,4,42,198,25
!     LTEXT           "ｱzｭnｦbｳoｭﾓ｡uﾀﾉｮﾗｦｪAｾｹ｡v､Wｫﾘ･ﾟ､ﾀｳﾎｰﾏｶﾜ｡H",
!                     IDC_ASK_CREATE_PARTITION,4,75,198,18
!     LTEXT           "･ｲｭnｮﾉ｡Aｩｰｦ豢ﾁｶ｡ｳ]ｩwｰTｮｧ｡C",IDC_PARTITION_MSG,3,167,
!                     186,31,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,210,92,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "ｬO(&Y)｡Aｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡C",
!                     IDC_SHOULD_CONFIG_FILE_SERVER,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,178,114,10
!     CONTROL         "ｧ_(&O)｡A､｣ｭnｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡C",
!                     IDC_DONT_CONFIG_FILE_SERVER,"Button",BS_AUTORADIOBUTTON,
!                     0,189,133,10
!     LTEXT           "｡uAFS ﾀﾉｮﾗｪAｰﾈ｡vｱNｱqｦｹｦｪAｾｹ､WｱNｩﾒｭnｨDｪｺﾀﾉｮﾗｻPｵ{ｦ｡ｶﾇｰeｨ AFS ･ﾎ､蘯ﾝ｡CｳoｶｵｪAｰﾈｦPｮﾉ､]ｳBｲzｩﾒｦｳｪｺｮeﾅ鮗ﾞｲzｧ@ｷ~｡Aｨﾒｦpｫﾘ･ﾟ｡BｧRｰ｣｡Bｲｾｰ｣ｻPｽﾆｻsｮeﾅ鬘C",
!                     -1,4,38,198,34
!     LTEXT           "ｱN･ｻｾｾｹｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡C",IDC_TITLE,4,1,198,8
!     LTEXT           "ｱzｭnｱN･ｻｾｾｹｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡vｶﾜ｡H",
!                     IDC_CREATE_FS_QUESTION,4,166,198,8
!     LTEXT           "ｦpｭnｱN･ｻｾｾｹｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡Aｱz･ｲｶｷｬ[ｺc｡uﾀﾉｮﾗｪAｰﾈ｡v｡C",
!                     -1,4,15,198,17
!     LTEXT           "ｪｵ｡Gｦｹｾｾｹ･ﾘｫeｨSｦｳ･i･ﾎｪｺｺﾏｺﾐｾ｡Aｦ]ｦｹｵLｪkｱNﾀﾉｮﾗﾀxｦsｨ AFS｡CﾁｵMｱz･i･HｱN･ｻｾｾｹｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡AｦｬOｱz､｣ｯ牾N AFS ｸｮﾆﾀxｦsｦbｦｹｾｾｹ､W｡C",
!                     IDC_NO_DRIVES_NOTE,4,77,198,32,NOT WS_VISIBLE
!     LTEXT           "ｦpｭnｫﾘ･ﾟｺﾏｺﾐｾ｡Aｽﾐｨﾏ･ﾎ Windows NT ｺﾏｺﾐｨtｲﾎｺﾞｲzｪﾌ｡C",
!                     IDC_DISK_ADMIN_NOTE,4,112,198,16,NOT WS_VISIBLE
!     LTEXT           "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡C",IDC_MSG,10,166,199,34,
!                     NOT WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     LTEXT           "ﾅwｪｨﾏ･ﾎ｡uAFS ｦｪAｾｹｧﾖｳtｱﾒｰﾊｺﾆF｡v｡A･ｻｺﾆFｱNﾀｰｧUｱzｧﾖｳtｦaｦbｦｹ Windows NT ｨtｲﾎ､Wｬ[ｺc｡uAFS ｦｪAｾｹ｡v｡C",
!                     IDC_TITLE,2,4,198,25
!     LTEXT           "ｽﾐｫ｡u､U､@ｨB｡v｡Aｶ}ｩlｬ[ｺc｡uAFS ｦｪAｾｹ｡v｡C",IDC_STATIC,0,
!                     166,209,8
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "ｬO(&Y)｡Aｽﾆｻsｮﾚｮeﾅ鬘C",IDC_REPLICATE,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,4,178,198,10
!     CONTROL         "ｧ_(&O)｡A､｣ｭnｽﾆｻsｮﾚｮeﾅ鬘C",IDC_DONT_REPLICATE,"Button",
!                     BS_AUTORADIOBUTTON,4,189,198,10
!     LTEXT           "ｽﾆｻsｴNｬOｦbｼﾆｭﾓ､ﾀｳﾎｰﾏ｡Aｳqｱ`ｬOｦbｨ茹Lｪｺ｡uﾀﾉｮﾗｦｪAｾｹ｡v､W｡Aｫﾘ･ﾟｮeﾅ魏ﾟﾅｪｽﾆ･ｻｪｺｵ{ｧﾇ｡CｦbｺｸｩﾎｦｪAｾｹｵo･ﾍｹBｧ@､､ﾂ_ｪｺｱ｡ｪp､U｡Aｽﾆｻs･i･HｼW･[ｮeﾅ鬪ｺ･i･ﾎｩﾊ｡A",
!                     IDC_STATIC,4,38,198,25
!     LTEXT           "ｱzｭnｽﾆｻsｮﾚｮeﾅ鮓ﾜ｡H",IDC_REPLICATE_QUESTION,4,165,198,8
!     LTEXT           "ｽﾆｻs､]･iﾁﾗｧK･､@ｦｪAｾｹｦ]ｮeﾅ鬥sｨﾀWｲvｹLｰｪｦﾓｭtｲｹLｭｫ｡C",
!                     IDC_STATIC,4,85,187,25
!     LTEXT           "ｽﾆｻs Cell ｮﾚｮeﾅ鬘C",IDC_TITLE,4,2,198,8
!     LTEXT           "ｭYｱzｭpｵeｽﾆｻsｦｹ AFS Cell ｪｺｨ茹Lｮeﾅ鬘Aｱz･ｲｶｷ･ｽﾆｻsｮﾚｮeﾅ鬘C",
!                     IDC_STATIC,4,17,191,16
!     LTEXT           "ｸU､@ｦｹｮeﾅ鬩ﾒｦbｪｺｦｪAｾｹ､ｧ､@ﾅﾜｱoｵLｪkｨﾏ･ﾎ｡Aｱz､ｴ･iｱqｨ茹LｦｪAｾｹ､Wｦsｨｸﾓｮeﾅ鬘C",
!                     IDC_STATIC,4,64,198,21
!     LTEXT           "･ｲｭnｮﾉ｡Aｩｰｦ豢ﾁｶ｡ｳ]ｩwｰTｮｧ｡C",IDC_CANT_REPLICATE_MSG,7,
!                     166,202,34,NOT WS_VISIBLE | NOT WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "ｬO(&Y)｡Aｫﾘ･ﾟｮﾚｮeﾅ鬘C",IDC_CREATE_ROOT_VOLUMES,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,4,177,203,10
!     CONTROL         "ｧ_(&O)｡A､｣ｭnｫﾘ･ﾟｮﾚｮeﾅ鬘C",IDC_DONT_CREATE_ROOT_VOLUMES,
!                     "Button",BS_AUTORADIOBUTTON,4,188,203,10
!     LTEXT           "ｦb AFS ､､｡Aｮeﾅ鬯ｰｬﾛﾃﾀﾉｮﾗｪｺｶｰｦX｡Aｦﾓｳoｨﾇﾀﾉｮﾗｫhｲﾕﾂｴｦｨｳ讀@･Bｩｩｺﾞｲzｪｺｳ讀ｸ｡A･HｧQｨtｲﾎｺﾞｲz｡C",
!                     IDC_STATIC,4,15,198,17
!     LTEXT           "ｱzｭnｫﾘ･ﾟｮﾚｮeﾅ鮓ﾜ｡H",IDC_ROOT_AFS_QUESTION,4,164,203,8
!     LTEXT           "ｫﾘ･ﾟ Cell ｪｺｮﾚｮeﾅ鬘C",IDC_TITLE,4,0,203,8
!     LTEXT           "､@･ｹｫﾘ･ﾟ､ｧｫ癸AｧY･iｦb AFS ﾀﾉｮﾗｪﾅｶ｡､､ｦﾛｰﾊｦsｨｮﾚｮeﾅ鬘C",
!                     IDC_STATIC,4,67,202,17
!     LTEXT           "･ｲｭnｮﾉ｡Aｩｰｦ豢ﾁｶ｡ｳ]ｩwｪｺｰTｮｧ｡C",IDC_ROOT_AFS_MSG,5,164,
!                     202,33,NOT WS_VISIBLE
!     LTEXT           "root.afs ｮeﾅ鬯O AFS ﾀﾉｮﾗｪﾅｶ｡ｪｺｮﾚ｡Croot.Cell ｮeﾅ鬯ｰ AFS ﾀﾉｮﾗｪﾅｶ｡､ｧ Cell ､lｾｪｺｮﾚ｡Aｨﾃ･Bｱq root.afs ｳzｹLｸﾋｸﾂIｨﾓｦsｨ｡C",
!                     IDC_STATIC,4,36,198,25
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 84
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "AFS ｦｪAｾｹｬ[ｺc"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,38,148,14
!     LTEXT           "ｧ@ｷ~､螯r - ｩｰｦ谿ﾉｴﾁｳ]ｩw｡C",IDC_OPERATION,35,20,145,10
!     ICON            "",IDC_LOGO,7,7,20,20
!     PUSHBUTTON      "ｨｮ",IDCANCEL,73,63,50,14
!     LTEXT           "ｨMｩw･ﾘｫeｪｺｬ[ｺc｡G",IDC_OPERATION2,35,7,156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 213, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "ｬO(&Y)｡Aｬ[ｺcｬｰ｡uｳﾆ･ｦｪAｾｹ｡v｡C",
!                     IDC_CONFIG_BACKUP_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,3,156,128,10
!     CONTROL         "､｣(&O)｡A､｣ｭnｬ[ｺcｬｰ｡uｳﾆ･ｦｪAｾｹ｡v｡C",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,3,174,147,10
!     LTEXT           "｡uｳﾆ･ｦｪAｾｹ｡v･uｯ爬bｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡vｪｺｾｾｹ､Wｰｦ譯C･t･~｡AｦpｪG｡uｳﾆ･ｦｪAｾｹ｡vｬOｦb Cell ｸﾌｪｺ､@ｭﾓ｡uｸｮﾆｮwｦｪAｾｹ｡v､Wｰｦ譯Aｨｺｻ､]･ｲｶｷｦb Cell ｸﾌｪｺｩﾒｦｳ｡uｸｮﾆｮwｦｪAｾｹ｡v､Wｰｦ譯C",
!                     -1,3,38,199,32
!     LTEXT           "ｱzｭnｱN･ｻｾｾｹｬ[ｺcｬｰ｡uｳﾆ･ｦｪAｾｹ｡vｶﾜ｡H",
!                     IDC_BACKUP_SERVER_QUESTION,4,142,177,10
!     LTEXT           "ｱN･ｻｾｾｹｬ[ｺcｬｰ｡uｳﾆ･ｦｪAｾｹ｡v｡C",IDC_TITLE,4,6,207,8
!     LTEXT           "｡uｳﾆ･ｦｪAｾｹ｡vｬｰ｡uｸｮﾆｮwｪAｰﾈ｡vｪｺｿ･ﾎ･\ｯ爍C",-1,3,20,209,
!                     16
!     LTEXT           "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v｡C",IDC_CANT_BACKUP_MSG,
!                     14,157,168,15,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "ｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v(&S)｡C",IDC_SYS_CONTROL_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,4,146,141,10
!     CONTROL         "ｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v(&C)｡C",IDC_SYS_CONTROL_CLIENT,
!                     "Button",BS_AUTORADIOBUTTON,4,159,131,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,91,171,118,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "､｣ｭnｬ[ｺcｬｰｨtｲﾎｱｱｨ･ﾎ､蘯ﾝｩﾎｦｪAｾｹ(&O)｡C",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON,4,187,183,
!                     9
!     LTEXT           "｡uｨtｲﾎｱｱｨｦｪAｾｹ｡vｴ｣ｨﾑ､@ｯｪｺｬ[ｺcﾀﾉｵｹｨ茹Lｧ@ｬｰ｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡vｪｺ｡uAFS ｦｪAｾｹ｡vｾｾｹ｡CAFS Cell ｶﾈ･iｰｦ豕讀@ｪｺ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C",
!                     -1,4,20,200,25
!     LTEXT           "ｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡vｩﾎ｡u･ﾎ､蘯ﾝ｡v｡C",IDC_TITLE,4,4,
!                     200,8
!     LTEXT           "ｱzｭnｱNｦｹｾｾｹｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡vｩﾎ｡u･ﾎ､蘯ﾝ｡vｶﾜ｡H",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,4,127,205,17
!     LTEXT           "｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡vｱｵｦｬ･ｦｱq Cell ｪｺ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡vｦb AFS ｬ[ｺcﾀﾉ､Wｪｺ･i･ﾎｧｷs｡C",
!                     IDC_SYS_CONTROL_CLIENT_DESC,4,49,200,18
!     LTEXT           "ｨtｲﾎｱｱｨｦｪAｾｹ(&Y)｡G",IDC_SYS_CONTROL_MACHINE_LABEL,11,
!                     173,78,8,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,7,163,197,34,NOT WS_VISIBLE
!     LTEXT           "ﾄｵｧi｡G･ｼｨﾏ･ﾎ AFS ｬｰ熙ﾀｰeｪｺｺｯｸ｡A､｣ｱoｳzｹL｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v､ﾀｰeｬ[ｺcﾀﾉｮﾗ｡Aｧ_ｫhｷ|･H･ｼ･[ｱKｪｺ､隕｡ｶﾇｰeｱﾓｷPｪｺｨtｲﾎｸｰT｡C",
!                     -1,9,79,183,34
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     LTEXT           "､wｨ罔ｳｦbｦｹｨtｲﾎ､Wｬ[ｺc｡uAFS ｦｪAｾｹ｡vｮﾉｩﾒｻﾝｪｺ･ｳ｡ｸｰT｡C",
!                     IDC_ALL_NEEDED_MSG,1,13,209,17
!     LTEXT           "ｱNｦｹｾｾｹｬ[ｺcｦﾜ Cell <ｩｰｦ豢ﾁｶ｡ｳ]ｩw>",IDC_TITLE,2,2,198,
!                     8
!     LTEXT           "ｱNｷ|ｰｦ讌H､Uｪｺｬ[ｺcｨBﾆJ｡G",IDC_FOLLOWING_STEPS_MSG,1,36,
!                     187,8
!     LTEXT           "ｨBﾆJ 1 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP1,22,49,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｨBﾆJ 3 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP3,22,73,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｨBﾆJ 2 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP2,22,61,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｨBﾆJ 4 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP4,22,85,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｨBﾆJ 5 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP5,22,97,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｨBﾆJ 6 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP6,22,109,179,8,NOT 
!                     WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,178,200,11
!     LTEXT           "ｨBﾆJ 8 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP8,22,133,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｨBﾆJ 7 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP7,22,121,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "･ｲｭnｮﾉ｡Aｩｰｦ豢ﾁｶ｡ｳ]ｩwｪｺｰTｮｧ｡C",IDC_CANT_CONFIG_MSG,1,
!                     13,209,17,NOT WS_VISIBLE
!     LTEXT           "ｧｹｦｨｦﾊ､ﾀ､｡G",IDC_PERCENT_COMPLETE_LABEL,1,191,61,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "･ﾘｫeｪｺｧ@ｷ~｡G",IDC_CURRENT_STEP_LABEL,1,157,50,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "･ﾘｫeｪｺｨBﾆJｻ｡ｩ - ｩｰｦ豢ﾁｶ｡ｳ]ｩw",IDC_CURRENT_STEP,1,167,
!                     208,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,63,191,49,8,NOT WS_VISIBLE
!     LTEXT           "ｦpｭnｶ}ｩlｬ[ｺcｦｹｹqｸ｣｡Aｽﾐｫ｡uｬ[ｺc｡vｫｶs｡Cｦpｭnﾅﾜｧｩﾒｰｦ讙ｺｬ[ｺcｨBﾆJ｡Aｽﾐｫ｡u､W､@ｨB｡vｫｶs｡C",
!                     IDC_STATUS_MSG,1,159,200,41
!     LTEXT           "",IDC_STEP1_GRAPHIC,10,49,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,10,61,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,10,73,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,10,85,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,10,97,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,10,109,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,10,121,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,10,133,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,64,55,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,64,71,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,64,87,138,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,94,156,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,132,155,11,14
!     LTEXT           "ｺﾞｲz､WｪｺｸｰT",IDC_TITLE,0,2,189,8
!     LTEXT           "ｦWｺﾙ(&M)｡G",IDC_ADMIN_NAME_LABEL,7,57,38,8
!     LTEXT           "ｱKｽX(&P)｡G",IDC_ADMIN_PW_LABEL,7,73,34,8
!     GROUPBOX        "ｱb､皋WｺﾙｻPｱKｽX",IDC_ADMIN_INFO_FRAME,0,41,210,65
!     LTEXT           "ﾅ酖ﾒｱKｽX(&V)｡G",IDC_VERIFY_ADMIN_PW_LABEL,7,90,52,8
!     LTEXT           "､UｦCｬOｫﾘ･ﾟｷs Cell ｮﾉｩﾒｻﾝｪｺｺﾞｲzｱb､盧ｰT｡C",IDC_STATIC,0,
!                     15,209,17
!     CONTROL         "ｨﾏ･ﾎｦｹ AFS UID (&S)｡G",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,157,85,10
!     CONTROL         "ｨﾏ･ﾎ､Uｭﾓ･i･ﾎｪｺ AFS UID (&U)",IDC_USE_NEXT_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,144,136,10
!     GROUPBOX        "AFS UID",IDC_STATIC,0,118,209,57
!     LTEXT           "ｿ鬢J AFS ｺﾞｲzｱb､皙ｺｨﾏ･ﾎｪﾌ ID｡G",IDC_STATIC,6,130,196,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "ｬO｡Aｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v(&Y)｡C",IDC_CONFIG_DB_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,2,145,134,10
!     CONTROL         "､｣｡A､｣ｭnｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v(&O)｡C",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,0,
!                     187,153,10
!     LTEXT           "｡uｸｮﾆｮwｪAｰﾈ｡vｺﾅ@ AFS Cell ｩﾒｻﾝｪｺｽﾆｻsｸｮﾆｮwｶｰ｡CｦｹｪAｰﾈｺﾅ@ Cell ｩﾒｦｳｱb､癸Bｮeﾅ鬥ｸm･H､ﾎ｡]ｿ･ﾎｩﾊｪｺ｡^ｳﾆ･ｸｰT｡C",
!                     -1,4,37,191,54
!     LTEXT           "ｱzｭnｱN･ｻｾｾｹｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡vｶﾜ｡H",
!                     IDC_DB_SERVER_QUESTION,4,135,205,10
!     LTEXT           "ｱN･ｻｾｾｹｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v｡C",IDC_TITLE,4,4,204,8
!     LTEXT           "ｦpｭnｱN･ｻｾｾｹｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v｡Aｱz･ｲｶｷｬ[ｺc｡uｸｮﾆｮwｪAｰﾈ｡v｡C",
!                     -1,4,15,186,16
!     LTEXT           "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v｡C",IDC_MSG,10,177,194,23,
!                     NOT WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,97,174,108,12,ES_AUTOHSCROLL
!     LTEXT           "ｨtｲﾎｱｱｨｦｪAｾｹ(&S)｡G",IDC_SYS_CONTROL_MACHINE_LABEL,9,
!                     175,77,8
!     LTEXT           "ｦpｪGｱzｪｺ Cell ｨ罔ｳ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡Aｽﾐｦb､U､霑鬢Jｨ茹Dｹqｸ｣ｦWｺﾙ｡CAFS ｬ[ｺcﾀﾉｷ|ｳzｹLｦｹｦｪAｾｹ･[･Hｧｷs｡C",
!                     IDC_SCM_PROMPT,13,155,195,17
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ", 0, 0, 0x1
! BEGIN
!     CONTROL         "ｦbｲ{ｦｳｪｺ AFS Cell  ､､｡AｱNｦｹ･Dｹqｸ｣ﾅﾜｦｨｦｪAｾｹ(&M)",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON,3,37,
!                     187,10
!     CONTROL         "ｳoｱNｬOｷsｪｺ AFS Cell ､､ｪｺｲﾄ､@ｭﾓｦｪAｾｹ(&T)",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,3,49,167,10
!     EDITTEXT        IDC_CELL_NAME,64,91,139,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,64,166,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,64,180,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "Cell ｻPｦｪAｾｹｸｰT",IDC_TITLE,3,1,203,8
!     LTEXT           "Cell ｦWｺﾙ(&C)｡G",IDC_CELL_NAME_LABEL,7,93,57,8
!     LTEXT           "ｱKｽX(&P)｡G",IDC_SERVER_PW_LABEL,7,167,34,8,WS_DISABLED
!     LTEXT           "ｿ鬢J AFS Cell ｦWｺﾙ｡C",IDC_CELL_NAME_PROMPT,8,78,195,11
!     LTEXT           "ｿ鬢J AFS ･Dﾅ鬪ｺｱKｽX｡Cｩﾒｦｳｪｺ AFS ｦｪAｾｹｳ｣ｷ|ｨｱoｦｹ･Dﾅ鬪ｺｰOｸｹ｡C",
!                     IDC_SERVER_PW_PROMPT,7,130,196,19,WS_DISABLED
!     GROUPBOX        "Cell ｦWｺﾙ",IDC_CELL_NAME_FRAME,0,67,210,43
!     GROUPBOX        "ｦｪAｾｹｱKｽX",IDC_SERVER_PW_FRAME,0,119,210,81,
!                     WS_DISABLED
!     LTEXT           "ﾅ酖ﾒｱKｽX(&V)｡G",IDC_VERIFY_PW_LABEL,7,180,52,8,
!                     WS_DISABLED
!     LTEXT           "AFS Cell ｬOｴ｣ｨﾑﾀﾉｮﾗｦsｨｲﾎ､@ｫﾅｧiｦWｺﾙﾀxｦsｰﾏｪｺｦｪAｾｹｶｰｦX｡C",
!                     IDC_CELL_NAME_PROMPT2,3,15,191,17
!     LTEXT           "ｦWｺﾙ｡G",IDC_PRINCIPAL_LABEL,7,152,34,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,64,150,139,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,65,43,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,65,59,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,65,132,138,12,ES_AUTOHSCROLL
!     LTEXT           "ｺﾞｲz､WｪｺｸｰT",IDC_TITLE,4,2,198,8
!     LTEXT           "ｦb､U､霑鬢Jｺﾞｲzｱb､盧ｰT｡G",IDC_ADMIN_INFO_PROMPT,7,30,
!                     196,10
!     LTEXT           "ｦWｺﾙ(&N)｡G",IDC_ADMIN_NAME_LABEL,7,46,37,8
!     LTEXT           "ｱKｽX(&P)｡G",IDC_ADMIN_PW_LABEL,7,62,34,8
!     GROUPBOX        "ｱb､皋WｺﾙｻPｱKｽX",IDC_ADMIN_INFO_FRAME,0,17,210,62
!     GROUPBOX        "ｲ{ｦｳｪｺ AFS ｦｪAｾｹ",IDC_HOSTNAME_FRAME,1,92,209,60
!     LTEXT           "AFS ｦｪAｾｹ｡G",IDC_HOSTNAME_LABEL,9,134,53,8
!     LTEXT           "ｿ鬢Jｨ茹Lｭn･[ｦb Cell ､､ｪｺ AFS ｦｪAｾｹ･Dｹqｸ｣ｦWｺﾙ｡CｱNｱqｦｹｦｪAｾｹ､Wｨｱo AFS ｬ[ｺcｸｰT｡C",
!                     IDC_HOSTNAME_PROMPT,7,105,195,25
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 265
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "ｪAｰﾈ"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,25,281,35
!     GROUPBOX        "",IDC_STATIC,7,72,281,37
!     GROUPBOX        "",IDC_STATIC,7,120,281,35
!     GROUPBOX        "",IDC_STATIC,7,166,281,35
!     CONTROL         "ﾀﾉｮﾗｪAｰﾈ",IDC_FS_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,19,60,10
!     CONTROL         "ｸｮﾆｮwｪAｰﾈ",IDC_DB_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,65,82,10
!     PUSHBUTTON      "ｩｲﾓ...",IDC_DB_DETAILS,230,88,50,14,NOT WS_VISIBLE
!     CONTROL         "ｳﾆ･ｦｪAｾｹ",IDC_BK_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,114,71,10
!     CONTROL         "ｨtｲﾎｱｱｨｦｪAｾｹ",IDC_SCS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,160,98,10
!     EDITTEXT        IDC_SC_MACHINE,107,230,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "ｿｨｦbｦｹ AFS ｦｪAｾｹ､Wｰｦ讙ｺｪAｰﾈ｡G",IDC_STATIC,7,7,144,8
!     LTEXT           "･ﾘｫe･ｿｦbｰｦ譯uﾀﾉｮﾗｪAｰﾈ｡v｡C",IDC_FS_STATUS_MSG,14,32,261,
!                     8
!     LTEXT           "･ﾘｫe､wｳ｡･ｦwｸﾋ｡uｸｮﾆｮwｪAｰﾈ｡v｡C",IDC_DB_STATUS_MSG,14,78,
!                     195,8
!     LTEXT           "ｨtｲﾎｱｱｨｦｪAｾｹ(&Y)｡G",IDC_SC_MACHINE_LABEL,25,232,79,8,
!                     WS_DISABLED
!     LTEXT           "ｦpｭnｰｱ､｡uﾀﾉｮﾗｪAｰﾈ｡v｡Aｽﾐｨｮ､Wｭｱｪｺ､雜､ﾄｿ｡C",
!                     IDC_FS_ACTION_MSG,14,44,262,8
!     LTEXT           "ｫ､@､Uｩｲﾓ｡A･Hｬdｾ\ｸﾔｲﾓｸｰT｡C",IDC_DB_ACTION_MSG,14,92,
!                     208,8
!     LTEXT           "･ﾘｫe･ｿｦbｰｦ譯uｳﾆ･ｦｪAｾｹ｡v｡C",IDC_BK_STATUS_MSG,14,127,
!                     259,8
!     LTEXT           "ｦpｭnｰｱ､｡uｳﾆ･ｦｪAｾｹ｡v｡Aｽﾐｨｮ､Wｭｱｪｺ､雜､ﾄｿ｡C",
!                     IDC_BK_ACTION_MSG,14,139,262,8
!     LTEXT           "ｦpｭnｱﾒｰﾊｦｹｦｪAｾｹ｡Aｱz･ｲｶｷｰｦ譯uﾀﾉｮﾗｪAｰﾈ｡vｩﾎ｡uｸｮﾆｮwｪAｰﾈ｡v｡C",
!                     IDC_SCS_ACTION_MSG,14,185,268,9
!     LTEXT           "･ﾘｫeｨﾃ･ｼｰｦ譯uｨtｲﾎｱｱｨ｡vｪAｰﾈ｡C",IDC_SCS_STATUS_MSG,14,
!                     172,263,9
!     GROUPBOX        "",IDC_STATIC,7,213,281,45
!     CONTROL         "ｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ",IDC_SCC,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,206,95,10
!     LTEXT           "ｦpｭnｱﾒｰﾊｦｹｦｪAｾｹ｡Aｱz･ｲｶｷｰｦ譯uﾀﾉｮﾗｪAｰﾈ｡vｩﾎ｡uｸｮﾆｮwｪAｰﾈ｡v｡C",
!                     IDC_SCC_ACTION_MSG,14,245,268,9
!     LTEXT           "･ﾘｫeｨﾃ･ｼｰｦ譯uｨtｲﾎｱｱｨ｡vｪAｰﾈ｡C",IDC_SCC_STATUS_MSG,14,
!                     219,263,9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "､ﾀｳﾎｰﾏ"
! FONT 9, "ｷsｲﾓｩﾅ", 0, 0, 0x1
! BEGIN
!     LTEXT           "ｱzｪｺｹqｸ｣､Wｦｳ､UｦC  AFS ､ﾀｳﾎｰﾏ(&A)｡G",IDC_STATIC,8,7,175,
!                     8
!     PUSHBUTTON      "ｫﾘ･ﾟ(&C)...",IDC_CREATE_PARTITIONS,17,118,53,14
!     LTEXT           "ｦpｭnｴｩｱﾏ､ﾀｳﾎｰﾏｩﾎ､ﾀｳﾎｰﾏ､Wｪｺｮeﾅ鬘AｽﾐｿｾﾜｲMｳ讀Wｪｺ､ﾀｳﾎｰﾏ｡Aｨﾃｫ､Wｭｱｪｺｫｶs｡CｦpｭnｴｩｱﾏｦｹｦｪAｾｹ､Wｪｺｩﾒｦｳ､ﾀｳﾎｰﾏ｡Aｽﾐｫ､Wｭｱｪｺｫｶs｡C",
!                     IDC_SALVAGE_MSG,30,179,250,25
!     PUSHBUTTON      "ｴｩｱﾏ(&S)...",IDC_SALVAGE,17,159,53,14
!     LTEXT           "ｦpｭnｲｾｰ｣､ﾀｳﾎｰﾏ｡AｽﾐｿｾﾜｲMｳ讀Wｪｺ､ﾀｳﾎｰﾏ｡Aｨﾃｫ､@､U､Wｭｱｪｺｫｶs｡C",
!                     IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
!     PUSHBUTTON      "ｲｾｰ｣(&M)",IDC_REMOVE,17,217,53,14,WS_DISABLED
!     GROUPBOX        "､ﾀｳﾎｰﾏ",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
!                     281,79,WS_EX_CLIENTEDGE
!     LTEXT           "ｦpｭnｦbｦｹｦｪAｾｹ､Wｫﾘ･ﾟｷsｪｺ､ﾀｳﾎｰﾏ｡Aｽﾐｫ､Wｭｱｪｺｫｶs｡C",
!                     IDC_CREATE_MSG,30,136,254,8
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 264, 177
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "ｫﾘ･ﾟ AFS ､ﾀｳﾎｰﾏ"
! FONT 9, "ｷsｲﾓｩﾅ", 0, 0, 0x1
! BEGIN
!     LTEXT           "ｦb､U､雋Mｳ讀､ｿｨ NTFS ｮeﾅ鬘A･Hｫﾘ･ﾟｷsｪｺ､ﾀｳﾎｰﾏ｡G",
!                     IDC_TITLE,7,5,250,8
!     LTEXT           "AFS ､ﾀｳﾎｰﾏｦWｺﾙ｡G",IDC_NAME_STATIC,17,131,66,8
!     EDITTEXT        IDC_PARTITION_NAME,112,129,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ｫﾘ･ﾟ(&C)",IDC_CREATE,96,158,50,14,WS_DISABLED
!     PUSHBUTTON      "ﾃｳｬ(&O)",IDC_CLOSE,152,158,50,14
!     PUSHBUTTON      "ｻ｡ｩ",9,207,158,50,14
!     GROUPBOX        "､ﾀｳﾎｰﾏｰﾑｼﾆ",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,250,
!                     95,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 225, 157
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS ｦｪAｾｹｬ[ｺc"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,80,33,130,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,80,49,130,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,80,110,130,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ｬ[ｺc(&C)",IDOK,109,132,50,14,WS_DISABLED
!     PUSHBUTTON      "ｨｮ",IDCANCEL,49,132,50,14
!     PUSHBUTTON      "ｻ｡ｩ",9,169,132,50,14
!     LTEXT           "ｦb､U､霑鬢Jｺﾞｲzｱb､盧ｰT｡G",IDC_ADMIN_INFO_PROMPT,14,20,
!                     196,10
!     LTEXT           "ｦWｺﾙ(&N)｡G",IDC_ADMIN_NAME_LABEL,15,36,44,8
!     LTEXT           "ｱKｽX(&P)｡G",IDC_ADMIN_PW_LABEL,15,52,34,8
!     GROUPBOX        "ｱb､皋WｺﾙｻPｱKｽX",IDC_ADMIN_INFO_FRAME,7,7,211,62
!     GROUPBOX        "ｨtｲﾎｱｱｨｦｪAｾｹ",IDC_HOSTNAME_FRAME,7,76,211,54
!     LTEXT           "･Dｹqｸ｣ｦWｺﾙ(&H)｡G",IDC_HOSTNAME_LABEL,15,112,62,8
!     LTEXT           "ｦpｪGｱzｪｺ Cell ｨ罔ｳ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡Aｽﾐｦb､U､霑鬢Jｨ茹Dｹqｸ｣ｦWｺﾙ｡CAFS ｬ[ｺcﾀﾉｷ|ｳzｹLｦｹｦｪAｾｹ･[･Hｧｷs｡C",
!                     IDC_HOSTNAME_PROMPT,13,88,197,18
!     LTEXT           "ﾂ犇ｫｵ{ｦ｡｡Gｽﾐ･Jｲﾓｾ\\\ﾅｪ･H､Uｻ｡ｩ｡Iｦｹｹｸﾜ､雜ｷ|ｦbｰｦ豢ﾁｶ｡ｷ|ｭｫｷsｽﾕｾ网j､p｡CｦbｯSｩwｱ｡ｪp､U｡Aｹｸﾜ､雜ｷ|ｭｫｷsｽﾕｾ网j､p｡Aｦﾓﾄﾝｩｩｳｺﾝｸsｲﾕ､雜ｪｺ､@､ﾁｳ｣ｷ|ﾁﾂﾃｰ_ｨﾓ｡C",
!                     IDC_STATIC,7,140,211,16,NOT WS_VISIBLE
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 257, 97
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS ｦｪAｾｹｬ[ｺc"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     PUSHBUTTON      "ｨｮ",IDCANCEL,74,75,50,14
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,44,200,11
!     LTEXT           "ｧｹｦｨｦﾊ､ﾀ､｡G",IDC_PERCENT_COMPLETE_LABEL,40,60,61,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "･ﾘｫeｪｺｧ@ｷ~｡G",IDC_CURRENT_STEP_LABEL,39,24,60,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "･ﾘｫeｨBﾆJｪｺｻ｡ｩ - ｩｰｦ豢ﾁｶ｡ｳ]ｩw",IDC_CURRENT_STEP,40,33,
!                     210,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,101,50,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,7,20,20
!     LTEXT           "ｭYｭnｶ}ｩlｬ[ｺcｦｹｹqｸ｣｡Aｽﾐｫ｡uｬ[ｺc｡vｫｶs｡CｭYｭnﾅﾜｧｩﾒｰｦ讙ｺｬ[ｺcｨBﾆJ｡Aｽﾐｫ｡u､W､@ｨB｡vｫｶs｡C",
!                     IDC_STATUS_MSG,40,7,210,50
!     PUSHBUTTON      "ﾀﾋｵ､鮟x(&V)",IDNEXT,130,75,50,14,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "CellServCB ｧｷsｿｻ~"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     LISTBOX         IDC_LIST,7,26,173,127,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "ｽTｩw",IDOK,22,162,50,14
!     PUSHBUTTON      "ｨｮ",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "ｻ｡ｩ",9,130,162,50,14
!     LTEXT           "ｵLｪkｦﾛｰﾊｧｷs､UｦC AFS ｦｪAｾｹ､Wｪｺ CellServDB ﾀﾉｮﾗ｡G",
!                     IDC_STATIC,12,7,165,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 243, 179
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "ｴｩｱﾏ"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     DEFPUSHBUTTON   "ｽTｩw",IDOK,67,93,50,14
!     PUSHBUTTON      "ｨｮ",IDCANCEL,127,93,50,14
!     PUSHBUTTON      "ｻ｡ｩ(&H)",9,187,93,50,14
!     CONTROL         "ｴｩｱﾏｦｹ｡uﾀﾉｮﾗｦｪAｾｹ｡v､Wｪｺｩﾒｦｳ､ﾀｳﾎｰﾏ(&S)",IDC_SERVER,
!                     "Button",BS_AUTORADIOBUTTON,14,29,176,10
!     CONTROL         "ｴｩｱﾏｿｨ､ﾀｳﾎｰﾏ､Wｪｺｩﾒｦｳｮeﾅ(&P)",IDC_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON,14,42,177,10
!     CONTROL         "ｴｩｱﾏｿｨ､ﾀｳﾎｰﾏ､WｪｺｯSｩwｮeﾅ(&V)",IDC_VOLUME,"Button",
!                     BS_AUTORADIOBUTTON,14,55,177,10
!     EDITTEXT        IDC_VOLUME_NAME,93,68,133,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     PUSHBUTTON      "<< ｶiｶ･(&A) ",IDC_ADVANCED,7,93,50,14
!     GROUPBOX        "",IDC_STATIC,7,19,229,67
!     LTEXT           "ｮeﾅ鬥Wｺﾙ(&N)｡G",IDC_VOLUME_NAME_LABEL,27,69,56,8,
!                     WS_DISABLED
!     GROUPBOX        "ｶiｶ･ｴｩｱﾏｿｶｵ",IDC_ADVANCED_FRAME,7,113,229,62
!     LTEXT           "ｼﾈｦsﾀﾉｸｮ|(&T)｡G",IDC_TEMP_DIR_LABEL,17,159,74,8
!     EDITTEXT        IDC_LOG_FILE,106,141,120,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,140,124,86,12,ES_AUTOHSCROLL
!     LTEXT           "ｵｲｪG､鮟xｪｺﾀﾉｮﾗｦWｺﾙ(&L)｡G",IDC_LOG_FILE_LABEL,17,143,90,
!                     8
!     EDITTEXT        IDC_TEMP_DIR,93,157,133,12,ES_AUTOHSCROLL
!     CONTROL         "･ｭｦ豢ｩｱﾏｧ@ｷ~｡FｳBｲzｼﾆ･ﾘ(&R)｡G",
!                     IDC_NUM_PROCESSES_CHECKBOX,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,17,126,125,10
!     LTEXT           "ｭYｱzｴｩｱﾏｦｪAｾｹｩﾎｾ罸ﾓ､ﾀｳﾎｰﾏ｡AｦｪAｾｹｷ|ｼﾈｮﾉﾂｽu｡C",
!                     IDC_STATIC,38,1,198,17
!     LTEXT           "ｪｵ｡G",IDC_STATIC,7,1,26,8
!     LTEXT           "ﾂ犇ｫｵ{ｦ｡｡Gｽﾐ･Jｲﾓｾ\\\ﾅｪ･H､Uｻ｡ｩ｡Iｦｹｹｸﾜ､雜ｷ|ｦbｰｦ豢ﾁｶ｡ｭｫｷsｽﾕｾ网j､p｡CｦbｯSｩwｱ｡ｪp､U｡Aｹｸﾜ､雜ｷ|ｭｫｷsｽﾕｾ网j､p｡Aｦﾓﾄﾝｩｩｳｺﾝｸsｲﾕ､雜ｪｺ､@､ﾁｳ｣ｷ|ﾁﾂﾃｰ_ｨﾓ｡C",
!                     IDC_STATIC,14,171,229,8,NOT WS_VISIBLE
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS ･Dﾅ魍KｽX"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     EDITTEXT        IDC_PW,48,39,142,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ｽTｩw",IDOK,31,61,50,14
!     PUSHBUTTON      "ｨｮ",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "ｻ｡ｩ",9,140,61,50,14
!     LTEXT           "ｵLｪkｱq pre-3.5 ｡uﾅｲｧOｦｪAｾｹ｡v､Wｨｱo AFS ･Dﾅ鬪ﾆ_｡Cｽﾐｦb､U､霑鬢J AFS ･Dﾅ魍KｽX｡C",
!                     IDC_STATIC,7,7,183,26
!     LTEXT           "ｱKｽX｡G",IDC_STATIC,7,41,35,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "ｴｩｱﾏｮeﾅ - ｵｲｪG"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "ﾃｳｬ(&C)",IDC_CLOSE,225,266,50,14,WS_DISABLED
!     PUSHBUTTON      "ｻ｡ｩ",9,280,266,50,14
!     LTEXT           "<ｩｰｦ豢ﾁｶ｡ｳ]ｩw>",IDC_LOG_TITLE,7,38,263,8
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "<ｩｰｦ豢ﾁｶ｡ｳ]ｩw>",IDC_SALVAGE_STATUS,37,15,185,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 313
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 239
!         HORZGUIDE, 207
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 209
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_BACKUP_SERVER_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 212
!         BOTTOMMARGIN, 197
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 201
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 203
!         VERTGUIDE, 64
!         VERTGUIDE, 203
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 53
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 218
!         VERTGUIDE, 59
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 150
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 250
!         VERTGUIDE, 40
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 90
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 236
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 172
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""AFS Configuration application and wizard""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "､U､@ｨB(&N) >"
!     IDS_FINISH              "ｧｹｦｨ(&F)"
!     IDS_HELP_TITLE          "､wｫ､Uｻ｡ｩｫｶs"
!     IDS_HELP_DESC           "･ﾘｫeｵLｪkｴ｣ｨﾑｻ｡ｩ｡C"
!     IDS_CANCEL_DESC         "ｭnｨｮ｡uAFS ｧﾖｳtｱﾒｰﾊｺﾆF｡vｶﾜ｡H"
!     IDS_PARTITION_ALREADY_CREATED "ｦｹｾｾｹ､W､wｦｳ AFS ､ﾀｳﾎｰﾏ｡C"
!     IDS_NOT_A_FS_SERVER     "ｦｹｾｾｹｨﾃ･ｼｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡Cｮeﾅ鬣uｯ爿ﾘ･ﾟｦb｡uﾀﾉｮﾗｦｪAｾｹ｡vｾｾｹ､W｡C"
!     IDS_ROOT_AFS_ALREADY_EXISTS "ｮﾚｮeﾅ鬢wｸgｦsｦb｡C"
!     IDS_NO_PARTITION_EXISTS "ｨSｦｳ･iｫﾘ･ﾟｮﾚｮeﾅ鬪ｺ､ﾀｳﾎｰﾏ｡Cｭnｫﾘ･ﾟ､ｧｫe｡A､ﾀｳﾎｰﾏ･ｲｶｷ･ｦsｦb｡C"
!     IDS_ALREADY_REPLICATED  "､wｸgｽﾆｻsｮﾚｮeﾅ鬘C"
!     IDS_ROOT_AFS_DOESNT_EXIST "ｮﾚｮeﾅ鬨ﾃ､｣ｦsｦb｡C･ｲｶｷ･ｦｳｮﾚｮeﾅ鬘A､~ｯ爭[･Hｽﾆｻs｡C"
!     IDS_ALREADY_CONFIGURED  "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uAFS ｦｪAｾｹ｡v｡C"
!     IDS_NOTHING_TO_CONFIGURE "ｱzｩ|･ｼｿｾﾜｩﾒｭnｬ[ｺcｪｺｶｵ･ﾘ｡C"
!     IDS_EXIT                "ｵｲｧ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "ｱﾒｰﾊﾀﾉｮﾗｪAｰﾈ"
!     IDS_CANCEL_CONFIG_MSG   "ｦpｪGｲ{ｦbｨｮ｡Aｹqｸ｣ｶﾈｷ|ｧｹｦｨｳ｡･ｪｺ AFS ｦｪAｾｹｬ[ｺc｡CｽTｩwｭnｨｮ｡H"
!     IDS_WIZARD_APP_TITLE    "AFS ｦｪAｾｹｧﾖｳtｱﾒｰﾊｺﾆF"
!     IDS_CANCEL_PENDING      "*** ｨｮﾀﾁｸm - ｽﾐｵyｫﾝ... ***"
!     IDS_CHECK_FS_CONFIG     "ﾀﾉｮﾗｦｪAｾｹﾀﾋｬd..."
!     IDS_CHECK_DB_CONFIG     "ｸｮﾆｮwｦｪAｾｹﾀﾋｬd..."
!     IDS_CHECK_BAK_CONFIG    "ｳﾆ･ｦｪAｾｹﾀﾋｬd..."
!     IDS_CHECK_PARTITION     "AFS ､ﾀｳﾎｰﾏﾀﾋｬd..."
!     IDS_CHECK_ROOT_AFS      "ｮﾚｮeﾅ鯊ﾋｬd..."
!     IDS_CHECK_REP           "ｮﾚｮeﾅ鮨ﾆｻsﾀﾋｬd..."
!     IDS_CANCEL_GET_CONFIG   "ｨｮ､､...ｽﾐｵyｫﾝ..."
!     IDS_ALREADY_A_BACKUP_SERVER "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uｳﾆ･ｦｪAｾｹ｡v｡C"
!     IDS_NOT_A_DB_SERVER     "ｦｹｾｾｹｨﾃ･ｼｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v｡C｡uｳﾆ･ｦｪAｾｹ｡v･uｯ爬b｡uｸｮﾆｮwｦｪAｾｹ｡vｾｾｹ､Wｰｦ譯C"
!     IDS_ALREADY_A_SYS_CONTROL_SERVER "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "ｦｹｾｾｹｨﾃ･ｼｬ[ｺcｬｰ｡uｸｮﾆｮw｡vｩﾎ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡Cｹqｸ｣･ｲｶｷｦPｮﾉｬ[ｺcｬｰ｡uｸｮﾆｮw｡vｩﾎ｡uﾀﾉｮﾗｦｪAｾｹ｡vｾｾｹ｡A､~ｯ牀[ｺcｬｰ｡uｨtｲﾎｱｱｨ｡vｾｾｹ｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "ｮeﾅ"
!     IDS_NAME_OR_ERROR       "ｦWｺﾙ｡]ｩﾎｿｻ~ｰTｮｧ｡^"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "ｦｹｾｾｹｨﾃ･ｼｬ[ｺcｬｰ｡uｸｮﾆｮw｡vｩﾎ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡Cｹqｸ｣･ｲｶｷｦPｮﾉｬ[ｺcｬｰ｡uｸｮﾆｮw｡vｩﾎ｡uﾀﾉｮﾗｦｪAｾｹ｡vｾｾｹ｡A､~ｯ牀[ｺcｬｰ｡u､Gｶiｦ､ﾀｰt｡vｾｾｹ｡C"
!     IDS_CHECK_SCS           "ｨtｲﾎｱｱｨｦｪAｾｹﾀﾋｬd..."
!     IDS_CHECK_SCC           "ｨtｲﾎｱｱｨ･ﾎ､蘯ﾝﾀﾋｬd..."
!     IDS_SIZE                "､j､p"
!     IDS_ERROR_SEP           ",   "
!     IDS_MUST_CONFIG_FS      "･ﾑｩｳoｬO Cell ､､ｪｺｲﾄ､@ｭﾓ｡uAFS ｦｪAｾｹ｡v｡Aｦ]ｦｹｱNｨﾌｹwｳ]ｨﾓｬ[ｺc｡uﾀﾉｮﾗｪAｰﾈ｡v｡C"
!     IDS_MUST_CONFIG_DB      "･ﾑｩｳoｬO Cell ､､ｪｺｲﾄ､@ｭﾓ｡u AFS ｦｪAｾｹ｡v｡Aｦ]ｦｹｱNｨﾌｹwｳ]ｨﾓｬ[ｺc｡uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_MUST_MAKE_PARTITION "･ﾑｩｳoｬO Cell ､､ｪｺｲﾄ､@ｭﾓ｡uAFS ｦｪAｾｹ｡v｡Aｦ]ｦｹ･ｲｶｷｫﾘ･ﾟ､ﾀｳﾎｰﾏ｡C"
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "･ﾑｩｳoｬO Cell ､､ｪｺｲﾄ､@ｭﾓ｡uAFS ｦｪAｾｹ｡v｡Aｦ]ｦｹｱNｨﾌｹwｳ]ｫﾘ･ﾟ root.afs ｻP root.cell ｮeﾅ鬘C"
!     IDS_MUST_REPLICATE      "･ﾑｩｳoｬO Cell ､､ｪｺｲﾄ､@ｭﾓ｡uAFS ｦｪAｾｹ｡v｡Aｦ]ｦｹｱNｨﾌｹwｳ]ｽﾆｻs root.afs ｻP root.cell ｮeﾅ鬘C"
!     IDS_CHECK_AFS_CLIENT    "AFS ･ﾎ､蘯ﾝｦwｸﾋﾀﾋｬd..."
!     IDS_ERROR_HOST_NAME     "ｵLｪkｨMｩwｦｹｾｾｹｪｺ･Dｹqｸ｣ｦWｺﾙ｡C"
!     IDS_ERROR_DRIVE_COMPRESSED "､wﾀ｣ﾁYｺﾏｺﾐｾ"
!     IDS_ERROR_CFG_HOST_OPEN "ｵLｪkｰ_ｩlｳ]ｩw｡uｦｪAｾｹｬ[ｺcｵ{ｦ｡ｮw｡v｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "ｰｱ､ AFS ･ﾎ､蘯ﾝ"
!     IDS_ERROR_LOCAL_HOST_NAME "ｵLｪkｨMｩwｦｹｾｾｹｪｺ･ｻｺﾝ･Dｹqｸ｣ｦWｺﾙ｡C"
!     IDS_GET_TOKENS_ERROR    "ｵLｪkｨｱoｰOｸｹ｡CｽﾐｽTｻ{ｱzｩﾒｿ鬢Jｪｺｨﾏ･ﾎｪﾌｦWｺﾙｻPｱKｽXｬOｧ_･ｿｽT｡C"
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "･ﾑｩｩ|･ｼｱﾒｰﾊﾀﾉｮﾗｪAｰﾈ｡Aｦ]ｦｹｵLｪkｶiｦ豢ｩｱﾏ｡CｽﾐｱﾒｰﾊﾀﾉｮﾗｪAｰﾈ｡AｵMｫ皴ｫｷsｰｦ豢ｩｱﾏ｡C"
!     IDS_SALVAGING           "･ｿｶiｦ豢ｩｱﾏ､､｡Cｽﾐｵyｫﾝ..."
!     IDS_CURRENT_SALVAGE_LOG "ｴｩｱﾏ､鮟x･ﾘｫeｪｺ､ｺｮe｡G"
!     IDS_FINAL_SALVAGE_LOG   "ｴｩｱﾏ､鮟xｪｺｳﾌｲﾗ､ｺｮe｡G"
!     IDS_SALVAGE_COMPLETE    "ｴｩｱﾏ､wｧｹｦｨ｡C"
!     IDS_CANT_GET_SALVAGE_LOG "ｵLｪkｨ･Xｴｩｱﾏ､鮟x｡C"
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK "ｵLｪkｱNｴｩｱﾏ､鮟xﾀxｦsｨｺﾏｺﾐ､W｡C"
!     IDS_VALIDATION_ERROR_TEMPLATE "ｫｩwｪｺ %1 ｵLｮﾄ｡Cｽﾐｭｫｷsｿ鬢J %2｡C"
!     IDS_CELL_NAME_VALIDATION_TYPE "Cell ｦWｺﾙ"
!     IDS_SERVER_NAME_VALIDATION_TYPE "ｦｪAｾｹｦWｺﾙ"
!     IDS_PASSWORD_VALIDATION_TYPE "ｱKｽX"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "ｨﾏ･ﾎｪﾌｦWｺﾙ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "ｩ|･ｼｦwｸﾋ｡uAFS ･ﾎ､蘯ﾝ｡v｡C･ｲｶｷ･ｦwｸﾋ｡uAFS ･ﾎ､蘯ﾝ｡v｡A､~ｯ牀[ｺc｡uAFS ｦｪAｾｹ｡v｡C"
!     IDS_ERROR_AFS_CLIENT_CHECK "ｵLｪkｨMｩwｬOｧ_､wｦwｸﾋ､F｡uAFS ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_ERROR_FS_IS_NOT_NTFS "ﾀﾉｮﾗｨtｲﾎｨﾃｫD NTFS"
!     IDS_ERROR_DRIVE_HAS_DATA "ｺﾏｺﾐｾ･]ｧtｸｮﾆ"
!     IDS_PARTITION_STEP_DESC "ｫﾘ･ﾟ AFS ､ﾀｳﾎｰﾏ"
!     IDS_ERROR_DRIVE_CONTAINS_NT "ｺﾏｺﾐｾ･]ｬA NT ｦwｸﾋ"
!     IDS_DB_STEP_DESC        "ｱﾒｰﾊｸｮﾆｮwｪAｰﾈ"
!     IDS_FS_STEP_DESC        "ｱﾒｰﾊﾀﾉｮﾗｪAｰﾈ"
!     IDS_SCC_STEP_DESC       "ｱﾒｰﾊｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ"
!     IDS_SCS_STEP_DESC       "ｱﾒｰﾊｨtｲﾎｱｱｨｦｪAｾｹ"
!     IDS_ROOT_AFS_STEP_DESC  "ｫﾘ･ﾟｮﾚｮeﾅ"
!     IDS_REP_STEP_DESC       "ｽﾆｻsｮﾚｮeﾅ"
!     IDS_PARTITIONS_PAGE_TITLE "､ﾀｳﾎｰﾏ"
!     IDS_CONFIGURE           "ｬ[ｺc(&C)"
!     IDS_DB_AND_BK_STEP_DESC "ｱﾒｰﾊｸｮﾆｮwｪAｰﾈ｡]･]ｬAｳﾆ･ｦｪAｾｹ｡^"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "ｫﾘ･ﾟ AFS ､ﾀｳﾎｰﾏ"
!     IDS_CONFIG_COMMON_FUNCS "ｬ[ｺcｩﾒｦｳｪAｰﾈｦ@ｳqｪｺ･\ｯ"
!     IDS_START_DB_STEP       "ｱﾒｰﾊｸｮﾆｮwｪAｰﾈ"
!     IDS_START_SCC_STEP      "ｱNｨtｲﾎｱｱｨｦｪAｾｹｱﾒｰﾊｬｰｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ"
!     IDS_START_SCS_STEP      "ｱNｨtｲﾎｱｱｨｦｪAｾｹｱﾒｰﾊｬｰｨtｲﾎｱｱｨｦｪAｾｹ"
!     IDS_CREATE_ROOT_AFS_STEP "ｫﾘ･ﾟ root.afs ｮeﾅ"
!     IDS_REP_STEP            "ｽﾆｻsｮﾚｮeﾅ"
!     IDS_START_AUTH_STEP     "ｨｱoｦｹｦｪAｾｹｪｺｰOｸｹ"
!     IDS_SERVICES_PAGE_TITLE "ｪAｰﾈ"
!     IDS_CONFIG_SUCCEEDED    "､wｶｶｧQｧｹｦｨｬ[ｺc｡C"
!     IDS_CONFIG_CANCELED     "､wｨｮｬ[ｺc｡C"
!     IDS_CONFIG_FAILED       "ｬ[ｺc･｢ｱﾑ｡C\r\n\r\nｸﾔｲﾓｪｺ､鮟xﾀﾉ %1 ､wｦbｦｸm %2 ｫﾘ･ﾟ｡C"
!     IDS_ERROR_NO_LICENSE_NUM "ｧ荀｣ｨ AFS ｱﾂﾅvｸｹｽX｡C"
!     IDS_VERIFY_CLIENT_INSTALL_STEP "ﾅ酖ﾒ AFS ･ﾎ､蘯ﾝｪｺｦwｸﾋ"
!     IDS_SET_SERVER_LICENSE_STEP "ｳ]ｩwｦｹｦｪAｾｹｪｺｱﾂﾅv"
!     IDS_DEFINE_CELL_NAME_STEP "ｩwｸq･ｻ Cell ｪｺｦWｺﾙ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP "ｱNｦｹｦｪAｾｹﾅﾜｦｨ Cell  ｪｺ､@ｭ"
!     IDS_START_BOS_SERVER_STEP "ｱﾒｰﾊ BOS ｦｪAｾｹ"
!     IDS_START_AUTH_SERVER_STEP "ｱﾒｰﾊﾅｲｧOｦｪAｾｹ"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP "ｬｰｦｹｦｪAｾｹｫﾘ･ﾟ･Dﾅ鮟Pｪﾆ_"
!     IDS_START_DB_AND_BK_STEP "ｱﾒｰﾊｸｮﾆｮwｪAｰﾈ｡]･]ｬAｳﾆ･ｦｪAｾｹ｡^"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP "ｫﾘ･ﾟ Cell ｺﾞｲzｪﾌ･Dﾅ"
!     IDS_START_CLIENT_STEP   "ｱﾒｰﾊ AFS ･ﾎ､蘯ﾝ"
!     IDS_SET_ROOT_ACL_STEP   "ｦb root.afs ｮeﾅ鬢Wｳ]ｩw ACL"
!     IDS_CREATE_ROOT_CELL_STEP "ｫﾘ･ﾟ root.cell ｮeﾅ"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP "ｨﾏ･ﾎｼﾐｷﾇｸﾋｸﾂIｸﾋｸ root.cell ｮeﾅ"
!     IDS_SET_ROOT_CELL_ACL_STEP "ｦb root.cell ｮeﾅ鬢Wｳ]ｩw ACL"
!     IDS_MOUNT_ROOT_CELL_RW_STEP "ｨﾏ･ﾎﾅｪｨ / ｼg､JｸﾋｸﾂIｸﾋｸ root.cell"
!     IDS_ENABLE_AUTH_CHECKING_STEP "ｱﾒｰﾊﾅｲｧOﾀﾋｬd"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "ｨｱoｺﾞｲzｰOｸｹ"
!     IDS_RESTART_SERVERS_STEP "ｭｫｷsｱNｦｹｾｾｹ､WｪｺｩﾒｦｳｦｪAｾｹｱﾒｰﾊｬｰﾅｲｧOｦｪAｾｹ"
!     IDS_ALREADY_A_FS_SERVER "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v｡C"
!     IDS_INTRO_PAGE          "ﾂｲ､ｶ"
!     IDS_INFO_PAGE           "Cell ｻPｦｪAｾｹｸｰT"
!     IDS_FS_PAGE             "ﾀﾉｮﾗｪAｰﾈ"
!     IDS_DB_PAGE             "ｸｮﾆｮwｪAｰﾈ"
!     IDS_CFG_TOOL_APP_TITLE  "AFS ｦｪAｾｹｬ[ｺc"
!     IDS_BK_PAGE             "ｳﾆ･ｦｪAｾｹ"
!     IDS_ROOT_AFS_PAGE       "ｮﾚ AFS ｮeﾅ"
!     IDS_NAME                "ｦWｺﾙ"
!     IDS_REP_PAGE            "ｽﾆｻs"
!     IDS_SC_PAGE             "ｨtｲﾎｱｱｨｦｪAｾｹ"
!     IDS_CONFIG_PAGE         "ｬ[ｺcｨtｲﾎ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "AFS ､ﾀｳﾎｰﾏ"
!     IDS_GRAPHIC_FONT        "ｷsｲﾓｩﾅ, 9, B"
!     IDS_CURRENT_STEP        "･ﾘｫeｪｺｨBﾆJ｡G"
!     IDS_ADD_TO_CELLSERVDB_STEP "ｱNｦｹｦｪAｾｹｷsｼWｦﾜ CellServDB"
!     IDS_RESTART_ALL_DB_SERVERS_STEP "ｭｫｷsｱﾒｰﾊ Cell ､WｩﾒｦｳｪｺｸｮﾆｮwｦｪAｾｹ"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "､wｧｹｦｨｬ[ｺc｡Cｪｵ｡G･ｲｶｷｧｷs Cell ､､ｩﾒｦｳｪｺ AFS ･ﾎ､蘯ﾝ CellServDB ﾀﾉｮﾗ｡CｦpｪGｱzｪｺ Cell ｭnｨﾑｨ茹Lｺｯｸｨﾏ･ﾎ｡AｽﾐｱNｳﾌｷsｪｺ｡uｸｮﾆｮwｦｪAｾｹ｡vｲMｳ豢｣ｨﾑｵｹ｡uAFS ｲ｣ｫ~､莇ｩ｡v｡C"
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG "ｱzｭnｱNｦｹｾｾｹｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡vｶﾜ｡H"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG "､｣ｭnｬ[ｺcｬｰｨtｲﾎｱｱｨｦｪAｾｹ(&O)｡C"
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "ｦpｭnｬ[ｺc｡uAFS ｦｪAｾｹ｡v｡A｡uAFS ･ﾎ､蘯ﾝ｡v､]･ｲｶｷｦbｬﾛｦPｪｺ Cell ､､ｬ[ｺcｬｰ｡uｦｪAｾｹ｡v｡CｱNｷ|ｦﾛｰﾊｧｹｦｨｦｹｨBﾆJ｡C"
!     IDS_INFO_PAGE2          "ｺﾞｲz､WｪｺｸｰT"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "､wｧｹｦｨｬ[ｺc｡C\r\n\r\nｪｵ｡GｦpｪGｱzｪｺ Cell ｭnｨﾑｨ茹Lｺｯｸｨﾏ･ﾎ｡AｽﾐｱNｳﾌｷsｪｺ｡uｸｮﾆｮwｦｪAｾｹ｡vｲMｳ豢｣ｨﾑｵｹ｡uAFS ｲ｣ｫ~､莇ｩ｡v｡C"
!     IDS_CONFIG_SCS          "ｬ[ｺcｬｰ Cell ｪｺ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
!     IDS_CONFIG_INTO_CELL_MSG "ｱNｦｹ･Dｹqｸ｣ｬ[ｺcｬｰ Cell"
!     IDS_VIEW_LOG            "ﾀﾋｵ､鮟x(&V)"
!     IDS_VIEW_LOG_ERROR      "ｵLｪkﾀﾋｵ､鮟xﾀﾉ"
!     IDS_ERROR_NO_LOG_FILE   "､鮟xﾀﾉ､｣ｦsｦb｡C"
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED "ｧｷs･Dｹqｸ｣､Wｪｺ CellServDB "
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED "ｵLｪkｧｷs･Dｹqｸ｣､Wｪｺ CellServDB "
!     IDS_CELL_NAME_LEN_ERROR "ｱzｩﾒｿ鬢Jｪｺ Cell ｦWｺﾙ､ﾓｪ｡CCell ｦWｺﾙ､｣ｱoｶWｹL 64 ｭﾓｦr､ｸ｡C"
!     IDS_CONFIG_CHECK_FAILED "ｵLｪkｨMｩwｦｹｾｾｹ･ﾘｫeｪｺｬ[ｺc｡C"
!     IDS_YES                 "ｬO"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "ｧ_"
!     IDS_FREE                "･i･ﾎｪﾅｶ｡"
!     IDS_TOTAL               "ﾁ`ｭp､j､p"
!     IDS_DRIVE2              "ｺﾏｺﾐｾ"
!     IDS_SERVICE_STATUS      "ｪｬｺA"
!     IDS_SERVICE             "ｪAｰﾈ"
!     IDS_FS_RUNNING          "･ﾘｫe･ｿｦbｰｦ譯uﾀﾉｮﾗｪAｰﾈ｡v｡C"
!     IDS_FS_STOPPED          "･ﾘｫeｨﾃ･ｼｰｦ譯uﾀﾉｮﾗｪAｰﾈ｡v｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "･ﾘｫe･ｿｦbｰｦ譯uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_DB_STOPPED          "･ﾘｫeｨﾃ･ｼｰｦ譯uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_BK_RUNNING          "･ﾘｫe･ｿｦbｰｦ譯uｳﾆ･ｪAｰﾈ｡v｡C"
!     IDS_BK_STOPPED          "･ﾘｫeｨﾃ･ｼｰｦ譯uｳﾆ･ｪAｰﾈ｡v｡C"
!     IDS_SCS_STOPPED         "･ﾘｫeｨﾃ･ｼｰｦ譯uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
!     IDS_SCC_STOPPED         "･ﾘｫeｨﾃ･ｼｰｦ譯uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_FS_HOW_TO_RUN       "ｦpｭnｱﾒｰﾊ｡uﾀﾉｮﾗｪAｰﾈ｡v｡Aｽﾐ､ﾄｿ､Wｭｱｪｺ､雜｡C"
!     IDS_FS_HOW_TO_STOP      "ｦpｭnｰｱ､｡uﾀﾉｮﾗｪAｰﾈ｡v｡Aｽﾐｨｮ､Wｭｱｪｺ､雜､ﾄｿ｡C"
!     IDS_DB_HOW_TO_RUN       "ｦpｭnｱﾒｰﾊ｡uｸｮﾆｮwｪAｰﾈ｡v｡Aｽﾐ､ﾄｿ､Wｭｱｪｺ､雜｡C"
!     IDS_DB_HOW_TO_STOP      "ｦpｭnｰｱ､｡uｸｮﾆｮwｪAｰﾈ｡v｡Aｽﾐｨｮ､Wｭｱｪｺ､雜､ﾄｿ｡C"
!     IDS_BK_HOW_TO_RUN       "ｦpｭnｱﾒｰﾊ｡uｳﾆ･ｪAｰﾈ｡v｡Aｽﾐ､ﾄｿ､Wｭｱｪｺ､雜｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "ｦpｭnｰｱ､｡uｳﾆ･ｪAｰﾈ｡v｡Aｽﾐｨｮ､Wｭｱｪｺ､雜､ﾄｿ｡C"
!     IDS_SCS_HOW_TO_RUN      "ｦpｭnｱﾒｰﾊ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡Aｽﾐ､ﾄｿ､Wｭｱｪｺ､雜｡C"
!     IDS_SCS_HOW_TO_STOP     "ｦpｭnｰｱ､｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡Aｽﾐｨｮ､Wｭｱｪｺ､雜､ﾄｿ｡C"
!     IDS_DB_PARTIAL_CONFIG   "､wｳ｡･ｬ[ｺc｡uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_DB_DETAILS          "ｫ､@､U｡uｩｲﾓ｡vｫｶs｡Aｬdｾ\ｸﾔｲﾓｸｰT｡C"
!     IDS_BK_DISABLED         "､wｰｱ･ﾎ｡uｳﾆ･ｪAｰﾈ｡v｡C"
!     IDS_BK_ENABLE           "ｦpｭnｱﾒｰﾊ｡uｳﾆ･ｪAｰﾈ｡v｡Aｱz･ｲｶｷｰｦ譯uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_SC_DISABLED         "､wｰｱ･ﾎｦｹｦｪAｾｹ｡C"
!     IDS_SC_ENABLE           "ｦpｭnｱﾒｰﾊｦｹｦｪAｾｹ｡Aｱz･ｲｶｷｰｦ譯uﾀﾉｮﾗｪAｰﾈ｡vｩﾎ｡uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_FS_WILL_RUN         "ｱNｷ|ｱﾒｰﾊ｡uﾀﾉｮﾗｪAｰﾈ｡v｡C"
!     IDS_FS_WILL_STOP        "ｱNｷ|ｰｱ､｡uﾀﾉｮﾗｪAｰﾈ｡v｡C"
!     IDS_DB_WILL_RUN         "ｱNｷ|ｱﾒｰﾊ｡uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_DB_WILL_STOP        "ｱNｷ|ｰｱ､｡uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_BK_WILL_RUN         "ｱNｷ|ｱﾒｰﾊ｡uｳﾆ･ｪAｰﾈ｡v｡C"
!     IDS_BK_WILL_STOP        "ｱNｷ|ｰｱ､｡uｳﾆ･ｪAｰﾈ｡v｡C"
!     IDS_SCS_WILL_RUN        "ｱNｷ|ｱﾒｰﾊ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "ｱNｷ|ｰｱ､｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "ｺﾏｺﾐｾ､wｬO AFS ､ﾀｳﾎｰﾏ"
!     IDS_VOLUME_HAS_NO_NAME  "<ｮeﾅ鬨SｦｳｦWｺﾙ>"
!     IDS_PARTITION_CREATED   "､wｶｶｧQｫﾘ･ﾟｷsｪｺ｡uAFS ､ﾀｳﾎｰﾏ｡v｡C"
!     IDS_PARTITION_EXISTS    "ｱzｩﾒｿ鬢Jｪｺ､ﾀｳﾎｰﾏｦWｺﾙ､wｦｳｨ茹L､ﾀｳﾎｰﾏｦbｨﾏ･ﾎ｡C"
!     IDS_SCS_RUNNING         "･ﾘｫe･ｿｦbｰｦ譯uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN "ｦｹｺﾏｺﾐｾ･u･]ｧt｡uｸｷｽｦ^ｦｬｵｩ｡v｡C"
!     IDS_SCC_WILL_RUN        "ｱNｷ|ｱﾒｰﾊ｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_SCC_WILL_STOP       "ｱNｷ|ｰｱ､｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_SCC_RUNNING         "･ﾘｫe･ｿｦbｰｦ譯uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_SCC_HOW_TO_RUN      "ｦpｭnｱﾒｰﾊ｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡Aｽﾐ､ﾄｿ､Wｭｱｪｺ､雜｡C"
!     IDS_SCC_HOW_TO_STOP     "ｦpｭnｰｱ､｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡Aｽﾐｨｮ､ﾄｿ､Wｭｱｪｺ､雜｡C"
!     IDS_SCS_ENABLE          "ｦpｭnｱﾒｰﾊｦｹｦｪAｾｹ｡Aｱz･ｲｶｷｰｱ､ｰｦ譯uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_SCC_ENABLE          "ｦpｭnｱﾒｰﾊｦｹｦｪAｾｹ｡Aｱz･ｲｶｷｰｱ､ｰｦ譯uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
!     IDS_UNCONFIG_DB_STEP    "ｨｮｬ[ｺcｸｮﾆｮwｪAｰﾈ"
!     IDS_UNCONFIG_DB_STEP_DESC "ｨｮｬ[ｺcｸｮﾆｮwｪAｰﾈ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP "ｨｮｬ[ｺcｸｮﾆｮwｪAｰﾈ｡]ｻPｳﾆ･ｦｪAｾｹ｡^"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC "ｨｮｬ[ｺcｸｮﾆｮwｪAｰﾈ｡]ｻPｳﾆ･ｦｪAｾｹ｡^"
!     IDS_UNCONFIG_BK_STEP    "ｨｮｬ[ｺcｳﾆ･ｦｪAｾｹ"
!     IDS_UNCONFIG_BK_STEP_DESC "ｨｮｬ[ｺcｳﾆ･ｦｪAｾｹ"
!     IDS_UNCONFIG_FS_STEP    "ｨｮｬ[ｺcﾀﾉｮﾗｪAｰﾈ"
!     IDS_UNCONFIG_FS_STEP_DESC "ｨｮｬ[ｺcﾀﾉｮﾗｪAｰﾈ"
!     IDS_UNCONFIG_SCS_STEP   "ｨｮｬ[ｺcｨtｲﾎｱｱｨｦｪAｾｹ"
!     IDS_UNCONFIG_SCS_STEP_DESC "ｨｮｬ[ｺcｨtｲﾎｱｱｨｦｪAｾｹ"
!     IDS_UNCONFIG_SCC_STEP   "ｨｮｬ[ｺcｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ"
!     IDS_UNCONFIG_SCC_STEP_DESC "ｨｮｬ[ｺcｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ"
!     IDS_INVALIDATE_CONFIG_INFO_STEP "ｨﾏｦｹｾｾｹｪｺｬ[ｺcｸｰT･｢ｮﾄ"
!     IDS_CLOSE               "ﾃｳｬ(&C)"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "ｮﾗｵLｪkｦb､UｦC  AFS ｦｪAｾｹ､Wｧｷs CellServDB ﾀﾉ｡CｳoｨﾃｫDﾄYｭｫｪｺｿｻ~｡C\r\n"
!     IDS_DELETE_PARTITION_PROMPT "ｯuｪｺｭnｧRｰ｣､ﾀｳﾎｰﾏ '%1'｡H"
!     IDS_INVALIDATE_CFG_INFO "･ﾘｫeｦｹｹqｸ｣ｨﾃｨSｦｳ･ｿｦbｰｦ讙ｺ AFS ｦｪAｾｹｳBｲz｡CｱzｭnｱNｬ[ｺcｸｰTｱqｦｹｾｾｹ､Wｲｾｰ｣ｶﾜ｡H"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "Cell ､wｸg､｣ｦsｦb｡C｡uAFS ｬ[ｺc｡vﾀｳ･ﾎｵ{ｦ｡･uｯ爭ﾎｨﾓｬ[ｺc､wｬ[ｺcｦb AFS Cell ､ｧｦｪAｾｹｾｾｹ｡C｡uAFS ｬ[ｺcｺﾆF｡v･i･ﾎｨﾓｱﾒｰﾊｷsｪｺ Cell｡C"
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "｡uAFS ｬ[ｺc｡vﾀｳ･ﾎｵ{ｦ｡･ｲｶｷ･ﾟｧYｲﾗ､｡Aｦ]ｬｰｸﾓｵ{ｦ｡･uｯ爬b､wｬ[ｺcｬｰ AFSｦｪAｾｹ､ｧｾｾｹ､Wｰｦ譯CｦpｭnｱNｦｹｾｾｹｦAｦｸｬ[ｺcｬｰ AFS ｦｪAｾｹ｡Aｽﾐｰｦ譯uAFS ｬ[ｺcｺﾆF｡v｡C"
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "ｦｹｾｾｹ､w､｣ｦAｬ[ｺcｬｰ｡uAFS ｦｪAｾｹ｡v｡C｡uAFS ｬ[ｺc｡vﾀｳ･ﾎｵ{ｦ｡･uｯ爭ﾎｨﾓｬ[ｺc｡uAFS ｦｪAｾｹ｡vｾｾｹ｡C｡uAFS ｬ[ｺcｺﾆF｡v･iｱNｦｹｾｾｹｦAｦｸｬ[ｺcｬｰ｡uAFS ｦｪAｾｹ｡v｡C"
!     IDS_GET_TOKENS_FAILED   "ｵLｪkｨｱoｫｩw Cell ｪｺｰOｸｹ｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "ｱﾒｰﾊｳﾆ･ｦｪAｾｹ"
!     IDS_BK_STEP_DESC        "ｱﾒｰﾊｳﾆ･ｦｪAｾｹ"
!     IDS_CONFIG_ERROR        "ｵo･ﾍ､Fｬ[ｺcｿｻ~"
!     IDS_CREATE_PARTITION_ERROR "ｵLｪkｫﾘ･ﾟ､ﾀｳﾎｰﾏ"
!     IDS_REMOVE_PARTITION_ERROR "ｵLｪkｲｾｰ｣､ﾀｳﾎｰﾏ"
!     IDS_READ_PARTITIONS_ERROR "ｵLｪkﾅｪｨ､ﾀｳﾎｰﾏｪｮ"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\n ｹLｦｭｲﾗ､ CellServDB ｧｷsｳBｲz｡Cｳ｡･ｦｪAｾｹ･iｯ爻|･ｼｧｷs｡C"
!     IDS_GET_PARTITION_LIST_ERROR "ｵLｪkｨMｩwｦｹｦｪAｾｹｪｺ､ﾀｳﾎｰﾏ"
!     IDS_EXPORTED            "ｶﾗ･X"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "ｶﾗ･Xｪｺ､ﾀｳﾎｰﾏｦb｡uﾀﾉｮﾗｪAｰﾈ｡vｰｦ豢ﾁｶ｡ｵLｪkｲｾｰ｣｡Cｲｾｰ｣ｦｹ､ﾀｳﾎｰﾏ､ｧｫe｡Aｱz･ｲｶｷｰｱ､｡uﾀﾉｮﾗｪAｰﾈ｡v｡C"
!     IDS_CHECK_CONFIG_INFO   "ﾀﾋｬdｦｳｮﾄｪｺｬ[ｺcｸｰT..."
!     IDS_ERROR_CFG_HOST_CLOSE "ｵLｪkﾃｳｬ｡uｦｪAｾｹｬ[ｺcｵ{ｦ｡ｮw｡v｡C"
!     IDS_FAILED_OPEN_CELL    "ｵLｪkｶ}ｱﾒ Cell｡C"
!     IDS_FAILED_OPEN_NULL_CELL "ｵLｪkｶ}ｱﾒ NULL Cell ｱｱﾂI"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ｦpｪGｮﾚｮeﾅ鬢｣ｦsｦb｡Aｱzｭn･[･Hｫﾘ･ﾟｶﾜ｡H"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ｦpｪGｮﾚｮeﾅ鬣ｼｽﾆｻs｡Aｱzｭn･[･Hｽﾆｻsｶﾜ｡H"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS ｦｪAｾｹ"
!     IDS_CANT_INIT_ADMIN_LIBS "ｵLｪkｰｦ讎ｹﾀｳ･ﾎｵ{ｦ｡｡Gｵ{ｦ｡ｮwｰ_ｩlｳ]ｩw､w･｢ｱﾑ｡C"
!     IDS_CANT_OPEN_LOG_FILE  "ｵLｪkｶ}ｱﾒ､鮟xﾀﾉ｡C"
!     IDS_NEED_CLIENT_INFO    "･ﾑｩｦｹｹqｸ｣ｨﾃ･ｼｬ[ｺc｡uAFS ･ﾎ､蘯ﾝ｡v｡Aｦ]ｦｹｵLｪkｰｦ譯uAFS ｬ[ｺc｡vﾀｳ･ﾎｵ{ｦ｡｡Cｦbｳoｺﾘｱ｡ｧﾎ､U｡A･i･Hｨﾏ･ﾎ｡uAFS ｬ[ｺcｺﾆF｡v｡Cｭnｰｦ譯uAFS ｬ[ｺcｺﾆF｡vｶﾜ｡H"
!     IDS_NEED_SERVER_INFO    "ｦｹｹqｸ｣･ｼｬ[ｺcｬｰ｡uAFS ｦｪAｾｹ｡v｡CｦpｭnｱNｦｹｹqｸ｣ｬ[ｺcｬｰ｡uAFS ｦｪAｾｹ｡v｡Aｭｺ･･ｲｶｷｨﾏ･ﾎ｡uAFS ｬ[ｺcｺﾆF｡v｡AｵMｫ皃~ｯ爲ﾏ･ﾎ｡uAFS ｬ[ｺc｡vﾀｳ･ﾎｵ{ｦ｡｡Cｭn･ｰｦ譯uAFS ｬ[ｺcｺﾆF｡v･Hｬ[ｺcｦｹｹqｸ｣ｶﾜ｡H"
!     IDS_ADVANCED_OPEN       "<< ｶiｶ･(&A)"
!     IDS_ADVANCED_CLOSED     "ｶiｶ･(&A) >>"
!     IDS_BOS_OPEN_FAILED     "ｵLｪkｳsｱｵｦｪAｾｹ｡]bos ｶ}ｱﾒ･｢ｱﾑ｡^｡C"
!     IDS_SALVAGE_ERROR       "ｴｩｱﾏｧ@ｷ~･｢ｱﾑ｡C"
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "ｩﾒｫｩwｪｺｴｩｱﾏｳBｲzｼﾆ･ﾘｵLｮﾄ｡CｴｩｱﾏｳBｲzｪｺｼﾆ･ﾘ･ｲｶｷ､ｶｩ 1 ｨ 32 ､ｧｶ｡｡C"
!     IDS_WRONG_CELL          "ｱzｦbｫeｶｵｨBﾆJｫｩw､Fｨｱoｬ[ｺcｸｰTｪｺｦｪAｾｹ｡CｩﾒｫｩwｪｺｦｪAｾｹｨﾃ､｣ﾄﾝｩｱzｭn･[､Jｪｺ Cell ､､｡I"
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "ｵLｪkｧｷs､@ｨﾇｦb Cell ､､ｦｪAｾｹ､Wｪｺ CellServDB ﾀﾉ｡Cｦpｭnﾀﾋｵ､wｧｷsｻP･ｼｧｷsｪｺｦｪAｾｹｲMｳ譯Aｽﾐﾀﾋｵﾀxｦsｦbﾀﾉｮﾗ､Wｪｺｬ[ｺc､鮟x"
!     IDS_GET_CREDENTIALS_STEP "ｨｱoｺﾞｲzｰOｸｹ"
!     IDS_MUST_ENTER_SCS_NAME "ｮiｶ}ｬ[ｺc､ｧｫe｡A･ｲｶｷ･ｿ鬢J｡uｨtｲﾎｱｱｨｾｾｹ｡vｦWｺﾙ｡C"
!     IDS_NOT_SAME_CELL       "｡uAFS ･ﾎ､蘯ﾝ｡vｬ[ｺcｦb｡uAFS ｦｪAｾｹ｡v･H･~ｪｺ､｣ｦP Cell ､､｡Cｦbｱzｬ[ｺc｡u AFS ｦｪAｾｹ｡v､ｧｫe｡Aｱz･ｲｶｷ･ｱN｡uAFS ･ﾎ､蘯ﾝ｡vｭｫｷsｬ[ｺcｦb｡uｦｪAｾｹ｡vｪｺ Cell ､､｡C"
!     IDS_LAST_DB_SERVER      "ｦｹｾｾｹ･ｿｦbｰｦ Cell ､Wｳﾌｫ皙ｺｸｮﾆｮwｦｪAｾｹ｡CｭYｱzﾄ~ﾄｨﾃｨｮｦbｦｹｾｾｹ､WｪｺｸｮﾆｮwｪAｰﾈｬ[ｺc｡ACell ｱN､｣ｦAｦsｦb｡Aｦﾓ･Bｨ茹Lｦbｦｹｾｾｹ､Wｰｦ讙ｺ AFS ｪAｰﾈｱNｨｮｬ[ｺc｡CｱzｽTｩwｭnﾄ~ﾄ｡H"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "AFS ･Dﾅ鬪ｺｱKｽXｵLｮﾄ｡C"
!     IDS_ERROR_CLIENT_VERSION 
!                             "ｦｹｹqｸ｣､W｡uAFS ･ﾎ､蘯ﾝ｡vｪｺｪｩ･ｻｻP｡uAFS ｦｪAｾｹ｡v､｣ｬﾛｮe｡C｡uAFS ｦｪAｾｹ｡vｦﾜ､ﾖｻﾝｭn｡uAFS ･ﾎ､蘯ﾝ｡v3.5 ･H､Wｪｺｪｩ･ｻ｡C"
!     IDS_CANT_MAP_ROOT_AFS   "ｦpｭnｦbｮﾚｮeﾅ鬢Wｳ]ｩw ACL｡Aｺﾏｺﾐｾ･Nｸｹ･ｲｶｷｹﾀｳｦﾜ AFS ､W｡C･ﾘｫeｨﾃｨSｦｳ･i･ﾎｪｺｺﾏｺﾐｾ･Nｸｹ｡Cｽﾐﾄﾀｩ､@ｭﾓｺﾏｺﾐｾ･Nｸｹｨﾃｫ､@､U｡uｽTｩw｡v｡C"
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "､ﾀｳﾎｰﾏｦWｺﾙ"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "ｮeﾅ鬥Wｺﾙ"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE "ｴｩｱﾏｳBｲzｪｺｼﾆ･ﾘ"
!     IDS_PATH_NAME_VALIDATION_TYPE "ｸｮ|ｦWｺﾙ"
!     IDS_FILE_NAME_VALIDATION_TYPE "ﾀﾉｦW"
!     IDS_GENERIC_VALIDATION_TYPE "ｭﾈ"
! END
! 
! #endif    // Chinese (Taiwan) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 7,1159 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS Configuration application and wizard"
  #define AFS_VERINFO_NAME "afscfg"
  #define AFS_VERINFO_FILENAME "afscfg.exe"
  #define AFS_VERINFO_LANG_CODE 0x404
  #define AFS_VERINFO_CHARSET 950
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // Chinese (Taiwan) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHT)
! #ifdef _WIN32
! LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_WIZARD DIALOGEX 0, 0, 320, 246
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_CONTEXTHELP | WS_EX_CONTROLPARENT
! CAPTION "AFS ｦｪAｾｹｧﾖｳtｱﾒｰﾊｺﾆF"
! FONT 9, "ｷsｲﾓｩﾅ", 0, 0, 0x1
! BEGIN
!     PUSHBUTTON      "ｨｮ(&L)",IDCANCEL,101,225,50,14
!     PUSHBUTTON      "< ､W､@ｨB(&B)",IDBACK,155,225,50,14
!     DEFPUSHBUTTON   "､U､@ｨB(&N) >",IDNEXT,209,225,50,14
!     PUSHBUTTON      "ｻ｡ｩ(&H)",9,263,225,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,8,214,305,1
!     LTEXT           "",IDC_WIZARD_LEFTPANE,7,7,91,200,SS_SUNKEN
!     LTEXT           "",IDC_WIZARD_RIGHTPANE,103,7,210,200
! END
! 
! IDD_PARTITION_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ", 0, 0, 0x1
! BEGIN
!     CONTROL         "ｬO(&Y)｡Aｫﾘ･ﾟ､ﾀｳﾎｰﾏ｡C",IDC_CREATE_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,94,87,10
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,12,121,
!                     186,38,WS_EX_CLIENTEDGE
!     EDITTEXT        IDC_PARTITION_NAME,124,165,33,12,ES_AUTOHSCROLL
!     CONTROL         "ｧ_(&O)｡A､｣ｭnｫﾘ･ﾟ､ﾀｳﾎｰﾏ｡C",IDC_DONT_CREATE_PARTITION,
!                     "Button",BS_AUTORADIOBUTTON,0,184,102,8
!     LTEXT           "｡uﾀﾉｮﾗｦｪAｾｹ｡vｷ|ﾀxｦsｨﾃｶﾇｰeﾀﾉｮﾗｻPｵ{ｦ｡ｨ AFS ･ﾎ､蘯ﾝ｡CｦpｪGｭnｳzｹL AFS ｦ@ｨﾉﾀxｦsｦb･ｻｨtｲﾎｪｺｸｮﾆ｡Aｦﾜ､ﾖｦｳ､@ｭﾓ NTFS ｮeﾅ鬣ｲｶｷｬOｱMﾄﾝｪｺ AFS ､ﾀｳﾎｰﾏ｡C",
!                     -1,4,15,198,25
!     LTEXT           "ｿｨｧ@ｬｰ､ﾀｳﾎｰﾏｨﾏ･ﾎｪｺｮeﾅ(&S)｡G",IDC_SELECT_DRIVE,12,106,
!                     163,9
!     LTEXT           "AFS ､ﾀｳﾎｰﾏｦWｺﾙ(&M)｡G  /vicep",IDC_NAME_LABEL,11,167,107,
!                     8
!     LTEXT           "ｦb･ｻ｡uﾀﾉｮﾗｦｪAｾｹ｡v､Wｫﾘ･ﾟ AFS ､ﾀｳﾎｰﾏ｡C",IDC_TITLE,4,2,
!                     198,8
!     LTEXT           "AFS ､ﾀｳﾎｰﾏｹｻﾚ､Wｬﾛｷｩ NTFS ｮeﾅ鬘AｵMｦﾓ･ｦﾁﾙ･]ｬA､ﾀｳﾎｰﾏ､W｡AｦｳﾃｸｰTｵｲｺcｻPｦｸmｪｺｯSｩw meta ｸｮﾆ｡C",
!                     -1,4,42,198,25
!     LTEXT           "ｱzｭnｦbｳoｭﾓ｡uﾀﾉｮﾗｦｪAｾｹ｡v､Wｫﾘ･ﾟ､ﾀｳﾎｰﾏｶﾜ｡H",
!                     IDC_ASK_CREATE_PARTITION,4,75,198,18
!     LTEXT           "･ｲｭnｮﾉ｡Aｩｰｦ豢ﾁｶ｡ｳ]ｩwｰTｮｧ｡C",IDC_PARTITION_MSG,3,167,
!                     186,31,NOT WS_VISIBLE
!     LTEXT           "",IDC_PARTITION_COVER,0,75,210,92,NOT WS_VISIBLE
! END
! 
! IDD_FILE_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "ｬO(&Y)｡Aｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡C",
!                     IDC_SHOULD_CONFIG_FILE_SERVER,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,0,178,114,10
!     CONTROL         "ｧ_(&O)｡A､｣ｭnｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡C",
!                     IDC_DONT_CONFIG_FILE_SERVER,"Button",BS_AUTORADIOBUTTON,
!                     0,189,133,10
!     LTEXT           "｡uAFS ﾀﾉｮﾗｪAｰﾈ｡vｱNｱqｦｹｦｪAｾｹ､WｱNｩﾒｭnｨDｪｺﾀﾉｮﾗｻPｵ{ｦ｡ｶﾇｰeｨ AFS ･ﾎ､蘯ﾝ｡CｳoｶｵｪAｰﾈｦPｮﾉ､]ｳBｲzｩﾒｦｳｪｺｮeﾅ鮗ﾞｲzｧ@ｷ~｡Aｨﾒｦpｫﾘ･ﾟ｡BｧRｰ｣｡Bｲｾｰ｣ｻPｽﾆｻsｮeﾅ鬘C",
!                     -1,4,38,198,34
!     LTEXT           "ｱN･ｻｾｾｹｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡C",IDC_TITLE,4,1,198,8
!     LTEXT           "ｱzｭnｱN･ｻｾｾｹｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡vｶﾜ｡H",
!                     IDC_CREATE_FS_QUESTION,4,166,198,8
!     LTEXT           "ｦpｭnｱN･ｻｾｾｹｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡Aｱz･ｲｶｷｬ[ｺc｡uﾀﾉｮﾗｪAｰﾈ｡v｡C",
!                     -1,4,15,198,17
!     LTEXT           "ｪｵ｡Gｦｹｾｾｹ･ﾘｫeｨSｦｳ･i･ﾎｪｺｺﾏｺﾐｾ｡Aｦ]ｦｹｵLｪkｱNﾀﾉｮﾗﾀxｦsｨ AFS｡CﾁｵMｱz･i･HｱN･ｻｾｾｹｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡AｦｬOｱz､｣ｯ牾N AFS ｸｮﾆﾀxｦsｦbｦｹｾｾｹ､W｡C",
!                     IDC_NO_DRIVES_NOTE,4,77,198,32,NOT WS_VISIBLE
!     LTEXT           "ｦpｭnｫﾘ･ﾟｺﾏｺﾐｾ｡Aｽﾐｨﾏ･ﾎ Windows NT ｺﾏｺﾐｨtｲﾎｺﾞｲzｪﾌ｡C",
!                     IDC_DISK_ADMIN_NOTE,4,112,198,16,NOT WS_VISIBLE
!     LTEXT           "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡C",IDC_MSG,10,166,199,34,
!                     NOT WS_VISIBLE
! END
! 
! IDD_INTRO_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     LTEXT           "ﾅwｪｨﾏ･ﾎ｡uAFS ｦｪAｾｹｧﾖｳtｱﾒｰﾊｺﾆF｡v｡A･ｻｺﾆFｱNﾀｰｧUｱzｧﾖｳtｦaｦbｦｹ Windows NT ｨtｲﾎ､Wｬ[ｺc｡uAFS ｦｪAｾｹ｡v｡C",
!                     IDC_TITLE,2,4,198,25
!     LTEXT           "ｽﾐｫ｡u､U､@ｨB｡v｡Aｶ}ｩlｬ[ｺc｡uAFS ｦｪAｾｹ｡v｡C",IDC_STATIC,0,
!                     166,209,8
! END
! 
! IDD_REPLICATION_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "ｬO(&Y)｡Aｽﾆｻsｮﾚｮeﾅ鬘C",IDC_REPLICATE,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,4,178,198,10
!     CONTROL         "ｧ_(&O)｡A､｣ｭnｽﾆｻsｮﾚｮeﾅ鬘C",IDC_DONT_REPLICATE,"Button",
!                     BS_AUTORADIOBUTTON,4,189,198,10
!     LTEXT           "ｽﾆｻsｴNｬOｦbｼﾆｭﾓ､ﾀｳﾎｰﾏ｡Aｳqｱ`ｬOｦbｨ茹Lｪｺ｡uﾀﾉｮﾗｦｪAｾｹ｡v､W｡Aｫﾘ･ﾟｮeﾅ魏ﾟﾅｪｽﾆ･ｻｪｺｵ{ｧﾇ｡CｦbｺｸｩﾎｦｪAｾｹｵo･ﾍｹBｧ@､､ﾂ_ｪｺｱ｡ｪp､U｡Aｽﾆｻs･i･HｼW･[ｮeﾅ鬪ｺ･i･ﾎｩﾊ｡A",
!                     IDC_STATIC,4,38,198,25
!     LTEXT           "ｱzｭnｽﾆｻsｮﾚｮeﾅ鮓ﾜ｡H",IDC_REPLICATE_QUESTION,4,165,198,8
!     LTEXT           "ｽﾆｻs､]･iﾁﾗｧK･､@ｦｪAｾｹｦ]ｮeﾅ鬥sｨﾀWｲvｹLｰｪｦﾓｭtｲｹLｭｫ｡C",
!                     IDC_STATIC,4,85,187,25
!     LTEXT           "ｽﾆｻs Cell ｮﾚｮeﾅ鬘C",IDC_TITLE,4,2,198,8
!     LTEXT           "ｭYｱzｭpｵeｽﾆｻsｦｹ AFS Cell ｪｺｨ茹Lｮeﾅ鬘Aｱz･ｲｶｷ･ｽﾆｻsｮﾚｮeﾅ鬘C",
!                     IDC_STATIC,4,17,191,16
!     LTEXT           "ｸU､@ｦｹｮeﾅ鬩ﾒｦbｪｺｦｪAｾｹ､ｧ､@ﾅﾜｱoｵLｪkｨﾏ･ﾎ｡Aｱz､ｴ･iｱqｨ茹LｦｪAｾｹ､Wｦsｨｸﾓｮeﾅ鬘C",
!                     IDC_STATIC,4,64,198,21
!     LTEXT           "･ｲｭnｮﾉ｡Aｩｰｦ豢ﾁｶ｡ｳ]ｩwｰTｮｧ｡C",IDC_CANT_REPLICATE_MSG,7,
!                     166,202,34,NOT WS_VISIBLE | NOT WS_GROUP
! END
! 
! IDD_ROOT_VOLUMES_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "ｬO(&Y)｡Aｫﾘ･ﾟｮﾚｮeﾅ鬘C",IDC_CREATE_ROOT_VOLUMES,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,4,177,203,10
!     CONTROL         "ｧ_(&O)｡A､｣ｭnｫﾘ･ﾟｮﾚｮeﾅ鬘C",IDC_DONT_CREATE_ROOT_VOLUMES,
!                     "Button",BS_AUTORADIOBUTTON,4,188,203,10
!     LTEXT           "ｦb AFS ､､｡Aｮeﾅ鬯ｰｬﾛﾃﾀﾉｮﾗｪｺｶｰｦX｡Aｦﾓｳoｨﾇﾀﾉｮﾗｫhｲﾕﾂｴｦｨｳ讀@･Bｩｩｺﾞｲzｪｺｳ讀ｸ｡A･HｧQｨtｲﾎｺﾞｲz｡C",
!                     IDC_STATIC,4,15,198,17
!     LTEXT           "ｱzｭnｫﾘ･ﾟｮﾚｮeﾅ鮓ﾜ｡H",IDC_ROOT_AFS_QUESTION,4,164,203,8
!     LTEXT           "ｫﾘ･ﾟ Cell ｪｺｮﾚｮeﾅ鬘C",IDC_TITLE,4,0,203,8
!     LTEXT           "､@･ｹｫﾘ･ﾟ､ｧｫ癸AｧY･iｦb AFS ﾀﾉｮﾗｪﾅｶ｡､､ｦﾛｰﾊｦsｨｮﾚｮeﾅ鬘C",
!                     IDC_STATIC,4,67,202,17
!     LTEXT           "･ｲｭnｮﾉ｡Aｩｰｦ豢ﾁｶ｡ｳ]ｩwｪｺｰTｮｧ｡C",IDC_ROOT_AFS_MSG,5,164,
!                     202,33,NOT WS_VISIBLE
!     LTEXT           "root.afs ｮeﾅ鬯O AFS ﾀﾉｮﾗｪﾅｶ｡ｪｺｮﾚ｡Croot.Cell ｮeﾅ鬯ｰ AFS ﾀﾉｮﾗｪﾅｶ｡､ｧ Cell ､lｾｪｺｮﾚ｡Aｨﾃ･Bｱq root.afs ｳzｹLｸﾋｸﾂIｨﾓｦsｨ｡C",
!                     IDC_STATIC,4,36,198,25
! END
! 
! IDD_GET_CURRENT_CONFIG DIALOG DISCARDABLE  0, 0, 198, 84
! STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
! CAPTION "AFS ｦｪAｾｹｬ[ｺc"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER,
!                     36,38,148,14
!     LTEXT           "ｧ@ｷ~､螯r - ｩｰｦ谿ﾉｴﾁｳ]ｩw｡C",IDC_OPERATION,35,20,145,10
!     ICON            "",IDC_LOGO,7,7,20,20
!     PUSHBUTTON      "ｨｮ",IDCANCEL,73,63,50,14
!     LTEXT           "ｨMｩw･ﾘｫeｪｺｬ[ｺc｡G",IDC_OPERATION2,35,7,156,10
! END
! 
! IDD_BACKUP_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 213, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "ｬO(&Y)｡Aｬ[ｺcｬｰ｡uｳﾆ･ｦｪAｾｹ｡v｡C",
!                     IDC_CONFIG_BACKUP_SERVER,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,3,156,128,10
!     CONTROL         "､｣(&O)｡A､｣ｭnｬ[ｺcｬｰ｡uｳﾆ･ｦｪAｾｹ｡v｡C",
!                     IDC_DONT_CONFIG_BACKUP_SERVER,"Button",
!                     BS_AUTORADIOBUTTON,3,174,147,10
!     LTEXT           "｡uｳﾆ･ｦｪAｾｹ｡v･uｯ爬bｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡vｪｺｾｾｹ､Wｰｦ譯C･t･~｡AｦpｪG｡uｳﾆ･ｦｪAｾｹ｡vｬOｦb Cell ｸﾌｪｺ､@ｭﾓ｡uｸｮﾆｮwｦｪAｾｹ｡v､Wｰｦ譯Aｨｺｻ､]･ｲｶｷｦb Cell ｸﾌｪｺｩﾒｦｳ｡uｸｮﾆｮwｦｪAｾｹ｡v､Wｰｦ譯C",
!                     -1,3,38,199,32
!     LTEXT           "ｱzｭnｱN･ｻｾｾｹｬ[ｺcｬｰ｡uｳﾆ･ｦｪAｾｹ｡vｶﾜ｡H",
!                     IDC_BACKUP_SERVER_QUESTION,4,142,177,10
!     LTEXT           "ｱN･ｻｾｾｹｬ[ｺcｬｰ｡uｳﾆ･ｦｪAｾｹ｡v｡C",IDC_TITLE,4,6,207,8
!     LTEXT           "｡uｳﾆ･ｦｪAｾｹ｡vｬｰ｡uｸｮﾆｮwｪAｰﾈ｡vｪｺｿ･ﾎ･\ｯ爍C",-1,3,20,209,
!                     16
!     LTEXT           "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v｡C",IDC_CANT_BACKUP_MSG,
!                     14,157,168,15,NOT WS_VISIBLE
! END
! 
! IDD_SYS_CONTROL_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "ｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v(&S)｡C",IDC_SYS_CONTROL_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,4,146,141,10
!     CONTROL         "ｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v(&C)｡C",IDC_SYS_CONTROL_CLIENT,
!                     "Button",BS_AUTORADIOBUTTON,4,159,131,9
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,91,171,118,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     CONTROL         "､｣ｭnｬ[ｺcｬｰｨtｲﾎｱｱｨ･ﾎ､蘯ﾝｩﾎｦｪAｾｹ(&O)｡C",
!                     IDC_DONT_CONFIGURE,"Button",BS_AUTORADIOBUTTON,4,187,183,
!                     9
!     LTEXT           "｡uｨtｲﾎｱｱｨｦｪAｾｹ｡vｴ｣ｨﾑ､@ｯｪｺｬ[ｺcﾀﾉｵｹｨ茹Lｧ@ｬｰ｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡vｪｺ｡uAFS ｦｪAｾｹ｡vｾｾｹ｡CAFS Cell ｶﾈ･iｰｦ豕讀@ｪｺ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C",
!                     -1,4,20,200,25
!     LTEXT           "ｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡vｩﾎ｡u･ﾎ､蘯ﾝ｡v｡C",IDC_TITLE,4,4,
!                     200,8
!     LTEXT           "ｱzｭnｱNｦｹｾｾｹｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡vｩﾎ｡u･ﾎ､蘯ﾝ｡vｶﾜ｡H",
!                     IDC_SYS_CONTROL_MACHINE_QUESTION,4,127,205,17
!     LTEXT           "｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡vｱｵｦｬ･ｦｱq Cell ｪｺ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡vｦb AFS ｬ[ｺcﾀﾉ､Wｪｺ･i･ﾎｧｷs｡C",
!                     IDC_SYS_CONTROL_CLIENT_DESC,4,49,200,18
!     LTEXT           "ｨtｲﾎｱｱｨｦｪAｾｹ(&Y)｡G",IDC_SYS_CONTROL_MACHINE_LABEL,11,
!                     173,78,8,WS_DISABLED
!     LTEXT           "",IDC_CANT_CONFIG_MSG,7,163,197,34,NOT WS_VISIBLE
!     LTEXT           "ﾄｵｧi｡G･ｼｨﾏ･ﾎ AFS ｬｰ熙ﾀｰeｪｺｺｯｸ｡A､｣ｱoｳzｹL｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v､ﾀｰeｬ[ｺcﾀﾉｮﾗ｡Aｧ_ｫhｷ|･H･ｼ･[ｱKｪｺ､隕｡ｶﾇｰeｱﾓｷPｪｺｨtｲﾎｸｰT｡C",
!                     -1,9,79,183,34
! END
! 
! IDD_CONFIG_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     LTEXT           "､wｨ罔ｳｦbｦｹｨtｲﾎ､Wｬ[ｺc｡uAFS ｦｪAｾｹ｡vｮﾉｩﾒｻﾝｪｺ･ｳ｡ｸｰT｡C",
!                     IDC_ALL_NEEDED_MSG,1,13,209,17
!     LTEXT           "ｱNｦｹｾｾｹｬ[ｺcｦﾜ Cell <ｩｰｦ豢ﾁｶ｡ｳ]ｩw>",IDC_TITLE,2,2,198,
!                     8
!     LTEXT           "ｱNｷ|ｰｦ讌H､Uｪｺｬ[ｺcｨBﾆJ｡G",IDC_FOLLOWING_STEPS_MSG,1,36,
!                     187,8
!     LTEXT           "ｨBﾆJ 1 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP1,22,49,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｨBﾆJ 3 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP3,22,73,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｨBﾆJ 2 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP2,22,61,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｨBﾆJ 4 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP4,22,85,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｨBﾆJ 5 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP5,22,97,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｨBﾆJ 6 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP6,22,109,179,8,NOT 
!                     WS_VISIBLE
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,1,178,200,11
!     LTEXT           "ｨBﾆJ 8 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP8,22,133,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "ｨBﾆJ 7 - ｰｦ豢ﾁｶ｡ｳ]ｩwｪｺ､螯r",IDC_STEP7,22,121,179,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "･ｲｭnｮﾉ｡Aｩｰｦ豢ﾁｶ｡ｳ]ｩwｪｺｰTｮｧ｡C",IDC_CANT_CONFIG_MSG,1,
!                     13,209,17,NOT WS_VISIBLE
!     LTEXT           "ｧｹｦｨｦﾊ､ﾀ､｡G",IDC_PERCENT_COMPLETE_LABEL,1,191,61,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "･ﾘｫeｪｺｧ@ｷ~｡G",IDC_CURRENT_STEP_LABEL,1,157,50,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "･ﾘｫeｪｺｨBﾆJｻ｡ｩ - ｩｰｦ豢ﾁｶ｡ｳ]ｩw",IDC_CURRENT_STEP,1,167,
!                     208,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,63,191,49,8,NOT WS_VISIBLE
!     LTEXT           "ｦpｭnｶ}ｩlｬ[ｺcｦｹｹqｸ｣｡Aｽﾐｫ｡uｬ[ｺc｡vｫｶs｡Cｦpｭnﾅﾜｧｩﾒｰｦ讙ｺｬ[ｺcｨBﾆJ｡Aｽﾐｫ｡u､W､@ｨB｡vｫｶs｡C",
!                     IDC_STATUS_MSG,1,159,200,41
!     LTEXT           "",IDC_STEP1_GRAPHIC,10,49,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP2_GRAPHIC,10,61,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP3_GRAPHIC,10,73,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP4_GRAPHIC,10,85,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP5_GRAPHIC,10,97,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP6_GRAPHIC,10,109,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP7_GRAPHIC,10,121,9,9,NOT WS_VISIBLE
!     LTEXT           "",IDC_STEP8_GRAPHIC,10,133,9,9,NOT WS_VISIBLE
! END
! 
! IDD_INFO_PAGE2_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,64,55,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,64,71,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_VERIFY_ADMIN_PW,64,87,138,12,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_AFS_UID,94,156,37,12,ES_AUTOHSCROLL
!     CONTROL         "Spin1",IDC_AFS_UID_SPINNER,"msctls_updown32",
!                     UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | 
!                     UDS_ARROWKEYS | UDS_NOTHOUSANDS,132,155,11,14
!     LTEXT           "ｺﾞｲz､WｪｺｸｰT",IDC_TITLE,0,2,189,8
!     LTEXT           "ｦWｺﾙ(&M)｡G",IDC_ADMIN_NAME_LABEL,7,57,38,8
!     LTEXT           "ｱKｽX(&P)｡G",IDC_ADMIN_PW_LABEL,7,73,34,8
!     GROUPBOX        "ｱb､皋WｺﾙｻPｱKｽX",IDC_ADMIN_INFO_FRAME,0,41,210,65
!     LTEXT           "ﾅ酖ﾒｱKｽX(&V)｡G",IDC_VERIFY_ADMIN_PW_LABEL,7,90,52,8
!     LTEXT           "､UｦCｬOｫﾘ･ﾟｷs Cell ｮﾉｩﾒｻﾝｪｺｺﾞｲzｱb､盧ｰT｡C",IDC_STATIC,0,
!                     15,209,17
!     CONTROL         "ｨﾏ･ﾎｦｹ AFS UID (&S)｡G",IDC_USE_THIS_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,157,85,10
!     CONTROL         "ｨﾏ･ﾎ､Uｭﾓ･i･ﾎｪｺ AFS UID (&U)",IDC_USE_NEXT_UID,"Button",
!                     BS_AUTORADIOBUTTON,6,144,136,10
!     GROUPBOX        "AFS UID",IDC_STATIC,0,118,209,57
!     LTEXT           "ｿ鬢J AFS ｺﾞｲzｱb､皙ｺｨﾏ･ﾎｪﾌ ID｡G",IDC_STATIC,6,130,196,9
! END
! 
! IDD_DB_SERVER_PAGE DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     CONTROL         "ｬO｡Aｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v(&Y)｡C",IDC_CONFIG_DB_SERVER,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,2,145,134,10
!     CONTROL         "､｣｡A､｣ｭnｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v(&O)｡C",
!                     IDC_DONT_CONFIG_DB_SERVER,"Button",BS_AUTORADIOBUTTON,0,
!                     187,153,10
!     LTEXT           "｡uｸｮﾆｮwｪAｰﾈ｡vｺﾅ@ AFS Cell ｩﾒｻﾝｪｺｽﾆｻsｸｮﾆｮwｶｰ｡CｦｹｪAｰﾈｺﾅ@ Cell ｩﾒｦｳｱb､癸Bｮeﾅ鬥ｸm･H､ﾎ｡]ｿ･ﾎｩﾊｪｺ｡^ｳﾆ･ｸｰT｡C",
!                     -1,4,37,191,54
!     LTEXT           "ｱzｭnｱN･ｻｾｾｹｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡vｶﾜ｡H",
!                     IDC_DB_SERVER_QUESTION,4,135,205,10
!     LTEXT           "ｱN･ｻｾｾｹｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v｡C",IDC_TITLE,4,4,204,8
!     LTEXT           "ｦpｭnｱN･ｻｾｾｹｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v｡Aｱz･ｲｶｷｬ[ｺc｡uｸｮﾆｮwｪAｰﾈ｡v｡C",
!                     -1,4,15,186,16
!     LTEXT           "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v｡C",IDC_MSG,10,177,194,23,
!                     NOT WS_VISIBLE
!     EDITTEXT        IDC_SYS_CONTROL_MACHINE,97,174,108,12,ES_AUTOHSCROLL
!     LTEXT           "ｨtｲﾎｱｱｨｦｪAｾｹ(&S)｡G",IDC_SYS_CONTROL_MACHINE_LABEL,9,
!                     175,77,8
!     LTEXT           "ｦpｪGｱzｪｺ Cell ｨ罔ｳ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡Aｽﾐｦb､U､霑鬢Jｨ茹Dｹqｸ｣ｦWｺﾙ｡CAFS ｬ[ｺcﾀﾉｷ|ｳzｹLｦｹｦｪAｾｹ･[･Hｧｷs｡C",
!                     IDC_SCM_PROMPT,13,155,195,17
! END
! 
! IDD_INFO_PAGE DIALOGEX 0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ", 0, 0, 0x1
! BEGIN
!     CONTROL         "ｦbｲ{ｦｳｪｺ AFS Cell  ､､｡AｱNｦｹ･Dｹqｸ｣ﾅﾜｦｨｦｪAｾｹ(&M)",
!                     IDC_JOIN_EXISTING_CELL,"Button",BS_AUTORADIOBUTTON,3,37,
!                     187,10
!     CONTROL         "ｳoｱNｬOｷsｪｺ AFS Cell ､､ｪｺｲﾄ､@ｭﾓｦｪAｾｹ(&T)",
!                     IDC_FIRST_SERVER,"Button",BS_AUTORADIOBUTTON,3,49,167,10
!     EDITTEXT        IDC_CELL_NAME,64,91,139,12,ES_LOWERCASE | ES_AUTOHSCROLL
!     EDITTEXT        IDC_SERVER_PW,64,166,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     EDITTEXT        IDC_VERIFY_PW,64,180,139,12,ES_PASSWORD | ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "Cell ｻPｦｪAｾｹｸｰT",IDC_TITLE,3,1,203,8
!     LTEXT           "Cell ｦWｺﾙ(&C)｡G",IDC_CELL_NAME_LABEL,7,93,57,8
!     LTEXT           "ｱKｽX(&P)｡G",IDC_SERVER_PW_LABEL,7,167,34,8,WS_DISABLED
!     LTEXT           "ｿ鬢J AFS Cell ｦWｺﾙ｡C",IDC_CELL_NAME_PROMPT,8,78,195,11
!     LTEXT           "ｿ鬢J AFS ･Dﾅ鬪ｺｱKｽX｡Cｩﾒｦｳｪｺ AFS ｦｪAｾｹｳ｣ｷ|ｨｱoｦｹ･Dﾅ鬪ｺｰOｸｹ｡C",
!                     IDC_SERVER_PW_PROMPT,7,130,196,19,WS_DISABLED
!     GROUPBOX        "Cell ｦWｺﾙ",IDC_CELL_NAME_FRAME,0,67,210,43
!     GROUPBOX        "ｦｪAｾｹｱKｽX",IDC_SERVER_PW_FRAME,0,119,210,81,
!                     WS_DISABLED
!     LTEXT           "ﾅ酖ﾒｱKｽX(&V)｡G",IDC_VERIFY_PW_LABEL,7,180,52,8,
!                     WS_DISABLED
!     LTEXT           "AFS Cell ｬOｴ｣ｨﾑﾀﾉｮﾗｦsｨｲﾎ､@ｫﾅｧiｦWｺﾙﾀxｦsｰﾏｪｺｦｪAｾｹｶｰｦX｡C",
!                     IDC_CELL_NAME_PROMPT2,3,15,191,17
!     LTEXT           "ｦWｺﾙ｡G",IDC_PRINCIPAL_LABEL,7,152,34,8,WS_DISABLED
!     LTEXT           "afs",IDC_PRINCIPAL,64,150,139,12,WS_DISABLED,
!                     WS_EX_CLIENTEDGE
! END
! 
! IDD_INFO_PAGE2_NOT_FIRST_SERVER DIALOG DISCARDABLE  0, 0, 210, 200
! STYLE DS_CONTROL | WS_CHILD | WS_BORDER
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,65,43,138,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,65,59,138,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,65,132,138,12,ES_AUTOHSCROLL
!     LTEXT           "ｺﾞｲz､WｪｺｸｰT",IDC_TITLE,4,2,198,8
!     LTEXT           "ｦb､U､霑鬢Jｺﾞｲzｱb､盧ｰT｡G",IDC_ADMIN_INFO_PROMPT,7,30,
!                     196,10
!     LTEXT           "ｦWｺﾙ(&N)｡G",IDC_ADMIN_NAME_LABEL,7,46,37,8
!     LTEXT           "ｱKｽX(&P)｡G",IDC_ADMIN_PW_LABEL,7,62,34,8
!     GROUPBOX        "ｱb､皋WｺﾙｻPｱKｽX",IDC_ADMIN_INFO_FRAME,0,17,210,62
!     GROUPBOX        "ｲ{ｦｳｪｺ AFS ｦｪAｾｹ",IDC_HOSTNAME_FRAME,1,92,209,60
!     LTEXT           "AFS ｦｪAｾｹ｡G",IDC_HOSTNAME_LABEL,9,134,53,8
!     LTEXT           "ｿ鬢Jｨ茹Lｭn･[ｦb Cell ､､ｪｺ AFS ｦｪAｾｹ･Dｹqｸ｣ｦWｺﾙ｡CｱNｱqｦｹｦｪAｾｹ､Wｨｱo AFS ｬ[ｺcｸｰT｡C",
!                     IDC_HOSTNAME_PROMPT,7,105,195,25
! END
! 
! IDD_SERVICES_PAGE DIALOG DISCARDABLE  0, 0, 295, 265
! STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "ｪAｰﾈ"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     GROUPBOX        "",IDC_STATIC,7,25,281,35
!     GROUPBOX        "",IDC_STATIC,7,72,281,37
!     GROUPBOX        "",IDC_STATIC,7,120,281,35
!     GROUPBOX        "",IDC_STATIC,7,166,281,35
!     CONTROL         "ﾀﾉｮﾗｪAｰﾈ",IDC_FS_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,19,60,10
!     CONTROL         "ｸｮﾆｮwｪAｰﾈ",IDC_DB_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,65,82,10
!     PUSHBUTTON      "ｩｲﾓ...",IDC_DB_DETAILS,230,88,50,14,NOT WS_VISIBLE
!     CONTROL         "ｳﾆ･ｦｪAｾｹ",IDC_BK_SERVICE,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,114,71,10
!     CONTROL         "ｨtｲﾎｱｱｨｦｪAｾｹ",IDC_SCS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,160,98,10
!     EDITTEXT        IDC_SC_MACHINE,107,230,119,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     LTEXT           "ｿｨｦbｦｹ AFS ｦｪAｾｹ､Wｰｦ讙ｺｪAｰﾈ｡G",IDC_STATIC,7,7,144,8
!     LTEXT           "･ﾘｫe･ｿｦbｰｦ譯uﾀﾉｮﾗｪAｰﾈ｡v｡C",IDC_FS_STATUS_MSG,14,32,261,
!                     8
!     LTEXT           "･ﾘｫe､wｳ｡･ｦwｸﾋ｡uｸｮﾆｮwｪAｰﾈ｡v｡C",IDC_DB_STATUS_MSG,14,78,
!                     195,8
!     LTEXT           "ｨtｲﾎｱｱｨｦｪAｾｹ(&Y)｡G",IDC_SC_MACHINE_LABEL,25,232,79,8,
!                     WS_DISABLED
!     LTEXT           "ｦpｭnｰｱ､｡uﾀﾉｮﾗｪAｰﾈ｡v｡Aｽﾐｨｮ､Wｭｱｪｺ､雜､ﾄｿ｡C",
!                     IDC_FS_ACTION_MSG,14,44,262,8
!     LTEXT           "ｫ､@､Uｩｲﾓ｡A･Hｬdｾ\ｸﾔｲﾓｸｰT｡C",IDC_DB_ACTION_MSG,14,92,
!                     208,8
!     LTEXT           "･ﾘｫe･ｿｦbｰｦ譯uｳﾆ･ｦｪAｾｹ｡v｡C",IDC_BK_STATUS_MSG,14,127,
!                     259,8
!     LTEXT           "ｦpｭnｰｱ､｡uｳﾆ･ｦｪAｾｹ｡v｡Aｽﾐｨｮ､Wｭｱｪｺ､雜､ﾄｿ｡C",
!                     IDC_BK_ACTION_MSG,14,139,262,8
!     LTEXT           "ｦpｭnｱﾒｰﾊｦｹｦｪAｾｹ｡Aｱz･ｲｶｷｰｦ譯uﾀﾉｮﾗｪAｰﾈ｡vｩﾎ｡uｸｮﾆｮwｪAｰﾈ｡v｡C",
!                     IDC_SCS_ACTION_MSG,14,185,268,9
!     LTEXT           "･ﾘｫeｨﾃ･ｼｰｦ譯uｨtｲﾎｱｱｨ｡vｪAｰﾈ｡C",IDC_SCS_STATUS_MSG,14,
!                     172,263,9
!     GROUPBOX        "",IDC_STATIC,7,213,281,45
!     CONTROL         "ｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ",IDC_SCC,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,14,206,95,10
!     LTEXT           "ｦpｭnｱﾒｰﾊｦｹｦｪAｾｹ｡Aｱz･ｲｶｷｰｦ譯uﾀﾉｮﾗｪAｰﾈ｡vｩﾎ｡uｸｮﾆｮwｪAｰﾈ｡v｡C",
!                     IDC_SCC_ACTION_MSG,14,245,268,9
!     LTEXT           "･ﾘｫeｨﾃ･ｼｰｦ譯uｨtｲﾎｱｱｨ｡vｪAｰﾈ｡C",IDC_SCC_STATUS_MSG,14,
!                     219,263,9
! END
! 
! IDD_PARTITIONS_PAGE DIALOGEX 0, 0, 295, 265
! STYLE DS_CONTEXTHELP | WS_CHILD | WS_DISABLED | WS_CAPTION
! CAPTION "､ﾀｳﾎｰﾏ"
! FONT 9, "ｷsｲﾓｩﾅ", 0, 0, 0x1
! BEGIN
!     LTEXT           "ｱzｪｺｹqｸ｣､Wｦｳ､UｦC  AFS ､ﾀｳﾎｰﾏ(&A)｡G",IDC_STATIC,8,7,175,
!                     8
!     PUSHBUTTON      "ｫﾘ･ﾟ(&C)...",IDC_CREATE_PARTITIONS,17,118,53,14
!     LTEXT           "ｦpｭnｴｩｱﾏ､ﾀｳﾎｰﾏｩﾎ､ﾀｳﾎｰﾏ､Wｪｺｮeﾅ鬘AｽﾐｿｾﾜｲMｳ讀Wｪｺ､ﾀｳﾎｰﾏ｡Aｨﾃｫ､Wｭｱｪｺｫｶs｡CｦpｭnｴｩｱﾏｦｹｦｪAｾｹ､Wｪｺｩﾒｦｳ､ﾀｳﾎｰﾏ｡Aｽﾐｫ､Wｭｱｪｺｫｶs｡C",
!                     IDC_SALVAGE_MSG,30,179,250,25
!     PUSHBUTTON      "ｴｩｱﾏ(&S)...",IDC_SALVAGE,17,159,53,14
!     LTEXT           "ｦpｭnｲｾｰ｣､ﾀｳﾎｰﾏ｡AｽﾐｿｾﾜｲMｳ讀Wｪｺ､ﾀｳﾎｰﾏ｡Aｨﾃｫ､@､U､Wｭｱｪｺｫｶs｡C",
!                     IDC_REMOVE_MSG,30,235,253,8,WS_DISABLED
!     PUSHBUTTON      "ｲｾｰ｣(&M)",IDC_REMOVE,17,217,53,14,WS_DISABLED
!     GROUPBOX        "､ﾀｳﾎｰﾏ",IDC_AGGR_FRAME,7,103,281,155
!     CONTROL         "",IDC_PARTITION_LIST,"FastList",WS_TABSTOP | 0x83,7,16,
!                     281,79,WS_EX_CLIENTEDGE
!     LTEXT           "ｦpｭnｦbｦｹｦｪAｾｹ､Wｫﾘ･ﾟｷsｪｺ､ﾀｳﾎｰﾏ｡Aｽﾐｫ､Wｭｱｪｺｫｶs｡C",
!                     IDC_CREATE_MSG,30,136,254,8
! END
! 
! IDD_CREATE_PARTITION DIALOGEX 0, 0, 264, 177
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "ｫﾘ･ﾟ AFS ､ﾀｳﾎｰﾏ"
! FONT 9, "ｷsｲﾓｩﾅ", 0, 0, 0x1
! BEGIN
!     LTEXT           "ｦb､U､雋Mｳ讀､ｿｨ NTFS ｮeﾅ鬘A･Hｫﾘ･ﾟｷsｪｺ､ﾀｳﾎｰﾏ｡G",
!                     IDC_TITLE,7,5,250,8
!     LTEXT           "AFS ､ﾀｳﾎｰﾏｦWｺﾙ｡G",IDC_NAME_STATIC,17,131,66,8
!     EDITTEXT        IDC_PARTITION_NAME,112,129,20,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ｫﾘ･ﾟ(&C)",IDC_CREATE,96,158,50,14,WS_DISABLED
!     PUSHBUTTON      "ﾃｳｬ(&O)",IDC_CLOSE,152,158,50,14
!     PUSHBUTTON      "ｻ｡ｩ",9,207,158,50,14
!     GROUPBOX        "､ﾀｳﾎｰﾏｰﾑｼﾆ",IDC_ARGS_FRAME,7,117,250,33
!     CONTROL         "",IDC_DRIVE_LIST,"FastList",WS_TABSTOP | 0x8b,7,15,250,
!                     95,WS_EX_CLIENTEDGE
!     LTEXT           "/vicep",IDC_VICEP_STATIC,90,131,22,8
! END
! 
! IDD_ADMIN_INFO DIALOG DISCARDABLE  0, 0, 225, 157
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS ｦｪAｾｹｬ[ｺc"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     EDITTEXT        IDC_ADMIN_NAME,80,33,130,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_ADMIN_PW,80,49,130,12,ES_PASSWORD | ES_AUTOHSCROLL
!     EDITTEXT        IDC_HOSTNAME,80,110,130,12,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ｬ[ｺc(&C)",IDOK,109,132,50,14,WS_DISABLED
!     PUSHBUTTON      "ｨｮ",IDCANCEL,49,132,50,14
!     PUSHBUTTON      "ｻ｡ｩ",9,169,132,50,14
!     LTEXT           "ｦb､U､霑鬢Jｺﾞｲzｱb､盧ｰT｡G",IDC_ADMIN_INFO_PROMPT,14,20,
!                     196,10
!     LTEXT           "ｦWｺﾙ(&N)｡G",IDC_ADMIN_NAME_LABEL,15,36,44,8
!     LTEXT           "ｱKｽX(&P)｡G",IDC_ADMIN_PW_LABEL,15,52,34,8
!     GROUPBOX        "ｱb､皋WｺﾙｻPｱKｽX",IDC_ADMIN_INFO_FRAME,7,7,211,62
!     GROUPBOX        "ｨtｲﾎｱｱｨｦｪAｾｹ",IDC_HOSTNAME_FRAME,7,76,211,54
!     LTEXT           "･Dｹqｸ｣ｦWｺﾙ(&H)｡G",IDC_HOSTNAME_LABEL,15,112,62,8
!     LTEXT           "ｦpｪGｱzｪｺ Cell ｨ罔ｳ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡Aｽﾐｦb､U､霑鬢Jｨ茹Dｹqｸ｣ｦWｺﾙ｡CAFS ｬ[ｺcﾀﾉｷ|ｳzｹLｦｹｦｪAｾｹ･[･Hｧｷs｡C",
!                     IDC_HOSTNAME_PROMPT,13,88,197,18
!     LTEXT           "ﾂ犇ｫｵ{ｦ｡｡Gｽﾐ･Jｲﾓｾ\\\ﾅｪ･H､Uｻ｡ｩ｡Iｦｹｹｸﾜ､雜ｷ|ｦbｰｦ豢ﾁｶ｡ｷ|ｭｫｷsｽﾕｾ网j､p｡CｦbｯSｩwｱ｡ｪp､U｡Aｹｸﾜ､雜ｷ|ｭｫｷsｽﾕｾ网j､p｡Aｦﾓﾄﾝｩｩｳｺﾝｸsｲﾕ､雜ｪｺ､@､ﾁｳ｣ｷ|ﾁﾂﾃｰ_ｨﾓ｡C",
!                     IDC_STATIC,7,140,211,16,NOT WS_VISIBLE
! END
! 
! IDD_CONFIG_SERVER DIALOG DISCARDABLE  0, 0, 257, 97
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS ｦｪAｾｹｬ[ｺc"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     PUSHBUTTON      "ｨｮ",IDCANCEL,74,75,50,14
!     CONTROL         "Progress1",IDC_CONFIG_PROGRESS,"msctls_progress32",NOT 
!                     WS_VISIBLE,40,44,200,11
!     LTEXT           "ｧｹｦｨｦﾊ､ﾀ､｡G",IDC_PERCENT_COMPLETE_LABEL,40,60,61,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "･ﾘｫeｪｺｧ@ｷ~｡G",IDC_CURRENT_STEP_LABEL,39,24,60,8,NOT 
!                     WS_VISIBLE
!     LTEXT           "･ﾘｫeｨBﾆJｪｺｻ｡ｩ - ｩｰｦ豢ﾁｶ｡ｳ]ｩw",IDC_CURRENT_STEP,40,33,
!                     210,8,NOT WS_VISIBLE
!     LTEXT           "",IDC_PERCENT_COMPLETE,101,50,49,8,NOT WS_VISIBLE
!     ICON            "",IDC_LOGO,7,7,20,20
!     LTEXT           "ｭYｭnｶ}ｩlｬ[ｺcｦｹｹqｸ｣｡Aｽﾐｫ｡uｬ[ｺc｡vｫｶs｡CｭYｭnﾅﾜｧｩﾒｰｦ讙ｺｬ[ｺcｨBﾆJ｡Aｽﾐｫ｡u､W､@ｨB｡vｫｶs｡C",
!                     IDC_STATUS_MSG,40,7,210,50
!     PUSHBUTTON      "ﾀﾋｵ､鮟x(&V)",IDNEXT,130,75,50,14,NOT WS_VISIBLE | 
!                     WS_DISABLED
! END
! 
! IDD_CELLSERVDB_ERRORS DIALOG DISCARDABLE  0, 0, 187, 183
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
! CAPTION "CellServCB ｧｷsｿｻ~"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     LISTBOX         IDC_LIST,7,26,173,127,NOT LBS_NOTIFY | LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | 
!                     WS_TABSTOP
!     DEFPUSHBUTTON   "ｽTｩw",IDOK,22,162,50,14
!     PUSHBUTTON      "ｨｮ",IDCANCEL,75,162,50,14
!     PUSHBUTTON      "ｻ｡ｩ",9,130,162,50,14
!     LTEXT           "ｵLｪkｦﾛｰﾊｧｷs､UｦC AFS ｦｪAｾｹ､Wｪｺ CellServDB ﾀﾉｮﾗ｡G",
!                     IDC_STATIC,12,7,165,18
! END
! 
! IDD_SALVAGE DIALOG DISCARDABLE  0, 0, 243, 179
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "ｴｩｱﾏ"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     DEFPUSHBUTTON   "ｽTｩw",IDOK,67,93,50,14
!     PUSHBUTTON      "ｨｮ",IDCANCEL,127,93,50,14
!     PUSHBUTTON      "ｻ｡ｩ(&H)",9,187,93,50,14
!     CONTROL         "ｴｩｱﾏｦｹ｡uﾀﾉｮﾗｦｪAｾｹ｡v､Wｪｺｩﾒｦｳ､ﾀｳﾎｰﾏ(&S)",IDC_SERVER,
!                     "Button",BS_AUTORADIOBUTTON,14,29,176,10
!     CONTROL         "ｴｩｱﾏｿｨ､ﾀｳﾎｰﾏ､Wｪｺｩﾒｦｳｮeﾅ(&P)",IDC_PARTITION,"Button",
!                     BS_AUTORADIOBUTTON,14,42,177,10
!     CONTROL         "ｴｩｱﾏｿｨ､ﾀｳﾎｰﾏ､WｪｺｯSｩwｮeﾅ(&V)",IDC_VOLUME,"Button",
!                     BS_AUTORADIOBUTTON,14,55,177,10
!     EDITTEXT        IDC_VOLUME_NAME,93,68,133,12,ES_AUTOHSCROLL | 
!                     WS_DISABLED
!     PUSHBUTTON      "<< ｶiｶ･(&A) ",IDC_ADVANCED,7,93,50,14
!     GROUPBOX        "",IDC_STATIC,7,19,229,67
!     LTEXT           "ｮeﾅ鬥Wｺﾙ(&N)｡G",IDC_VOLUME_NAME_LABEL,27,69,56,8,
!                     WS_DISABLED
!     GROUPBOX        "ｶiｶ･ｴｩｱﾏｿｶｵ",IDC_ADVANCED_FRAME,7,113,229,62
!     LTEXT           "ｼﾈｦsﾀﾉｸｮ|(&T)｡G",IDC_TEMP_DIR_LABEL,17,159,74,8
!     EDITTEXT        IDC_LOG_FILE,106,141,120,12,ES_AUTOHSCROLL
!     EDITTEXT        IDC_NUM_PROCESSES,140,124,86,12,ES_AUTOHSCROLL
!     LTEXT           "ｵｲｪG､鮟xｪｺﾀﾉｮﾗｦWｺﾙ(&L)｡G",IDC_LOG_FILE_LABEL,17,143,90,
!                     8
!     EDITTEXT        IDC_TEMP_DIR,93,157,133,12,ES_AUTOHSCROLL
!     CONTROL         "･ｭｦ豢ｩｱﾏｧ@ｷ~｡FｳBｲzｼﾆ･ﾘ(&R)｡G",
!                     IDC_NUM_PROCESSES_CHECKBOX,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,17,126,125,10
!     LTEXT           "ｭYｱzｴｩｱﾏｦｪAｾｹｩﾎｾ罸ﾓ､ﾀｳﾎｰﾏ｡AｦｪAｾｹｷ|ｼﾈｮﾉﾂｽu｡C",
!                     IDC_STATIC,38,1,198,17
!     LTEXT           "ｪｵ｡G",IDC_STATIC,7,1,26,8
!     LTEXT           "ﾂ犇ｫｵ{ｦ｡｡Gｽﾐ･Jｲﾓｾ\\\ﾅｪ･H､Uｻ｡ｩ｡Iｦｹｹｸﾜ､雜ｷ|ｦbｰｦ豢ﾁｶ｡ｭｫｷsｽﾕｾ网j､p｡CｦbｯSｩwｱ｡ｪp､U｡Aｹｸﾜ､雜ｷ|ｭｫｷsｽﾕｾ网j､p｡Aｦﾓﾄﾝｩｩｳｺﾝｸsｲﾕ､雜ｪｺ､@､ﾁｳ｣ｷ|ﾁﾂﾃｰ_ｨﾓ｡C",
!                     IDC_STATIC,14,171,229,8,NOT WS_VISIBLE
! END
! 
! IDD_GET_PW DIALOG DISCARDABLE  0, 0, 197, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "AFS ･Dﾅ魍KｽX"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     EDITTEXT        IDC_PW,48,39,142,12,ES_PASSWORD | ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ｽTｩw",IDOK,31,61,50,14
!     PUSHBUTTON      "ｨｮ",IDCANCEL,85,61,50,14
!     PUSHBUTTON      "ｻ｡ｩ",9,140,61,50,14
!     LTEXT           "ｵLｪkｱq pre-3.5 ｡uﾅｲｧOｦｪAｾｹ｡v､Wｨｱo AFS ･Dﾅ鬪ﾆ_｡Cｽﾐｦb､U､霑鬢J AFS ･Dﾅ魍KｽX｡C",
!                     IDC_STATIC,7,7,183,26
!     LTEXT           "ｱKｽX｡G",IDC_STATIC,7,41,35,8
! END
! 
! IDD_SALVAGE_RESULTS DIALOG DISCARDABLE  0, 0, 337, 287
! STYLE DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! CAPTION "ｴｩｱﾏｮeﾅ - ｵｲｪG"
! FONT 9, "ｷsｲﾓｩﾅ"
! BEGIN
!     EDITTEXT        IDC_LOG,7,48,323,211,ES_MULTILINE | ES_READONLY | 
!                     WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "ﾃｳｬ(&C)",IDC_CLOSE,225,266,50,14,WS_DISABLED
!     PUSHBUTTON      "ｻ｡ｩ",9,280,266,50,14
!     LTEXT           "<ｩｰｦ豢ﾁｶ｡ｳ]ｩw>",IDC_LOG_TITLE,7,38,263,8
!     ICON            "",IDC_LOGO,7,7,21,20
!     LTEXT           "<ｩｰｦ豢ﾁｶ｡ｳ]ｩw>",IDC_SALVAGE_STATUS,37,15,185,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_WIZARD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 313
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 239
!         HORZGUIDE, 207
!     END
! 
!     IDD_INTRO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 209
!     END
! 
!     IDD_GET_CURRENT_CONFIG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 191
!         VERTGUIDE, 35
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_BACKUP_SERVER_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 212
!         BOTTOMMARGIN, 197
!     END
! 
!     IDD_CONFIG_SERVER_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 1
!         VERTGUIDE, 11
!         VERTGUIDE, 22
!         VERTGUIDE, 201
!     END
! 
!     IDD_INFO_PAGE2_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 6
!         VERTGUIDE, 64
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE, DIALOG
!     BEGIN
!         RIGHTMARGIN, 203
!         VERTGUIDE, 64
!         VERTGUIDE, 203
!         TOPMARGIN, 7
!     END
! 
!     IDD_INFO_PAGE2_NOT_FIRST_SERVER, DIALOG
!     BEGIN
!         VERTGUIDE, 53
!         VERTGUIDE, 202
!         TOPMARGIN, 7
!     END
! 
!     IDD_SERVICES_PAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 288
!         VERTGUIDE, 14
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_PARTITIONS_PAGE, DIALOG
!     BEGIN
!         VERTGUIDE, 17
!         VERTGUIDE, 30
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 258
!     END
! 
!     IDD_ADMIN_INFO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 218
!         VERTGUIDE, 59
!         VERTGUIDE, 210
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 150
!     END
! 
!     IDD_CONFIG_SERVER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 250
!         VERTGUIDE, 40
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 90
!     END
! 
!     IDD_CELLSERVDB_ERRORS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 180
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 176
!     END
! 
!     IDD_SALVAGE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 236
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 172
!         HORZGUIDE, 7
!     END
! 
!     IDD_GET_PW, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 190
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_SALVAGE_RESULTS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 330
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 280
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "#include <windows.h>\r\n"
!     "#define  AFS_VERINFO_FILE_DESCRIPTION ""AFS Configuration application and wizard""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Bitmap
! //
! 
! IDB_GRAPHIC_16          BITMAP  DISCARDABLE     "status_16.bmp"
! IDB_GRAPHIC_256         BITMAP  DISCARDABLE     "status_256.bmp"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_DISABLED_DISK_DRIVE ICON    DISCARDABLE     "disabled.ico"
! IDI_DISK_DRIVE          ICON    DISCARDABLE     "disk_dri.ico"
! IDI_APP_ICON            ICON    DISCARDABLE     "app_icon.ico"
! IDI_FOLDER              ICON    DISCARDABLE     "folder.ico"
! IDI_FILE                ICON    DISCARDABLE     "file.ico"
! IDI_DISK_DRIVE_WITH_WARNING ICON    DISCARDABLE     "warn_dri.ico"
! IDI_AFS_DISK_DRIVE      ICON    DISCARDABLE     "afsdrive.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEXT                "､U､@ｨB(&N) >"
!     IDS_FINISH              "ｧｹｦｨ(&F)"
!     IDS_HELP_TITLE          "､wｫ､Uｻ｡ｩｫｶs"
!     IDS_HELP_DESC           "･ﾘｫeｵLｪkｴ｣ｨﾑｻ｡ｩ｡C"
!     IDS_CANCEL_DESC         "ｭnｨｮ｡uAFS ｧﾖｳtｱﾒｰﾊｺﾆF｡vｶﾜ｡H"
!     IDS_PARTITION_ALREADY_CREATED "ｦｹｾｾｹ､W､wｦｳ AFS ､ﾀｳﾎｰﾏ｡C"
!     IDS_NOT_A_FS_SERVER     "ｦｹｾｾｹｨﾃ･ｼｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡Cｮeﾅ鬣uｯ爿ﾘ･ﾟｦb｡uﾀﾉｮﾗｦｪAｾｹ｡vｾｾｹ､W｡C"
!     IDS_ROOT_AFS_ALREADY_EXISTS "ｮﾚｮeﾅ鬢wｸgｦsｦb｡C"
!     IDS_NO_PARTITION_EXISTS "ｨSｦｳ･iｫﾘ･ﾟｮﾚｮeﾅ鬪ｺ､ﾀｳﾎｰﾏ｡Cｭnｫﾘ･ﾟ､ｧｫe｡A､ﾀｳﾎｰﾏ･ｲｶｷ･ｦsｦb｡C"
!     IDS_ALREADY_REPLICATED  "､wｸgｽﾆｻsｮﾚｮeﾅ鬘C"
!     IDS_ROOT_AFS_DOESNT_EXIST "ｮﾚｮeﾅ鬨ﾃ､｣ｦsｦb｡C･ｲｶｷ･ｦｳｮﾚｮeﾅ鬘A､~ｯ爭[･Hｽﾆｻs｡C"
!     IDS_ALREADY_CONFIGURED  "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uAFS ｦｪAｾｹ｡v｡C"
!     IDS_NOTHING_TO_CONFIGURE "ｱzｩ|･ｼｿｾﾜｩﾒｭnｬ[ｺcｪｺｶｵ･ﾘ｡C"
!     IDS_EXIT                "ｵｲｧ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_FS_STEP       "ｱﾒｰﾊﾀﾉｮﾗｪAｰﾈ"
!     IDS_CANCEL_CONFIG_MSG   "ｦpｪGｲ{ｦbｨｮ｡Aｹqｸ｣ｶﾈｷ|ｧｹｦｨｳ｡･ｪｺ AFS ｦｪAｾｹｬ[ｺc｡CｽTｩwｭnｨｮ｡H"
!     IDS_WIZARD_APP_TITLE    "AFS ｦｪAｾｹｧﾖｳtｱﾒｰﾊｺﾆF"
!     IDS_CANCEL_PENDING      "*** ｨｮﾀﾁｸm - ｽﾐｵyｫﾝ... ***"
!     IDS_CHECK_FS_CONFIG     "ﾀﾉｮﾗｦｪAｾｹﾀﾋｬd..."
!     IDS_CHECK_DB_CONFIG     "ｸｮﾆｮwｦｪAｾｹﾀﾋｬd..."
!     IDS_CHECK_BAK_CONFIG    "ｳﾆ･ｦｪAｾｹﾀﾋｬd..."
!     IDS_CHECK_PARTITION     "AFS ､ﾀｳﾎｰﾏﾀﾋｬd..."
!     IDS_CHECK_ROOT_AFS      "ｮﾚｮeﾅ鯊ﾋｬd..."
!     IDS_CHECK_REP           "ｮﾚｮeﾅ鮨ﾆｻsﾀﾋｬd..."
!     IDS_CANCEL_GET_CONFIG   "ｨｮ､､...ｽﾐｵyｫﾝ..."
!     IDS_ALREADY_A_BACKUP_SERVER "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uｳﾆ･ｦｪAｾｹ｡v｡C"
!     IDS_NOT_A_DB_SERVER     "ｦｹｾｾｹｨﾃ･ｼｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v｡C｡uｳﾆ･ｦｪAｾｹ｡v･uｯ爬b｡uｸｮﾆｮwｦｪAｾｹ｡vｾｾｹ､Wｰｦ譯C"
!     IDS_ALREADY_A_SYS_CONTROL_SERVER "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
!     IDS_ALREADY_A_SYS_CONTROL_CLIENT "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_SC_NOT_A_DB_OR_FS_SERVER 
!                             "ｦｹｾｾｹｨﾃ･ｼｬ[ｺcｬｰ｡uｸｮﾆｮw｡vｩﾎ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡Cｹqｸ｣･ｲｶｷｦPｮﾉｬ[ｺcｬｰ｡uｸｮﾆｮw｡vｩﾎ｡uﾀﾉｮﾗｦｪAｾｹ｡vｾｾｹ｡A､~ｯ牀[ｺcｬｰ｡uｨtｲﾎｱｱｨ｡vｾｾｹ｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DRIVE               "ｮeﾅ"
!     IDS_NAME_OR_ERROR       "ｦWｺﾙ｡]ｩﾎｿｻ~ｰTｮｧ｡^"
!     IDS_BIN_NOT_A_DB_OR_FS_SERVER 
!                             "ｦｹｾｾｹｨﾃ･ｼｬ[ｺcｬｰ｡uｸｮﾆｮw｡vｩﾎ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡Cｹqｸ｣･ｲｶｷｦPｮﾉｬ[ｺcｬｰ｡uｸｮﾆｮw｡vｩﾎ｡uﾀﾉｮﾗｦｪAｾｹ｡vｾｾｹ｡A､~ｯ牀[ｺcｬｰ｡u､Gｶiｦ､ﾀｰt｡vｾｾｹ｡C"
!     IDS_CHECK_SCS           "ｨtｲﾎｱｱｨｦｪAｾｹﾀﾋｬd..."
!     IDS_CHECK_SCC           "ｨtｲﾎｱｱｨ･ﾎ､蘯ﾝﾀﾋｬd..."
!     IDS_SIZE                "､j､p"
!     IDS_ERROR_SEP           ",   "
!     IDS_MUST_CONFIG_FS      "･ﾑｩｳoｬO Cell ､､ｪｺｲﾄ､@ｭﾓ｡uAFS ｦｪAｾｹ｡v｡Aｦ]ｦｹｱNｨﾌｹwｳ]ｨﾓｬ[ｺc｡uﾀﾉｮﾗｪAｰﾈ｡v｡C"
!     IDS_MUST_CONFIG_DB      "･ﾑｩｳoｬO Cell ､､ｪｺｲﾄ､@ｭﾓ｡u AFS ｦｪAｾｹ｡v｡Aｦ]ｦｹｱNｨﾌｹwｳ]ｨﾓｬ[ｺc｡uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_MUST_MAKE_PARTITION "･ﾑｩｳoｬO Cell ､､ｪｺｲﾄ､@ｭﾓ｡uAFS ｦｪAｾｹ｡v｡Aｦ]ｦｹ･ｲｶｷｫﾘ･ﾟ､ﾀｳﾎｰﾏ｡C"
!     IDS_MUST_CREATE_ROOT_AFS 
!                             "･ﾑｩｳoｬO Cell ､､ｪｺｲﾄ､@ｭﾓ｡uAFS ｦｪAｾｹ｡v｡Aｦ]ｦｹｱNｨﾌｹwｳ]ｫﾘ･ﾟ root.afs ｻP root.cell ｮeﾅ鬘C"
!     IDS_MUST_REPLICATE      "･ﾑｩｳoｬO Cell ､､ｪｺｲﾄ､@ｭﾓ｡uAFS ｦｪAｾｹ｡v｡Aｦ]ｦｹｱNｨﾌｹwｳ]ｽﾆｻs root.afs ｻP root.cell ｮeﾅ鬘C"
!     IDS_CHECK_AFS_CLIENT    "AFS ･ﾎ､蘯ﾝｦwｸﾋﾀﾋｬd..."
!     IDS_ERROR_HOST_NAME     "ｵLｪkｨMｩwｦｹｾｾｹｪｺ･Dｹqｸ｣ｦWｺﾙ｡C"
!     IDS_ERROR_DRIVE_COMPRESSED "､wﾀ｣ﾁYｺﾏｺﾐｾ"
!     IDS_ERROR_CFG_HOST_OPEN "ｵLｪkｰ_ｩlｳ]ｩw｡uｦｪAｾｹｬ[ｺcｵ{ｦ｡ｮw｡v｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_STOP_CLIENT_STEP    "ｰｱ､ AFS ･ﾎ､蘯ﾝ"
!     IDS_ERROR_LOCAL_HOST_NAME "ｵLｪkｨMｩwｦｹｾｾｹｪｺ･ｻｺﾝ･Dｹqｸ｣ｦWｺﾙ｡C"
!     IDS_GET_TOKENS_ERROR    "ｵLｪkｨｱoｰOｸｹ｡CｽﾐｽTｻ{ｱzｩﾒｿ鬢Jｪｺｨﾏ･ﾎｪﾌｦWｺﾙｻPｱKｽXｬOｧ_･ｿｽT｡C"
!     IDS_CANT_SALVAGE_WHEN_FS_NOT_CONFIGURED 
!                             "･ﾑｩｩ|･ｼｱﾒｰﾊﾀﾉｮﾗｪAｰﾈ｡Aｦ]ｦｹｵLｪkｶiｦ豢ｩｱﾏ｡CｽﾐｱﾒｰﾊﾀﾉｮﾗｪAｰﾈ｡AｵMｫ皴ｫｷsｰｦ豢ｩｱﾏ｡C"
!     IDS_SALVAGING           "･ｿｶiｦ豢ｩｱﾏ､､｡Cｽﾐｵyｫﾝ..."
!     IDS_CURRENT_SALVAGE_LOG "ｴｩｱﾏ､鮟x･ﾘｫeｪｺ､ｺｮe｡G"
!     IDS_FINAL_SALVAGE_LOG   "ｴｩｱﾏ､鮟xｪｺｳﾌｲﾗ､ｺｮe｡G"
!     IDS_SALVAGE_COMPLETE    "ｴｩｱﾏ､wｧｹｦｨ｡C"
!     IDS_CANT_GET_SALVAGE_LOG "ｵLｪkｨ･Xｴｩｱﾏ､鮟x｡C"
!     IDS_ERROR_SAVING_SALVAGE_LOG_TO_DISK "ｵLｪkｱNｴｩｱﾏ､鮟xﾀxｦsｨｺﾏｺﾐ､W｡C"
!     IDS_VALIDATION_ERROR_TEMPLATE "ｫｩwｪｺ %1 ｵLｮﾄ｡Cｽﾐｭｫｷsｿ鬢J %2｡C"
!     IDS_CELL_NAME_VALIDATION_TYPE "Cell ｦWｺﾙ"
!     IDS_SERVER_NAME_VALIDATION_TYPE "ｦｪAｾｹｦWｺﾙ"
!     IDS_PASSWORD_VALIDATION_TYPE "ｱKｽX"
!     IDS_UID_VALIDATION_TYPE "UID"
!     IDS_USER_NAME_VALIDATION_TYPE "ｨﾏ･ﾎｪﾌｦWｺﾙ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_AFS_CLIENT_NOT_INSTALLED 
!                             "ｩ|･ｼｦwｸﾋ｡uAFS ･ﾎ､蘯ﾝ｡v｡C･ｲｶｷ･ｦwｸﾋ｡uAFS ･ﾎ､蘯ﾝ｡v｡A､~ｯ牀[ｺc｡uAFS ｦｪAｾｹ｡v｡C"
!     IDS_ERROR_AFS_CLIENT_CHECK "ｵLｪkｨMｩwｬOｧ_､wｦwｸﾋ､F｡uAFS ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_ERROR_FS_IS_NOT_NTFS "ﾀﾉｮﾗｨtｲﾎｨﾃｫD NTFS"
!     IDS_ERROR_DRIVE_HAS_DATA "ｺﾏｺﾐｾ･]ｧtｸｮﾆ"
!     IDS_PARTITION_STEP_DESC "ｫﾘ･ﾟ AFS ､ﾀｳﾎｰﾏ"
!     IDS_ERROR_DRIVE_CONTAINS_NT "ｺﾏｺﾐｾ･]ｬA NT ｦwｸﾋ"
!     IDS_DB_STEP_DESC        "ｱﾒｰﾊｸｮﾆｮwｪAｰﾈ"
!     IDS_FS_STEP_DESC        "ｱﾒｰﾊﾀﾉｮﾗｪAｰﾈ"
!     IDS_SCC_STEP_DESC       "ｱﾒｰﾊｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ"
!     IDS_SCS_STEP_DESC       "ｱﾒｰﾊｨtｲﾎｱｱｨｦｪAｾｹ"
!     IDS_ROOT_AFS_STEP_DESC  "ｫﾘ･ﾟｮﾚｮeﾅ"
!     IDS_REP_STEP_DESC       "ｽﾆｻsｮﾚｮeﾅ"
!     IDS_PARTITIONS_PAGE_TITLE "､ﾀｳﾎｰﾏ"
!     IDS_CONFIGURE           "ｬ[ｺc(&C)"
!     IDS_DB_AND_BK_STEP_DESC "ｱﾒｰﾊｸｮﾆｮwｪAｰﾈ｡]･]ｬAｳﾆ･ｦｪAｾｹ｡^"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_STEP      "ｫﾘ･ﾟ AFS ､ﾀｳﾎｰﾏ"
!     IDS_CONFIG_COMMON_FUNCS "ｬ[ｺcｩﾒｦｳｪAｰﾈｦ@ｳqｪｺ･\ｯ"
!     IDS_START_DB_STEP       "ｱﾒｰﾊｸｮﾆｮwｪAｰﾈ"
!     IDS_START_SCC_STEP      "ｱNｨtｲﾎｱｱｨｦｪAｾｹｱﾒｰﾊｬｰｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ"
!     IDS_START_SCS_STEP      "ｱNｨtｲﾎｱｱｨｦｪAｾｹｱﾒｰﾊｬｰｨtｲﾎｱｱｨｦｪAｾｹ"
!     IDS_CREATE_ROOT_AFS_STEP "ｫﾘ･ﾟ root.afs ｮeﾅ"
!     IDS_REP_STEP            "ｽﾆｻsｮﾚｮeﾅ"
!     IDS_START_AUTH_STEP     "ｨｱoｦｹｦｪAｾｹｪｺｰOｸｹ"
!     IDS_SERVICES_PAGE_TITLE "ｪAｰﾈ"
!     IDS_CONFIG_SUCCEEDED    "､wｶｶｧQｧｹｦｨｬ[ｺc｡C"
!     IDS_CONFIG_CANCELED     "､wｨｮｬ[ｺc｡C"
!     IDS_CONFIG_FAILED       "ｬ[ｺc･｢ｱﾑ｡C\r\n\r\nｸﾔｲﾓｪｺ､鮟xﾀﾉ %1 ､wｦbｦｸm %2 ｫﾘ･ﾟ｡C"
!     IDS_ERROR_NO_LICENSE_NUM "ｧ荀｣ｨ AFS ｱﾂﾅvｸｹｽX｡C"
!     IDS_VERIFY_CLIENT_INSTALL_STEP "ﾅ酖ﾒ AFS ･ﾎ､蘯ﾝｪｺｦwｸﾋ"
!     IDS_SET_SERVER_LICENSE_STEP "ｳ]ｩwｦｹｦｪAｾｹｪｺｱﾂﾅv"
!     IDS_DEFINE_CELL_NAME_STEP "ｩwｸq･ｻ Cell ｪｺｦWｺﾙ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DEFINE_CELL_MEMBERSHIP_STEP "ｱNｦｹｦｪAｾｹﾅﾜｦｨ Cell  ｪｺ､@ｭ"
!     IDS_START_BOS_SERVER_STEP "ｱﾒｰﾊ BOS ｦｪAｾｹ"
!     IDS_START_AUTH_SERVER_STEP "ｱﾒｰﾊﾅｲｧOｦｪAｾｹ"
!     IDS_CREATE_PRINCIPAL_AND_KEY_STEP "ｬｰｦｹｦｪAｾｹｫﾘ･ﾟ･Dﾅ鮟Pｪﾆ_"
!     IDS_START_DB_AND_BK_STEP "ｱﾒｰﾊｸｮﾆｮwｪAｰﾈ｡]･]ｬAｳﾆ･ｦｪAｾｹ｡^"
!     IDS_CREATE_ADMIN_PRINCIPAL_STEP "ｫﾘ･ﾟ Cell ｺﾞｲzｪﾌ･Dﾅ"
!     IDS_START_CLIENT_STEP   "ｱﾒｰﾊ AFS ･ﾎ､蘯ﾝ"
!     IDS_SET_ROOT_ACL_STEP   "ｦb root.afs ｮeﾅ鬢Wｳ]ｩw ACL"
!     IDS_CREATE_ROOT_CELL_STEP "ｫﾘ･ﾟ root.cell ｮeﾅ"
!     IDS_MOUNT_ROOT_CELL_STANDARD_STEP "ｨﾏ･ﾎｼﾐｷﾇｸﾋｸﾂIｸﾋｸ root.cell ｮeﾅ"
!     IDS_SET_ROOT_CELL_ACL_STEP "ｦb root.cell ｮeﾅ鬢Wｳ]ｩw ACL"
!     IDS_MOUNT_ROOT_CELL_RW_STEP "ｨﾏ･ﾎﾅｪｨ / ｼg､JｸﾋｸﾂIｸﾋｸ root.cell"
!     IDS_ENABLE_AUTH_CHECKING_STEP "ｱﾒｰﾊﾅｲｧOﾀﾋｬd"
!     IDS_OBTAIN_ADMIN_CREDS_STEP "ｨｱoｺﾞｲzｰOｸｹ"
!     IDS_RESTART_SERVERS_STEP "ｭｫｷsｱNｦｹｾｾｹ､WｪｺｩﾒｦｳｦｪAｾｹｱﾒｰﾊｬｰﾅｲｧOｦｪAｾｹ"
!     IDS_ALREADY_A_FS_SERVER "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uﾀﾉｮﾗｦｪAｾｹ｡v｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ALREADY_A_DB_SERVER "ｦｹｾｾｹ､wｬ[ｺcｬｰ｡uｸｮﾆｮwｦｪAｾｹ｡v｡C"
!     IDS_INTRO_PAGE          "ﾂｲ､ｶ"
!     IDS_INFO_PAGE           "Cell ｻPｦｪAｾｹｸｰT"
!     IDS_FS_PAGE             "ﾀﾉｮﾗｪAｰﾈ"
!     IDS_DB_PAGE             "ｸｮﾆｮwｪAｰﾈ"
!     IDS_CFG_TOOL_APP_TITLE  "AFS ｦｪAｾｹｬ[ｺc"
!     IDS_BK_PAGE             "ｳﾆ･ｦｪAｾｹ"
!     IDS_ROOT_AFS_PAGE       "ｮﾚ AFS ｮeﾅ"
!     IDS_NAME                "ｦWｺﾙ"
!     IDS_REP_PAGE            "ｽﾆｻs"
!     IDS_SC_PAGE             "ｨtｲﾎｱｱｨｦｪAｾｹ"
!     IDS_CONFIG_PAGE         "ｬ[ｺcｨtｲﾎ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_PAGE      "AFS ､ﾀｳﾎｰﾏ"
!     IDS_GRAPHIC_FONT        "ｷsｲﾓｩﾅ, 9, B"
!     IDS_CURRENT_STEP        "･ﾘｫeｪｺｨBﾆJ｡G"
!     IDS_ADD_TO_CELLSERVDB_STEP "ｱNｦｹｦｪAｾｹｷsｼWｦﾜ CellServDB"
!     IDS_RESTART_ALL_DB_SERVERS_STEP "ｭｫｷsｱﾒｰﾊ Cell ､WｩﾒｦｳｪｺｸｮﾆｮwｦｪAｾｹ"
!     IDS_CONFIG_SUCCEEDED_NEED_CELLSERVDB_UPDATE 
!                             "､wｧｹｦｨｬ[ｺc｡Cｪｵ｡G･ｲｶｷｧｷs Cell ､､ｩﾒｦｳｪｺ AFS ･ﾎ､蘯ﾝ CellServDB ﾀﾉｮﾗ｡CｦpｪGｱzｪｺ Cell ｭnｨﾑｨ茹Lｺｯｸｨﾏ･ﾎ｡AｽﾐｱNｳﾌｷsｪｺ｡uｸｮﾆｮwｦｪAｾｹ｡vｲMｳ豢｣ｨﾑｵｹ｡uAFS ｲ｣ｫ~､莇ｩ｡v｡C"
!     IDS_SYS_CONTROL_SERVER_ONLY_MSG "ｱzｭnｱNｦｹｾｾｹｬ[ｺcｬｰ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡vｶﾜ｡H"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DONT_CONFIG_SYS_CONTROL_SERVER_MSG "､｣ｭnｬ[ｺcｬｰｨtｲﾎｱｱｨｦｪAｾｹ(&O)｡C"
!     IDS_CLIENT_CELL_WILL_CHANGE 
!                             "ｦpｭnｬ[ｺc｡uAFS ｦｪAｾｹ｡v｡A｡uAFS ･ﾎ､蘯ﾝ｡v､]･ｲｶｷｦbｬﾛｦPｪｺ Cell ､､ｬ[ｺcｬｰ｡uｦｪAｾｹ｡v｡CｱNｷ|ｦﾛｰﾊｧｹｦｨｦｹｨBﾆJ｡C"
!     IDS_INFO_PAGE2          "ｺﾞｲz､WｪｺｸｰT"
!     IDS_CONFIG_SUCCEEDED_FIRST_SERVER 
!                             "､wｧｹｦｨｬ[ｺc｡C\r\n\r\nｪｵ｡GｦpｪGｱzｪｺ Cell ｭnｨﾑｨ茹Lｺｯｸｨﾏ･ﾎ｡AｽﾐｱNｳﾌｷsｪｺ｡uｸｮﾆｮwｦｪAｾｹ｡vｲMｳ豢｣ｨﾑｵｹ｡uAFS ｲ｣ｫ~､莇ｩ｡v｡C"
!     IDS_CONFIG_SCS          "ｬ[ｺcｬｰ Cell ｪｺ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
!     IDS_CONFIG_INTO_CELL_MSG "ｱNｦｹ･Dｹqｸ｣ｬ[ｺcｬｰ Cell"
!     IDS_VIEW_LOG            "ﾀﾋｵ､鮟x(&V)"
!     IDS_VIEW_LOG_ERROR      "ｵLｪkﾀﾋｵ､鮟xﾀﾉ"
!     IDS_ERROR_NO_LOG_FILE   "､鮟xﾀﾉ､｣ｦsｦb｡C"
!     IDS_UPDATING_CELLSERVDB_HOST_SUCCEEDED "ｧｷs･Dｹqｸ｣､Wｪｺ CellServDB "
!     IDS_UPDATING_CELLSERVDB_HOST_FAILED "ｵLｪkｧｷs･Dｹqｸ｣､Wｪｺ CellServDB "
!     IDS_CELL_NAME_LEN_ERROR "ｱzｩﾒｿ鬢Jｪｺ Cell ｦWｺﾙ､ﾓｪ｡CCell ｦWｺﾙ､｣ｱoｶWｹL 64 ｭﾓｦr､ｸ｡C"
!     IDS_CONFIG_CHECK_FAILED "ｵLｪkｨMｩwｦｹｾｾｹ･ﾘｫeｪｺｬ[ｺc｡C"
!     IDS_YES                 "ｬO"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NO                  "ｧ_"
!     IDS_FREE                "･i･ﾎｪﾅｶ｡"
!     IDS_TOTAL               "ﾁ`ｭp､j､p"
!     IDS_DRIVE2              "ｺﾏｺﾐｾ"
!     IDS_SERVICE_STATUS      "ｪｬｺA"
!     IDS_SERVICE             "ｪAｰﾈ"
!     IDS_FS_RUNNING          "･ﾘｫe･ｿｦbｰｦ譯uﾀﾉｮﾗｪAｰﾈ｡v｡C"
!     IDS_FS_STOPPED          "･ﾘｫeｨﾃ･ｼｰｦ譯uﾀﾉｮﾗｪAｰﾈ｡v｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_DB_RUNNING          "･ﾘｫe･ｿｦbｰｦ譯uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_DB_STOPPED          "･ﾘｫeｨﾃ･ｼｰｦ譯uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_BK_RUNNING          "･ﾘｫe･ｿｦbｰｦ譯uｳﾆ･ｪAｰﾈ｡v｡C"
!     IDS_BK_STOPPED          "･ﾘｫeｨﾃ･ｼｰｦ譯uｳﾆ･ｪAｰﾈ｡v｡C"
!     IDS_SCS_STOPPED         "･ﾘｫeｨﾃ･ｼｰｦ譯uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
!     IDS_SCC_STOPPED         "･ﾘｫeｨﾃ･ｼｰｦ譯uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_FS_HOW_TO_RUN       "ｦpｭnｱﾒｰﾊ｡uﾀﾉｮﾗｪAｰﾈ｡v｡Aｽﾐ､ﾄｿ､Wｭｱｪｺ､雜｡C"
!     IDS_FS_HOW_TO_STOP      "ｦpｭnｰｱ､｡uﾀﾉｮﾗｪAｰﾈ｡v｡Aｽﾐｨｮ､Wｭｱｪｺ､雜､ﾄｿ｡C"
!     IDS_DB_HOW_TO_RUN       "ｦpｭnｱﾒｰﾊ｡uｸｮﾆｮwｪAｰﾈ｡v｡Aｽﾐ､ﾄｿ､Wｭｱｪｺ､雜｡C"
!     IDS_DB_HOW_TO_STOP      "ｦpｭnｰｱ､｡uｸｮﾆｮwｪAｰﾈ｡v｡Aｽﾐｨｮ､Wｭｱｪｺ､雜､ﾄｿ｡C"
!     IDS_BK_HOW_TO_RUN       "ｦpｭnｱﾒｰﾊ｡uｳﾆ･ｪAｰﾈ｡v｡Aｽﾐ､ﾄｿ､Wｭｱｪｺ､雜｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BK_HOW_TO_STOP      "ｦpｭnｰｱ､｡uｳﾆ･ｪAｰﾈ｡v｡Aｽﾐｨｮ､Wｭｱｪｺ､雜､ﾄｿ｡C"
!     IDS_SCS_HOW_TO_RUN      "ｦpｭnｱﾒｰﾊ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡Aｽﾐ､ﾄｿ､Wｭｱｪｺ､雜｡C"
!     IDS_SCS_HOW_TO_STOP     "ｦpｭnｰｱ､｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡Aｽﾐｨｮ､Wｭｱｪｺ､雜､ﾄｿ｡C"
!     IDS_DB_PARTIAL_CONFIG   "､wｳ｡･ｬ[ｺc｡uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_DB_DETAILS          "ｫ､@､U｡uｩｲﾓ｡vｫｶs｡Aｬdｾ\ｸﾔｲﾓｸｰT｡C"
!     IDS_BK_DISABLED         "､wｰｱ･ﾎ｡uｳﾆ･ｪAｰﾈ｡v｡C"
!     IDS_BK_ENABLE           "ｦpｭnｱﾒｰﾊ｡uｳﾆ･ｪAｰﾈ｡v｡Aｱz･ｲｶｷｰｦ譯uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_SC_DISABLED         "､wｰｱ･ﾎｦｹｦｪAｾｹ｡C"
!     IDS_SC_ENABLE           "ｦpｭnｱﾒｰﾊｦｹｦｪAｾｹ｡Aｱz･ｲｶｷｰｦ譯uﾀﾉｮﾗｪAｰﾈ｡vｩﾎ｡uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_FS_WILL_RUN         "ｱNｷ|ｱﾒｰﾊ｡uﾀﾉｮﾗｪAｰﾈ｡v｡C"
!     IDS_FS_WILL_STOP        "ｱNｷ|ｰｱ､｡uﾀﾉｮﾗｪAｰﾈ｡v｡C"
!     IDS_DB_WILL_RUN         "ｱNｷ|ｱﾒｰﾊ｡uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_DB_WILL_STOP        "ｱNｷ|ｰｱ､｡uｸｮﾆｮwｪAｰﾈ｡v｡C"
!     IDS_BK_WILL_RUN         "ｱNｷ|ｱﾒｰﾊ｡uｳﾆ･ｪAｰﾈ｡v｡C"
!     IDS_BK_WILL_STOP        "ｱNｷ|ｰｱ､｡uｳﾆ･ｪAｰﾈ｡v｡C"
!     IDS_SCS_WILL_RUN        "ｱNｷ|ｱﾒｰﾊ｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_SCS_WILL_STOP       "ｱNｷ|ｰｱ､｡uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
!     IDS_ERROR_DRIVE_ALREADY_HAS_AFS "ｺﾏｺﾐｾ､wｬO AFS ､ﾀｳﾎｰﾏ"
!     IDS_VOLUME_HAS_NO_NAME  "<ｮeﾅ鬨SｦｳｦWｺﾙ>"
!     IDS_PARTITION_CREATED   "､wｶｶｧQｫﾘ･ﾟｷsｪｺ｡uAFS ､ﾀｳﾎｰﾏ｡v｡C"
!     IDS_PARTITION_EXISTS    "ｱzｩﾒｿ鬢Jｪｺ､ﾀｳﾎｰﾏｦWｺﾙ､wｦｳｨ茹L､ﾀｳﾎｰﾏｦbｨﾏ･ﾎ｡C"
!     IDS_SCS_RUNNING         "･ﾘｫe･ｿｦbｰｦ譯uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
!     IDS_WARNING_DRIVE_HAS_RECYCLE_BIN "ｦｹｺﾏｺﾐｾ･u･]ｧt｡uｸｷｽｦ^ｦｬｵｩ｡v｡C"
!     IDS_SCC_WILL_RUN        "ｱNｷ|ｱﾒｰﾊ｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_SCC_WILL_STOP       "ｱNｷ|ｰｱ､｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_SCC_RUNNING         "･ﾘｫe･ｿｦbｰｦ譯uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_SCC_HOW_TO_RUN      "ｦpｭnｱﾒｰﾊ｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡Aｽﾐ､ﾄｿ､Wｭｱｪｺ､雜｡C"
!     IDS_SCC_HOW_TO_STOP     "ｦpｭnｰｱ､｡uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡Aｽﾐｨｮ､ﾄｿ､Wｭｱｪｺ､雜｡C"
!     IDS_SCS_ENABLE          "ｦpｭnｱﾒｰﾊｦｹｦｪAｾｹ｡Aｱz･ｲｶｷｰｱ､ｰｦ譯uｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ｡v｡C"
!     IDS_SCC_ENABLE          "ｦpｭnｱﾒｰﾊｦｹｦｪAｾｹ｡Aｱz･ｲｶｷｰｱ､ｰｦ譯uｨtｲﾎｱｱｨｦｪAｾｹ｡v｡C"
!     IDS_UNCONFIG_DB_STEP    "ｨｮｬ[ｺcｸｮﾆｮwｪAｰﾈ"
!     IDS_UNCONFIG_DB_STEP_DESC "ｨｮｬ[ｺcｸｮﾆｮwｪAｰﾈ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_UNCONFIG_DB_AND_BK_STEP "ｨｮｬ[ｺcｸｮﾆｮwｪAｰﾈ｡]ｻPｳﾆ･ｦｪAｾｹ｡^"
!     IDS_UNCONFIG_DB_AND_BK_STEP_DESC "ｨｮｬ[ｺcｸｮﾆｮwｪAｰﾈ｡]ｻPｳﾆ･ｦｪAｾｹ｡^"
!     IDS_UNCONFIG_BK_STEP    "ｨｮｬ[ｺcｳﾆ･ｦｪAｾｹ"
!     IDS_UNCONFIG_BK_STEP_DESC "ｨｮｬ[ｺcｳﾆ･ｦｪAｾｹ"
!     IDS_UNCONFIG_FS_STEP    "ｨｮｬ[ｺcﾀﾉｮﾗｪAｰﾈ"
!     IDS_UNCONFIG_FS_STEP_DESC "ｨｮｬ[ｺcﾀﾉｮﾗｪAｰﾈ"
!     IDS_UNCONFIG_SCS_STEP   "ｨｮｬ[ｺcｨtｲﾎｱｱｨｦｪAｾｹ"
!     IDS_UNCONFIG_SCS_STEP_DESC "ｨｮｬ[ｺcｨtｲﾎｱｱｨｦｪAｾｹ"
!     IDS_UNCONFIG_SCC_STEP   "ｨｮｬ[ｺcｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ"
!     IDS_UNCONFIG_SCC_STEP_DESC "ｨｮｬ[ｺcｨtｲﾎｱｱｨ･ﾎ､蘯ﾝ"
!     IDS_INVALIDATE_CONFIG_INFO_STEP "ｨﾏｦｹｾｾｹｪｺｬ[ｺcｸｰT･｢ｮﾄ"
!     IDS_CLOSE               "ﾃｳｬ(&C)"
!     IDS_CELLSERVDB_UPDATE_ERR_MSG 
!                             "ｮﾗｵLｪkｦb､UｦC  AFS ｦｪAｾｹ､Wｧｷs CellServDB ﾀﾉ｡CｳoｨﾃｫDﾄYｭｫｪｺｿｻ~｡C\r\n"
!     IDS_DELETE_PARTITION_PROMPT "ｯuｪｺｭnｧRｰ｣､ﾀｳﾎｰﾏ '%1'｡H"
!     IDS_INVALIDATE_CFG_INFO "･ﾘｫeｦｹｹqｸ｣ｨﾃｨSｦｳ･ｿｦbｰｦ讙ｺ AFS ｦｪAｾｹｳBｲz｡CｱzｭnｱNｬ[ｺcｸｰTｱqｦｹｾｾｹ､Wｲｾｰ｣ｶﾜ｡H"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CELL_IS_GONE_MUST_EXIT 
!                             "Cell ､wｸg､｣ｦsｦb｡C｡uAFS ｬ[ｺc｡vﾀｳ･ﾎｵ{ｦ｡･uｯ爭ﾎｨﾓｬ[ｺc､wｬ[ｺcｦb AFS Cell ､ｧｦｪAｾｹｾｾｹ｡C｡uAFS ｬ[ｺcｺﾆF｡v･i･ﾎｨﾓｱﾒｰﾊｷsｪｺ Cell｡C"
!     IDS_CFG_MAN_CANT_CONTINUE 
!                             "｡uAFS ｬ[ｺc｡vﾀｳ･ﾎｵ{ｦ｡･ｲｶｷ･ﾟｧYｲﾗ､｡Aｦ]ｬｰｸﾓｵ{ｦ｡･uｯ爬b､wｬ[ｺcｬｰ AFSｦｪAｾｹ､ｧｾｾｹ､Wｰｦ譯CｦpｭnｱNｦｹｾｾｹｦAｦｸｬ[ｺcｬｰ AFS ｦｪAｾｹ｡Aｽﾐｰｦ譯uAFS ｬ[ｺcｺﾆF｡v｡C"
!     IDS_CONFIG_INFO_INVALIDATED 
!                             "ｦｹｾｾｹ､w､｣ｦAｬ[ｺcｬｰ｡uAFS ｦｪAｾｹ｡v｡C｡uAFS ｬ[ｺc｡vﾀｳ･ﾎｵ{ｦ｡･uｯ爭ﾎｨﾓｬ[ｺc｡uAFS ｦｪAｾｹ｡vｾｾｹ｡C｡uAFS ｬ[ｺcｺﾆF｡v･iｱNｦｹｾｾｹｦAｦｸｬ[ｺcｬｰ｡uAFS ｦｪAｾｹ｡v｡C"
!     IDS_GET_TOKENS_FAILED   "ｵLｪkｨｱoｫｩw Cell ｪｺｰOｸｹ｡C"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_START_BK_STEP       "ｱﾒｰﾊｳﾆ･ｦｪAｾｹ"
!     IDS_BK_STEP_DESC        "ｱﾒｰﾊｳﾆ･ｦｪAｾｹ"
!     IDS_CONFIG_ERROR        "ｵo･ﾍ､Fｬ[ｺcｿｻ~"
!     IDS_CREATE_PARTITION_ERROR "ｵLｪkｫﾘ･ﾟ､ﾀｳﾎｰﾏ"
!     IDS_REMOVE_PARTITION_ERROR "ｵLｪkｲｾｰ｣､ﾀｳﾎｰﾏ"
!     IDS_READ_PARTITIONS_ERROR "ｵLｪkﾅｪｨ､ﾀｳﾎｰﾏｪｮ"
!     IDS_CELLSERVDB_UPDATE_PROBLEM 
!                             "\r\n ｹLｦｭｲﾗ､ CellServDB ｧｷsｳBｲz｡Cｳ｡･ｦｪAｾｹ･iｯ爻|･ｼｧｷs｡C"
!     IDS_GET_PARTITION_LIST_ERROR "ｵLｪkｨMｩwｦｹｦｪAｾｹｪｺ､ﾀｳﾎｰﾏ"
!     IDS_EXPORTED            "ｶﾗ･X"
!     IDS_CANT_DELETE_EXPORTED_PARTITION 
!                             "ｶﾗ･Xｪｺ､ﾀｳﾎｰﾏｦb｡uﾀﾉｮﾗｪAｰﾈ｡vｰｦ豢ﾁｶ｡ｵLｪkｲｾｰ｣｡Cｲｾｰ｣ｦｹ､ﾀｳﾎｰﾏ､ｧｫe｡Aｱz･ｲｶｷｰｱ､｡uﾀﾉｮﾗｪAｰﾈ｡v｡C"
!     IDS_CHECK_CONFIG_INFO   "ﾀﾋｬdｦｳｮﾄｪｺｬ[ｺcｸｰT..."
!     IDS_ERROR_CFG_HOST_CLOSE "ｵLｪkﾃｳｬ｡uｦｪAｾｹｬ[ｺcｵ{ｦ｡ｮw｡v｡C"
!     IDS_FAILED_OPEN_CELL    "ｵLｪkｶ}ｱﾒ Cell｡C"
!     IDS_FAILED_OPEN_NULL_CELL "ｵLｪkｶ}ｱﾒ NULL Cell ｱｱﾂI"
!     IDS_CREATE_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ｦpｪGｮﾚｮeﾅ鬢｣ｦsｦb｡Aｱzｭn･[･Hｫﾘ･ﾟｶﾜ｡H"
!     IDS_REP_ROOT_VOLUMES_IF_NECESSARY_PROMPT 
!                             "ｦpｪGｮﾚｮeﾅ鬣ｼｽﾆｻs｡Aｱzｭn･[･Hｽﾆｻsｶﾜ｡H"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_TRANSARC_AFS_SERVER "AFS ｦｪAｾｹ"
!     IDS_CANT_INIT_ADMIN_LIBS "ｵLｪkｰｦ讎ｹﾀｳ･ﾎｵ{ｦ｡｡Gｵ{ｦ｡ｮwｰ_ｩlｳ]ｩw､w･｢ｱﾑ｡C"
!     IDS_CANT_OPEN_LOG_FILE  "ｵLｪkｶ}ｱﾒ､鮟xﾀﾉ｡C"
!     IDS_NEED_CLIENT_INFO    "･ﾑｩｦｹｹqｸ｣ｨﾃ･ｼｬ[ｺc｡uAFS ･ﾎ､蘯ﾝ｡v｡Aｦ]ｦｹｵLｪkｰｦ譯uAFS ｬ[ｺc｡vﾀｳ･ﾎｵ{ｦ｡｡Cｦbｳoｺﾘｱ｡ｧﾎ､U｡A･i･Hｨﾏ･ﾎ｡uAFS ｬ[ｺcｺﾆF｡v｡Cｭnｰｦ譯uAFS ｬ[ｺcｺﾆF｡vｶﾜ｡H"
!     IDS_NEED_SERVER_INFO    "ｦｹｹqｸ｣･ｼｬ[ｺcｬｰ｡uAFS ｦｪAｾｹ｡v｡CｦpｭnｱNｦｹｹqｸ｣ｬ[ｺcｬｰ｡uAFS ｦｪAｾｹ｡v｡Aｭｺ･･ｲｶｷｨﾏ･ﾎ｡uAFS ｬ[ｺcｺﾆF｡v｡AｵMｫ皃~ｯ爲ﾏ･ﾎ｡uAFS ｬ[ｺc｡vﾀｳ･ﾎｵ{ｦ｡｡Cｭn･ｰｦ譯uAFS ｬ[ｺcｺﾆF｡v･Hｬ[ｺcｦｹｹqｸ｣ｶﾜ｡H"
!     IDS_ADVANCED_OPEN       "<< ｶiｶ･(&A)"
!     IDS_ADVANCED_CLOSED     "ｶiｶ･(&A) >>"
!     IDS_BOS_OPEN_FAILED     "ｵLｪkｳsｱｵｦｪAｾｹ｡]bos ｶ}ｱﾒ･｢ｱﾑ｡^｡C"
!     IDS_SALVAGE_ERROR       "ｴｩｱﾏｧ@ｷ~･｢ｱﾑ｡C"
!     IDS_INVALID_NUM_SALVAGE_PROCESSSES 
!                             "ｩﾒｫｩwｪｺｴｩｱﾏｳBｲzｼﾆ･ﾘｵLｮﾄ｡CｴｩｱﾏｳBｲzｪｺｼﾆ･ﾘ･ｲｶｷ､ｶｩ 1 ｨ 32 ､ｧｶ｡｡C"
!     IDS_WRONG_CELL          "ｱzｦbｫeｶｵｨBﾆJｫｩw､Fｨｱoｬ[ｺcｸｰTｪｺｦｪAｾｹ｡CｩﾒｫｩwｪｺｦｪAｾｹｨﾃ､｣ﾄﾝｩｱzｭn･[､Jｪｺ Cell ､､｡I"
!     IDS_CELLSERVDB_UPDATE_ERRORS_ARE_IN_LOG_FILE 
!                             "ｵLｪkｧｷs､@ｨﾇｦb Cell ､､ｦｪAｾｹ､Wｪｺ CellServDB ﾀﾉ｡Cｦpｭnﾀﾋｵ､wｧｷsｻP･ｼｧｷsｪｺｦｪAｾｹｲMｳ譯Aｽﾐﾀﾋｵﾀxｦsｦbﾀﾉｮﾗ､Wｪｺｬ[ｺc､鮟x"
!     IDS_GET_CREDENTIALS_STEP "ｨｱoｺﾞｲzｰOｸｹ"
!     IDS_MUST_ENTER_SCS_NAME "ｮiｶ}ｬ[ｺc､ｧｫe｡A･ｲｶｷ･ｿ鬢J｡uｨtｲﾎｱｱｨｾｾｹ｡vｦWｺﾙ｡C"
!     IDS_NOT_SAME_CELL       "｡uAFS ･ﾎ､蘯ﾝ｡vｬ[ｺcｦb｡uAFS ｦｪAｾｹ｡v･H･~ｪｺ､｣ｦP Cell ､､｡Cｦbｱzｬ[ｺc｡u AFS ｦｪAｾｹ｡v､ｧｫe｡Aｱz･ｲｶｷ･ｱN｡uAFS ･ﾎ､蘯ﾝ｡vｭｫｷsｬ[ｺcｦb｡uｦｪAｾｹ｡vｪｺ Cell ､､｡C"
!     IDS_LAST_DB_SERVER      "ｦｹｾｾｹ･ｿｦbｰｦ Cell ､Wｳﾌｫ皙ｺｸｮﾆｮwｦｪAｾｹ｡CｭYｱzﾄ~ﾄｨﾃｨｮｦbｦｹｾｾｹ､WｪｺｸｮﾆｮwｪAｰﾈｬ[ｺc｡ACell ｱN､｣ｦAｦsｦb｡Aｦﾓ･Bｨ茹Lｦbｦｹｾｾｹ､Wｰｦ讙ｺ AFS ｪAｰﾈｱNｨｮｬ[ｺc｡CｱzｽTｩwｭnﾄ~ﾄ｡H"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BAD_PW              "AFS ･Dﾅ鬪ｺｱKｽXｵLｮﾄ｡C"
!     IDS_ERROR_CLIENT_VERSION 
!                             "ｦｹｹqｸ｣､W｡uAFS ･ﾎ､蘯ﾝ｡vｪｺｪｩ･ｻｻP｡uAFS ｦｪAｾｹ｡v､｣ｬﾛｮe｡C｡uAFS ｦｪAｾｹ｡vｦﾜ､ﾖｻﾝｭn｡uAFS ･ﾎ､蘯ﾝ｡v3.5 ･H､Wｪｺｪｩ･ｻ｡C"
!     IDS_CANT_MAP_ROOT_AFS   "ｦpｭnｦbｮﾚｮeﾅ鬢Wｳ]ｩw ACL｡Aｺﾏｺﾐｾ･Nｸｹ･ｲｶｷｹﾀｳｦﾜ AFS ､W｡C･ﾘｫeｨﾃｨSｦｳ･i･ﾎｪｺｺﾏｺﾐｾ･Nｸｹ｡Cｽﾐﾄﾀｩ､@ｭﾓｺﾏｺﾐｾ･Nｸｹｨﾃｫ､@､U｡uｽTｩw｡v｡C"
!     IDS_NO_MSG_STEP         " "
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_PARTITION_NAME_VALIDATION_TYPE "､ﾀｳﾎｰﾏｦWｺﾙ"
!     IDS_VOLUME_NAME_VALIDATION_TYPE "ｮeﾅ鬥Wｺﾙ"
!     IDS_NUM_SALVAGE_PROCS_VALIDATION_TYPE "ｴｩｱﾏｳBｲzｪｺｼﾆ･ﾘ"
!     IDS_PATH_NAME_VALIDATION_TYPE "ｸｮ|ｦWｺﾙ"
!     IDS_FILE_NAME_VALIDATION_TYPE "ﾀﾉｦW"
!     IDS_GENERIC_VALIDATION_TYPE "ｭﾈ"
! END
! 
! #endif    // Chinese (Taiwan) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
Index: openafs/src/WINNT/afssvrcpa/.cvsignore
diff -c /dev/null openafs/src/WINNT/afssvrcpa/.cvsignore:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:22 2005
--- openafs/src/WINNT/afssvrcpa/.cvsignore	Fri Mar 11 02:22:49 2005
***************
*** 0 ****
--- 1,2 ----
+ AFS_component_version_number.c
+ AFS_component_version_number.h
Index: openafs/src/WINNT/afssvrcpa/NTMakefile
diff -c openafs/src/WINNT/afssvrcpa/NTMakefile:1.5.2.3 openafs/src/WINNT/afssvrcpa/NTMakefile:1.5.2.4
*** openafs/src/WINNT/afssvrcpa/NTMakefile:1.5.2.3	Tue Dec  7 01:00:58 2004
--- openafs/src/WINNT/afssvrcpa/NTMakefile	Fri Mar 11 01:59:23 2005
***************
*** 56,61 ****
--- 56,62 ----
  
  clean::
  	$(CD) lang
+         @if exist AFS_component_version_number.h del AFS_component_version_number.h
  	for /f %l in ('dir /B ??_??') do ( if exist @$(NTLANG) do @$(NTLANG) %l $(MAKECMD) /nologo /f NTMakefile clean )
  	$(CD) ..
  
Index: openafs/src/WINNT/afssvrcpa/cpl_interface.cpp
diff -c openafs/src/WINNT/afssvrcpa/cpl_interface.cpp:1.2 openafs/src/WINNT/afssvrcpa/cpl_interface.cpp:1.2.20.1
*** openafs/src/WINNT/afssvrcpa/cpl_interface.cpp:1.2	Sat Nov  4 05:01:59 2000
--- openafs/src/WINNT/afssvrcpa/cpl_interface.cpp	Fri Mar 11 01:59:23 2005
***************
*** 25,33 ****
   * DEFINITIONS _______________________________________________________________
   *
   */
! #define APP_INSTALL_DIR_REG_KEY		AFSREG_SVR_SW_VERSION_KEY
  #define APP_INSTALL_DIR_REG_VALUE	AFSREG_SVR_SW_VERSION_DIR_VALUE
! #define	APP_EXE_PATH				"\\usr\\afs\\bin\\afssvrcfg.exe"
  
  
  
--- 25,33 ----
   * DEFINITIONS _______________________________________________________________
   *
   */
! #define APP_INSTALL_DIR_REG_SUBKEY	AFSREG_SVR_SW_VERSION_SUBKEY
  #define APP_INSTALL_DIR_REG_VALUE	AFSREG_SVR_SW_VERSION_DIR_VALUE
! #define	APP_EXE_PATH			"\\usr\\afs\\bin\\afssvrcfg.exe"
  
  
  
***************
*** 61,67 ****
  
  	dwSize = sizeof(szInstallDir);
  
! 	nResult = RegOpenKeyAlt(AFSREG_NULL_KEY, APP_INSTALL_DIR_REG_KEY, KEY_READ, FALSE, &hKey, 0);
  	if (nResult == ERROR_SUCCESS) {
  		nResult = RegQueryValueEx(hKey, APP_INSTALL_DIR_REG_VALUE, 0, &dwType, (PBYTE)szInstallDir, &dwSize);
  		RegCloseKey(hKey);
--- 61,67 ----
  
  	dwSize = sizeof(szInstallDir);
  
! 	nResult = RegOpenKeyAlt(HKEY_LOCAL_MACHINE, APP_INSTALL_DIR_REG_SUBKEY, KEY_READ, FALSE, &hKey, 0);
  	if (nResult == ERROR_SUCCESS) {
  		nResult = RegQueryValueEx(hKey, APP_INSTALL_DIR_REG_VALUE, 0, &dwType, (PBYTE)szInstallDir, &dwSize);
  		RegCloseKey(hKey);
Index: openafs/src/WINNT/afssvrcpa/lang/.cvsignore
diff -c /dev/null openafs/src/WINNT/afssvrcpa/lang/.cvsignore:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:22 2005
--- openafs/src/WINNT/afssvrcpa/lang/.cvsignore	Fri Mar 11 02:22:52 2005
***************
*** 0 ****
--- 1,2 ----
+ AFS_component_version_number.h
+ 
Index: openafs/src/WINNT/afssvrcpa/lang/ja_JP/afssvrcpa.rc
diff -c openafs/src/WINNT/afssvrcpa/lang/ja_JP/afssvrcpa.rc:1.3 openafs/src/WINNT/afssvrcpa/lang/ja_JP/afssvrcpa.rc:1.3.2.1
*** openafs/src/WINNT/afssvrcpa/lang/ja_JP/afssvrcpa.rc:1.3	Thu Jun 19 15:01:01 2003
--- openafs/src/WINNT/afssvrcpa/lang/ja_JP/afssvrcpa.rc	Fri Mar 11 01:59:26 2005
***************
*** 7,48 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS サーバー構成アプリケーション"
  #define AFS_VERINFO_NAME "afssvrcpa"
  #define AFS_VERINFO_FILENAME "afssvrcpa.exe"
  #define AFS_VERINFO_LANG_CODE 0x411
  #define AFS_VERINFO_CHARSET 932
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! 
! #include "resource.h"
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icons
! //
! IDI_AFSD                ICON    DISCARDABLE     "afssvrcpa.ico"
! 
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! STRINGTABLE DISCARDABLE 
! BEGIN
! 	IDS_ERROR_LOADING_ICON	"アイコンのロード・エラー"
! 	IDS_CPA_TITLE			"AFS サーバー構成"
! 	IDS_EXECUTION_ERROR		"AFS サーバー構成アプリケーションをオープンできません。"
! 	IDS_APP_NAME			"AFS サーバー構成"
! END
--- 7,48 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS サーバー構成アプリケーション"
  #define AFS_VERINFO_NAME "afssvrcpa"
  #define AFS_VERINFO_FILENAME "afssvrcpa.exe"
  #define AFS_VERINFO_LANG_CODE 0x411
  #define AFS_VERINFO_CHARSET 932
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! 
! #include "resource.h"
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icons
! //
! IDI_AFSD                ICON    DISCARDABLE     "afssvrcpa.ico"
! 
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! STRINGTABLE DISCARDABLE 
! BEGIN
! 	IDS_ERROR_LOADING_ICON	"アイコンのロード・エラー"
! 	IDS_CPA_TITLE			"AFS サーバー構成"
! 	IDS_EXECUTION_ERROR		"AFS サーバー構成アプリケーションをオープンできません。"
! 	IDS_APP_NAME			"AFS サーバー構成"
! END
Index: openafs/src/WINNT/afssvrcpa/lang/pt_BR/afssvrcpa.rc
diff -c openafs/src/WINNT/afssvrcpa/lang/pt_BR/afssvrcpa.rc:1.3 openafs/src/WINNT/afssvrcpa/lang/pt_BR/afssvrcpa.rc:1.3.2.1
*** openafs/src/WINNT/afssvrcpa/lang/pt_BR/afssvrcpa.rc:1.3	Thu Jun 19 15:01:03 2003
--- openafs/src/WINNT/afssvrcpa/lang/pt_BR/afssvrcpa.rc	Fri Mar 11 01:59:29 2005
***************
*** 7,48 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS Server Configuration application"
  #define AFS_VERINFO_NAME "afssvrcpa"
  #define AFS_VERINFO_FILENAME "afssvrcpa.exe"
  #define AFS_VERINFO_LANG_CODE 0x416
  #define AFS_VERINFO_CHARSET 1252
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! 
! #include "resource.h"
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icons
! //
! IDI_AFSD                ICON    DISCARDABLE     "afssvrcpa.ico"
! 
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_LOADING_ICON  "Erro no carregamento do cone"
!     IDS_CPA_TITLE           "Configura鈬o do AFS Server"
!     IDS_EXECUTION_ERROR     "Incapaz de abrir a aplica鈬o de Configura鈬o do AFS Server"
!     IDS_APP_NAME            "Configura鈬o do AFS Server"
! END
--- 7,48 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #define  AFS_VERINFO_FILE_DESCRIPTION "AFS Server Configuration application"
  #define AFS_VERINFO_NAME "afssvrcpa"
  #define AFS_VERINFO_FILENAME "afssvrcpa.exe"
  #define AFS_VERINFO_LANG_CODE 0x416
  #define AFS_VERINFO_CHARSET 1252
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! 
! 
! #include "resource.h"
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icons
! //
! IDI_AFSD                ICON    DISCARDABLE     "afssvrcpa.ico"
! 
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_LOADING_ICON  "Erro no carregamento do cone"
!     IDS_CPA_TITLE           "Configura鈬o do AFS Server"
!     IDS_EXECUTION_ERROR     "Incapaz de abrir a aplica鈬o de Configura鈬o do AFS Server"
!     IDS_APP_NAME            "Configura鈬o do AFS Server"
! END
Index: openafs/src/WINNT/afssvrmgr/NTMakefile
diff -c openafs/src/WINNT/afssvrmgr/NTMakefile:1.4.2.3 openafs/src/WINNT/afssvrmgr/NTMakefile:1.4.2.4
*** openafs/src/WINNT/afssvrmgr/NTMakefile:1.4.2.3	Tue Dec  7 01:00:58 2004
--- openafs/src/WINNT/afssvrmgr/NTMakefile	Fri Mar 11 01:59:32 2005
***************
*** 118,123 ****
--- 118,124 ----
  
  clean::
  	$(CD) lang
+         @if exist AFS_component_version_number.h del AFS_component_version_number.h
  	for /f %l in ('dir /B ??_??') do ( if exist @$(NTLANG) do @$(NTLANG) %l $(MAKECMD) /nologo /f NTMakefile clean )
  	$(CD) ..
  
Index: openafs/src/WINNT/afsusrmgr/.cvsignore
diff -c /dev/null openafs/src/WINNT/afsusrmgr/.cvsignore:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:22 2005
--- openafs/src/WINNT/afsusrmgr/.cvsignore	Fri Mar 11 02:22:56 2005
***************
*** 0 ****
--- 1,2 ----
+ AFS_component_version_number.h
+ 
Index: openafs/src/WINNT/afsusrmgr/NTMakefile
diff -c openafs/src/WINNT/afsusrmgr/NTMakefile:1.4.2.3 openafs/src/WINNT/afsusrmgr/NTMakefile:1.4.2.4
*** openafs/src/WINNT/afsusrmgr/NTMakefile:1.4.2.3	Tue Dec  7 01:00:59 2004
--- openafs/src/WINNT/afsusrmgr/NTMakefile	Fri Mar 11 01:59:35 2005
***************
*** 95,100 ****
--- 95,101 ----
  
  clean::
  	$(CD) lang
+         @if exist AFS_component_version_number.h del AFS_component_version_number.h
  	for /f %l in ('dir /B ??_??') do ( if exist @$(NTLANG) do @$(NTLANG) %l $(MAKECMD) /nologo /f NTMakefile clean )
  	$(CD) ..
  
Index: openafs/src/WINNT/afsusrmgr/lang/.cvsignore
diff -c /dev/null openafs/src/WINNT/afsusrmgr/lang/.cvsignore:1.1.2.1
*** /dev/null	Mon Mar 21 13:18:22 2005
--- openafs/src/WINNT/afsusrmgr/lang/.cvsignore	Fri Mar 11 02:22:59 2005
***************
*** 0 ****
--- 1 ----
+ AFS_component_version_number.h
Index: openafs/src/WINNT/afsusrmgr/lang/de_DE/AfsUsrMgr.rc
diff -c openafs/src/WINNT/afsusrmgr/lang/de_DE/AfsUsrMgr.rc:1.3 openafs/src/WINNT/afsusrmgr/lang/de_DE/AfsUsrMgr.rc:1.3.2.1
*** openafs/src/WINNT/afsusrmgr/lang/de_DE/AfsUsrMgr.rc:1.3	Thu Jun 19 15:01:20 2003
--- openafs/src/WINNT/afsusrmgr/lang/de_DE/AfsUsrMgr.rc	Fri Mar 11 01:59:37 2005
***************
*** 7,1798 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #include <WINNT\al_resource.h>
! #ifndef APSTUDIO_INVOKED
! #define AFS_VERINFO_FILE_DESCRIPTION "AFS Account Manager"
  #define AFS_VERINFO_NAME "AfsUsrMgr"
  #define AFS_VERINFO_FILENAME "AfsUsrMgr.exe"
  #define AFS_VERINFO_LANG_CODE 0x407
  #define AFS_VERINFO_CHARSET 1252
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! #endif // APSTUDIO_INVOKED
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_MAIN DIALOG DISCARDABLE  0, 0, 310, 220
! STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU | WS_THICKFRAME
! CAPTION "AFS Account Manager"
! MENU MENU_MAIN
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "",IDC_TAB,"SysTabControl32",0x0,4,32,302,184
!     LTEXT           "Ausgew臧lte Zelle:",IDC_STATIC,4,7,61,8
!     LTEXT           "(keine ausgew臧lt)",IDC_CELL,71,7,206,8
!     LTEXT           "AFS-Token:",IDC_STATIC,4,18,55,8
!     LTEXT           "(keine Token)",IDC_CREDS,71,18,212,8
!     ICON            IDI_MAIN,IDC_ANIM,285,7,20,20,SS_SUNKEN
!     CONTROL         "",IDC_BAR,"Static",SS_ETCHEDHORZ,1,0,308,1
! END
! 
! IDD_TAB_USERS DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_USERS_PATTERN,185,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "Muster:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
!     LTEXT           "Abfrage l舫ft; bitte warten...",IDC_USERS_TITLE,4,6,142,
!                     8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,103
!     PUSHBUTTON      "&Erstellen...",M_USER_CREATE,65,126,55,14
!     PUSHBUTTON      "&Zugehrigkeit...",M_MEMBERSHIP,124,126,55,14
!     PUSHBUTTON      "Me&rkmale...",M_PROPERTIES,183,126,55,14
!     PUSHBUTTON      "...",IDC_ADVANCED,229,4,9,13
! END
! 
! IDD_TAB_GROUPS DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
!     LTEXT           "Abfrage l舫ft; bitte warten...",IDC_GROUPS_TITLE,4,6,
!                     142,8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,103
!     PUSHBUTTON      "&Erstellen...",M_GROUP_CREATE,65,126,55,14
!     PUSHBUTTON      "&Mitglieder...",M_MEMBERSHIP,124,126,55,14
!     PUSHBUTTON      "Me&rkmale...",M_PROPERTIES,183,126,55,14
! END
! 
! IDD_ACTIONS DIALOGEX 0, 0, 236, 58
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! EXSTYLE WS_EX_TOOLWINDOW
! CAPTION "Laufende Operationen - AFS Account Manager"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Abfrage l舫ft; bitte warten...",IDC_ACTION_DESC,2,2,232,
!                     8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x3,2,14,232,43
! END
! 
! IDD_HELP_ABOUT DIALOG DISCARDABLE  0, 0, 226, 141
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "Informationen zu AFS Account Manager"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     ICON            IDI_MAIN,IDC_HELPABOUT_ICON,4,8,21,20
!     LTEXT           "AFS Account Manager, Version 3.5",IDC_STATIC,33,8,189,8
!     LTEXT           "Copyright ｩ IBM Corporation 1989, 1999",IDC_STATIC,33,
!                     20,189,8
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,4,37,218,1
!     CTEXT           "",IDC_HELPABOUT_DESC,4,48,218,56
!     PUSHBUTTON      "&Schlieﾟen",IDOK,87,123,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,4,114,218,1
! END
! 
! IDD_HELP_ERROR DIALOG DISCARDABLE  0, 0, 218, 141
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "Fehlercode suchen"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "F&ehlernummer:",IDC_STATIC,4,41,45,8
!     EDITTEXT        IDC_ERROR_NUMBER,59,39,78,14,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ﾜberse&tzen",IDC_ERROR_TRANSLATE,147,39,67,14
!     PUSHBUTTON      "&Schlieﾟen",IDCANCEL,85,123,48,14
!     LTEXT           "(Text wird zur Laufzeit festgelegt)",IDC_ERROR_DESC,4,
!                     71,210,42
!     LTEXT           "Um die Bedeutung eines Fehlercodes festzustellen, geben Sie den Code unten ein und klicken dann auf ""ﾜbersetzen"".",
!                     IDC_STATIC,4,4,210,27
!     CONTROL         "",IDC_ADVANCED_BOX,"Static",SS_ETCHEDHORZ,4,60,211,1
! END
! 
! IDD_HELP_FIND DIALOG DISCARDABLE  0, 0, 231, 74
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "Suchbefehl"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     COMBOBOX        IDC_FIND_COMMAND,4,38,150,170,CBS_DROPDOWN | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     DEFPUSHBUTTON   "&Hilfe anzeigen",IDOK,160,39,67,14
!     PUSHBUTTON      "&Abbrechen",IDCANCEL,160,55,67,14
!     LTEXT           "Um festzustellen, wie Sie mit dem AFS Account Manager eine Aufgabe durchfhren, w臧len Sie unten eine Befehlszeile aus und klicken auf Hilfe anzeigen.",
!                     IDC_STATIC,4,4,223,25
! END
! 
! IDD_COLUMNS DIALOG DISCARDABLE  0, 0, 286, 148
! STYLE WS_POPUP | WS_CAPTION
! CAPTION "Spalten"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Anzuzeigende Spalten au&sw臧len bei der Auflistung von:",
!                     IDC_STATIC,5,5,126,16
!     COMBOBOX        IDC_COLUMNS,134,5,147,104,CBS_DROPDOWNLIST | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Verfgbare &Spalten:",IDC_STATIC,12,40,100,8
!     LISTBOX         IDC_COL_AVAIL,12,49,100,71,LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Anzuzeigende Spalten:",IDC_STATIC,173,41,100,8
!     LISTBOX         IDC_COL_SHOWN,173,50,100,71,LBS_NOINTEGRALHEIGHT | 
!                     WS_VSCROLL | WS_TABSTOP
!     PUSHBUTTON      "&Hinzufgen >>",IDC_COL_INSERT,117,68,51,14
!     PUSHBUTTON      "<< Entfe&rnen",IDC_COL_DELETE,117,88,51,14
!     PUSHBUTTON      "Nach &oben",IDC_COL_UP,173,122,48,14
!     PUSHBUTTON      "Nach &unten",IDC_COL_DOWN,224,122,48,14
!     GROUPBOX        "Spalten auflisten",IDC_STATIC,5,25,276,118
! END
! 
! IDD_USER_ADVANCED DIALOGEX 0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Erweitert"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Aktueller Schlssel:",IDC_STATIC,5,5,40,8
!     LTEXT           "Abfrage l舫ft; bitte warten...",IDC_USER_KEY,52,5,173,
!                     20,0,WS_EX_STATICEDGE
!     CONTROL         "Dies ist ein &Systemkonto (keine Verschlsselung)",
!                     IDC_USER_NOSEAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     35,180,10
!     CONTROL         "Benutzer besitzt Verw&altungsberechtigung",
!                     IDC_USER_ADMIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     52,157,10
!     CONTROL         "Zu&griffsberechtigung erteilen; Lebenszeit:",
!                     IDC_USER_TGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,69,
!                     144,10
!     CONTROL         "",IDC_USER_LIFETIME,"elapsed",WS_BORDER | WS_TABSTOP,
!                     153,68,66,12
!     CONTROL         "Gruppenerstellungs&quote:",IDC_USER_GROUP_HASQUOTA,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,86,98,10
!     EDITTEXT        IDC_USER_GROUP_QUOTA,117,85,27,13,ES_AUTOHSCROLL
!     LTEXT           "Konto&status anzeigen:",IDC_STATIC,12,135,67,8
!     COMBOBOX        IDC_USER_PERM_STATUS,91,133,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen anzeigen, deren &Eigner der Benutzer ist:",
!                     IDC_STATIC,12,145,72,23
!     COMBOBOX        IDC_USER_PERM_OWNED,91,150,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen&zugehrigkeit anzeigen:",IDC_STATIC,12,171,73,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,91,168,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Andere Kontoberechtigungen",IDC_STATIC,5,103,220,89
!     LTEXT           "Diese Einstellungen geben an, welche Benutzer dieses Konto anzeigen knnen.",
!                     IDC_STATIC,11,114,204,16
! END
! 
! IDD_USER_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION " Allgemein"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Benutzer kann Kennwort &ndern",IDC_USER_CPW,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,47,121,10
!     PUSHBUTTON      "&Kennwort 舅dern",IDC_USER_CPW_NOW,144,45,73,14
!     CONTROL         "Benutzer kann alte Kennwrter &wiederverwenden",
!                     IDC_USER_RPW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,62,
!                     171,10
!     CONTROL         "K&ennwort l舫ft ab nach",IDC_USER_PWEXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,25,78,87,10
!     LTEXT           "Tagen",IDC_STATIC,164,79,23,8
!     EDITTEXT        IDC_USER_PWEXPIRATION,119,77,37,13,ES_AUTOHSCROLL
!     CONTROL         "Konto &l舫ft ab am:",IDC_USER_EXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,97,77,10
!     CONTROL         "",IDC_USER_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,93,
!                     96,53,12
!     LTEXT           "u&m",IDC_USER_EXPIRE_AT,153,98,12,8
!     CONTROL         "",IDC_USER_EXPIRE_TIME,"Time",WS_BORDER | WS_TABSTOP,
!                     166,96,53,12
!     CONTROL         "Konto spe&rren nach",IDC_USER_FAILLOCK,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,134,76,10
!     LTEXT           "aufeinanderfolgenden fehlerhaften Anmeldungen",
!                     IDC_STATIC,129,132,86,16
!     EDITTEXT        IDC_USER_FAILLOCK_COUNT,90,134,32,13,ES_AUTOHSCROLL
!     CONTROL         "Konto auf unbestimmte &Zeit sperren (bis Sperre vom Administrator aufgehoben wird)",
!                     IDC_USER_FAILLOCK_INFINITE,"Button",BS_AUTORADIOBUTTON | 
!                     BS_MULTILINE,16,150,200,18
!     CONTROL         "Konto sperren &fr",IDC_USER_FAILLOCK_FINITE,"Button",
!                     BS_AUTORADIOBUTTON,16,172,70,10
!     CONTROL         "",IDC_USER_FAILLOCK_DURATION,"elapsed",WS_BORDER | 
!                     WS_TABSTOP,92,171,56,12
!     PUSHBUTTON      "Sperre a&ufheben",IDC_USER_UNLOCK,158,169,57,14
!     GROUPBOX        "Fehlerhafte Anmeldeversuche",IDC_STATIC,5,119,220,73
!     ICON            IDI_USER,IDC_STATIC,5,5,20,20
!     LTEXT           "Benutzer %1",IDC_USER_NAME,37,13,188,8
!     GROUPBOX        "Konto",IDC_STATIC,5,32,220,85
! END
! 
! IDD_GROUP_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION " Allgemein"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     ICON            IDI_GROUP,IDC_STATIC,5,5,20,20
!     LTEXT           "Gruppe %1",IDC_GROUP_NAME,37,13,188,8
!     LTEXT           "Konto&status anzeigen:",IDC_STATIC,12,108,67,8
!     COMBOBOX        IDC_GROUP_PERM_STATUS,101,106,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Gruppen anzeigen, deren Eigner der Benutzer ist:",
!                     IDC_STATIC,12,121,83,16
!     COMBOBOX        IDC_GROUP_PERM_GROUPS,101,122,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen&mitglied anzeigen:",IDC_STATIC,12,140,69,8
!     COMBOBOX        IDC_GROUP_PERM_MEMBERS,101,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Mitglieder &hinzufgen:",IDC_STATIC,12,156,73,8
!     COMBOBOX        IDC_GROUP_PERM_ADD,101,154,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Mitglieder entfe&rnen:",IDC_STATIC,12,172,67,8
!     COMBOBOX        IDC_GROUP_PERM_REMOVE,101,170,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Andere Kontoberechtigungen",IDC_STATIC,5,77,220,114
!     LTEXT           "Diese Einstellungen geben an, welche Benutzer diese Gruppe anzeigen knnen.",
!                     IDC_STATIC,11,87,204,16
!     LTEXT           "Eigner:",IDC_STATIC,5,31,24,8
!     LTEXT           "%1",IDC_GROUP_OWNER,37,31,113,8
!     PUSHBUTTON      "&Eigner 舅dern...",IDC_GROUP_CHANGEOWNER,159,29,66,12
!     LTEXT           "Ersteller:",IDC_STATIC,5,46,27,8
!     LTEXT           "%1",IDC_GROUP_CREATOR,37,46,113,8
! END
! 
! IDD_USER_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Gruppen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Gruppen",IDC_STATIC,5,31,220,160
!     LTEXT           "Diese Einstellungen ermglichen die ﾄnderung der Liste der Gruppen, zu denen dieser Benutzer gehrt, sowie der Liste der Gruppen, deren Eigner dieser Benutzer ist.",
!                     IDC_STATIC,5,5,220,24
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Hinzufgen...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "Gruppen &anzeigen, zu denen dieser Benutzer gehrt",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "Gruppen anzeigen, deren &Eigner dieser Benutzer ist",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Abfrage l舫ft; bitte warten...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_GROUP_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Zugehrigkeit"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Gruppenzugehrigkeit",IDC_STATIC,5,31,220,160
!     LTEXT           "Diese Einstellungen ermglichen die Auswahl der Mitglieder dieser Gruppe sowie die Auswahl der Gruppen, deren Eigner diese Gruppe sein soll.",
!                     IDC_STATIC,5,3,220,23
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Hinzufgen...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "Mitglieder dieser Gruppe &anzeigen",
!                     IDC_GROUP_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "Gruppen anzeigen, deren &Eigner diese Gruppe ist",
!                     IDC_GROUP_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Abfrage l舫ft; bitte warten...)",IDC_USERS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_BROWSE DIALOG DISCARDABLE  0, 0, 281, 150
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(Dieser Titel wird zur Laufzeit festgelegt)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "(Laufzeit)",IDC_BROWSE_TYPE,7,115,49,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,60,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "Aus&w臧len",IDC_BROWSE_SELECT,224,112,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,224,129,50,14
!     CONTROL         "(Text wird zur Laufzeit festgelegt)",IDC_BROWSE_CHECK,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,59,133,157,10
!     RTEXT           "In &Zelle suchen:",IDC_STATIC,4,8,54,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,64,6,132,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,198,8,29,8
!     EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,267,84
! END
! 
! IDD_USER_PASSWORD DIALOG DISCARDABLE  0, 0, 281, 145
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Kontokennwort 舅dern"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Automatisch eine Versionsnummer fr das neue Kennwort ausw臧len",
!                     IDC_CPW_VERSION_AUTO,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,42,36,230,10
!     CONTROL         "&Schlsselversion verwenden:",IDC_CPW_VERSION_MANUAL,
!                     "Button",BS_AUTORADIOBUTTON,42,52,106,10
!     EDITTEXT        IDC_CPW_VERSION,150,51,43,14,ES_AUTOHSCROLL
!     CONTROL         "Diese Zeichenfolge verschlsseln:",IDC_CPW_BYSTRING,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,29,78,122,10
!     CONTROL         "Diesen Schlssel verwenden:",IDC_CPW_BYDATA,"Button",
!                     BS_AUTORADIOBUTTON,30,95,106,10
!     EDITTEXT        IDC_CPW_STRING,152,76,122,14,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_CPW_DATA,152,94,70,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "Wahlf&rei",IDC_CPW_RANDOM,226,94,48,14
!     DEFPUSHBUTTON   "OK",IDOK,116,124,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,170,124,50,14
!     PUSHBUTTON      "Hilfe",9,224,124,50,14
!     LTEXT           "Neues Kennwort fr Benutzer %1",IDC_CPW_TITLE,43,14,228,
!                     8
!     ICON            IDI_USER,-1,7,6,20,20
!     LTEXT           "Version:",-1,7,37,26,8
!     LTEXT           "Wert:",-1,7,78,21,8
! END
! 
! IDD_GROUP_RENAME DIALOG DISCARDABLE  0, 0, 274, 150
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Gruppe umbenennen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Neuer Gruppen&name:",IDC_STATIC,30,103,71,8
!     EDITTEXT        IDC_RENAME_NEWNAME,109,101,104,14,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "OK",IDOK,109,129,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,163,129,50,14
!     PUSHBUTTON      "Hilfe",9,217,129,50,14
!     LTEXT           "Aktueller Eigner:",IDC_STATIC,30,65,55,8
!     PUSHBUTTON      "Eigner &ndern...",IDC_RENAME_CHOWN,198,63,69,14
!     LTEXT           "Aktueller Gruppenname:",IDC_STATIC,30,83,80,8
!     ICON            IDI_GROUP,IDC_STATIC,7,6,20,20
!     LTEXT           "Gruppe %1 umbenennen",IDC_RENAME_TITLE,35,14,222,8
!     LTEXT           "Hinweis: Verfgt der Gruppenname ber keinen Pr臟ix, muﾟ der Name den aktuellen Eigner der Gruppe pr艘ise darstellen (z.B., ""Eigner:Gruppenname"").",
!                     IDC_STATIC,33,30,217,26
!     LTEXT           "(Abfrage l舫ft)",IDC_RENAME_OWNER,109,65,82,8
!     LTEXT           "(Abfrage l舫ft)",IDC_RENAME_OLDNAME,109,83,104,8
! END
! 
! IDD_BROWSE_COMBO DIALOG DISCARDABLE  0, 0, 281, 154
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(Dieser Titel wird zur Laufzeit festgelegt)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "(Laufzeit)",IDC_BROWSE_TYPE,7,115,49,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,60,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "Aus&w臧len",IDC_BROWSE_SELECT,224,113,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,224,133,50,14
!     RTEXT           "Anzeigen:",IDC_STATIC,7,134,49,8
!     COMBOBOX        IDC_BROWSE_COMBO,60,132,140,68,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     RTEXT           "In &Zelle suchen:",IDC_STATIC,3,8,53,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,64,6,131,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
!     EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,267,84
! END
! 
! IDD_BROWSE_BOTH DIALOG DISCARDABLE  0, 0, 281, 169
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(Dieser Titel wird zur Laufzeit festgelegt)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "(Laufzeit)",IDC_BROWSE_TYPE,7,115,49,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,60,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "Aus&w臧len",IDC_BROWSE_SELECT,224,113,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,224,132,50,14
!     RTEXT           "Anzeigen:",IDC_STATIC,7,134,49,8
!     COMBOBOX        IDC_BROWSE_COMBO,60,132,140,68,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "(Text wird zur Laufzeit festgelegt)",IDC_BROWSE_CHECK,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,59,151,181,10
!     RTEXT           "In &Zelle suchen:",IDC_STATIC,4,8,54,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,64,6,134,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
!     EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,267,84
! END
! 
! IDD_NEWUSER_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Gruppen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Gruppen",IDC_STATIC,5,31,220,160
!     LTEXT           "Diese Einstellungen ermglichen die ﾄnderung der ersten Liste der Gruppen, zu denen dieser Benutzer gehren wird, sowie der Gruppen, deren Eigner dieser Benutzer wird.",
!                     IDC_STATIC,5,4,220,24
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Hinzufgen...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "Gruppen &anzeigen, zu denen dieser Benutzer gehren wird",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     202,10
!     CONTROL         "Gruppen anzeigen, deren &Eigner dieser Benutzer wird",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Abfrage l舫ft; bitte warten...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_NEWUSER DIALOG DISCARDABLE  0, 0, 253, 170
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Benutzer erstellen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Name:",IDC_STATIC,7,37,22,8
!     EDITTEXT        IDC_NEWUSER_NAME,54,35,127,14,ES_AUTOHSCROLL
!     LTEXT           "&Kennwort:",IDC_STATIC,7,57,34,8
!     EDITTEXT        IDC_NEWUSER_PW1,54,55,90,14,ES_PASSWORD | ES_AUTOHSCROLL
!     LTEXT           "(e&rneut eingeben:)",IDC_STATIC,7,73,47,17
!     EDITTEXT        IDC_NEWUSER_PW2,54,75,90,14,ES_PASSWORD | ES_AUTOHSCROLL
!     CONTROL         "A&utomatisch n臘hste verfgbare Benutzer-ID verwenden",
!                     IDC_NEWUSER_ID_AUTO,"Button",BS_AUTORADIOBUTTON | BS_TOP | 
!                     BS_MULTILINE,50,97,192,16
!     CONTROL         "Be&stimmte Benutzer-ID verwenden:",
!                     IDC_NEWUSER_ID_MANUAL,"Button",BS_AUTORADIOBUTTON,50,117,
!                     124,10
!     EDITTEXT        IDC_NEWUSER_ID,178,116,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "&Gruppen...",IDC_ADVANCED,7,149,54,14
!     DEFPUSHBUTTON   "OK",IDOK,94,149,43,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,141,149,43,14
!     PUSHBUTTON      "Hilfe",9,203,149,43,14
!     ICON            IDI_USER,IDC_STATIC,7,6,20,20
!     LTEXT           "Neuer Benutzer in Zelle %1",IDC_NEWUSER_TITLE,61,14,185,
!                     8
!     LTEXT           "Benutzer-ID:",IDC_STATIC,7,97,41,8
! END
! 
! IDD_NEWGROUP_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION " Allgemein"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     ICON            IDI_GROUP,IDC_STATIC,5,5,20,20
!     LTEXT           "Neue Gruppe in Zelle %1",IDC_GROUP_NAME,37,13,188,8
!     LTEXT           "Konto&status anzeigen:",IDC_STATIC,12,102,67,8
!     COMBOBOX        IDC_GROUP_PERM_STATUS,91,100,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Gruppen anzeigen, deren Eigner der Benutzer ist:",
!                     IDC_STATIC,12,114,67,23
!     COMBOBOX        IDC_GROUP_PERM_GROUPS,91,119,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen&mitglieder anzeigen:",IDC_STATIC,12,140,69,8
!     COMBOBOX        IDC_GROUP_PERM_MEMBERS,91,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Mitglieder &hinzufgen:",IDC_STATIC,12,156,73,8
!     COMBOBOX        IDC_GROUP_PERM_ADD,91,154,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Mitglieder entfe&rnen:",IDC_STATIC,12,172,67,8
!     COMBOBOX        IDC_GROUP_PERM_REMOVE,91,170,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Andere Kontoberechtigungen",IDC_STATIC,5,68,220,123
!     LTEXT           "Diese Einstellungen geben an, welche Benutzer Informationen ber diese Gruppe anzeigen knnen.",
!                     IDC_STATIC,11,80,204,17
!     LTEXT           "Eigner:",IDC_STATIC,5,35,24,8
!     LTEXT           "%1",IDC_GROUP_OWNER,37,35,113,8
!     PUSHBUTTON      "&Eigner 舅dern...",IDC_GROUP_CHANGEOWNER,159,33,66,12
! END
! 
! IDD_NEWGROUP_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Zugehrigkeit"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Gruppenzugehrigkeit",IDC_STATIC,5,31,220,160
!     LTEXT           "Diese Einstellungen ermglichen die Auswahl der ersten Mitglieder dieser Gruppe sowie die Auswahl der Gruppen, deren Eigner diese Gruppe sein soll.",
!                     IDC_STATIC,5,3,220,24
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Hinzufgen...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "Erste Mitglider dieser Gruppe &anzeigen",
!                     IDC_GROUP_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "Gruppen anzeigen, deren &Eigner diese Gruppe ist",
!                     IDC_GROUP_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Abfrage l舫ft; bitte warten...)",IDC_USERS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_NEWGROUP DIALOG DISCARDABLE  0, 0, 238, 135
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Gruppe erstellen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Name:",-1,7,37,22,8
!     EDITTEXT        IDC_NEWGROUP_NAME,46,35,127,14,ES_AUTOHSCROLL
!     CONTROL         "A&utomatisch n臘hste verfgbare Gruppen-ID verwenden",
!                     IDC_NEWGROUP_ID_AUTO,"Button",BS_AUTORADIOBUTTON | 
!                     BS_TOP | BS_MULTILINE,24,62,195,17
!     CONTROL         "Be&stimmte Gruppen-ID verwenden:",
!                     IDC_NEWGROUP_ID_MANUAL,"Button",BS_AUTORADIOBUTTON,24,81,
!                     126,10
!     EDITTEXT        IDC_NEWGROUP_ID,155,79,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "&Mitglieder...",IDC_ADVANCED,7,114,54,14
!     DEFPUSHBUTTON   "OK",IDOK,94,114,43,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,141,114,43,14
!     PUSHBUTTON      "Hilfe",9,188,114,43,14
!     ICON            IDI_USER,-1,7,6,20,20
!     LTEXT           "Neue Gruppe in Zelle %1",IDC_NEWGROUP_TITLE,46,14,179,
!                     10
!     LTEXT           " Gruppen-ID:",-1,8,51,32,8
! END
! 
! IDD_USER_DELETE DIALOG DISCARDABLE  0, 0, 281, 114
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Benutzer lschen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "OK",IDOK,116,93,50,14
!     DEFPUSHBUTTON   "Abbrechen",IDCANCEL,170,93,50,14
!     PUSHBUTTON      "Hilfe",9,224,93,50,14
!     LTEXT           "Achtung!\n\nDiese Operation lscht das Konto fr den Benutzer %1 auf Dauer.",
!                     IDC_DELETE_TITLE,36,14,238,32
!     ICON            32515,-1,7,6,20,20
!     CONTROL         "&KAS-Datenbankeintrag fr dieses Konto lschen",
!                     IDC_DELETE_KAS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,57,
!                     53,208,10
!     CONTROL         "&PTS-Datenbankeintrag fr dieses Konto lschen",
!                     IDC_DELETE_PTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,57,
!                     69,203,10
! END
! 
! IDD_GROUP_DELETE DIALOG DISCARDABLE  0, 0, 281, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Gruppe lschen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "OK",IDOK,116,61,50,14
!     DEFPUSHBUTTON   "Abbrechen",IDCANCEL,170,61,50,14
!     PUSHBUTTON      "Hilfe",9,224,61,50,14
!     LTEXT           "Achtung!\n\nDiese Operation lscht die Gruppe %1 auf Dauer.",
!                     IDC_DELETE_TITLE,36,14,238,32
!     ICON            32515,-1,7,6,20,20
! END
! 
! IDD_CELL_GENERAL DIALOG DISCARDABLE  0, 0, 230, 134
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION " Allgemein"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Maximale &Benutzer-ID:",IDC_STATIC,11,87,76,8
!     EDITTEXT        IDC_CELL_USERMAX,102,85,40,14,ES_AUTOHSCROLL
!     LTEXT           "Maximale &Gruppen-ID:",IDC_STATIC,11,105,80,8
!     EDITTEXT        IDC_CELL_GROUPMAX,102,103,40,14,ES_AUTOHSCROLL
!     GROUPBOX        "Benutzer- und Gruppen-IDs",IDC_STATIC,5,31,220,97
!     LTEXT           "Diese Einstellungen zeigen die bisher hchsten verwendeten Benutzer- und Gruppen-IDs an. Sie knnen problemlos erhht werden - allerdings nur dann verringert, wenn Sie sicher sind, daﾟ die neuen Werte nicht zu Konflikten mit vorhandenen Konten fhren.",
!                     IDC_STATIC,11,43,204,40
!     ICON            20035,IDC_STATIC,5,5,20,20
!     LTEXT           "Zelle %1",IDC_CELL_NAME,37,13,188,8
! END
! 
! IDD_NEWUSER_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION " Allgemein"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Benutzer kann Kennwort &ndern",IDC_USER_CPW,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,47,118,10
!     PUSHBUTTON      "&Kennwort 舅dern",IDC_USER_CPW_NOW,144,45,73,14
!     CONTROL         "Benutzer kann alte Kennwrter &wiederverwenden",
!                     IDC_USER_RPW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,62,
!                     175,10
!     CONTROL         "K&ennwort l舫ft ab nach",IDC_USER_PWEXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,25,78,87,10
!     LTEXT           "Tagen",IDC_STATIC,173,79,25,8
!     EDITTEXT        IDC_USER_PWEXPIRATION,115,77,37,13,ES_AUTOHSCROLL
!     CONTROL         "Konto &l舫ft ab am:",IDC_USER_EXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,97,77,10
!     CONTROL         "",IDC_USER_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,91,
!                     96,58,12
!     LTEXT           "u&m",IDC_USER_EXPIRE_AT,154,98,12,8
!     CONTROL         "",IDC_USER_EXPIRE_TIME,"Time",WS_BORDER | WS_TABSTOP,
!                     168,96,53,12
!     CONTROL         "Konto spe&rren nach",IDC_USER_FAILLOCK,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,132,76,10
!     LTEXT           "aufeinanderfolgenden fehlerhaften Anmeldungen",
!                     IDC_STATIC,137,130,83,18
!     EDITTEXT        IDC_USER_FAILLOCK_COUNT,90,131,32,13,ES_AUTOHSCROLL
!     CONTROL         "Konto auf unbestimmte &Zeit sperren (bis Sperre vom Administrator aufgehoben wird)",
!                     IDC_USER_FAILLOCK_INFINITE,"Button",BS_AUTORADIOBUTTON | 
!                     BS_MULTILINE,15,149,203,17
!     CONTROL         "Konto sperren &fr",IDC_USER_FAILLOCK_FINITE,"Button",
!                     BS_AUTORADIOBUTTON,15,170,68,10
!     CONTROL         "",IDC_USER_FAILLOCK_DURATION,"elapsed",WS_BORDER | 
!                     WS_TABSTOP,91,170,51,12
!     PUSHBUTTON      "Sperre a&ufheben",IDC_USER_UNLOCK,155,168,62,14
!     GROUPBOX        "Fehlerhafte Anmeldeversuche",IDC_STATIC,5,120,220,73
!     ICON            IDI_USER,IDC_STATIC,5,5,20,20
!     LTEXT           "Neuer Benutzer in Zelle %1",IDC_USER_NAME,37,13,181,8
!     GROUPBOX        "Konto",IDC_STATIC,5,32,220,85
! END
! 
! IDD_NEWUSER_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Erweitert"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&KAS-Datenbankeintrag fr dieses Konto erstellen (empfohlen)",
!                     IDC_USER_CREATE_KAS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,5,6,210,11
!     CONTROL         "&PTS-Datenbankeintrag fr dieses Konto erstellen (empfohlen)",
!                     IDC_USER_CREATE_PTS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,5,23,210,10
!     CONTROL         "Dieses Konto wird ein &Systemkonto (keine Verschlsselung)",
!                     IDC_USER_NOSEAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     40,207,10
!     CONTROL         "Benutzer verfgt ber Verw&altungsberechtigung",
!                     IDC_USER_ADMIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     57,180,10
!     CONTROL         "Zu&griffsberechtigung erteilen; Lebenszeit:",
!                     IDC_USER_TGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,74,
!                     142,10
!     CONTROL         "",IDC_USER_LIFETIME,"elapsed",WS_BORDER | WS_TABSTOP,
!                     151,73,66,12
!     CONTROL         "Gruppenerstellungs&quote:",IDC_USER_GROUP_HASQUOTA,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,91,94,10
!     EDITTEXT        IDC_USER_GROUP_QUOTA,111,90,27,13,ES_AUTOHSCROLL
!     LTEXT           "Konto&status anzeigen:",-1,12,136,67,8
!     COMBOBOX        IDC_USER_PERM_STATUS,91,134,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen anzeigen, deren &Eigner der Benutzer ist:",-1,
!                     12,148,60,24
!     COMBOBOX        IDC_USER_PERM_OWNED,91,151,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen&zugehrigkeit anzeigen:",-1,12,174,73,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,91,172,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Andere Kontoberechtigungen",-1,5,105,220,87
!     LTEXT           "Diese Einstellungen geben an, welche Benutzer dieses Konto anzeigen knnen.",
!                     -1,11,117,204,16
! END
! 
! IDD_TAB_MACHINES DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "Muster:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
!     LTEXT           "Abfrage l舫ft; bitte warten...",IDC_MACHINES_TITLE,4,6,
!                     142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,103
!     PUSHBUTTON      "&Erstellen...",M_MACHINE_CREATE,65,126,55,14
!     PUSHBUTTON      "&Zugehrigkeit...",M_MEMBERSHIP,124,126,55,14
!     PUSHBUTTON      "Me&rkmale...",M_PROPERTIES,183,126,55,14
! END
! 
! IDD_NEWMACHINE_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Gruppen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Gruppen",IDC_STATIC,5,33,220,158
!     LTEXT           "Diese Einstellungen ermglichen die ﾄnderung der ersten Liste der Gruppen, zu denen dieses Konto gehren wird, sowie der Gruppen, deren Eigner dieses Konto wird.",
!                     IDC_STATIC,5,5,220,24,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Hinzufgen...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "Gruppen &anzeigen, zu denen dieses Konto gehren wird",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "Gruppen anzeigen, deren &Eigner dieses Konto wird",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Abfrage l舫ft; bitte warten...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_NEWMACHINE_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Erweitert"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Konto&status anzeigen:",IDC_STATIC,12,90,67,8
!     COMBOBOX        IDC_USER_PERM_STATUS,91,84,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen anzeigen, deren &Eigner der Benutzer ist:",
!                     IDC_STATIC,12,100,60,24
!     COMBOBOX        IDC_USER_PERM_OWNED,91,105,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen&zugehrigkeit anzeigen:",IDC_STATIC,12,128,73,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,91,126,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Andere Kontoberechtigungen",IDC_STATIC,5,48,220,100
!     LTEXT           "Diese Einstellungen geben an, welche Benutzer dieses Konto anzeigen knnen.",
!                     IDC_STATIC,11,64,204,16
!     ICON            IDI_SERVER,IDC_STATIC,5,5,20,20
!     LTEXT           "Neues IP-Adreﾟkonto in Zelle %1",IDC_USER_NAME,37,13,
!                     188,8
! END
! 
! IDD_NEWMACHINE DIALOG DISCARDABLE  0, 0, 247, 126
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "IP-Adreﾟkonto erstellen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "IP-&Adresse:",-1,7,37,37,8
!     EDITTEXT        IDC_NEWUSER_NAME,50,35,127,14,ES_AUTOHSCROLL
!     CONTROL         "A&utomatisch n臘hste verfgbare Konten-ID verwenden",
!                     IDC_NEWUSER_ID_AUTO,"Button",BS_AUTORADIOBUTTON | BS_TOP | 
!                     BS_MULTILINE,49,60,191,16
!     CONTROL         "Be&stimmte Konten-ID verwenden:",IDC_NEWUSER_ID_MANUAL,
!                     "Button",BS_AUTORADIOBUTTON,49,79,117,10
!     EDITTEXT        IDC_NEWUSER_ID,171,77,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "&Gruppen...",IDC_ADVANCED,7,105,54,14
!     DEFPUSHBUTTON   "OK",IDOK,103,105,43,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,151,105,43,14
!     PUSHBUTTON      "Hilfe",9,197,105,43,14
!     ICON            IDI_SERVER,-1,7,6,20,20
!     LTEXT           "Neues IP-Adreﾟkonto in Zelle %1",IDC_NEWUSER_TITLE,50,
!                     14,190,8
!     LTEXT           "Konten-ID:",-1,7,60,39,8
! END
! 
! IDD_MACHINE_DELETE DIALOG DISCARDABLE  0, 0, 318, 84
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "IP-Adreﾟkonto lschen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "OK",IDOK,153,63,50,14
!     DEFPUSHBUTTON   "Abbrechen",IDCANCEL,207,63,50,14
!     PUSHBUTTON      "Hilfe",9,261,63,50,14
!     LTEXT           "Achtung!\n\nDiese Operation lscht das IP-Adreﾟkonto %1 auf Dauer.",
!                     IDC_DELETE_TITLE,36,14,275,37
!     ICON            32515,-1,7,6,21,20
! END
! 
! IDD_MACHINE_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Erweitert"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Konto&status anzeigen:",IDC_STATIC,12,81,67,8
!     COMBOBOX        IDC_USER_PERM_STATUS,101,78,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen anzeigen, deren &Eigner der Benutzer ist:",
!                     IDC_STATIC,12,94,69,23
!     COMBOBOX        IDC_USER_PERM_OWNED,101,97,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen&zugehrigkeit anzeigen:",IDC_STATIC,12,123,73,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,101,120,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Andere Kontoberechtigungen",IDC_STATIC,5,41,220,109
!     LTEXT           "Diese Einstellungen geben an, welche Benutzer dieses Konto anzeigen knnen.",
!                     IDC_STATIC,11,58,204,16
!     ICON            IDI_SERVER,IDC_STATIC,5,5,20,20
!     LTEXT           "IP-Adreﾟkonto %1",IDC_USER_NAME,37,13,188,8
! END
! 
! IDD_MACHINE_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Gruppen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Gruppen",IDC_STATIC,5,31,220,160
!     LTEXT           "Diese Einstellungen ermglichen die ﾄnderung der Liste der Gruppen, zu denen dieses Konto gehrt, sowie der Liste der Gruppen, deren Eigner dieses Konto ist.",
!                     IDC_STATIC,5,5,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Hinzufgen...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "Gruppen &anzeigen, zu denen dieses Konto gehrt",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "Gruppen anzeigen, deren &Eigner dieses Konto ist",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     200,10
!     LTEXT           "(Abfrage l舫ft; bitte warten...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_OPTIONS DIALOG DISCARDABLE  0, 0, 258, 162
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Optionen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Regul舐e Ausdrcke im &Unix-Format verwenden (""^mar[ky]son\\..*$"")",
!                     IDC_REGEXP_UNIX,"Button",BS_AUTORADIOBUTTON | 
!                     BS_MULTILINE,11,51,229,17
!     CONTROL         "Regul舐e Ausdrcke im &Windows-Format verwenden (""mar?son.*"")",
!                     IDC_REGEXP_WINDOWS,"Button",BS_AUTORADIOBUTTON | 
!                     BS_MULTILINE,11,70,226,16
!     CONTROL         "Warnung anzeigen, wenn ohne Verwaltungstoken gearbeitet wird",
!                     IDC_WARN_BADCREDS,"Button",BS_AUTOCHECKBOX | 
!                     BS_MULTILINE | WS_TABSTOP,11,112,220,15
!     CONTROL         "Informationen &automatisch aktualisieren alle",
!                     IDC_REFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,134,
!                     150,10
!     LTEXT           "Minuten",IDC_STATIC,211,135,25,8
!     EDITTEXT        IDC_REFRESH_RATE,163,133,30,14,ES_AUTOHSCROLL
!     ICON            IDI_MAIN,IDC_STATIC,5,5,21,20
!     LTEXT           "AFS Account Manager-Optionen",IDC_STATIC,37,12,96,8
!     GROUPBOX        "Regul舐e Ausdrcke",IDC_STATIC,5,37,248,57
!     GROUPBOX        " Allgemein",IDC_STATIC,5,100,248,57
! END
! 
! IDD_SEARCH_USERS DIALOG DISCARDABLE  0, 0, 284, 129
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Anzuzeigende Benutzer ausw臧len"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Eintr臠e fr &alle Benutzerkonten anzeigen",
!                     IDC_SEARCH_ALL,"Button",BS_AUTORADIOBUTTON,20,40,150,10
!     CONTROL         "Nur Benutzerkonten anzeigen, die ablauf&en vor",
!                     IDC_SEARCH_EXPIRE,"Button",BS_AUTORADIOBUTTON,20,55,165,
!                     10
!     CONTROL         "Nur Konten anzeigen, deren Kennwrter ablauf&en vor",
!                     IDC_SEARCH_PWEXPIRE,"Button",BS_AUTORADIOBUTTON,20,70,
!                     182,10
!     CONTROL         "",IDC_SEARCH_EXPIRE_DATE,"Datum",WS_BORDER | WS_TABSTOP,
!                     192,54,61,12
!     CONTROL         "",IDC_SEARCH_PWEXPIRE_DATE,"Datum",WS_BORDER | 
!                     WS_TABSTOP,212,69,61,12
!     DEFPUSHBUTTON   "OK",IDOK,119,108,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,173,108,50,14
!     PUSHBUTTON      "Hilfe",9,227,108,50,14
!     LTEXT           "Diese Steuerelemente ermglichen die Angabe, welche Benutzer auf dem Register Benutzer angezeigt werden. Diese Benutzerliste l葹t sich weiter einschr舅ken, indem Sie im Steuerelement Muster einen unvollst舅digen Kontennamen eingeben.",
!                     IDC_STATIC,7,6,270,27
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_MAIN, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 306
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 216
!     END
! 
!     IDD_TAB_USERS, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_TAB_GROUPS, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_ACTIONS, DIALOG
!     BEGIN
!         LEFTMARGIN, 2
!         RIGHTMARGIN, 234
!         TOPMARGIN, 2
!         BOTTOMMARGIN, 56
!     END
! 
!     IDD_HELP_ABOUT, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 222
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 137
!     END
! 
!     IDD_HELP_ERROR, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 214
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 137
!     END
! 
!     IDD_HELP_FIND, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 227
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 70
!     END
! 
!     IDD_COLUMNS, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 281
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 143
!     END
! 
!     IDD_USER_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_USER_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_GROUP_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_USER_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_GROUP_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_BROWSE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 143
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_USER_PASSWORD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 138
!     END
! 
!     IDD_GROUP_RENAME, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 267
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 143
!     END
! 
!     IDD_BROWSE_COMBO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 147
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_BROWSE_BOTH, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 162
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_NEWUSER_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWUSER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 246
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 163
!     END
! 
!     IDD_NEWGROUP_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWGROUP_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWGROUP, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 231
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 128
!     END
! 
!     IDD_USER_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 107
!     END
! 
!     IDD_GROUP_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_CELL_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 129
!     END
! 
!     IDD_NEWUSER_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWUSER_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_TAB_MACHINES, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_NEWMACHINE_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWMACHINE_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWMACHINE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 240
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 119
!     END
! 
!     IDD_MACHINE_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 311
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_MACHINE_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_MACHINE_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_OPTIONS, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 253
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 157
!     END
! 
!     IDD_SEARCH_USERS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 277
!         TOPMARGIN, 6
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include <windows.h>\r\n"
!     "#include <WINNT\\al_resource.h>\r\n"
!     "#ifndef APSTUDIO_INVOKED\r\n"
!     "#define AFS_VERINFO_FILE_DESCRIPTION ""AFS Account Manager""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "#endif // APSTUDIO_INVOKED\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! 32513                   ICON    DISCARDABLE     "..\\afsapplib\\resource\\error.ico"
! IDI_MAIN                ICON    DISCARDABLE     "resource\\afsusrmgr.ico"
! 32515                   ICON    DISCARDABLE     "..\\afsapplib\\resource\\warning.ico"
! IDI_USER                ICON    DISCARDABLE     "..\\afsapplib\\resource\\user.ico"
! IDI_GROUP               ICON    DISCARDABLE     "..\\afsapplib\\resource\\group.ico"
! IDI_SERVER              ICON    DISCARDABLE     "..\\afsapplib\\resource\\server.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Menu
! //
! 
! MENU_MAIN MENU DISCARDABLE 
! BEGIN
!     POPUP "&Zelle"
!     BEGIN
!         MENUITEM "Au&sw臧len...",               M_OPENCELL
!         MENUITEM "&Authentifizierung...",       M_CREDENTIALS
!         MENUITEM SEPARATOR
!         MENUITEM "Zellenme&rkmale...",          M_CELL_PROPERTIES
!         MENUITEM SEPARATOR
!         MENUITEM "E&xit",                       M_EXIT
!     END
!     POPUP "&Editieren"
!     BEGIN
!         MENUITEM "&Benutzer erstellen...",      M_USER_CREATE
!         MENUITEM "&Gruppe erstellen...",        M_GROUP_CREATE
!         MENUITEM SEPARATOR
!         MENUITEM "Umbe&nennen...",              M_RENAME
!         MENUITEM "&Lschen...",                 M_DELETE
!         MENUITEM SEPARATOR
!         MENUITEM "&Alle ausw臧len\tStrg+A",     M_SELECTALL
!         MENUITEM SEPARATOR
!         MENUITEM "A&ktualisieren\tF5",          M_REFRESH
!         MENUITEM "&Zugehrigkeit...\tStrg+M",   M_MEMBERSHIP
!         MENUITEM "Me&rkmale\tAlt+Eingabetaste", M_PROPERTIES
!     END
!     POPUP "&Anzeige"
!     BEGIN
!         POPUP "&Symbole"
!         BEGIN
!             MENUITEM "&Groﾟe Symbole",              M_VIEW_LARGE, CHECKED
!             MENUITEM "&Kleine Symbole",             M_VIEW_SMALL, CHECKED
!             MENUITEM "&Details",                    M_VIEW_DETAILS, CHECKED
!             MENUITEM SEPARATOR
!             MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!             MENUITEM "&Alle Symbole",               M_VIEW_TWO, CHECKED
!             MENUITEM "Nur &Status",                 M_VIEW_STATUS, CHECKED
!         END
!         MENUITEM SEPARATOR
!         MENUITEM "Laufende O&perationen",       M_ACTIONS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Spalten...",                 M_COLUMNS
!         MENUITEM "&Optionen...",                M_OPTIONS
!         MENUITEM SEPARATOR
!         MENUITEM "Alle a&ktualisieren",         M_REFRESHALL
!     END
!     POPUP "&Hilfe"
!     BEGIN
!         MENUITEM "&Inhalt",                     M_CONTENTS
!         MENUITEM "Befehl &suchen...",           M_FIND
!         MENUITEM "&Fehlercode suchen...",       M_LOOKUP
!         MENUITEM SEPARATOR
!         MENUITEM "Informationen zu &AFS Account Manager...", M_ABOUT
!     END
! END
! 
! MENU_USER_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "&Anzeige"
!     BEGIN
!         MENUITEM "&Groﾟe Symbole",              M_VIEW_LARGE, CHECKED
!         MENUITEM "&Kleine Symbole",             M_VIEW_SMALL, CHECKED
!         MENUITEM "&Details",                    M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!         MENUITEM "&Alle Symbole",               M_VIEW_TWO, CHECKED
!         MENUITEM "Nur &Status",                 M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "&Benutzer erstellen...",      M_USER_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "Alle a&ktualisieren",         M_REFRESHALL
! END
! 
! MENU_GROUP_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "&Anzeige"
!     BEGIN
!         MENUITEM "&Groﾟe Symbole",              M_VIEW_LARGE, CHECKED
!         MENUITEM "&Kleine Symbole",             M_VIEW_SMALL, CHECKED
!         MENUITEM "&Details",                    M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!         MENUITEM "&Alle Symbole",               M_VIEW_TWO, CHECKED
!         MENUITEM "Nur &Status",                 M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "&Gruppe erstellen...",        M_GROUP_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "Alle a&ktualisieren",         M_REFRESHALL
! END
! 
! MENU_USER MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Gruppen...",                 M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "&Kennwort 舅dern...",         M_CPW
!     MENUITEM "Sperre a&ufheben",            M_UNLOCK
!     MENUITEM "&Lschen...",                 M_DELETE
!     MENUITEM "A&ktualisieren",              M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "Me&rkmale...",                M_PROPERTIES
! END
! 
! MENU_GROUP MENU DISCARDABLE 
! BEGIN
!     MENUITEM "Gruppen&mitglieder...",       M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "Umbe&nennen...",              M_RENAME
!     MENUITEM "&Lschen...",                 M_DELETE
!     MENUITEM "A&ktualisieren",              M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "Me&rkmale...",                M_PROPERTIES
! END
! 
! MENU_COLUMNS MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Spalten...",                 M_COLUMNS
! END
! 
! MENU_MACHINE_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "&Anzeige"
!     BEGIN
!         MENUITEM "&Groﾟe Symbole",              M_VIEW_LARGE, CHECKED
!         MENUITEM "&Kleine Symbole",             M_VIEW_SMALL, CHECKED
!         MENUITEM "&Details",                    M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!         MENUITEM "&Alle Symbole",               M_VIEW_TWO, CHECKED
!         MENUITEM "Nur &Status",                 M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "&Konto erstellen...",         M_MACHINE_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "Alle a&ktualisieren",         M_REFRESHALL
! END
! 
! MENU_MACHINE MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Gruppen...",                 M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "&Lschen...",                 M_DELETE
!     MENUITEM "A&ktualisieren",              M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "Me&rkmale...",                M_PROPERTIES
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Accelerator
! //
! 
! ACCEL_MAIN ACCELERATORS DISCARDABLE 
! BEGIN
!     "A",            M_SELECTALL,            VIRTKEY, CONTROL, NOINVERT
!     "Z",            M_MEMBERSHIP,           VIRTKEY, CONTROL, NOINVERT
!     VK_APPS,        M_KEY_MENU,             VIRTKEY, NOINVERT
!     VK_ESCAPE,      M_KEY_ESC,              VIRTKEY, NOINVERT
!     VK_F10,         M_KEY_MENU,             VIRTKEY, SHIFT, NOINVERT
!     VK_F5,          M_REFRESH,              VIRTKEY, NOINVERT
!     VK_RETURN,      M_KEY_RETURN,           VIRTKEY, NOINVERT
!     VK_RETURN,      M_KEY_PROPERTIES,       VIRTKEY, ALT, NOINVERT
!     VK_TAB,         M_KEY_TAB,              VIRTKEY, NOINVERT
!     VK_TAB,         M_KEY_CTRLTAB,          VIRTKEY, CONTROL, NOINVERT
!     VK_TAB,         M_KEY_BACKTAB,          VIRTKEY, SHIFT, NOINVERT
!     VK_TAB,         M_KEY_CTRLBACKTAB,      VIRTKEY, SHIFT, CONTROL, 
!                                                     NOINVERT
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_APP_TITLE           "AFS Account Manager"
!     IDS_USRCOL_NAME         "Benutzername"
!     IDS_GRPCOL_NAME         "Gruppenname"
!     IDS_BADCREDS_DESC       "Wenn Sie nicht als Administrator angemeldet sind, besitzen Sie eventuell keine ausreichenden Berechtigungen, die Zelle %1 zu verwalten."
!     IDS_TAB_USERS           "Benutzer"
!     IDS_TAB_GROUPS          "Gruppen"
!     IDS_CELL_NONE           "(keine Zelle ausgew臧lt)"
!     IDS_CRED_NONE           "(keine Token in dieser Zelle)"
!     IDS_CRED_EXP            "%1 (Token abgelaufen %2)"
!     IDS_CRED_OK             "%1 (Token laufen ab %2)"
!     IDS_USERS_ALL           "Alle Benutzer in Zelle %1:"
!     IDS_USERS_PATTERN       "Ausgew臧lte Benutzer in Zelle %1:"
!     IDS_GROUPS_ALL          "Alle Gruppen in Zelle %1:"
!     IDS_GROUPS_PATTERN      "Ausgew臧lte Gruppen in Zelle %1:"
!     IDS_QUERYING_LONG       "Abfrage l舫ft; bitte warten..."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ACTION_DESC_NONE    "Momentan laufen keine Operationen."
!     IDS_ACTION_DESC_ONE     "Momentan l舫ft die folgende Operation:"
!     IDS_ACTION_DESC_MULT    "Momentan laufen die folgenden Operationen:"
!     IDS_ACTCOL_OPERATION    "Operation"
!     IDS_ACTCOL_ELAPSED      "Abgelaufene Zeit"
!     IDS_ACTION_REFRESH_CELL "Informationen fr Zelle %1 werden aktualisiert"
!     IDS_ACTION_REFRESH_SERVER 
!                             "Informationen fr Server %1 werden aktualisiert"
!     IDS_ACTION_SCOUT_CELL   "Zelle %1 wird auf Probleme untersucht"
!     IDS_ACTION_SCOUT_SERVER "Server %1 wird auf Probleme untersucht"
!     IDS_FIND_NOTHING_TITLE  "Kein Befehl ausgew臧lt"
!     IDS_FIND_NOTHING_DESC   "Um festzustellen, wie eine Operation durchgefhrt wird, w臧len Sie zun臘hst eine Befehlszeile aus der Liste aus, oder geben Sie ein Schlsselwort ein."
!     IDS_FIND_UNKNOWN_TITLE  "Unbekannter Befehl"
!     IDS_FIND_UNKNOWN_DESC   "Der AFS Account Manager konnte fr den Befehl ""%1"" keine Hilfethemen finden."
!     IDS_HELPABOUT_DESC1     "Achtung: Dieses Computerprogramm ist durch Copyright und internationale Vertr臠e geschtzt. +"
!     IDS_HELPABOUT_DESC2     "Die unbefugte Kopie oder Verteilung dieser Software kann zu schwerwiegenden zivil- und strafrechtlichen Maﾟnahmen fhren, und wird mit aller H舐te des Gesetzes verfolgt.\n\n+"
!     IDS_HELPABOUT_DESC3     "AFS ist eine Marke von Transarc Corporation, einer Firma von IBM."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COLUMNS_TITLE       "Spalten - AFS Account Manager"
!     IDS_USER_PROPERTIES_TITLE_MULTIPLE "Mehrfache Benutzer - Merkmale"
!     IDS_USER_PROPERTIES_TITLE "Benutzer %1 - Merkmale"
!     IDS_USER_NAME_MULTIPLE  "Benutzer "
!     IDS_ACCOUNTACCESS_OWNER "Nur Kontoeigner"
!     IDS_ACCOUNTACCESS_GROUP "Nur Gruppenmitglieder"
!     IDS_ACCOUNTACCESS_ANYONE "Jeder"
!     IDS_ACCOUNTACCESS_MIXED "(Mehrfache Einstellungen)"
!     IDS_USER_KEY            "%1\nVersion %2, Kontrollsumme %3"
!     IDS_USER_KEY_HIDDEN     "(aktueller Schlsselwert verdeckt)"
!     IDS_USER_KEY_UNKNOWN    "(unbekannt)"
!     IDS_USER_KEY_MULTIPLE   "(Mehrfache Schlssel)"
!     IDS_ACTION_USER_CHANGE  "Merkmale fr Benutzer %1 werden ge舅dert"
!     IDS_COUNT_WEEKS         "%1w"
!     IDS_COUNT_DAYS          "%1d"
!     IDS_COUNT_HOURS         "%1h"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COUNT_MINUTES       "%1m"
!     IDS_COUNT_SECONDS       "%1s"
!     IDS_GROUP_PROPERTIES_TITLE_MULTIPLE "Mehrfache Gruppen - Merkmale"
!     IDS_GROUP_PROPERTIES_TITLE "Gruppe %1 - Merkmale"
!     IDS_GROUP_NAME_MULTIPLE "Gruppen "
!     IDS_ACCOUNTACCESS_OWNGROUP "Nur Gruppeneigner"
!     IDS_OWNER_MIXED         "Mehrfache Eigner"
!     IDS_CREATOR_MIXED       "Mehrfache Ersteller"
!     IDS_GROUP_CHANGEOWNER_TITLE "Gruppeneigner 舅dern"
!     IDS_GROUP_CHANGEOWNER_PROMPT "Eigner:"
!     IDS_MEMBER_MIXED        "(Einige)"
!     IDS_USER_SHOW_MEMBER_TITLE "Gruppen, zu denen dieser Benutzer gehrt"
!     IDS_USER_SHOW_OWNER_TITLE "Alle Gruppen, deren Eigner dieser Benutzer ist"
!     IDS_GROUP_SHOW_MEMBER_TITLE "Alle Mitglieder dieser Gruppe:"
!     IDS_USER_SHOW_MEMBER_TITLE_MULTIPLE 
!                             "Alle Gruppen, zu denen diese Benutzer gehren:"
!     IDS_GROUP_SHOW_MEMBER_TITLE_MULTIPLE "Alle Mitglieder dieser Gruppen"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ACTION_GROUP_RENAME "Gruppe %1 wird in %2 umbenannt"
!     IDS_RENAME_TITLE        "Gruppe %1 umbenennen"
!     IDS_GROUP_TITLE         "Gruppe %1"
!     IDS_SHOW_USERS          "Alle Benutzer in dieser Zelle"
!     IDS_SHOW_GROUPS         "Alle Gruppen in dieser Zelle"
!     IDS_GROUP_SHOW_OWNED_TITLE "Alle Gruppen, deren Eigner diese Gruppe ist"
!     IDS_BROWSE_TITLE_OWNED  "Gruppen ausw臧len, deren Eigner diese Gruppe werden soll"
!     IDS_BROWSE_PROMPT_OWNED "Gruppen:"
!     IDS_BROWSE_CHECK_OWNED  "Nur Gruppen anzeigen, deren Eigner diese Gruppe aktuell nicht ist"
!     IDS_NEWUSER_PROPERTIES_TITLE "Benutzer erstellen - Erweitert"
!     IDS_NEWUSER_SHOW_MEMBER_TITLE 
!                             "Alle Gruppen, zu denen dieser Benutzer gehren wird"
!     IDS_NEWUSER_SHOW_OWNER_TITLE 
!                             "Alle Gruppen, deren Eigner dieser Benutzer wird"
!     IDS_ACTION_CELL_CHANGE  "Merkmale fr Zelle %1 werden ge舅dert"
!     IDS_ACTION_USER_CREATE  "Konto fr Benutzer %1 wird erstellt"
!     IDS_NEWGROUP_PROPERTIES_TITLE "Gruppe erstellen - Erweitert"
!     IDS_NEWGROUP_SHOW_MEMBER_TITLE "Erste Mitglieder dieser neuen Gruppe:"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_USRCOL_FLAGS        "Markierungen"
!     IDS_USRCOL_ADMIN        "Admin?"
!     IDS_USRCOL_TICKET       "Zugriffsberechtigungen?"
!     IDS_USRCOL_SYSTEM       "System?"
!     IDS_USRCOL_CHANGEPW     "Kennwrter 舅dern?"
!     IDS_USRCOL_REUSEPW      "Kennwrter wiederverwenden?"
!     IDS_USRCOL_EXPIRES      "Ablauf des Kontos"
!     IDS_USRCOL_LASTPW       "Letzte Kennwort舅derung"
!     IDS_USRCOL_LASTMOD      "Letzte ﾄnderung"
!     IDS_USRCOL_LASTMODBY    "Letzte ﾄnderung durch"
!     IDS_USRCOL_LIFETIME     "Lebensdauer der Zugriffsberechtigung"
!     IDS_USRCOL_CDAYPW       "Ablauf des Kennworts"
!     IDS_USRCOL_CFAILLOGIN   "Anmeldefehler"
!     IDS_USRCOL_CSECLOCK     "Sperrzeit fr Anmeldefehler"
!     IDS_USRCOL_CGROUPMAX    "Gruppenerstellungsquote"
!     IDS_USRCOL_UID          "UID"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_USRCOL_OWNER        "Eigner"
!     IDS_USRCOL_CREATOR      "Ersteller"
!     IDS_USRCOL_STATUS       "Status"
!     IDS_USRFLAG_ADMIN       "A "
!     IDS_USRFLAG_TICKET      "T "
!     IDS_USRFLAG_ENCRYPT     "E "
!     IDS_USRFLAG_CHANGEPW    "C "
!     IDS_USRFLAG_REUSEPW     "R "
!     IDS_YES                 "Ja"
!     IDS_NO                  "Nein"
!     IDS_GRPCOL_CMEMBERS     "Anzahl Zugehrigkeiten"
!     IDS_GRPCOL_UID          "UID"
!     IDS_GRPCOL_OWNER        "Eigner"
!     IDS_GRPCOL_CREATOR      "Ersteller"
!     IDS_COL_USERS           "Benutzer in einer Zelle"
!     IDS_COL_GROUPS          "Gruppen in einer Zelle"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEWGROUP_SHOW_OWNED_TITLE 
!                             "Gruppen, deren Eigner diese neue Gruppe wird:"
!     IDS_USER_DELETE_MULTIPLE 
!                             "Achtung!\n\nDiese Operation lscht die Konten der folgenden Benutzer auf Dauer: %1"
!     IDS_GROUP_DELETE_MULTIPLE 
!                             "Achtung!\n\nDiese Operation lscht die folgenden Gruppen auf Dauer: %1"
!     IDS_ACTION_GROUP_CREATE "Gruppe %1 wird erstellt"
!     IDS_ACTION_USER_DELETE  "Konto fr Benutzer %1 wird gelscht"
!     IDS_ACTION_GROUP_DELETE "Gruppe %1 wird gelscht"
!     IDS_CELL_PROPERTIES_TITLE "Zelle %1 - Merkmale"
!     IDS_MACHINES_ALL        "Alle IP-Adreﾟkonten in Zelle %1:"
!     IDS_MACHINES_PATTERN    "Ausgew臧lte IP-Adreﾟkonten in Zelle %1:"
!     IDS_TAB_MACHINES        "Adressen"
!     IDS_MACHINE_DELETE_MULTIPLE 
!                             "Achtung!\n\nDiese Operation lscht die folgenden IP-Adreﾟkonten auf Dauer: %1"
!     IDS_NEWMACHINE_PROPERTIES_TITLE "IP-Adreﾟkonto erstellen - Erweitert"
!     IDS_MACHINE_PROPERTIES_TITLE_MULTIPLE 
!                             "Mehrfache IP-Adreﾟkonten - Merkmale"
!     IDS_MACHINE_PROPERTIES_TITLE "IP-Adreﾟkonto %1 - Merkmale"
!     IDS_COL_MACHINES        "IP-Adreﾟkonten in einer Zelle"
!     IDS_MCHCOL_NAME         "IP-Adresse"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BROWSE_TITLE_JOIN   "Gruppen fr Zugehrigkeit ausw臧len"
!     IDS_BROWSE_PROMPT_JOIN  "Gruppen:"
!     IDS_BROWSE_CHECK_JOIN   "Nur Gruppen ohne Zugehrigkeit anzeigen"
!     IDS_BROWSE_TITLE_OWN    "Gruppen ausw臧len, deren Eigner diese Gruppe werden soll"
!     IDS_BROWSE_PROMPT_OWN   "Gruppen:"
!     IDS_BROWSE_CHECK_OWN    "Nur Gruppen anzeigen, deren Eigner diese Gruppe aktuell nicht ist"
!     IDS_BROWSE_TITLE_MEMBER "Benutzer fr Zugehrigkeit ausw臧len"
!     IDS_BROWSE_PROMPT_MEMBER "Benutzer:"
!     IDS_BROWSE_CHECK_MEMBER "Nur Benutzer anzeigen, die nicht Mitglied sind"
!     IDS_SEPARATORS          ",;"
!     IDS_ACTION_GROUP_CHANGE "Merkmale fr Gruppe %1 werden ge舅dert"
!     IDS_ACTION_GROUP_MEMBER_ADD "Benutzer %2 wird zu Gruppe %1 hinzugefgt"
!     IDS_ACTION_GROUP_MEMBER_REMOVE "Benutzer %2 wird aus Gruppe %1 entfernt"
!     IDS_ACTION_USER_PW_CHANGE "Kennwort fr Benutzer %1 wird festgelegt"
!     IDS_UNKNOWN_NAME        "(unbekannt)"
!     IDS_ACTION_USER_UNLOCK  "Konto fr Benutzer %1 wird entsperrt"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_MCHCOL_CGROUPMAX    "Gruppenerstellungsquote"
!     IDS_MCHCOL_UID          "Konten-ID"
!     IDS_MCHCOL_OWNER        "Eigner"
!     IDS_MCHCOL_CREATOR      "Ersteller"
!     IDS_OPTIONS_TITLE       "AFS Account Manager-Optionen"
!     IDS_WARNING_TITLE       "Achtung"
!     IDS_WARNING_SYSTEM_ACCOUNT 
!                             "Das Konto %1 muﾟ mit Vorsicht ge舅dert werden, da ungeeignete ﾄnderungen dieses Kontos die einwandfreie Funktionsweise einiger Funktionen von AFS verhindern knnen.\n\nSind Sie sicher, daﾟ Sie den Vorgang fortsetzen mchten?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_PTS_ADDUSER "pts adduser"
!     IDS_COMMAND_PTS_CHOWN   "pts chown"
!     IDS_COMMAND_PTS_CREATEGROUP "pts creategroup"
!     IDS_COMMAND_PTS_CREATEUSER "pts createuser"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_PTS_DELETE  "pts delete"
!     IDS_COMMAND_PTS_EXAMINE "pts examine"
!     IDS_COMMAND_PTS_LISTMAX "pts listmax"
!     IDS_COMMAND_PTS_LISTOWNED "pts listowned"
!     IDS_COMMAND_PTS_MEMBERSHIP "pts membership"
!     IDS_COMMAND_PTS_REMOVEUSER "pts removeuser"
!     IDS_COMMAND_PTS_RENAME  "pts rename"
!     IDS_COMMAND_PTS_SETFIELDS "pts setfields"
!     IDS_COMMAND_PTS_SETMAX  "pts setmax"
!     IDS_COMMAND_KAS_CREATE  "kas create"
!     IDS_COMMAND_KAS_DELETE  "kas delete"
!     IDS_COMMAND_KAS_EXAMINE "kas examine"
!     IDS_COMMAND_KAS_GETRANDOMKEY "kas getrandomkey"
!     IDS_COMMAND_KAS_LIST    "kas list"
!     IDS_COMMAND_KAS_SETFIELDS "kas setfields"
!     IDS_COMMAND_KAS_SETKEY  "kas setkey"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_KAS_SETPASSWORD "kas setpassword"
!     IDS_COMMAND_KAS_STRINGTOKEY "kas stringtokey"
!     IDS_COMMAND_KAS_UNLOCK  "kas unlock"
!     IDS_MACHINE_SHOW_MEMBER_TITLE 
!                             "Alle Gruppen, zu denen dieses Konto gehrt:"
!     IDS_MACHINE_SHOW_OWNER_TITLE 
!                             "Alle Gruppen, deren Eigner dieses Konto ist:"
!     IDS_MACHINE_SHOW_MEMBER_TITLE_MULTIPLE 
!                             "Alle Gruppen, zu denen diese Konten gehren:"
!     IDS_NEWMACHINE_SHOW_MEMBER_TITLE 
!                             "Alle Gruppen, zu denen dieses Konto gehren wird"
!     IDS_NEWMACHINE_SHOW_OWNER_TITLE 
!                             "Alle Gruppen, deren Eigner dieses Konto wird"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_BAD_REMOTE_SERVER 
!                             "Der AFS Account Manager konnte keinen Verwaltungsprozeﾟ erreichen, der auf dem Computer %1 ausgefhrt wird.\n\nSie knnen Fernverwaltungsaufgaben durchfhren, indem Sie das Programm TaAfsAdmSvr.exe auf dem anderen Computer ausfhren."
!     IDS_ERROR_BAD_LOCAL_SERVER 
!                             "Der AFS Account Manager konnte das Programm TaAfsAdmSvr.exe  nicht finden oder Ihren Computer nicht fr eine AFS-Verwaltung vorbereiten."
!     IDS_ERROR_CANT_OPEN_CELL 
!                             "Der AFS Account Manager konnte keine Server in der Zelle %1 erreichen.\n\nBitte berprfen Sie, ob der Name der Zelle richtig eingegeben wurde."
!     IDS_ERROR_BADCREDENTIALS 
!                             "Die eingegebene AFS-ID wurde nicht erkannt, oder das angegebene Kennwort ist falsch."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_TRANSLATED    "Fehlernummer 0x%1 (%2):\n\n%3"
!     IDS_ERROR_NOTTRANSLATED "Fehlernummer 0x%1 (%2) wurde nicht erkannt."
!     IDS_ERROR_USER_MULTIPROP 
!                             "Der AFS Account Manager kann das angeforderte Fenster nicht anzeigen, da fr mindestens einen der ausgew臧lten Benutzer bereits ein Merkmalfenster geffnet ist."
!     IDS_ERROR_CANT_CHANGE_USER 
!                             "Der AFS Account Manager konnte die Merkmale fr Benutzer %1 nicht 舅dern."
!     IDS_ERROR_GROUP_MULTIPROP 
!                             "Der AFS Account Manager kann das angeforderte Fenster nicht anzeigen, da fr mindestens eine der ausgew臧lten Gruppen bereits ein Merkmalfenster geffnet ist."
!     IDS_ERROR_CANT_CHANGE_GROUP 
!                             "Der AFS Account Manager konnte die Merkmale fr Gruppe %1 nicht 舅dern."
!     IDS_ERROR_CANT_TRANSLATE_USER 
!                             "Der AFS Account Manager konnte keinen Benutzer mit dem angegebenen Namen finden.\n\nﾜberprfen Sie bitte, ob der Name richtig eingegeben wurde."
!     IDS_ERROR_CANT_TRANSLATE_GROUP 
!                             "Der AFS Account Manager konnte keinen Benutzer mit dem angegebenen Namen finden.\n\nﾜberprfen Sie bitte, ob der Name richtig eingegeben wurde."
!     IDS_ERROR_CANT_GET_USERPROP 
!                             "Der AFS Account Manager konnte die Merkmale fr Benutzer %1 nicht finden."
!     IDS_ERROR_CANT_CHANGE_PASSWORD 
!                             "Der AFS Account Manager konnte das Kennwort fr Benutzer %1 nicht 舅dern."
!     IDS_ERROR_CANT_GET_RANDOM_KEY 
!                             "Der AFS Account Manager konnte keinen wahlfreien Chiffrierschlssel generieren."
!     IDS_ERROR_CANT_SET_GROUPS 
!                             "Der AFS Account Manager konnte die angegebene Gruppenliste fr Benutzer %1 nicht 舅dern."
!     IDS_ERROR_CANT_SET_GROUPS_MULTIPLE 
!                             "Der AFS Account Manager konnte die angegebene Gruppenliste fr die folgenden Benutzer nicht 舅dern: %1."
!     IDS_ERROR_CANT_UNLOCK   "Der AFS Account Manager konnte das Konto des Benutzers %1 nicht entsperren."
!     IDS_ERROR_CANT_UNLOCK_MULTIPLE 
!                             "Der AFS Account Manager konnte die Konten der folgenden Benutzer nicht entsperren: %1."
!     IDS_ERROR_CANT_SET_MEMBERS 
!                             "Der AFS Account Manager konnte die Liste der Mitglieder fr Gruppe %1 nicht 舅dern."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_CANT_SET_MEMBERS_MULTIPLE 
!                             "Der AFS Account Manager konnte die Liste der Mitglieder fr die folgenden Gruppen nicht 舅dern: %1."
!     IDS_ERROR_CANT_RENAME_GROUP 
!                             "Der AFS Account Manager konnte die Gruppe %1 nicht in ""%2"" umbenennen."
!     IDS_ERROR_CANT_CHANGE_OWNER 
!                             "Der AFS Account Manager konnte den Eigner der Gruppe %1 nicht 舅dern."
!     IDS_ERROR_CANT_CHANGE_OWNER_MULTIPLE 
!                             "Der AFS Account Manager konnte den Eigner der folgenden Gruppen nicht 舅dern: %1."
!     IDS_ERROR_CANT_CHANGE_CELL 
!                             "Der AFS Account Manager konnte die Merkmale der Zelle %1 nicht 舅dern."
!     IDS_ERROR_NO_PASSWORD_GIVEN 
!                             "Sie mssen fr das Benutzerkonto, das erstellt wird, ein Kennwort angeben."
!     IDS_ERROR_MISMATCH_PASSWORD_GIVEN 
!                             "Die fr das neue Benutzerkonto eingegebenen Kennwrter stimmen nicht berein."
!     IDS_ERROR_CANT_CREATE_USER 
!                             "Der AFS Account Manager konnte kein Konto fr Benutzer %1 erstellen."
!     IDS_ERROR_CANT_CREATE_GROUP 
!                             "Der AFS Account Manager konnte die Gruppe %1 nicht erstellen."
!     IDS_ERROR_CANT_DELETE_USER 
!                             "Der AFS Account Manager konnte das Konto fr Benutzer %1 nicht lschen."
!     IDS_ERROR_CANT_DELETE_USER_MULTIPLE 
!                             "Der AFS Account Manager konnte die Konten der folgenden Benutzer nicht lschen: %1."
!     IDS_ERROR_CANT_DELETE_GROUP 
!                             "Der AFS Account Manager konnte die Gruppe %1 nicht lschen."
!     IDS_ERROR_CANT_DELETE_GROUP_MULTIPLE 
!                             "Der AFS Account Manager konnte die folgenden Gruppen nicht lschen: %1."
!     IDS_ERROR_BAD_REMOTE_SERVER_INSTALL 
!                             "Der AFS Account Manager konnte nicht gestartet werden, da das AFS Control Center nicht ordnungsgem葹 installiert wurde.\n\nSie mssen das AFS Control Center erneut installieren."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CMDLINE_TITLE       "Fehler - AFS Account Manager"
!     IDS_CMDLINE_SYNTAX      "Die fr den AFS Account Manager angegebene Befehlszeile ist ungltig."
!     IDS_CMDLINE_UNRECOGNIZED 
!                             "Die fr den AFS Account Manager angegebene Befehlszeile ist ungltig.\n\nDer Parameter ""%1"" wurde nicht erkannt."
!     IDS_CMDLINE_DUPLICATE   "Die fr den AFS Account Manager angegebene Befehlszeile ist ungltig.\n\nDer Parameter ""%1"" wurde mehrmals angegeben."
!     IDS_CMDLINE_UNEXPECTVALUE 
!                             "Die fr den AFS Account Manager angegebene Befehlszeile ist ungltig.\n\nDem Parameter ""%1"" darf kein Wert zugewiesen werden."
!     IDS_CMDLINE_MISSINGVAL  "Die fr den AFS Account Manager angegebene Befehlszeile ist ungltig.\n\nDem Parameter ""%1"" muﾟ ein Wert folgen."
!     IDS_CMDLINE_USERPASSWORD 
!                             "Die fr den AFS Account Manager angegebene Befehlszeile ist ungltig.\n\nUm neue AFS-Token zu erhalten, mssen die Parameter ""/USER"" und ""/PASSWORD"" angegeben werden."
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 7,1798 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #include <WINNT\al_resource.h>
! #ifndef APSTUDIO_INVOKED
! #define AFS_VERINFO_FILE_DESCRIPTION "AFS Account Manager"
  #define AFS_VERINFO_NAME "AfsUsrMgr"
  #define AFS_VERINFO_FILENAME "AfsUsrMgr.exe"
  #define AFS_VERINFO_LANG_CODE 0x407
  #define AFS_VERINFO_CHARSET 1252
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! #endif // APSTUDIO_INVOKED
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_MAIN DIALOG DISCARDABLE  0, 0, 310, 220
! STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU | WS_THICKFRAME
! CAPTION "AFS Account Manager"
! MENU MENU_MAIN
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "",IDC_TAB,"SysTabControl32",0x0,4,32,302,184
!     LTEXT           "Ausgew臧lte Zelle:",IDC_STATIC,4,7,61,8
!     LTEXT           "(keine ausgew臧lt)",IDC_CELL,71,7,206,8
!     LTEXT           "AFS-Token:",IDC_STATIC,4,18,55,8
!     LTEXT           "(keine Token)",IDC_CREDS,71,18,212,8
!     ICON            IDI_MAIN,IDC_ANIM,285,7,20,20,SS_SUNKEN
!     CONTROL         "",IDC_BAR,"Static",SS_ETCHEDHORZ,1,0,308,1
! END
! 
! IDD_TAB_USERS DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_USERS_PATTERN,185,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "Muster:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
!     LTEXT           "Abfrage l舫ft; bitte warten...",IDC_USERS_TITLE,4,6,142,
!                     8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,103
!     PUSHBUTTON      "&Erstellen...",M_USER_CREATE,65,126,55,14
!     PUSHBUTTON      "&Zugehrigkeit...",M_MEMBERSHIP,124,126,55,14
!     PUSHBUTTON      "Me&rkmale...",M_PROPERTIES,183,126,55,14
!     PUSHBUTTON      "...",IDC_ADVANCED,229,4,9,13
! END
! 
! IDD_TAB_GROUPS DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
!     LTEXT           "Abfrage l舫ft; bitte warten...",IDC_GROUPS_TITLE,4,6,
!                     142,8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,103
!     PUSHBUTTON      "&Erstellen...",M_GROUP_CREATE,65,126,55,14
!     PUSHBUTTON      "&Mitglieder...",M_MEMBERSHIP,124,126,55,14
!     PUSHBUTTON      "Me&rkmale...",M_PROPERTIES,183,126,55,14
! END
! 
! IDD_ACTIONS DIALOGEX 0, 0, 236, 58
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! EXSTYLE WS_EX_TOOLWINDOW
! CAPTION "Laufende Operationen - AFS Account Manager"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Abfrage l舫ft; bitte warten...",IDC_ACTION_DESC,2,2,232,
!                     8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x3,2,14,232,43
! END
! 
! IDD_HELP_ABOUT DIALOG DISCARDABLE  0, 0, 226, 141
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "Informationen zu AFS Account Manager"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     ICON            IDI_MAIN,IDC_HELPABOUT_ICON,4,8,21,20
!     LTEXT           "AFS Account Manager, Version 3.5",IDC_STATIC,33,8,189,8
!     LTEXT           "Copyright ｩ IBM Corporation 1989, 1999",IDC_STATIC,33,
!                     20,189,8
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,4,37,218,1
!     CTEXT           "",IDC_HELPABOUT_DESC,4,48,218,56
!     PUSHBUTTON      "&Schlieﾟen",IDOK,87,123,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,4,114,218,1
! END
! 
! IDD_HELP_ERROR DIALOG DISCARDABLE  0, 0, 218, 141
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "Fehlercode suchen"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "F&ehlernummer:",IDC_STATIC,4,41,45,8
!     EDITTEXT        IDC_ERROR_NUMBER,59,39,78,14,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "ﾜberse&tzen",IDC_ERROR_TRANSLATE,147,39,67,14
!     PUSHBUTTON      "&Schlieﾟen",IDCANCEL,85,123,48,14
!     LTEXT           "(Text wird zur Laufzeit festgelegt)",IDC_ERROR_DESC,4,
!                     71,210,42
!     LTEXT           "Um die Bedeutung eines Fehlercodes festzustellen, geben Sie den Code unten ein und klicken dann auf ""ﾜbersetzen"".",
!                     IDC_STATIC,4,4,210,27
!     CONTROL         "",IDC_ADVANCED_BOX,"Static",SS_ETCHEDHORZ,4,60,211,1
! END
! 
! IDD_HELP_FIND DIALOG DISCARDABLE  0, 0, 231, 74
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "Suchbefehl"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     COMBOBOX        IDC_FIND_COMMAND,4,38,150,170,CBS_DROPDOWN | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     DEFPUSHBUTTON   "&Hilfe anzeigen",IDOK,160,39,67,14
!     PUSHBUTTON      "&Abbrechen",IDCANCEL,160,55,67,14
!     LTEXT           "Um festzustellen, wie Sie mit dem AFS Account Manager eine Aufgabe durchfhren, w臧len Sie unten eine Befehlszeile aus und klicken auf Hilfe anzeigen.",
!                     IDC_STATIC,4,4,223,25
! END
! 
! IDD_COLUMNS DIALOG DISCARDABLE  0, 0, 286, 148
! STYLE WS_POPUP | WS_CAPTION
! CAPTION "Spalten"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Anzuzeigende Spalten au&sw臧len bei der Auflistung von:",
!                     IDC_STATIC,5,5,126,16
!     COMBOBOX        IDC_COLUMNS,134,5,147,104,CBS_DROPDOWNLIST | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Verfgbare &Spalten:",IDC_STATIC,12,40,100,8
!     LISTBOX         IDC_COL_AVAIL,12,49,100,71,LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Anzuzeigende Spalten:",IDC_STATIC,173,41,100,8
!     LISTBOX         IDC_COL_SHOWN,173,50,100,71,LBS_NOINTEGRALHEIGHT | 
!                     WS_VSCROLL | WS_TABSTOP
!     PUSHBUTTON      "&Hinzufgen >>",IDC_COL_INSERT,117,68,51,14
!     PUSHBUTTON      "<< Entfe&rnen",IDC_COL_DELETE,117,88,51,14
!     PUSHBUTTON      "Nach &oben",IDC_COL_UP,173,122,48,14
!     PUSHBUTTON      "Nach &unten",IDC_COL_DOWN,224,122,48,14
!     GROUPBOX        "Spalten auflisten",IDC_STATIC,5,25,276,118
! END
! 
! IDD_USER_ADVANCED DIALOGEX 0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Erweitert"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Aktueller Schlssel:",IDC_STATIC,5,5,40,8
!     LTEXT           "Abfrage l舫ft; bitte warten...",IDC_USER_KEY,52,5,173,
!                     20,0,WS_EX_STATICEDGE
!     CONTROL         "Dies ist ein &Systemkonto (keine Verschlsselung)",
!                     IDC_USER_NOSEAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     35,180,10
!     CONTROL         "Benutzer besitzt Verw&altungsberechtigung",
!                     IDC_USER_ADMIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     52,157,10
!     CONTROL         "Zu&griffsberechtigung erteilen; Lebenszeit:",
!                     IDC_USER_TGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,69,
!                     144,10
!     CONTROL         "",IDC_USER_LIFETIME,"elapsed",WS_BORDER | WS_TABSTOP,
!                     153,68,66,12
!     CONTROL         "Gruppenerstellungs&quote:",IDC_USER_GROUP_HASQUOTA,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,86,98,10
!     EDITTEXT        IDC_USER_GROUP_QUOTA,117,85,27,13,ES_AUTOHSCROLL
!     LTEXT           "Konto&status anzeigen:",IDC_STATIC,12,135,67,8
!     COMBOBOX        IDC_USER_PERM_STATUS,91,133,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen anzeigen, deren &Eigner der Benutzer ist:",
!                     IDC_STATIC,12,145,72,23
!     COMBOBOX        IDC_USER_PERM_OWNED,91,150,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen&zugehrigkeit anzeigen:",IDC_STATIC,12,171,73,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,91,168,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Andere Kontoberechtigungen",IDC_STATIC,5,103,220,89
!     LTEXT           "Diese Einstellungen geben an, welche Benutzer dieses Konto anzeigen knnen.",
!                     IDC_STATIC,11,114,204,16
! END
! 
! IDD_USER_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION " Allgemein"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Benutzer kann Kennwort &ndern",IDC_USER_CPW,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,47,121,10
!     PUSHBUTTON      "&Kennwort 舅dern",IDC_USER_CPW_NOW,144,45,73,14
!     CONTROL         "Benutzer kann alte Kennwrter &wiederverwenden",
!                     IDC_USER_RPW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,62,
!                     171,10
!     CONTROL         "K&ennwort l舫ft ab nach",IDC_USER_PWEXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,25,78,87,10
!     LTEXT           "Tagen",IDC_STATIC,164,79,23,8
!     EDITTEXT        IDC_USER_PWEXPIRATION,119,77,37,13,ES_AUTOHSCROLL
!     CONTROL         "Konto &l舫ft ab am:",IDC_USER_EXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,97,77,10
!     CONTROL         "",IDC_USER_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,93,
!                     96,53,12
!     LTEXT           "u&m",IDC_USER_EXPIRE_AT,153,98,12,8
!     CONTROL         "",IDC_USER_EXPIRE_TIME,"Time",WS_BORDER | WS_TABSTOP,
!                     166,96,53,12
!     CONTROL         "Konto spe&rren nach",IDC_USER_FAILLOCK,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,134,76,10
!     LTEXT           "aufeinanderfolgenden fehlerhaften Anmeldungen",
!                     IDC_STATIC,129,132,86,16
!     EDITTEXT        IDC_USER_FAILLOCK_COUNT,90,134,32,13,ES_AUTOHSCROLL
!     CONTROL         "Konto auf unbestimmte &Zeit sperren (bis Sperre vom Administrator aufgehoben wird)",
!                     IDC_USER_FAILLOCK_INFINITE,"Button",BS_AUTORADIOBUTTON | 
!                     BS_MULTILINE,16,150,200,18
!     CONTROL         "Konto sperren &fr",IDC_USER_FAILLOCK_FINITE,"Button",
!                     BS_AUTORADIOBUTTON,16,172,70,10
!     CONTROL         "",IDC_USER_FAILLOCK_DURATION,"elapsed",WS_BORDER | 
!                     WS_TABSTOP,92,171,56,12
!     PUSHBUTTON      "Sperre a&ufheben",IDC_USER_UNLOCK,158,169,57,14
!     GROUPBOX        "Fehlerhafte Anmeldeversuche",IDC_STATIC,5,119,220,73
!     ICON            IDI_USER,IDC_STATIC,5,5,20,20
!     LTEXT           "Benutzer %1",IDC_USER_NAME,37,13,188,8
!     GROUPBOX        "Konto",IDC_STATIC,5,32,220,85
! END
! 
! IDD_GROUP_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION " Allgemein"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     ICON            IDI_GROUP,IDC_STATIC,5,5,20,20
!     LTEXT           "Gruppe %1",IDC_GROUP_NAME,37,13,188,8
!     LTEXT           "Konto&status anzeigen:",IDC_STATIC,12,108,67,8
!     COMBOBOX        IDC_GROUP_PERM_STATUS,101,106,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Gruppen anzeigen, deren Eigner der Benutzer ist:",
!                     IDC_STATIC,12,121,83,16
!     COMBOBOX        IDC_GROUP_PERM_GROUPS,101,122,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen&mitglied anzeigen:",IDC_STATIC,12,140,69,8
!     COMBOBOX        IDC_GROUP_PERM_MEMBERS,101,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Mitglieder &hinzufgen:",IDC_STATIC,12,156,73,8
!     COMBOBOX        IDC_GROUP_PERM_ADD,101,154,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Mitglieder entfe&rnen:",IDC_STATIC,12,172,67,8
!     COMBOBOX        IDC_GROUP_PERM_REMOVE,101,170,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Andere Kontoberechtigungen",IDC_STATIC,5,77,220,114
!     LTEXT           "Diese Einstellungen geben an, welche Benutzer diese Gruppe anzeigen knnen.",
!                     IDC_STATIC,11,87,204,16
!     LTEXT           "Eigner:",IDC_STATIC,5,31,24,8
!     LTEXT           "%1",IDC_GROUP_OWNER,37,31,113,8
!     PUSHBUTTON      "&Eigner 舅dern...",IDC_GROUP_CHANGEOWNER,159,29,66,12
!     LTEXT           "Ersteller:",IDC_STATIC,5,46,27,8
!     LTEXT           "%1",IDC_GROUP_CREATOR,37,46,113,8
! END
! 
! IDD_USER_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Gruppen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Gruppen",IDC_STATIC,5,31,220,160
!     LTEXT           "Diese Einstellungen ermglichen die ﾄnderung der Liste der Gruppen, zu denen dieser Benutzer gehrt, sowie der Liste der Gruppen, deren Eigner dieser Benutzer ist.",
!                     IDC_STATIC,5,5,220,24
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Hinzufgen...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "Gruppen &anzeigen, zu denen dieser Benutzer gehrt",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "Gruppen anzeigen, deren &Eigner dieser Benutzer ist",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Abfrage l舫ft; bitte warten...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_GROUP_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Zugehrigkeit"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Gruppenzugehrigkeit",IDC_STATIC,5,31,220,160
!     LTEXT           "Diese Einstellungen ermglichen die Auswahl der Mitglieder dieser Gruppe sowie die Auswahl der Gruppen, deren Eigner diese Gruppe sein soll.",
!                     IDC_STATIC,5,3,220,23
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Hinzufgen...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "Mitglieder dieser Gruppe &anzeigen",
!                     IDC_GROUP_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "Gruppen anzeigen, deren &Eigner diese Gruppe ist",
!                     IDC_GROUP_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Abfrage l舫ft; bitte warten...)",IDC_USERS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_BROWSE DIALOG DISCARDABLE  0, 0, 281, 150
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(Dieser Titel wird zur Laufzeit festgelegt)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "(Laufzeit)",IDC_BROWSE_TYPE,7,115,49,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,60,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "Aus&w臧len",IDC_BROWSE_SELECT,224,112,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,224,129,50,14
!     CONTROL         "(Text wird zur Laufzeit festgelegt)",IDC_BROWSE_CHECK,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,59,133,157,10
!     RTEXT           "In &Zelle suchen:",IDC_STATIC,4,8,54,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,64,6,132,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,198,8,29,8
!     EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,267,84
! END
! 
! IDD_USER_PASSWORD DIALOG DISCARDABLE  0, 0, 281, 145
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Kontokennwort 舅dern"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&Automatisch eine Versionsnummer fr das neue Kennwort ausw臧len",
!                     IDC_CPW_VERSION_AUTO,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,42,36,230,10
!     CONTROL         "&Schlsselversion verwenden:",IDC_CPW_VERSION_MANUAL,
!                     "Button",BS_AUTORADIOBUTTON,42,52,106,10
!     EDITTEXT        IDC_CPW_VERSION,150,51,43,14,ES_AUTOHSCROLL
!     CONTROL         "Diese Zeichenfolge verschlsseln:",IDC_CPW_BYSTRING,
!                     "Button",BS_AUTORADIOBUTTON | WS_GROUP,29,78,122,10
!     CONTROL         "Diesen Schlssel verwenden:",IDC_CPW_BYDATA,"Button",
!                     BS_AUTORADIOBUTTON,30,95,106,10
!     EDITTEXT        IDC_CPW_STRING,152,76,122,14,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_CPW_DATA,152,94,70,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "Wahlf&rei",IDC_CPW_RANDOM,226,94,48,14
!     DEFPUSHBUTTON   "OK",IDOK,116,124,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,170,124,50,14
!     PUSHBUTTON      "Hilfe",9,224,124,50,14
!     LTEXT           "Neues Kennwort fr Benutzer %1",IDC_CPW_TITLE,43,14,228,
!                     8
!     ICON            IDI_USER,-1,7,6,20,20
!     LTEXT           "Version:",-1,7,37,26,8
!     LTEXT           "Wert:",-1,7,78,21,8
! END
! 
! IDD_GROUP_RENAME DIALOG DISCARDABLE  0, 0, 274, 150
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Gruppe umbenennen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Neuer Gruppen&name:",IDC_STATIC,30,103,71,8
!     EDITTEXT        IDC_RENAME_NEWNAME,109,101,104,14,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "OK",IDOK,109,129,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,163,129,50,14
!     PUSHBUTTON      "Hilfe",9,217,129,50,14
!     LTEXT           "Aktueller Eigner:",IDC_STATIC,30,65,55,8
!     PUSHBUTTON      "Eigner &ndern...",IDC_RENAME_CHOWN,198,63,69,14
!     LTEXT           "Aktueller Gruppenname:",IDC_STATIC,30,83,80,8
!     ICON            IDI_GROUP,IDC_STATIC,7,6,20,20
!     LTEXT           "Gruppe %1 umbenennen",IDC_RENAME_TITLE,35,14,222,8
!     LTEXT           "Hinweis: Verfgt der Gruppenname ber keinen Pr臟ix, muﾟ der Name den aktuellen Eigner der Gruppe pr艘ise darstellen (z.B., ""Eigner:Gruppenname"").",
!                     IDC_STATIC,33,30,217,26
!     LTEXT           "(Abfrage l舫ft)",IDC_RENAME_OWNER,109,65,82,8
!     LTEXT           "(Abfrage l舫ft)",IDC_RENAME_OLDNAME,109,83,104,8
! END
! 
! IDD_BROWSE_COMBO DIALOG DISCARDABLE  0, 0, 281, 154
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(Dieser Titel wird zur Laufzeit festgelegt)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "(Laufzeit)",IDC_BROWSE_TYPE,7,115,49,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,60,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "Aus&w臧len",IDC_BROWSE_SELECT,224,113,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,224,133,50,14
!     RTEXT           "Anzeigen:",IDC_STATIC,7,134,49,8
!     COMBOBOX        IDC_BROWSE_COMBO,60,132,140,68,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     RTEXT           "In &Zelle suchen:",IDC_STATIC,3,8,53,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,64,6,131,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
!     EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,267,84
! END
! 
! IDD_BROWSE_BOTH DIALOG DISCARDABLE  0, 0, 281, 169
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(Dieser Titel wird zur Laufzeit festgelegt)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "(Laufzeit)",IDC_BROWSE_TYPE,7,115,49,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,60,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "Aus&w臧len",IDC_BROWSE_SELECT,224,113,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,224,132,50,14
!     RTEXT           "Anzeigen:",IDC_STATIC,7,134,49,8
!     COMBOBOX        IDC_BROWSE_COMBO,60,132,140,68,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "(Text wird zur Laufzeit festgelegt)",IDC_BROWSE_CHECK,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,59,151,181,10
!     RTEXT           "In &Zelle suchen:",IDC_STATIC,4,8,54,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,64,6,134,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "Muster:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
!     EDITTEXT        IDC_BROWSE_PATTERN,233,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,267,84
! END
! 
! IDD_NEWUSER_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Gruppen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Gruppen",IDC_STATIC,5,31,220,160
!     LTEXT           "Diese Einstellungen ermglichen die ﾄnderung der ersten Liste der Gruppen, zu denen dieser Benutzer gehren wird, sowie der Gruppen, deren Eigner dieser Benutzer wird.",
!                     IDC_STATIC,5,4,220,24
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Hinzufgen...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "Gruppen &anzeigen, zu denen dieser Benutzer gehren wird",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     202,10
!     CONTROL         "Gruppen anzeigen, deren &Eigner dieser Benutzer wird",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Abfrage l舫ft; bitte warten...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_NEWUSER DIALOG DISCARDABLE  0, 0, 253, 170
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Benutzer erstellen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Name:",IDC_STATIC,7,37,22,8
!     EDITTEXT        IDC_NEWUSER_NAME,54,35,127,14,ES_AUTOHSCROLL
!     LTEXT           "&Kennwort:",IDC_STATIC,7,57,34,8
!     EDITTEXT        IDC_NEWUSER_PW1,54,55,90,14,ES_PASSWORD | ES_AUTOHSCROLL
!     LTEXT           "(e&rneut eingeben:)",IDC_STATIC,7,73,47,17
!     EDITTEXT        IDC_NEWUSER_PW2,54,75,90,14,ES_PASSWORD | ES_AUTOHSCROLL
!     CONTROL         "A&utomatisch n臘hste verfgbare Benutzer-ID verwenden",
!                     IDC_NEWUSER_ID_AUTO,"Button",BS_AUTORADIOBUTTON | BS_TOP | 
!                     BS_MULTILINE,50,97,192,16
!     CONTROL         "Be&stimmte Benutzer-ID verwenden:",
!                     IDC_NEWUSER_ID_MANUAL,"Button",BS_AUTORADIOBUTTON,50,117,
!                     124,10
!     EDITTEXT        IDC_NEWUSER_ID,178,116,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "&Gruppen...",IDC_ADVANCED,7,149,54,14
!     DEFPUSHBUTTON   "OK",IDOK,94,149,43,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,141,149,43,14
!     PUSHBUTTON      "Hilfe",9,203,149,43,14
!     ICON            IDI_USER,IDC_STATIC,7,6,20,20
!     LTEXT           "Neuer Benutzer in Zelle %1",IDC_NEWUSER_TITLE,61,14,185,
!                     8
!     LTEXT           "Benutzer-ID:",IDC_STATIC,7,97,41,8
! END
! 
! IDD_NEWGROUP_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION " Allgemein"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     ICON            IDI_GROUP,IDC_STATIC,5,5,20,20
!     LTEXT           "Neue Gruppe in Zelle %1",IDC_GROUP_NAME,37,13,188,8
!     LTEXT           "Konto&status anzeigen:",IDC_STATIC,12,102,67,8
!     COMBOBOX        IDC_GROUP_PERM_STATUS,91,100,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Gruppen anzeigen, deren Eigner der Benutzer ist:",
!                     IDC_STATIC,12,114,67,23
!     COMBOBOX        IDC_GROUP_PERM_GROUPS,91,119,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen&mitglieder anzeigen:",IDC_STATIC,12,140,69,8
!     COMBOBOX        IDC_GROUP_PERM_MEMBERS,91,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Mitglieder &hinzufgen:",IDC_STATIC,12,156,73,8
!     COMBOBOX        IDC_GROUP_PERM_ADD,91,154,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Mitglieder entfe&rnen:",IDC_STATIC,12,172,67,8
!     COMBOBOX        IDC_GROUP_PERM_REMOVE,91,170,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Andere Kontoberechtigungen",IDC_STATIC,5,68,220,123
!     LTEXT           "Diese Einstellungen geben an, welche Benutzer Informationen ber diese Gruppe anzeigen knnen.",
!                     IDC_STATIC,11,80,204,17
!     LTEXT           "Eigner:",IDC_STATIC,5,35,24,8
!     LTEXT           "%1",IDC_GROUP_OWNER,37,35,113,8
!     PUSHBUTTON      "&Eigner 舅dern...",IDC_GROUP_CHANGEOWNER,159,33,66,12
! END
! 
! IDD_NEWGROUP_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Zugehrigkeit"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Gruppenzugehrigkeit",IDC_STATIC,5,31,220,160
!     LTEXT           "Diese Einstellungen ermglichen die Auswahl der ersten Mitglieder dieser Gruppe sowie die Auswahl der Gruppen, deren Eigner diese Gruppe sein soll.",
!                     IDC_STATIC,5,3,220,24
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Hinzufgen...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "Erste Mitglider dieser Gruppe &anzeigen",
!                     IDC_GROUP_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "Gruppen anzeigen, deren &Eigner diese Gruppe ist",
!                     IDC_GROUP_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Abfrage l舫ft; bitte warten...)",IDC_USERS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_NEWGROUP DIALOG DISCARDABLE  0, 0, 238, 135
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Gruppe erstellen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Name:",-1,7,37,22,8
!     EDITTEXT        IDC_NEWGROUP_NAME,46,35,127,14,ES_AUTOHSCROLL
!     CONTROL         "A&utomatisch n臘hste verfgbare Gruppen-ID verwenden",
!                     IDC_NEWGROUP_ID_AUTO,"Button",BS_AUTORADIOBUTTON | 
!                     BS_TOP | BS_MULTILINE,24,62,195,17
!     CONTROL         "Be&stimmte Gruppen-ID verwenden:",
!                     IDC_NEWGROUP_ID_MANUAL,"Button",BS_AUTORADIOBUTTON,24,81,
!                     126,10
!     EDITTEXT        IDC_NEWGROUP_ID,155,79,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "&Mitglieder...",IDC_ADVANCED,7,114,54,14
!     DEFPUSHBUTTON   "OK",IDOK,94,114,43,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,141,114,43,14
!     PUSHBUTTON      "Hilfe",9,188,114,43,14
!     ICON            IDI_USER,-1,7,6,20,20
!     LTEXT           "Neue Gruppe in Zelle %1",IDC_NEWGROUP_TITLE,46,14,179,
!                     10
!     LTEXT           " Gruppen-ID:",-1,8,51,32,8
! END
! 
! IDD_USER_DELETE DIALOG DISCARDABLE  0, 0, 281, 114
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Benutzer lschen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "OK",IDOK,116,93,50,14
!     DEFPUSHBUTTON   "Abbrechen",IDCANCEL,170,93,50,14
!     PUSHBUTTON      "Hilfe",9,224,93,50,14
!     LTEXT           "Achtung!\n\nDiese Operation lscht das Konto fr den Benutzer %1 auf Dauer.",
!                     IDC_DELETE_TITLE,36,14,238,32
!     ICON            32515,-1,7,6,20,20
!     CONTROL         "&KAS-Datenbankeintrag fr dieses Konto lschen",
!                     IDC_DELETE_KAS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,57,
!                     53,208,10
!     CONTROL         "&PTS-Datenbankeintrag fr dieses Konto lschen",
!                     IDC_DELETE_PTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,57,
!                     69,203,10
! END
! 
! IDD_GROUP_DELETE DIALOG DISCARDABLE  0, 0, 281, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Gruppe lschen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "OK",IDOK,116,61,50,14
!     DEFPUSHBUTTON   "Abbrechen",IDCANCEL,170,61,50,14
!     PUSHBUTTON      "Hilfe",9,224,61,50,14
!     LTEXT           "Achtung!\n\nDiese Operation lscht die Gruppe %1 auf Dauer.",
!                     IDC_DELETE_TITLE,36,14,238,32
!     ICON            32515,-1,7,6,20,20
! END
! 
! IDD_CELL_GENERAL DIALOG DISCARDABLE  0, 0, 230, 134
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION " Allgemein"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Maximale &Benutzer-ID:",IDC_STATIC,11,87,76,8
!     EDITTEXT        IDC_CELL_USERMAX,102,85,40,14,ES_AUTOHSCROLL
!     LTEXT           "Maximale &Gruppen-ID:",IDC_STATIC,11,105,80,8
!     EDITTEXT        IDC_CELL_GROUPMAX,102,103,40,14,ES_AUTOHSCROLL
!     GROUPBOX        "Benutzer- und Gruppen-IDs",IDC_STATIC,5,31,220,97
!     LTEXT           "Diese Einstellungen zeigen die bisher hchsten verwendeten Benutzer- und Gruppen-IDs an. Sie knnen problemlos erhht werden - allerdings nur dann verringert, wenn Sie sicher sind, daﾟ die neuen Werte nicht zu Konflikten mit vorhandenen Konten fhren.",
!                     IDC_STATIC,11,43,204,40
!     ICON            20035,IDC_STATIC,5,5,20,20
!     LTEXT           "Zelle %1",IDC_CELL_NAME,37,13,188,8
! END
! 
! IDD_NEWUSER_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION " Allgemein"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Benutzer kann Kennwort &ndern",IDC_USER_CPW,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,47,118,10
!     PUSHBUTTON      "&Kennwort 舅dern",IDC_USER_CPW_NOW,144,45,73,14
!     CONTROL         "Benutzer kann alte Kennwrter &wiederverwenden",
!                     IDC_USER_RPW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,62,
!                     175,10
!     CONTROL         "K&ennwort l舫ft ab nach",IDC_USER_PWEXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,25,78,87,10
!     LTEXT           "Tagen",IDC_STATIC,173,79,25,8
!     EDITTEXT        IDC_USER_PWEXPIRATION,115,77,37,13,ES_AUTOHSCROLL
!     CONTROL         "Konto &l舫ft ab am:",IDC_USER_EXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,97,77,10
!     CONTROL         "",IDC_USER_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,91,
!                     96,58,12
!     LTEXT           "u&m",IDC_USER_EXPIRE_AT,154,98,12,8
!     CONTROL         "",IDC_USER_EXPIRE_TIME,"Time",WS_BORDER | WS_TABSTOP,
!                     168,96,53,12
!     CONTROL         "Konto spe&rren nach",IDC_USER_FAILLOCK,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,132,76,10
!     LTEXT           "aufeinanderfolgenden fehlerhaften Anmeldungen",
!                     IDC_STATIC,137,130,83,18
!     EDITTEXT        IDC_USER_FAILLOCK_COUNT,90,131,32,13,ES_AUTOHSCROLL
!     CONTROL         "Konto auf unbestimmte &Zeit sperren (bis Sperre vom Administrator aufgehoben wird)",
!                     IDC_USER_FAILLOCK_INFINITE,"Button",BS_AUTORADIOBUTTON | 
!                     BS_MULTILINE,15,149,203,17
!     CONTROL         "Konto sperren &fr",IDC_USER_FAILLOCK_FINITE,"Button",
!                     BS_AUTORADIOBUTTON,15,170,68,10
!     CONTROL         "",IDC_USER_FAILLOCK_DURATION,"elapsed",WS_BORDER | 
!                     WS_TABSTOP,91,170,51,12
!     PUSHBUTTON      "Sperre a&ufheben",IDC_USER_UNLOCK,155,168,62,14
!     GROUPBOX        "Fehlerhafte Anmeldeversuche",IDC_STATIC,5,120,220,73
!     ICON            IDI_USER,IDC_STATIC,5,5,20,20
!     LTEXT           "Neuer Benutzer in Zelle %1",IDC_USER_NAME,37,13,181,8
!     GROUPBOX        "Konto",IDC_STATIC,5,32,220,85
! END
! 
! IDD_NEWUSER_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Erweitert"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "&KAS-Datenbankeintrag fr dieses Konto erstellen (empfohlen)",
!                     IDC_USER_CREATE_KAS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,5,6,210,11
!     CONTROL         "&PTS-Datenbankeintrag fr dieses Konto erstellen (empfohlen)",
!                     IDC_USER_CREATE_PTS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,5,23,210,10
!     CONTROL         "Dieses Konto wird ein &Systemkonto (keine Verschlsselung)",
!                     IDC_USER_NOSEAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     40,207,10
!     CONTROL         "Benutzer verfgt ber Verw&altungsberechtigung",
!                     IDC_USER_ADMIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     57,180,10
!     CONTROL         "Zu&griffsberechtigung erteilen; Lebenszeit:",
!                     IDC_USER_TGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,74,
!                     142,10
!     CONTROL         "",IDC_USER_LIFETIME,"elapsed",WS_BORDER | WS_TABSTOP,
!                     151,73,66,12
!     CONTROL         "Gruppenerstellungs&quote:",IDC_USER_GROUP_HASQUOTA,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,91,94,10
!     EDITTEXT        IDC_USER_GROUP_QUOTA,111,90,27,13,ES_AUTOHSCROLL
!     LTEXT           "Konto&status anzeigen:",-1,12,136,67,8
!     COMBOBOX        IDC_USER_PERM_STATUS,91,134,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen anzeigen, deren &Eigner der Benutzer ist:",-1,
!                     12,148,60,24
!     COMBOBOX        IDC_USER_PERM_OWNED,91,151,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen&zugehrigkeit anzeigen:",-1,12,174,73,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,91,172,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Andere Kontoberechtigungen",-1,5,105,220,87
!     LTEXT           "Diese Einstellungen geben an, welche Benutzer dieses Konto anzeigen knnen.",
!                     -1,11,117,204,16
! END
! 
! IDD_TAB_MACHINES DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "Muster:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
!     LTEXT           "Abfrage l舫ft; bitte warten...",IDC_MACHINES_TITLE,4,6,
!                     142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,103
!     PUSHBUTTON      "&Erstellen...",M_MACHINE_CREATE,65,126,55,14
!     PUSHBUTTON      "&Zugehrigkeit...",M_MEMBERSHIP,124,126,55,14
!     PUSHBUTTON      "Me&rkmale...",M_PROPERTIES,183,126,55,14
! END
! 
! IDD_NEWMACHINE_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Gruppen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Gruppen",IDC_STATIC,5,33,220,158
!     LTEXT           "Diese Einstellungen ermglichen die ﾄnderung der ersten Liste der Gruppen, zu denen dieses Konto gehren wird, sowie der Gruppen, deren Eigner dieses Konto wird.",
!                     IDC_STATIC,5,5,220,24,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Hinzufgen...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "Gruppen &anzeigen, zu denen dieses Konto gehren wird",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "Gruppen anzeigen, deren &Eigner dieses Konto wird",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Abfrage l舫ft; bitte warten...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_NEWMACHINE_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Erweitert"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Konto&status anzeigen:",IDC_STATIC,12,90,67,8
!     COMBOBOX        IDC_USER_PERM_STATUS,91,84,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen anzeigen, deren &Eigner der Benutzer ist:",
!                     IDC_STATIC,12,100,60,24
!     COMBOBOX        IDC_USER_PERM_OWNED,91,105,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen&zugehrigkeit anzeigen:",IDC_STATIC,12,128,73,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,91,126,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Andere Kontoberechtigungen",IDC_STATIC,5,48,220,100
!     LTEXT           "Diese Einstellungen geben an, welche Benutzer dieses Konto anzeigen knnen.",
!                     IDC_STATIC,11,64,204,16
!     ICON            IDI_SERVER,IDC_STATIC,5,5,20,20
!     LTEXT           "Neues IP-Adreﾟkonto in Zelle %1",IDC_USER_NAME,37,13,
!                     188,8
! END
! 
! IDD_NEWMACHINE DIALOG DISCARDABLE  0, 0, 247, 126
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "IP-Adreﾟkonto erstellen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "IP-&Adresse:",-1,7,37,37,8
!     EDITTEXT        IDC_NEWUSER_NAME,50,35,127,14,ES_AUTOHSCROLL
!     CONTROL         "A&utomatisch n臘hste verfgbare Konten-ID verwenden",
!                     IDC_NEWUSER_ID_AUTO,"Button",BS_AUTORADIOBUTTON | BS_TOP | 
!                     BS_MULTILINE,49,60,191,16
!     CONTROL         "Be&stimmte Konten-ID verwenden:",IDC_NEWUSER_ID_MANUAL,
!                     "Button",BS_AUTORADIOBUTTON,49,79,117,10
!     EDITTEXT        IDC_NEWUSER_ID,171,77,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "&Gruppen...",IDC_ADVANCED,7,105,54,14
!     DEFPUSHBUTTON   "OK",IDOK,103,105,43,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,151,105,43,14
!     PUSHBUTTON      "Hilfe",9,197,105,43,14
!     ICON            IDI_SERVER,-1,7,6,20,20
!     LTEXT           "Neues IP-Adreﾟkonto in Zelle %1",IDC_NEWUSER_TITLE,50,
!                     14,190,8
!     LTEXT           "Konten-ID:",-1,7,60,39,8
! END
! 
! IDD_MACHINE_DELETE DIALOG DISCARDABLE  0, 0, 318, 84
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "IP-Adreﾟkonto lschen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "OK",IDOK,153,63,50,14
!     DEFPUSHBUTTON   "Abbrechen",IDCANCEL,207,63,50,14
!     PUSHBUTTON      "Hilfe",9,261,63,50,14
!     LTEXT           "Achtung!\n\nDiese Operation lscht das IP-Adreﾟkonto %1 auf Dauer.",
!                     IDC_DELETE_TITLE,36,14,275,37
!     ICON            32515,-1,7,6,21,20
! END
! 
! IDD_MACHINE_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Erweitert"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Konto&status anzeigen:",IDC_STATIC,12,81,67,8
!     COMBOBOX        IDC_USER_PERM_STATUS,101,78,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen anzeigen, deren &Eigner der Benutzer ist:",
!                     IDC_STATIC,12,94,69,23
!     COMBOBOX        IDC_USER_PERM_OWNED,101,97,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Gruppen&zugehrigkeit anzeigen:",IDC_STATIC,12,123,73,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,101,120,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Andere Kontoberechtigungen",IDC_STATIC,5,41,220,109
!     LTEXT           "Diese Einstellungen geben an, welche Benutzer dieses Konto anzeigen knnen.",
!                     IDC_STATIC,11,58,204,16
!     ICON            IDI_SERVER,IDC_STATIC,5,5,20,20
!     LTEXT           "IP-Adreﾟkonto %1",IDC_USER_NAME,37,13,188,8
! END
! 
! IDD_MACHINE_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Gruppen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Gruppen",IDC_STATIC,5,31,220,160
!     LTEXT           "Diese Einstellungen ermglichen die ﾄnderung der Liste der Gruppen, zu denen dieses Konto gehrt, sowie der Liste der Gruppen, deren Eigner dieses Konto ist.",
!                     IDC_STATIC,5,5,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Entfernen",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Hinzufgen...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "Gruppen &anzeigen, zu denen dieses Konto gehrt",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "Gruppen anzeigen, deren &Eigner dieses Konto ist",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     200,10
!     LTEXT           "(Abfrage l舫ft; bitte warten...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_OPTIONS DIALOG DISCARDABLE  0, 0, 258, 162
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Optionen"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Regul舐e Ausdrcke im &Unix-Format verwenden (""^mar[ky]son\\..*$"")",
!                     IDC_REGEXP_UNIX,"Button",BS_AUTORADIOBUTTON | 
!                     BS_MULTILINE,11,51,229,17
!     CONTROL         "Regul舐e Ausdrcke im &Windows-Format verwenden (""mar?son.*"")",
!                     IDC_REGEXP_WINDOWS,"Button",BS_AUTORADIOBUTTON | 
!                     BS_MULTILINE,11,70,226,16
!     CONTROL         "Warnung anzeigen, wenn ohne Verwaltungstoken gearbeitet wird",
!                     IDC_WARN_BADCREDS,"Button",BS_AUTOCHECKBOX | 
!                     BS_MULTILINE | WS_TABSTOP,11,112,220,15
!     CONTROL         "Informationen &automatisch aktualisieren alle",
!                     IDC_REFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,134,
!                     150,10
!     LTEXT           "Minuten",IDC_STATIC,211,135,25,8
!     EDITTEXT        IDC_REFRESH_RATE,163,133,30,14,ES_AUTOHSCROLL
!     ICON            IDI_MAIN,IDC_STATIC,5,5,21,20
!     LTEXT           "AFS Account Manager-Optionen",IDC_STATIC,37,12,96,8
!     GROUPBOX        "Regul舐e Ausdrcke",IDC_STATIC,5,37,248,57
!     GROUPBOX        " Allgemein",IDC_STATIC,5,100,248,57
! END
! 
! IDD_SEARCH_USERS DIALOG DISCARDABLE  0, 0, 284, 129
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Anzuzeigende Benutzer ausw臧len"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Eintr臠e fr &alle Benutzerkonten anzeigen",
!                     IDC_SEARCH_ALL,"Button",BS_AUTORADIOBUTTON,20,40,150,10
!     CONTROL         "Nur Benutzerkonten anzeigen, die ablauf&en vor",
!                     IDC_SEARCH_EXPIRE,"Button",BS_AUTORADIOBUTTON,20,55,165,
!                     10
!     CONTROL         "Nur Konten anzeigen, deren Kennwrter ablauf&en vor",
!                     IDC_SEARCH_PWEXPIRE,"Button",BS_AUTORADIOBUTTON,20,70,
!                     182,10
!     CONTROL         "",IDC_SEARCH_EXPIRE_DATE,"Datum",WS_BORDER | WS_TABSTOP,
!                     192,54,61,12
!     CONTROL         "",IDC_SEARCH_PWEXPIRE_DATE,"Datum",WS_BORDER | 
!                     WS_TABSTOP,212,69,61,12
!     DEFPUSHBUTTON   "OK",IDOK,119,108,50,14
!     PUSHBUTTON      "Abbrechen",IDCANCEL,173,108,50,14
!     PUSHBUTTON      "Hilfe",9,227,108,50,14
!     LTEXT           "Diese Steuerelemente ermglichen die Angabe, welche Benutzer auf dem Register Benutzer angezeigt werden. Diese Benutzerliste l葹t sich weiter einschr舅ken, indem Sie im Steuerelement Muster einen unvollst舅digen Kontennamen eingeben.",
!                     IDC_STATIC,7,6,270,27
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_MAIN, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 306
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 216
!     END
! 
!     IDD_TAB_USERS, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_TAB_GROUPS, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_ACTIONS, DIALOG
!     BEGIN
!         LEFTMARGIN, 2
!         RIGHTMARGIN, 234
!         TOPMARGIN, 2
!         BOTTOMMARGIN, 56
!     END
! 
!     IDD_HELP_ABOUT, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 222
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 137
!     END
! 
!     IDD_HELP_ERROR, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 214
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 137
!     END
! 
!     IDD_HELP_FIND, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 227
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 70
!     END
! 
!     IDD_COLUMNS, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 281
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 143
!     END
! 
!     IDD_USER_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_USER_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_GROUP_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_USER_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_GROUP_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_BROWSE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 143
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_USER_PASSWORD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 138
!     END
! 
!     IDD_GROUP_RENAME, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 267
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 143
!     END
! 
!     IDD_BROWSE_COMBO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 147
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_BROWSE_BOTH, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 162
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_NEWUSER_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWUSER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 246
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 163
!     END
! 
!     IDD_NEWGROUP_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWGROUP_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWGROUP, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 231
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 128
!     END
! 
!     IDD_USER_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 107
!     END
! 
!     IDD_GROUP_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_CELL_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 129
!     END
! 
!     IDD_NEWUSER_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWUSER_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_TAB_MACHINES, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_NEWMACHINE_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWMACHINE_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWMACHINE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 240
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 119
!     END
! 
!     IDD_MACHINE_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 311
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_MACHINE_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_MACHINE_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_OPTIONS, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 253
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 157
!     END
! 
!     IDD_SEARCH_USERS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 277
!         TOPMARGIN, 6
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include <windows.h>\r\n"
!     "#include <WINNT\\al_resource.h>\r\n"
!     "#ifndef APSTUDIO_INVOKED\r\n"
!     "#define AFS_VERINFO_FILE_DESCRIPTION ""AFS Account Manager""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "#endif // APSTUDIO_INVOKED\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! 32513                   ICON    DISCARDABLE     "..\\afsapplib\\resource\\error.ico"
! IDI_MAIN                ICON    DISCARDABLE     "resource\\afsusrmgr.ico"
! 32515                   ICON    DISCARDABLE     "..\\afsapplib\\resource\\warning.ico"
! IDI_USER                ICON    DISCARDABLE     "..\\afsapplib\\resource\\user.ico"
! IDI_GROUP               ICON    DISCARDABLE     "..\\afsapplib\\resource\\group.ico"
! IDI_SERVER              ICON    DISCARDABLE     "..\\afsapplib\\resource\\server.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Menu
! //
! 
! MENU_MAIN MENU DISCARDABLE 
! BEGIN
!     POPUP "&Zelle"
!     BEGIN
!         MENUITEM "Au&sw臧len...",               M_OPENCELL
!         MENUITEM "&Authentifizierung...",       M_CREDENTIALS
!         MENUITEM SEPARATOR
!         MENUITEM "Zellenme&rkmale...",          M_CELL_PROPERTIES
!         MENUITEM SEPARATOR
!         MENUITEM "E&xit",                       M_EXIT
!     END
!     POPUP "&Editieren"
!     BEGIN
!         MENUITEM "&Benutzer erstellen...",      M_USER_CREATE
!         MENUITEM "&Gruppe erstellen...",        M_GROUP_CREATE
!         MENUITEM SEPARATOR
!         MENUITEM "Umbe&nennen...",              M_RENAME
!         MENUITEM "&Lschen...",                 M_DELETE
!         MENUITEM SEPARATOR
!         MENUITEM "&Alle ausw臧len\tStrg+A",     M_SELECTALL
!         MENUITEM SEPARATOR
!         MENUITEM "A&ktualisieren\tF5",          M_REFRESH
!         MENUITEM "&Zugehrigkeit...\tStrg+M",   M_MEMBERSHIP
!         MENUITEM "Me&rkmale\tAlt+Eingabetaste", M_PROPERTIES
!     END
!     POPUP "&Anzeige"
!     BEGIN
!         POPUP "&Symbole"
!         BEGIN
!             MENUITEM "&Groﾟe Symbole",              M_VIEW_LARGE, CHECKED
!             MENUITEM "&Kleine Symbole",             M_VIEW_SMALL, CHECKED
!             MENUITEM "&Details",                    M_VIEW_DETAILS, CHECKED
!             MENUITEM SEPARATOR
!             MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!             MENUITEM "&Alle Symbole",               M_VIEW_TWO, CHECKED
!             MENUITEM "Nur &Status",                 M_VIEW_STATUS, CHECKED
!         END
!         MENUITEM SEPARATOR
!         MENUITEM "Laufende O&perationen",       M_ACTIONS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Spalten...",                 M_COLUMNS
!         MENUITEM "&Optionen...",                M_OPTIONS
!         MENUITEM SEPARATOR
!         MENUITEM "Alle a&ktualisieren",         M_REFRESHALL
!     END
!     POPUP "&Hilfe"
!     BEGIN
!         MENUITEM "&Inhalt",                     M_CONTENTS
!         MENUITEM "Befehl &suchen...",           M_FIND
!         MENUITEM "&Fehlercode suchen...",       M_LOOKUP
!         MENUITEM SEPARATOR
!         MENUITEM "Informationen zu &AFS Account Manager...", M_ABOUT
!     END
! END
! 
! MENU_USER_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "&Anzeige"
!     BEGIN
!         MENUITEM "&Groﾟe Symbole",              M_VIEW_LARGE, CHECKED
!         MENUITEM "&Kleine Symbole",             M_VIEW_SMALL, CHECKED
!         MENUITEM "&Details",                    M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!         MENUITEM "&Alle Symbole",               M_VIEW_TWO, CHECKED
!         MENUITEM "Nur &Status",                 M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "&Benutzer erstellen...",      M_USER_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "Alle a&ktualisieren",         M_REFRESHALL
! END
! 
! MENU_GROUP_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "&Anzeige"
!     BEGIN
!         MENUITEM "&Groﾟe Symbole",              M_VIEW_LARGE, CHECKED
!         MENUITEM "&Kleine Symbole",             M_VIEW_SMALL, CHECKED
!         MENUITEM "&Details",                    M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!         MENUITEM "&Alle Symbole",               M_VIEW_TWO, CHECKED
!         MENUITEM "Nur &Status",                 M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "&Gruppe erstellen...",        M_GROUP_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "Alle a&ktualisieren",         M_REFRESHALL
! END
! 
! MENU_USER MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Gruppen...",                 M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "&Kennwort 舅dern...",         M_CPW
!     MENUITEM "Sperre a&ufheben",            M_UNLOCK
!     MENUITEM "&Lschen...",                 M_DELETE
!     MENUITEM "A&ktualisieren",              M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "Me&rkmale...",                M_PROPERTIES
! END
! 
! MENU_GROUP MENU DISCARDABLE 
! BEGIN
!     MENUITEM "Gruppen&mitglieder...",       M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "Umbe&nennen...",              M_RENAME
!     MENUITEM "&Lschen...",                 M_DELETE
!     MENUITEM "A&ktualisieren",              M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "Me&rkmale...",                M_PROPERTIES
! END
! 
! MENU_COLUMNS MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Spalten...",                 M_COLUMNS
! END
! 
! MENU_MACHINE_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "&Anzeige"
!     BEGIN
!         MENUITEM "&Groﾟe Symbole",              M_VIEW_LARGE, CHECKED
!         MENUITEM "&Kleine Symbole",             M_VIEW_SMALL, CHECKED
!         MENUITEM "&Details",                    M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!         MENUITEM "&Alle Symbole",               M_VIEW_TWO, CHECKED
!         MENUITEM "Nur &Status",                 M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "&Konto erstellen...",         M_MACHINE_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "Alle a&ktualisieren",         M_REFRESHALL
! END
! 
! MENU_MACHINE MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Gruppen...",                 M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "&Lschen...",                 M_DELETE
!     MENUITEM "A&ktualisieren",              M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "Me&rkmale...",                M_PROPERTIES
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Accelerator
! //
! 
! ACCEL_MAIN ACCELERATORS DISCARDABLE 
! BEGIN
!     "A",            M_SELECTALL,            VIRTKEY, CONTROL, NOINVERT
!     "Z",            M_MEMBERSHIP,           VIRTKEY, CONTROL, NOINVERT
!     VK_APPS,        M_KEY_MENU,             VIRTKEY, NOINVERT
!     VK_ESCAPE,      M_KEY_ESC,              VIRTKEY, NOINVERT
!     VK_F10,         M_KEY_MENU,             VIRTKEY, SHIFT, NOINVERT
!     VK_F5,          M_REFRESH,              VIRTKEY, NOINVERT
!     VK_RETURN,      M_KEY_RETURN,           VIRTKEY, NOINVERT
!     VK_RETURN,      M_KEY_PROPERTIES,       VIRTKEY, ALT, NOINVERT
!     VK_TAB,         M_KEY_TAB,              VIRTKEY, NOINVERT
!     VK_TAB,         M_KEY_CTRLTAB,          VIRTKEY, CONTROL, NOINVERT
!     VK_TAB,         M_KEY_BACKTAB,          VIRTKEY, SHIFT, NOINVERT
!     VK_TAB,         M_KEY_CTRLBACKTAB,      VIRTKEY, SHIFT, CONTROL, 
!                                                     NOINVERT
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_APP_TITLE           "AFS Account Manager"
!     IDS_USRCOL_NAME         "Benutzername"
!     IDS_GRPCOL_NAME         "Gruppenname"
!     IDS_BADCREDS_DESC       "Wenn Sie nicht als Administrator angemeldet sind, besitzen Sie eventuell keine ausreichenden Berechtigungen, die Zelle %1 zu verwalten."
!     IDS_TAB_USERS           "Benutzer"
!     IDS_TAB_GROUPS          "Gruppen"
!     IDS_CELL_NONE           "(keine Zelle ausgew臧lt)"
!     IDS_CRED_NONE           "(keine Token in dieser Zelle)"
!     IDS_CRED_EXP            "%1 (Token abgelaufen %2)"
!     IDS_CRED_OK             "%1 (Token laufen ab %2)"
!     IDS_USERS_ALL           "Alle Benutzer in Zelle %1:"
!     IDS_USERS_PATTERN       "Ausgew臧lte Benutzer in Zelle %1:"
!     IDS_GROUPS_ALL          "Alle Gruppen in Zelle %1:"
!     IDS_GROUPS_PATTERN      "Ausgew臧lte Gruppen in Zelle %1:"
!     IDS_QUERYING_LONG       "Abfrage l舫ft; bitte warten..."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ACTION_DESC_NONE    "Momentan laufen keine Operationen."
!     IDS_ACTION_DESC_ONE     "Momentan l舫ft die folgende Operation:"
!     IDS_ACTION_DESC_MULT    "Momentan laufen die folgenden Operationen:"
!     IDS_ACTCOL_OPERATION    "Operation"
!     IDS_ACTCOL_ELAPSED      "Abgelaufene Zeit"
!     IDS_ACTION_REFRESH_CELL "Informationen fr Zelle %1 werden aktualisiert"
!     IDS_ACTION_REFRESH_SERVER 
!                             "Informationen fr Server %1 werden aktualisiert"
!     IDS_ACTION_SCOUT_CELL   "Zelle %1 wird auf Probleme untersucht"
!     IDS_ACTION_SCOUT_SERVER "Server %1 wird auf Probleme untersucht"
!     IDS_FIND_NOTHING_TITLE  "Kein Befehl ausgew臧lt"
!     IDS_FIND_NOTHING_DESC   "Um festzustellen, wie eine Operation durchgefhrt wird, w臧len Sie zun臘hst eine Befehlszeile aus der Liste aus, oder geben Sie ein Schlsselwort ein."
!     IDS_FIND_UNKNOWN_TITLE  "Unbekannter Befehl"
!     IDS_FIND_UNKNOWN_DESC   "Der AFS Account Manager konnte fr den Befehl ""%1"" keine Hilfethemen finden."
!     IDS_HELPABOUT_DESC1     "Achtung: Dieses Computerprogramm ist durch Copyright und internationale Vertr臠e geschtzt. +"
!     IDS_HELPABOUT_DESC2     "Die unbefugte Kopie oder Verteilung dieser Software kann zu schwerwiegenden zivil- und strafrechtlichen Maﾟnahmen fhren, und wird mit aller H舐te des Gesetzes verfolgt.\n\n+"
!     IDS_HELPABOUT_DESC3     "AFS ist eine Marke von Transarc Corporation, einer Firma von IBM."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COLUMNS_TITLE       "Spalten - AFS Account Manager"
!     IDS_USER_PROPERTIES_TITLE_MULTIPLE "Mehrfache Benutzer - Merkmale"
!     IDS_USER_PROPERTIES_TITLE "Benutzer %1 - Merkmale"
!     IDS_USER_NAME_MULTIPLE  "Benutzer "
!     IDS_ACCOUNTACCESS_OWNER "Nur Kontoeigner"
!     IDS_ACCOUNTACCESS_GROUP "Nur Gruppenmitglieder"
!     IDS_ACCOUNTACCESS_ANYONE "Jeder"
!     IDS_ACCOUNTACCESS_MIXED "(Mehrfache Einstellungen)"
!     IDS_USER_KEY            "%1\nVersion %2, Kontrollsumme %3"
!     IDS_USER_KEY_HIDDEN     "(aktueller Schlsselwert verdeckt)"
!     IDS_USER_KEY_UNKNOWN    "(unbekannt)"
!     IDS_USER_KEY_MULTIPLE   "(Mehrfache Schlssel)"
!     IDS_ACTION_USER_CHANGE  "Merkmale fr Benutzer %1 werden ge舅dert"
!     IDS_COUNT_WEEKS         "%1w"
!     IDS_COUNT_DAYS          "%1d"
!     IDS_COUNT_HOURS         "%1h"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COUNT_MINUTES       "%1m"
!     IDS_COUNT_SECONDS       "%1s"
!     IDS_GROUP_PROPERTIES_TITLE_MULTIPLE "Mehrfache Gruppen - Merkmale"
!     IDS_GROUP_PROPERTIES_TITLE "Gruppe %1 - Merkmale"
!     IDS_GROUP_NAME_MULTIPLE "Gruppen "
!     IDS_ACCOUNTACCESS_OWNGROUP "Nur Gruppeneigner"
!     IDS_OWNER_MIXED         "Mehrfache Eigner"
!     IDS_CREATOR_MIXED       "Mehrfache Ersteller"
!     IDS_GROUP_CHANGEOWNER_TITLE "Gruppeneigner 舅dern"
!     IDS_GROUP_CHANGEOWNER_PROMPT "Eigner:"
!     IDS_MEMBER_MIXED        "(Einige)"
!     IDS_USER_SHOW_MEMBER_TITLE "Gruppen, zu denen dieser Benutzer gehrt"
!     IDS_USER_SHOW_OWNER_TITLE "Alle Gruppen, deren Eigner dieser Benutzer ist"
!     IDS_GROUP_SHOW_MEMBER_TITLE "Alle Mitglieder dieser Gruppe:"
!     IDS_USER_SHOW_MEMBER_TITLE_MULTIPLE 
!                             "Alle Gruppen, zu denen diese Benutzer gehren:"
!     IDS_GROUP_SHOW_MEMBER_TITLE_MULTIPLE "Alle Mitglieder dieser Gruppen"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ACTION_GROUP_RENAME "Gruppe %1 wird in %2 umbenannt"
!     IDS_RENAME_TITLE        "Gruppe %1 umbenennen"
!     IDS_GROUP_TITLE         "Gruppe %1"
!     IDS_SHOW_USERS          "Alle Benutzer in dieser Zelle"
!     IDS_SHOW_GROUPS         "Alle Gruppen in dieser Zelle"
!     IDS_GROUP_SHOW_OWNED_TITLE "Alle Gruppen, deren Eigner diese Gruppe ist"
!     IDS_BROWSE_TITLE_OWNED  "Gruppen ausw臧len, deren Eigner diese Gruppe werden soll"
!     IDS_BROWSE_PROMPT_OWNED "Gruppen:"
!     IDS_BROWSE_CHECK_OWNED  "Nur Gruppen anzeigen, deren Eigner diese Gruppe aktuell nicht ist"
!     IDS_NEWUSER_PROPERTIES_TITLE "Benutzer erstellen - Erweitert"
!     IDS_NEWUSER_SHOW_MEMBER_TITLE 
!                             "Alle Gruppen, zu denen dieser Benutzer gehren wird"
!     IDS_NEWUSER_SHOW_OWNER_TITLE 
!                             "Alle Gruppen, deren Eigner dieser Benutzer wird"
!     IDS_ACTION_CELL_CHANGE  "Merkmale fr Zelle %1 werden ge舅dert"
!     IDS_ACTION_USER_CREATE  "Konto fr Benutzer %1 wird erstellt"
!     IDS_NEWGROUP_PROPERTIES_TITLE "Gruppe erstellen - Erweitert"
!     IDS_NEWGROUP_SHOW_MEMBER_TITLE "Erste Mitglieder dieser neuen Gruppe:"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_USRCOL_FLAGS        "Markierungen"
!     IDS_USRCOL_ADMIN        "Admin?"
!     IDS_USRCOL_TICKET       "Zugriffsberechtigungen?"
!     IDS_USRCOL_SYSTEM       "System?"
!     IDS_USRCOL_CHANGEPW     "Kennwrter 舅dern?"
!     IDS_USRCOL_REUSEPW      "Kennwrter wiederverwenden?"
!     IDS_USRCOL_EXPIRES      "Ablauf des Kontos"
!     IDS_USRCOL_LASTPW       "Letzte Kennwort舅derung"
!     IDS_USRCOL_LASTMOD      "Letzte ﾄnderung"
!     IDS_USRCOL_LASTMODBY    "Letzte ﾄnderung durch"
!     IDS_USRCOL_LIFETIME     "Lebensdauer der Zugriffsberechtigung"
!     IDS_USRCOL_CDAYPW       "Ablauf des Kennworts"
!     IDS_USRCOL_CFAILLOGIN   "Anmeldefehler"
!     IDS_USRCOL_CSECLOCK     "Sperrzeit fr Anmeldefehler"
!     IDS_USRCOL_CGROUPMAX    "Gruppenerstellungsquote"
!     IDS_USRCOL_UID          "UID"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_USRCOL_OWNER        "Eigner"
!     IDS_USRCOL_CREATOR      "Ersteller"
!     IDS_USRCOL_STATUS       "Status"
!     IDS_USRFLAG_ADMIN       "A "
!     IDS_USRFLAG_TICKET      "T "
!     IDS_USRFLAG_ENCRYPT     "E "
!     IDS_USRFLAG_CHANGEPW    "C "
!     IDS_USRFLAG_REUSEPW     "R "
!     IDS_YES                 "Ja"
!     IDS_NO                  "Nein"
!     IDS_GRPCOL_CMEMBERS     "Anzahl Zugehrigkeiten"
!     IDS_GRPCOL_UID          "UID"
!     IDS_GRPCOL_OWNER        "Eigner"
!     IDS_GRPCOL_CREATOR      "Ersteller"
!     IDS_COL_USERS           "Benutzer in einer Zelle"
!     IDS_COL_GROUPS          "Gruppen in einer Zelle"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEWGROUP_SHOW_OWNED_TITLE 
!                             "Gruppen, deren Eigner diese neue Gruppe wird:"
!     IDS_USER_DELETE_MULTIPLE 
!                             "Achtung!\n\nDiese Operation lscht die Konten der folgenden Benutzer auf Dauer: %1"
!     IDS_GROUP_DELETE_MULTIPLE 
!                             "Achtung!\n\nDiese Operation lscht die folgenden Gruppen auf Dauer: %1"
!     IDS_ACTION_GROUP_CREATE "Gruppe %1 wird erstellt"
!     IDS_ACTION_USER_DELETE  "Konto fr Benutzer %1 wird gelscht"
!     IDS_ACTION_GROUP_DELETE "Gruppe %1 wird gelscht"
!     IDS_CELL_PROPERTIES_TITLE "Zelle %1 - Merkmale"
!     IDS_MACHINES_ALL        "Alle IP-Adreﾟkonten in Zelle %1:"
!     IDS_MACHINES_PATTERN    "Ausgew臧lte IP-Adreﾟkonten in Zelle %1:"
!     IDS_TAB_MACHINES        "Adressen"
!     IDS_MACHINE_DELETE_MULTIPLE 
!                             "Achtung!\n\nDiese Operation lscht die folgenden IP-Adreﾟkonten auf Dauer: %1"
!     IDS_NEWMACHINE_PROPERTIES_TITLE "IP-Adreﾟkonto erstellen - Erweitert"
!     IDS_MACHINE_PROPERTIES_TITLE_MULTIPLE 
!                             "Mehrfache IP-Adreﾟkonten - Merkmale"
!     IDS_MACHINE_PROPERTIES_TITLE "IP-Adreﾟkonto %1 - Merkmale"
!     IDS_COL_MACHINES        "IP-Adreﾟkonten in einer Zelle"
!     IDS_MCHCOL_NAME         "IP-Adresse"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BROWSE_TITLE_JOIN   "Gruppen fr Zugehrigkeit ausw臧len"
!     IDS_BROWSE_PROMPT_JOIN  "Gruppen:"
!     IDS_BROWSE_CHECK_JOIN   "Nur Gruppen ohne Zugehrigkeit anzeigen"
!     IDS_BROWSE_TITLE_OWN    "Gruppen ausw臧len, deren Eigner diese Gruppe werden soll"
!     IDS_BROWSE_PROMPT_OWN   "Gruppen:"
!     IDS_BROWSE_CHECK_OWN    "Nur Gruppen anzeigen, deren Eigner diese Gruppe aktuell nicht ist"
!     IDS_BROWSE_TITLE_MEMBER "Benutzer fr Zugehrigkeit ausw臧len"
!     IDS_BROWSE_PROMPT_MEMBER "Benutzer:"
!     IDS_BROWSE_CHECK_MEMBER "Nur Benutzer anzeigen, die nicht Mitglied sind"
!     IDS_SEPARATORS          ",;"
!     IDS_ACTION_GROUP_CHANGE "Merkmale fr Gruppe %1 werden ge舅dert"
!     IDS_ACTION_GROUP_MEMBER_ADD "Benutzer %2 wird zu Gruppe %1 hinzugefgt"
!     IDS_ACTION_GROUP_MEMBER_REMOVE "Benutzer %2 wird aus Gruppe %1 entfernt"
!     IDS_ACTION_USER_PW_CHANGE "Kennwort fr Benutzer %1 wird festgelegt"
!     IDS_UNKNOWN_NAME        "(unbekannt)"
!     IDS_ACTION_USER_UNLOCK  "Konto fr Benutzer %1 wird entsperrt"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_MCHCOL_CGROUPMAX    "Gruppenerstellungsquote"
!     IDS_MCHCOL_UID          "Konten-ID"
!     IDS_MCHCOL_OWNER        "Eigner"
!     IDS_MCHCOL_CREATOR      "Ersteller"
!     IDS_OPTIONS_TITLE       "AFS Account Manager-Optionen"
!     IDS_WARNING_TITLE       "Achtung"
!     IDS_WARNING_SYSTEM_ACCOUNT 
!                             "Das Konto %1 muﾟ mit Vorsicht ge舅dert werden, da ungeeignete ﾄnderungen dieses Kontos die einwandfreie Funktionsweise einiger Funktionen von AFS verhindern knnen.\n\nSind Sie sicher, daﾟ Sie den Vorgang fortsetzen mchten?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_PTS_ADDUSER "pts adduser"
!     IDS_COMMAND_PTS_CHOWN   "pts chown"
!     IDS_COMMAND_PTS_CREATEGROUP "pts creategroup"
!     IDS_COMMAND_PTS_CREATEUSER "pts createuser"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_PTS_DELETE  "pts delete"
!     IDS_COMMAND_PTS_EXAMINE "pts examine"
!     IDS_COMMAND_PTS_LISTMAX "pts listmax"
!     IDS_COMMAND_PTS_LISTOWNED "pts listowned"
!     IDS_COMMAND_PTS_MEMBERSHIP "pts membership"
!     IDS_COMMAND_PTS_REMOVEUSER "pts removeuser"
!     IDS_COMMAND_PTS_RENAME  "pts rename"
!     IDS_COMMAND_PTS_SETFIELDS "pts setfields"
!     IDS_COMMAND_PTS_SETMAX  "pts setmax"
!     IDS_COMMAND_KAS_CREATE  "kas create"
!     IDS_COMMAND_KAS_DELETE  "kas delete"
!     IDS_COMMAND_KAS_EXAMINE "kas examine"
!     IDS_COMMAND_KAS_GETRANDOMKEY "kas getrandomkey"
!     IDS_COMMAND_KAS_LIST    "kas list"
!     IDS_COMMAND_KAS_SETFIELDS "kas setfields"
!     IDS_COMMAND_KAS_SETKEY  "kas setkey"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_KAS_SETPASSWORD "kas setpassword"
!     IDS_COMMAND_KAS_STRINGTOKEY "kas stringtokey"
!     IDS_COMMAND_KAS_UNLOCK  "kas unlock"
!     IDS_MACHINE_SHOW_MEMBER_TITLE 
!                             "Alle Gruppen, zu denen dieses Konto gehrt:"
!     IDS_MACHINE_SHOW_OWNER_TITLE 
!                             "Alle Gruppen, deren Eigner dieses Konto ist:"
!     IDS_MACHINE_SHOW_MEMBER_TITLE_MULTIPLE 
!                             "Alle Gruppen, zu denen diese Konten gehren:"
!     IDS_NEWMACHINE_SHOW_MEMBER_TITLE 
!                             "Alle Gruppen, zu denen dieses Konto gehren wird"
!     IDS_NEWMACHINE_SHOW_OWNER_TITLE 
!                             "Alle Gruppen, deren Eigner dieses Konto wird"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_BAD_REMOTE_SERVER 
!                             "Der AFS Account Manager konnte keinen Verwaltungsprozeﾟ erreichen, der auf dem Computer %1 ausgefhrt wird.\n\nSie knnen Fernverwaltungsaufgaben durchfhren, indem Sie das Programm TaAfsAdmSvr.exe auf dem anderen Computer ausfhren."
!     IDS_ERROR_BAD_LOCAL_SERVER 
!                             "Der AFS Account Manager konnte das Programm TaAfsAdmSvr.exe  nicht finden oder Ihren Computer nicht fr eine AFS-Verwaltung vorbereiten."
!     IDS_ERROR_CANT_OPEN_CELL 
!                             "Der AFS Account Manager konnte keine Server in der Zelle %1 erreichen.\n\nBitte berprfen Sie, ob der Name der Zelle richtig eingegeben wurde."
!     IDS_ERROR_BADCREDENTIALS 
!                             "Die eingegebene AFS-ID wurde nicht erkannt, oder das angegebene Kennwort ist falsch."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_TRANSLATED    "Fehlernummer 0x%1 (%2):\n\n%3"
!     IDS_ERROR_NOTTRANSLATED "Fehlernummer 0x%1 (%2) wurde nicht erkannt."
!     IDS_ERROR_USER_MULTIPROP 
!                             "Der AFS Account Manager kann das angeforderte Fenster nicht anzeigen, da fr mindestens einen der ausgew臧lten Benutzer bereits ein Merkmalfenster geffnet ist."
!     IDS_ERROR_CANT_CHANGE_USER 
!                             "Der AFS Account Manager konnte die Merkmale fr Benutzer %1 nicht 舅dern."
!     IDS_ERROR_GROUP_MULTIPROP 
!                             "Der AFS Account Manager kann das angeforderte Fenster nicht anzeigen, da fr mindestens eine der ausgew臧lten Gruppen bereits ein Merkmalfenster geffnet ist."
!     IDS_ERROR_CANT_CHANGE_GROUP 
!                             "Der AFS Account Manager konnte die Merkmale fr Gruppe %1 nicht 舅dern."
!     IDS_ERROR_CANT_TRANSLATE_USER 
!                             "Der AFS Account Manager konnte keinen Benutzer mit dem angegebenen Namen finden.\n\nﾜberprfen Sie bitte, ob der Name richtig eingegeben wurde."
!     IDS_ERROR_CANT_TRANSLATE_GROUP 
!                             "Der AFS Account Manager konnte keinen Benutzer mit dem angegebenen Namen finden.\n\nﾜberprfen Sie bitte, ob der Name richtig eingegeben wurde."
!     IDS_ERROR_CANT_GET_USERPROP 
!                             "Der AFS Account Manager konnte die Merkmale fr Benutzer %1 nicht finden."
!     IDS_ERROR_CANT_CHANGE_PASSWORD 
!                             "Der AFS Account Manager konnte das Kennwort fr Benutzer %1 nicht 舅dern."
!     IDS_ERROR_CANT_GET_RANDOM_KEY 
!                             "Der AFS Account Manager konnte keinen wahlfreien Chiffrierschlssel generieren."
!     IDS_ERROR_CANT_SET_GROUPS 
!                             "Der AFS Account Manager konnte die angegebene Gruppenliste fr Benutzer %1 nicht 舅dern."
!     IDS_ERROR_CANT_SET_GROUPS_MULTIPLE 
!                             "Der AFS Account Manager konnte die angegebene Gruppenliste fr die folgenden Benutzer nicht 舅dern: %1."
!     IDS_ERROR_CANT_UNLOCK   "Der AFS Account Manager konnte das Konto des Benutzers %1 nicht entsperren."
!     IDS_ERROR_CANT_UNLOCK_MULTIPLE 
!                             "Der AFS Account Manager konnte die Konten der folgenden Benutzer nicht entsperren: %1."
!     IDS_ERROR_CANT_SET_MEMBERS 
!                             "Der AFS Account Manager konnte die Liste der Mitglieder fr Gruppe %1 nicht 舅dern."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_CANT_SET_MEMBERS_MULTIPLE 
!                             "Der AFS Account Manager konnte die Liste der Mitglieder fr die folgenden Gruppen nicht 舅dern: %1."
!     IDS_ERROR_CANT_RENAME_GROUP 
!                             "Der AFS Account Manager konnte die Gruppe %1 nicht in ""%2"" umbenennen."
!     IDS_ERROR_CANT_CHANGE_OWNER 
!                             "Der AFS Account Manager konnte den Eigner der Gruppe %1 nicht 舅dern."
!     IDS_ERROR_CANT_CHANGE_OWNER_MULTIPLE 
!                             "Der AFS Account Manager konnte den Eigner der folgenden Gruppen nicht 舅dern: %1."
!     IDS_ERROR_CANT_CHANGE_CELL 
!                             "Der AFS Account Manager konnte die Merkmale der Zelle %1 nicht 舅dern."
!     IDS_ERROR_NO_PASSWORD_GIVEN 
!                             "Sie mssen fr das Benutzerkonto, das erstellt wird, ein Kennwort angeben."
!     IDS_ERROR_MISMATCH_PASSWORD_GIVEN 
!                             "Die fr das neue Benutzerkonto eingegebenen Kennwrter stimmen nicht berein."
!     IDS_ERROR_CANT_CREATE_USER 
!                             "Der AFS Account Manager konnte kein Konto fr Benutzer %1 erstellen."
!     IDS_ERROR_CANT_CREATE_GROUP 
!                             "Der AFS Account Manager konnte die Gruppe %1 nicht erstellen."
!     IDS_ERROR_CANT_DELETE_USER 
!                             "Der AFS Account Manager konnte das Konto fr Benutzer %1 nicht lschen."
!     IDS_ERROR_CANT_DELETE_USER_MULTIPLE 
!                             "Der AFS Account Manager konnte die Konten der folgenden Benutzer nicht lschen: %1."
!     IDS_ERROR_CANT_DELETE_GROUP 
!                             "Der AFS Account Manager konnte die Gruppe %1 nicht lschen."
!     IDS_ERROR_CANT_DELETE_GROUP_MULTIPLE 
!                             "Der AFS Account Manager konnte die folgenden Gruppen nicht lschen: %1."
!     IDS_ERROR_BAD_REMOTE_SERVER_INSTALL 
!                             "Der AFS Account Manager konnte nicht gestartet werden, da das AFS Control Center nicht ordnungsgem葹 installiert wurde.\n\nSie mssen das AFS Control Center erneut installieren."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CMDLINE_TITLE       "Fehler - AFS Account Manager"
!     IDS_CMDLINE_SYNTAX      "Die fr den AFS Account Manager angegebene Befehlszeile ist ungltig."
!     IDS_CMDLINE_UNRECOGNIZED 
!                             "Die fr den AFS Account Manager angegebene Befehlszeile ist ungltig.\n\nDer Parameter ""%1"" wurde nicht erkannt."
!     IDS_CMDLINE_DUPLICATE   "Die fr den AFS Account Manager angegebene Befehlszeile ist ungltig.\n\nDer Parameter ""%1"" wurde mehrmals angegeben."
!     IDS_CMDLINE_UNEXPECTVALUE 
!                             "Die fr den AFS Account Manager angegebene Befehlszeile ist ungltig.\n\nDem Parameter ""%1"" darf kein Wert zugewiesen werden."
!     IDS_CMDLINE_MISSINGVAL  "Die fr den AFS Account Manager angegebene Befehlszeile ist ungltig.\n\nDem Parameter ""%1"" muﾟ ein Wert folgen."
!     IDS_CMDLINE_USERPASSWORD 
!                             "Die fr den AFS Account Manager angegebene Befehlszeile ist ungltig.\n\nUm neue AFS-Token zu erhalten, mssen die Parameter ""/USER"" und ""/PASSWORD"" angegeben werden."
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
Index: openafs/src/WINNT/afsusrmgr/lang/es_ES/AfsUsrMgr.rc
diff -c openafs/src/WINNT/afsusrmgr/lang/es_ES/AfsUsrMgr.rc:1.3 openafs/src/WINNT/afsusrmgr/lang/es_ES/AfsUsrMgr.rc:1.3.2.1
*** openafs/src/WINNT/afsusrmgr/lang/es_ES/AfsUsrMgr.rc:1.3	Thu Jun 19 15:01:22 2003
--- openafs/src/WINNT/afsusrmgr/lang/es_ES/AfsUsrMgr.rc	Fri Mar 11 01:59:40 2005
***************
*** 7,1798 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #include <WINNT\al_resource.h>
! #ifndef APSTUDIO_INVOKED
! #define AFS_VERINFO_FILE_DESCRIPTION "AFS Account Manager"
  #define AFS_VERINFO_NAME "AfsUsrMgr"
  #define AFS_VERINFO_FILENAME "AfsUsrMgr.exe"
  #define AFS_VERINFO_LANG_CODE 0x40a
  #define AFS_VERINFO_CHARSET 1252
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! #endif // APSTUDIO_INVOKED
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_MAIN DIALOG DISCARDABLE  0, 0, 327, 220
! STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU | WS_THICKFRAME
! CAPTION "AFS Account Manager"
! MENU MENU_MAIN
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "",IDC_TAB,"SysTabControl32",0x0,4,32,319,184
!     LTEXT           "C駘ula seleccionada:",IDC_STATIC,4,7,68,8
!     LTEXT           "(ninguna seleccionada)",IDC_CELL,79,7,212,8
!     LTEXT           "Seales de AFS:",IDC_STATIC,4,18,55,8
!     LTEXT           "(no hay seales)",IDC_CREDS,79,17,212,8
!     ICON            IDI_MAIN,IDC_ANIM,302,7,21,20,SS_SUNKEN
!     CONTROL         "",IDC_BAR,"Static",SS_ETCHEDHORZ,1,0,308,1
! END
! 
! IDD_TAB_USERS DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_USERS_PATTERN,185,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "Patrn:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
!     LTEXT           "Consultando; espere por favor...",IDC_USERS_TITLE,4,6,
!                     142,8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,103
!     PUSHBUTTON      "&Crear...",M_USER_CREATE,65,126,55,14
!     PUSHBUTTON      "&Pertenencia...",M_MEMBERSHIP,124,126,55,14
!     PUSHBUTTON      "P&ropiedades...",M_PROPERTIES,183,126,55,14
!     PUSHBUTTON      "...",IDC_ADVANCED,229,4,9,13
! END
! 
! IDD_TAB_GROUPS DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "Patrn:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
!     LTEXT           "Consultando; espere por favor...",IDC_GROUPS_TITLE,4,6,
!                     142,8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,103
!     PUSHBUTTON      "&Crear...",M_GROUP_CREATE,65,126,55,14
!     PUSHBUTTON      "&Miembros...",M_MEMBERSHIP,124,126,55,14
!     PUSHBUTTON      "P&ropiedades...",M_PROPERTIES,183,126,55,14
! END
! 
! IDD_ACTIONS DIALOGEX 0, 0, 236, 58
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! EXSTYLE WS_EX_TOOLWINDOW
! CAPTION "Operaciones en curso - AFS Account Manager"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Consultando; espere por favor...",IDC_ACTION_DESC,2,2,
!                     232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x3,2,14,232,43
! END
! 
! IDD_HELP_ABOUT DIALOG DISCARDABLE  0, 0, 226, 141
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "Acerca de AFS Account Manager"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     ICON            IDI_MAIN,IDC_HELPABOUT_ICON,4,8,21,20
!     LTEXT           "AFS Account Manager versin 3.5",IDC_STATIC,33,8,189,8
!     LTEXT           "Copyright ｩ IBM Corporation 1989, 1999",IDC_STATIC,33,
!                     20,189,8
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,4,37,218,1
!     CTEXT           "",IDC_HELPABOUT_DESC,4,48,218,56
!     PUSHBUTTON      "&Cerrar",IDOK,87,123,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,4,114,218,1
! END
! 
! IDD_HELP_ERROR DIALOG DISCARDABLE  0, 0, 223, 141
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "Buscar cdigo de error"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Nmero de &error:",IDC_STATIC,4,41,55,8
!     EDITTEXT        IDC_ERROR_NUMBER,61,39,78,14,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Convertir",IDC_ERROR_TRANSLATE,152,39,67,14
!     PUSHBUTTON      "Ce&rrar",IDCANCEL,85,123,48,14
!     LTEXT           "(texto definido durante la ejecucin)",IDC_ERROR_DESC,4,
!                     71,215,42
!     LTEXT           "Para averiguar qu es lo que significa un cdigo de error, escriba el cdigo a continuacin y pulse en el botn ""Convertir"".",
!                     IDC_STATIC,4,4,215,25
!     CONTROL         "",IDC_ADVANCED_BOX,"Static",SS_ETCHEDHORZ,5,60,211,1
! END
! 
! IDD_HELP_FIND DIALOG DISCARDABLE  0, 0, 231, 74
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "Buscar mandato"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     COMBOBOX        IDC_FIND_COMMAND,4,38,150,170,CBS_DROPDOWN | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     DEFPUSHBUTTON   "Mostrar a&yuda",IDOK,160,39,67,14
!     PUSHBUTTON      "&Cancelar",IDCANCEL,160,55,67,14
!     LTEXT           "Para averiguar el modo de utilizar AFS Account Manager para efectuar una tarea, seleccione a continuacin una lnea de mandatos y pulse en el botn Mostrar ayuda.",
!                     IDC_STATIC,4,4,223,25
! END
! 
! IDD_COLUMNS DIALOG DISCARDABLE  0, 0, 286, 148
! STYLE WS_POPUP | WS_CAPTION
! CAPTION "Columnas"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Seleccione las columnas para visualizar al efectuar el listado:",
!                     IDC_STATIC,5,5,126,17
!     COMBOBOX        IDC_COLUMNS,134,8,147,104,CBS_DROPDOWNLIST | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Columnas disponibles:",IDC_STATIC,12,40,100,8
!     LISTBOX         IDC_COL_AVAIL,12,49,100,71,LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Columnas para &visualizar:",IDC_STATIC,173,41,100,8
!     LISTBOX         IDC_COL_SHOWN,173,50,100,71,LBS_NOINTEGRALHEIGHT | 
!                     WS_VSCROLL | WS_TABSTOP
!     PUSHBUTTON      "A&adir >>",IDC_COL_INSERT,119,68,46,14
!     PUSHBUTTON      "<< &Eliminar",IDC_COL_DELETE,119,88,46,14
!     PUSHBUTTON      "Mover hacia &arriba",IDC_COL_UP,141,122,64,14
!     PUSHBUTTON      "Mover hacia a&bajo",IDC_COL_DOWN,207,122,65,14
!     GROUPBOX        "Listar columnas",IDC_STATIC,5,25,276,118
! END
! 
! IDD_USER_ADVANCED DIALOGEX 0, 0, 230, 201
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Avanzado"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Clave actual:",IDC_STATIC,5,5,44,13
!     LTEXT           "Consultando; espere por favor...",IDC_USER_KEY,52,5,173,
!                     20,0,WS_EX_STATICEDGE
!     CONTROL         "&No es una cuenta del sistema (no hay cifrado)",
!                     IDC_USER_NOSEAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     35,160,10
!     CONTROL         "El usuario tiene privilegios &administrativos",
!                     IDC_USER_ADMIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     52,160,10
!     CONTROL         "O&torgar billetes; duracin:",IDC_USER_TGS,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,5,69,99,10
!     CONTROL         "",IDC_USER_LIFETIME,"Elapsed",WS_BORDER | WS_TABSTOP,
!                     110,68,66,12
!     CONTROL         "C&uota de creacin de grupo:",IDC_USER_GROUP_HASQUOTA,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,86,102,10
!     EDITTEXT        IDC_USER_GROUP_QUOTA,111,85,27,13,ES_AUTOHSCROLL
!     LTEXT           "Ver e&stado de cuenta:",IDC_STATIC,12,140,91,8
!     COMBOBOX        IDC_USER_PERM_STATUS,108,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar grupos de pro&piedad:",IDC_STATIC,12,156,88,8
!     COMBOBOX        IDC_USER_PERM_OWNED,108,154,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar pertenencia a &grupos:",IDC_STATIC,12,172,91,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,108,170,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Otros permisos de cuenta",IDC_STATIC,5,103,220,93
!     LTEXT           "Estos valores especifican los usuarios que pueden ver esta cuenta.",
!                     IDC_STATIC,11,116,204,19
! END
! 
! IDD_USER_GENERAL DIALOG DISCARDABLE  0, 0, 303, 197
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "General"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "El &usuario puede cambiar la contrasea",IDC_USER_CPW,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,47,146,10
!     PUSHBUTTON      "Cambiar con&trasea",IDC_USER_CPW_NOW,215,45,73,14
!     CONTROL         "El usuario puede &volver a utilizar contraseas antiguas",
!                     IDC_USER_RPW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,62,
!                     193,10
!     CONTROL         "La c&ontrasea caduca despu駸 de",IDC_USER_PWEXPIRES,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,78,126,10
!     LTEXT           "das",IDC_STATIC,206,79,16,8
!     EDITTEXT        IDC_USER_PWEXPIRATION,152,77,37,13,ES_AUTOHSCROLL
!     CONTROL         "La cuenta &caduca el:",IDC_USER_EXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,97,77,10
!     CONTROL         "",IDC_USER_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,91,
!                     96,61,12
!     LTEXT           "&a las",IDC_USER_EXPIRE_AT,157,98,15,8
!     CONTROL         "",IDC_USER_EXPIRE_TIME,"Time",WS_BORDER | WS_TABSTOP,
!                     176,96,53,12
!     CONTROL         "B&loquear la cuenta despu駸 de",IDC_USER_FAILLOCK,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,140,111,10
!     LTEXT           "inicios de sesin consecutivos anmalos",IDC_STATIC,164,
!                     142,129,8
!     EDITTEXT        IDC_USER_FAILLOCK_COUNT,124,139,32,13,ES_AUTOHSCROLL
!     CONTROL         "&Bloquear la cuenta indefinidamente (hasta que la desbloquee el administrador)",
!                     IDC_USER_FAILLOCK_INFINITE,"Button",BS_AUTORADIOBUTTON,
!                     26,156,260,10
!     CONTROL         "Bloquear cuenta d&urante",IDC_USER_FAILLOCK_FINITE,
!                     "Button",BS_AUTORADIOBUTTON,25,172,94,10
!     CONTROL         "",IDC_USER_FAILLOCK_DURATION,"Elapsed",WS_BORDER | 
!                     WS_TABSTOP,125,171,56,12
!     PUSHBUTTON      "&Desbloquear",IDC_USER_UNLOCK,236,170,50,14
!     GROUPBOX        "Intentos de inicio de sesin anmalos",IDC_STATIC,5,125,
!                     293,67
!     ICON            IDI_USER,IDC_STATIC,5,5,20,20
!     LTEXT           "Usuario %1",IDC_USER_NAME,110,13,188,8
!     GROUPBOX        "Cuenta",IDC_STATIC,5,32,293,85
! END
! 
! IDD_GROUP_GENERAL DIALOG DISCARDABLE  0, 0, 248, 197
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "General"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     ICON            IDI_GROUP,IDC_STATIC,5,5,21,20
!     LTEXT           "Grupo %1",IDC_GROUP_NAME,55,13,188,8
!     LTEXT           "Ver e&stado de cuenta:",IDC_STATIC,12,108,85,8
!     COMBOBOX        IDC_GROUP_PERM_STATUS,114,106,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Ver &grupos de propietario:",IDC_STATIC,12,124,86,8
!     COMBOBOX        IDC_GROUP_PERM_GROUPS,114,122,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar &miembros de grupo:",IDC_STATIC,12,140,89,8
!     COMBOBOX        IDC_GROUP_PERM_MEMBERS,114,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Aadir miembros:",IDC_STATIC,12,156,73,8
!     COMBOBOX        IDC_GROUP_PERM_ADD,114,154,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Eliminar miembros:",IDC_STATIC,12,172,67,8
!     COMBOBOX        IDC_GROUP_PERM_REMOVE,114,170,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Otros permisos de cuenta",IDC_STATIC,5,78,238,114
!     LTEXT           "Estos valores especifican los usuarios que pueden ver este grupo.",
!                     IDC_STATIC,11,92,220,8
!     LTEXT           "Propietario:",IDC_STATIC,5,31,40,8
!     LTEXT           "%1",IDC_GROUP_OWNER,51,31,112,8
!     PUSHBUTTON      "Cambiar &propietario...",IDC_GROUP_CHANGEOWNER,166,29,
!                     77,12
!     LTEXT           "Creador:",IDC_STATIC,5,46,27,8
!     LTEXT           "%1",IDC_GROUP_CREATOR,51,46,113,8
! END
! 
! IDD_USER_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Grupos"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
!     LTEXT           "Estos valores le permiten cambiar la lista de grupos a los que pertenece este usuario, as como la lista de grupos que posee este usuario.",
!                     IDC_STATIC,5,5,220,25
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Aadir...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "&Mostrar los grupos a los que pertenece este usuario",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "M&ostrar los grupos que posee este usuario",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Consultando; espere por favor...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_GROUP_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Pertenencia"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Pertenencia a grupo",IDC_STATIC,5,31,220,160
!     LTEXT           "Estos valores le permiten elegir los miembros de este grupo, as como elegir los grupos que debe poseer este grupo.",
!                     IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Aadir...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "&Mostrar los miembros de este grupo",
!                     IDC_GROUP_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "M&ostrar los grupos que posee este grupo",
!                     IDC_GROUP_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Consultando; espere por favor...)",IDC_USERS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_BROWSE DIALOG DISCARDABLE  0, 0, 316, 151
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(Ttulo seleccionado en el momento de la ejecucin)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "(en ejecucin)",IDC_BROWSE_TYPE,7,115,78,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,87,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "&Seleccionar",IDC_BROWSE_SELECT,259,112,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,259,130,50,14
!     CONTROL         "(texto especificado durante la ejecucin)",
!                     IDC_BROWSE_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
!                     86,134,146,10
!     RTEXT           "Buscar en &c駘ula:",IDC_STATIC,7,8,69,10,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,87,6,140,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "Patrn:",IDC_GROUPS_PATTERN_PROMPT,231,8,29,8
!     EDITTEXT        IDC_BROWSE_PATTERN,268,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,302,84
! END
! 
! IDD_USER_PASSWORD DIALOG DISCARDABLE  0, 0, 316, 146
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Cambiar contrasea de cuenta"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Seleccionar &autom疸icamente un nmero de versin para la nueva contrasea",
!                     IDC_CPW_VERSION_AUTO,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,42,36,261,10
!     CONTROL         "&Utilizar versin clave:",IDC_CPW_VERSION_MANUAL,"Button",
!                     BS_AUTORADIOBUTTON,42,52,85,10
!     EDITTEXT        IDC_CPW_VERSION,138,51,43,14,ES_AUTOHSCROLL
!     CONTROL         "Cifrar esta serie:",IDC_CPW_BYSTRING,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,42,78,73,10
!     CONTROL         "Utilizar esta clave:",IDC_CPW_BYDATA,"Button",
!                     BS_AUTORADIOBUTTON,42,95,85,10
!     EDITTEXT        IDC_CPW_STRING,154,76,155,14,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_CPW_DATA,137,94,103,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "A&leatorio",IDC_CPW_RANDOM,261,94,48,14
!     DEFPUSHBUTTON   "Aceptar",IDOK,116,125,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,170,125,50,14
!     PUSHBUTTON      "Ayuda",9,259,125,50,14
!     LTEXT           "Nueva contrasea para el usuario %1",IDC_CPW_TITLE,78,
!                     14,231,8
!     ICON            IDI_USER,-1,7,6,21,20
!     LTEXT           "Versin:",-1,7,37,26,8
!     LTEXT           "Valor:",-1,7,78,21,8
! END
! 
! IDD_GROUP_RENAME DIALOG DISCARDABLE  0, 0, 282, 151
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Cambiar nombre de grupo"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Nombre de grupo nuevo:",IDC_STATIC,35,103,80,8
!     EDITTEXT        IDC_RENAME_NEWNAME,117,101,104,14,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "Aceptar",IDOK,109,130,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,163,130,50,14
!     PUSHBUTTON      "Ayuda",9,225,130,50,14
!     LTEXT           "Propietario actual:",IDC_STATIC,35,65,69,8
!     PUSHBUTTON      "&Cambiar propietario...",IDC_RENAME_CHOWN,204,63,71,14
!     LTEXT           "Nombre de grupo actual:",IDC_STATIC,35,83,80,8
!     ICON            IDI_GROUP,IDC_STATIC,7,6,21,20
!     LTEXT           "Cambiar nombre de grupo %1",IDC_RENAME_TITLE,35,14,222,
!                     8
!     LTEXT           "Nota: A menos que un nombre de grupo carezca de prefijo, el nombre debera reflejar de modo adecuado el propietario actual del grupo (por ejemplo, ""owner:groupname"").",
!                     IDC_STATIC,35,34,231,28
!     LTEXT           "(consultando)",IDC_RENAME_OWNER,117,65,82,8
!     LTEXT           "(consultando)",IDC_RENAME_OLDNAME,117,83,104,8
! END
! 
! IDD_BROWSE_COMBO DIALOG DISCARDABLE  0, 0, 314, 154
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(Ttulo seleccionado en el momento de la ejecucin)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "(en ejecucin)",IDC_BROWSE_TYPE,7,115,83,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,94,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "&Seleccionar",IDC_BROWSE_SELECT,257,113,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,257,133,50,14
!     RTEXT           "Mostrar:",IDC_STATIC,40,134,49,8
!     COMBOBOX        IDC_BROWSE_COMBO,94,132,140,68,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     RTEXT           "Buscar en &c駘ula:",IDC_STATIC,7,8,78,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,90,6,140,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "Patrn:",IDC_GROUPS_PATTERN_PROMPT,233,8,28,8
!     EDITTEXT        IDC_BROWSE_PATTERN,266,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,300,84
! END
! 
! IDD_BROWSE_BOTH DIALOG DISCARDABLE  0, 0, 308, 170
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(Ttulo seleccionado en el momento de la ejecucin)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "(en ejecucin)",IDC_BROWSE_TYPE,7,115,77,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,88,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "&Seleccionar",IDC_BROWSE_SELECT,251,113,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,251,132,50,14
!     RTEXT           "Mostrar:",IDC_STATIC,32,134,52,8
!     COMBOBOX        IDC_BROWSE_COMBO,88,132,140,68,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "(texto especificado durante la ejecucin)",
!                     IDC_BROWSE_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
!                     88,151,159,10
!     RTEXT           "Buscar en &c駘ula:",IDC_STATIC,7,8,68,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,84,6,140,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "Patrn:",IDC_GROUPS_PATTERN_PROMPT,227,8,28,8
!     EDITTEXT        IDC_BROWSE_PATTERN,260,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,294,84
! END
! 
! IDD_NEWUSER_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Grupos"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
!     LTEXT           "Estos valores le permiten cambiar la lista inicial de grupos a los que pertenecer este usuario, as como los grupos que poseer este usuario.",
!                     IDC_STATIC,5,5,220,26
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Aadir...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "&Mostrar los grupos a los que pertenecer este usuario",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "M&ostrar los grupos que poseer este usuario",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Consultando; espere por favor...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_NEWUSER DIALOG DISCARDABLE  0, 0, 277, 170
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Crear usuario"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Nombre:",IDC_STATIC,7,37,49,8
!     EDITTEXT        IDC_NEWUSER_NAME,64,35,127,14,ES_AUTOHSCROLL
!     LTEXT           "C&ontrasea:",IDC_STATIC,7,57,49,8
!     EDITTEXT        IDC_NEWUSER_PW1,64,55,90,14,ES_PASSWORD | ES_AUTOHSCROLL
!     LTEXT           "(&volver a entrar:)",IDC_STATIC,7,77,53,8
!     EDITTEXT        IDC_NEWUSER_PW2,64,75,90,14,ES_PASSWORD | ES_AUTOHSCROLL
!     CONTROL         "Utilizar a&utom疸icamente el siguiente ID de usuario disponible",
!                     IDC_NEWUSER_ID_AUTO,"Button",BS_AUTORADIOBUTTON,64,97,
!                     204,10
!     CONTROL         "U&tilizar un ID de usuario especfico:",
!                     IDC_NEWUSER_ID_MANUAL,"Button",BS_AUTORADIOBUTTON,64,113,
!                     124,10
!     EDITTEXT        IDC_NEWUSER_ID,196,111,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "&Grupos...",IDC_ADVANCED,7,149,54,14
!     DEFPUSHBUTTON   "Aceptar",IDOK,133,149,43,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,180,149,43,14
!     PUSHBUTTON      "Ayuda",9,227,149,43,14
!     ICON            IDI_USER,IDC_STATIC,7,6,21,20
!     LTEXT           "Usuario nuevo en c駘ula %1",IDC_NEWUSER_TITLE,85,14,185,
!                     8
!     LTEXT           "ID de usuario:",IDC_STATIC,7,97,49,8
! END
! 
! IDD_NEWGROUP_GENERAL DIALOG DISCARDABLE  0, 0, 252, 197
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "General"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     ICON            IDI_GROUP,IDC_STATIC,5,5,21,20
!     LTEXT           "Grupo nuevo en c駘ula %1",IDC_GROUP_NAME,59,13,188,8
!     LTEXT           "Ver e&stado de cuenta:",IDC_STATIC,12,108,106,8
!     COMBOBOX        IDC_GROUP_PERM_STATUS,125,106,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Ver &grupos de propietario:",IDC_STATIC,12,124,107,8
!     COMBOBOX        IDC_GROUP_PERM_GROUPS,125,122,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar &miembros de grupo:",IDC_STATIC,12,140,106,8
!     COMBOBOX        IDC_GROUP_PERM_MEMBERS,125,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Aadir miembros:",IDC_STATIC,12,156,110,8
!     COMBOBOX        IDC_GROUP_PERM_ADD,125,154,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Eliminar miembros:",IDC_STATIC,12,172,67,8
!     COMBOBOX        IDC_GROUP_PERM_REMOVE,125,170,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Otros permisos de cuenta",IDC_STATIC,5,69,242,123
!     LTEXT           "Estos valores especifican los usuarios que pueden ver informacin sobre este grupo.",
!                     IDC_STATIC,11,83,223,17
!     LTEXT           "Propietario:",IDC_STATIC,5,35,46,8
!     LTEXT           "%1",IDC_GROUP_OWNER,56,35,113,8
!     PUSHBUTTON      "Cambiar &propietario...",IDC_GROUP_CHANGEOWNER,173,33,
!                     70,12
! END
! 
! IDD_NEWGROUP_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Pertenencia"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Pertenencia a grupo",IDC_STATIC,5,31,220,160
!     LTEXT           "Estos valores le permiten elegir los miembros iniciales de este grupo, as como elegir los grupos que debe poseer este grupo.",
!                     IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Aadir...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "&Mostrar los miembros iniciales de este grupo",
!                     IDC_GROUP_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "M&ostrar los grupos que posee este grupo",
!                     IDC_GROUP_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Consultando; espere por favor...)",IDC_USERS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_NEWGROUP DIALOG DISCARDABLE  0, 0, 255, 135
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Crear grupo"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Nombre:",-1,7,37,30,8
!     EDITTEXT        IDC_NEWGROUP_NAME,45,35,127,14,ES_AUTOHSCROLL
!     CONTROL         "Utilizar a&utom疸icamente el siguiente ID de grupo disponible",
!                     IDC_NEWGROUP_ID_AUTO,"Button",BS_AUTORADIOBUTTON,49,60,
!                     200,10
!     CONTROL         "U&tilizar un ID de grupo especfico:",
!                     IDC_NEWGROUP_ID_MANUAL,"Button",BS_AUTORADIOBUTTON,49,75,
!                     122,10
!     EDITTEXT        IDC_NEWGROUP_ID,173,74,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "&Miembros...",IDC_ADVANCED,7,114,54,14
!     DEFPUSHBUTTON   "Aceptar",IDOK,111,114,43,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,158,114,43,14
!     PUSHBUTTON      "Ayuda",9,205,114,43,14
!     ICON            IDI_USER,-1,7,6,21,20
!     LTEXT           "Grupo nuevo en c駘ula %1",IDC_NEWGROUP_TITLE,63,14,185,
!                     8
!     LTEXT           "ID de grupo:",-1,7,60,41,8
! END
! 
! IDD_USER_DELETE DIALOG DISCARDABLE  0, 0, 281, 114
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Suprimir usuario"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "Aceptar",IDOK,116,93,50,14
!     DEFPUSHBUTTON   "Cancelar",IDCANCEL,170,93,50,14
!     PUSHBUTTON      "Ayuda",9,224,93,50,14
!     LTEXT           "｡Precaucin!\n\nEsta operacin suprimir permanentemente la cuenta para el usuario %1.",
!                     IDC_DELETE_TITLE,36,14,238,32
!     ICON            32515,-1,7,6,20,20
!     CONTROL         "Suprimir entrada de base de datos de &KAS para esta cuenta",
!                     IDC_DELETE_KAS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,57,
!                     53,210,10
!     CONTROL         "Suprimir entrada de base de datos de &PTS para esta cuenta",
!                     IDC_DELETE_PTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,57,
!                     69,203,10
! END
! 
! IDD_GROUP_DELETE DIALOG DISCARDABLE  0, 0, 281, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Suprimir grupo"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "Aceptar",IDOK,116,61,50,14
!     DEFPUSHBUTTON   "Cancelar",IDCANCEL,170,61,50,14
!     PUSHBUTTON      "Ayuda",9,224,61,50,14
!     LTEXT           "｡Precaucin!\n\nEsta operacin suprimir permanentemente el grupo %1.",
!                     IDC_DELETE_TITLE,36,14,238,32
!     ICON            32515,-1,7,6,21,20
! END
! 
! IDD_CELL_GENERAL DIALOG DISCARDABLE  0, 0, 230, 134
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "General"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Identificador de &usuario m痊imo:",IDC_STATIC,11,87,101,
!                     8
!     EDITTEXT        IDC_CELL_USERMAX,116,85,40,14,ES_AUTOHSCROLL
!     LTEXT           "Identificador de &grupo m痊imo:",IDC_STATIC,14,105,98,8
!     EDITTEXT        IDC_CELL_GROUPMAX,116,103,40,14,ES_AUTOHSCROLL
!     GROUPBOX        "Identificadores de usuario y grupo",IDC_STATIC,5,31,220,
!                     97
!     LTEXT           "Estos valores reflejan los identificadores de grupo y de usuario m疽 altos que se hayan utilizado nunca; sin embargo, no deben disminuirse a menos que se est seguro de que los valores nuevos no entrar疣 en conflicto con las cuentas existentes. ",
!                     IDC_STATIC,11,43,204,32
!     ICON            IDI_CELL,IDC_STATIC,5,5,20,20
!     LTEXT           "C駘ula %1",IDC_CELL_NAME,37,13,188,8
! END
! 
! IDD_NEWUSER_GENERAL DIALOG DISCARDABLE  0, 0, 303, 197
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "General"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "El &usuario puede cambiar la contrasea",IDC_USER_CPW,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,47,141,10
!     PUSHBUTTON      "Cambiar con&trasea",IDC_USER_CPW_NOW,211,45,73,14
!     CONTROL         "El usuario puede &volver a utilizar contraseas antiguas",
!                     IDC_USER_RPW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,62,
!                     187,10
!     CONTROL         "La contrasea &caduca despu駸 de",IDC_USER_PWEXPIRES,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,78,129,10
!     LTEXT           "das",IDC_STATIC,199,79,16,8
!     EDITTEXT        IDC_USER_PWEXPIRATION,157,77,37,13,ES_AUTOHSCROLL
!     CONTROL         "La cue&nta caduca el:",IDC_USER_EXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,97,77,10
!     CONTROL         "",IDC_USER_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,91,
!                     96,61,12
!     LTEXT           "&a las",IDC_USER_EXPIRE_AT,155,98,16,8
!     CONTROL         "",IDC_USER_EXPIRE_TIME,"Time",WS_BORDER | WS_TABSTOP,
!                     174,96,53,12
!     CONTROL         "&Bloquear la cuenta despu駸 de",IDC_USER_FAILLOCK,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,140,114,10
!     LTEXT           "inicios de sesin consecutivos anmalos",IDC_STATIC,165,
!                     141,130,8
!     EDITTEXT        IDC_USER_FAILLOCK_COUNT,126,139,32,13,ES_AUTOHSCROLL
!     CONTROL         "B&loquear la cuenta indefinidamente (hasta que la desbloquee el administrador)",
!                     IDC_USER_FAILLOCK_INFINITE,"Button",BS_AUTORADIOBUTTON,
!                     25,156,258,10
!     CONTROL         "Bloquear cuenta d&urante",IDC_USER_FAILLOCK_FINITE,
!                     "Button",BS_AUTORADIOBUTTON,25,172,97,10
!     CONTROL         "",IDC_USER_FAILLOCK_DURATION,"Elapsed",WS_BORDER | 
!                     WS_TABSTOP,126,171,56,12
!     PUSHBUTTON      "&Desbloquear",IDC_USER_UNLOCK,231,170,50,14
!     GROUPBOX        "Intentos de inicio de sesin anmalos",IDC_STATIC,5,125,
!                     293,67
!     ICON            IDI_USER,IDC_STATIC,5,5,21,20
!     LTEXT           "Usuario nuevo en c駘ula %1",IDC_USER_NAME,110,13,188,8
!     GROUPBOX        "Cuenta",IDC_STATIC,5,32,293,85
! END
! 
! IDD_NEWUSER_ADVANCED DIALOG DISCARDABLE  0, 0, 284, 197
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Avanzado"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Crear una entrada de base de datos de &KAS para esta cuenta (recomendado)",
!                     IDC_USER_CREATE_KAS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,5,6,260,11
!     CONTROL         "Crear una entrada de base de datos de &PTS para esta cuenta (recomendado)",
!                     IDC_USER_CREATE_PTS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,5,23,260,10
!     CONTROL         "&Esta es una cuenta de sistema (no hay cifrado)",
!                     IDC_USER_NOSEAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     40,245,10
!     CONTROL         "El usuario tiene privilegios &administrativos",
!                     IDC_USER_ADMIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     57,234,10
!     CONTROL         "O&torgar billetes; duracin:",IDC_USER_TGS,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,5,73,114,10
!     CONTROL         "",IDC_USER_LIFETIME,"Elapsed",WS_BORDER | WS_TABSTOP,
!                     122,73,66,12
!     CONTROL         "C&uota de creacin de grupos:",IDC_USER_GROUP_HASQUOTA,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,91,113,10
!     EDITTEXT        IDC_USER_GROUP_QUOTA,122,90,27,13,ES_AUTOHSCROLL
!     LTEXT           "Ver e&stado de cuenta:",-1,12,140,99,8
!     COMBOBOX        IDC_USER_PERM_STATUS,120,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Listar grupos de propiedad:",-1,12,156,102,8
!     COMBOBOX        IDC_USER_PERM_OWNED,120,154,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar pertenencia a &grupo:",-1,12,172,100,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,120,170,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Otros permisos de cuenta",-1,5,110,274,82
!     LTEXT           "Estos valores especifican los usuarios que pueden ver esta cuenta.",
!                     -1,11,124,259,8
! END
! 
! IDD_TAB_MACHINES DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "Patrn:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
!     LTEXT           "Consultando; espere por favor...",IDC_MACHINES_TITLE,4,
!                     6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,103
!     PUSHBUTTON      "&Crear...",M_MACHINE_CREATE,65,126,55,14
!     PUSHBUTTON      "&Pertenencia...",M_MEMBERSHIP,124,126,55,14
!     PUSHBUTTON      "P&ropiedades...",M_PROPERTIES,183,126,55,14
! END
! 
! IDD_NEWMACHINE_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Grupos"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
!     LTEXT           "Estos valores le permiten seleccionar la lista inicial de grupos a los que pertenecer esta cuenta, as como los grupos que poseer.",
!                     IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Aadir...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "&Mostrar los grupos a los que pertenecer esta cuenta",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "M&ostrar los grupos que poseer esta cuenta",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Consultando; espere por favor...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_NEWMACHINE_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Avanzado"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Ver e&stado de cuenta:",IDC_STATIC,12,96,86,8
!     COMBOBOX        IDC_USER_PERM_STATUS,107,94,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar grupos de pro&piedad:",IDC_STATIC,12,112,90,8
!     COMBOBOX        IDC_USER_PERM_OWNED,107,110,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar pertenencia a &grupos:",IDC_STATIC,12,128,89,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,107,126,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Otros permisos de cuenta",IDC_STATIC,5,57,220,88
!     LTEXT           "Estos valores especifican los usuarios que pueden ver esta cuenta.",
!                     IDC_STATIC,11,72,204,16
!     ICON            IDI_SERVER,IDC_STATIC,5,5,20,20
!     LTEXT           "Cuenta de direccin IP nueva en la c駘ula %1",
!                     IDC_USER_NAME,37,13,188,8
! END
! 
! IDD_NEWMACHINE DIALOG DISCARDABLE  0, 0, 277, 127
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Crear cuenta de direccin IP"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Direccin IP:",-1,7,37,48,8
!     EDITTEXT        IDC_NEWUSER_NAME,59,35,127,14,ES_AUTOHSCROLL
!     CONTROL         "Utilizar a&utom疸icamente el siguiente ID de cuenta disponible",
!                     IDC_NEWUSER_ID_AUTO,"Button",BS_AUTORADIOBUTTON,59,60,
!                     205,10
!     CONTROL         "U&tilizar un ID de cuenta especfico:",
!                     IDC_NEWUSER_ID_MANUAL,"Button",BS_AUTORADIOBUTTON,59,76,
!                     127,10
!     EDITTEXT        IDC_NEWUSER_ID,189,75,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "&Grupos...",IDC_ADVANCED,7,106,54,14
!     DEFPUSHBUTTON   "Aceptar",IDOK,132,106,43,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,180,106,43,14
!     PUSHBUTTON      "Ayuda",9,227,106,43,14
!     ICON            IDI_SERVER,-1,7,6,21,20
!     LTEXT           "Cuenta de direccin IP nueva en la c駘ula %1",
!                     IDC_NEWUSER_TITLE,80,14,190,8
!     LTEXT           "ID de cuenta:",-1,7,60,44,8
! END
! 
! IDD_MACHINE_DELETE DIALOG DISCARDABLE  0, 0, 318, 84
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Suprimir cuenta de direccin IP"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "Aceptar",IDOK,153,63,50,14
!     DEFPUSHBUTTON   "Cancelar",IDCANCEL,207,63,50,14
!     PUSHBUTTON      "Ayuda",9,261,63,50,14
!     LTEXT           "｡Precaucin!\n\nEsta operacin suprimir permanentemente la cuenta de direccin IP %1.",
!                     IDC_DELETE_TITLE,36,14,275,37
!     ICON            32515,-1,7,6,21,20
! END
! 
! IDD_MACHINE_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 202
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Avanzado"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Ver e&stado de cuenta:",IDC_STATIC,12,101,88,8
!     COMBOBOX        IDC_USER_PERM_STATUS,107,98,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar grupos de pro&piedad:",IDC_STATIC,12,117,91,8
!     COMBOBOX        IDC_USER_PERM_OWNED,107,114,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar pertenencia a &grupos:",IDC_STATIC,12,133,91,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,107,130,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Otros permisos de cuenta",IDC_STATIC,5,57,220,94
!     LTEXT           "Estos valores especifican los usuarios que pueden ver esta cuenta.",
!                     IDC_STATIC,11,73,204,18
!     ICON            IDI_SERVER,IDC_STATIC,5,5,21,20
!     LTEXT           "Cuenta de direccin IP %1",IDC_USER_NAME,37,13,188,8
! END
! 
! IDD_MACHINE_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Grupos"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
!     LTEXT           "Estos valores le permiten cambiar la lista de grupos a los que pertenece esta cuenta, as como los grupos que posee esta cuenta.",
!                     IDC_STATIC,5,5,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Aadir...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "&Mostrar los grupos a los que pertenece esta cuenta",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     206,10
!     CONTROL         "M&ostrar los grupos que posee esta cuenta",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     206,10
!     LTEXT           "(Consultando; espere por favor...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_OPTIONS DIALOG DISCARDABLE  0, 0, 248, 162
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Opciones"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Utilizar expresiones normales de tipo &Unix (""^mar[ky]son\\..*$"")",
!                     IDC_REGEXP_UNIX,"Button",BS_AUTORADIOBUTTON,11,53,213,10
!     CONTROL         "Utilizar expresiones normales de tipo &Windows (""mar?son.*"")",
!                     IDC_REGEXP_WINDOWS,"Button",BS_AUTORADIOBUTTON,11,69,212,
!                     10
!     CONTROL         "Visualizar un aviso si se trabaja sin seales administrativas",
!                     IDC_WARN_BADCREDS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
!                     11,116,209,10
!     CONTROL         "&Actualizar autom疸icamente la informacin cada",
!                     IDC_REFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,134,
!                     162,10
!     LTEXT           "min.",IDC_STATIC,223,135,14,8
!     EDITTEXT        IDC_REFRESH_RATE,178,133,30,14,ES_AUTOHSCROLL
!     ICON            IDI_MAIN,IDC_STATIC,5,5,20,20
!     LTEXT           "Opciones de Afs Account Manager",IDC_STATIC,37,12,96,8
!     GROUPBOX        "Expresiones normales",IDC_STATIC,5,37,238,57
!     GROUPBOX        "General",IDC_STATIC,5,100,238,57
! END
! 
! IDD_SEARCH_USERS DIALOG DISCARDABLE  0, 0, 311, 130
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Seleccionar los usuarios a visualizar"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Mostrar entradas para &todas las cuentas de usuario",
!                     IDC_SEARCH_ALL,"Button",BS_AUTORADIOBUTTON,29,40,236,10
!     CONTROL         "&Mostrar slo las cuentas de usuario que caducan antes de",
!                     IDC_SEARCH_EXPIRE,"Button",BS_AUTORADIOBUTTON,29,55,202,
!                     10
!     CONTROL         "Mostrar slo las cuentas cuyas contraseas &caducan antes de",
!                     IDC_SEARCH_PWEXPIRE,"Button",BS_AUTORADIOBUTTON,29,70,
!                     213,10
!     CONTROL         "",IDC_SEARCH_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,
!                     232,54,61,12
!     CONTROL         "",IDC_SEARCH_PWEXPIRE_DATE,"Date",WS_BORDER | 
!                     WS_TABSTOP,244,69,61,12
!     DEFPUSHBUTTON   "Aceptar",IDOK,146,108,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,200,108,50,14
!     PUSHBUTTON      "Ayuda",9,254,108,50,14
!     LTEXT           "Estos controles le permiten especificar los usuarios que deben mostrarse en el tabulador Usuarios. Puede restringir an m疽 la lista de usuarios que se muestra escribiendo un nombre de cuenta parcial en el control Patrn en el tabulador Usuarios. ",
!                     IDC_STATIC,7,6,297,32
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_MAIN, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 323
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 216
!     END
! 
!     IDD_TAB_USERS, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_TAB_GROUPS, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_ACTIONS, DIALOG
!     BEGIN
!         LEFTMARGIN, 2
!         RIGHTMARGIN, 234
!         TOPMARGIN, 2
!         BOTTOMMARGIN, 56
!     END
! 
!     IDD_HELP_ABOUT, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 222
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 137
!     END
! 
!     IDD_HELP_ERROR, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 219
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 137
!     END
! 
!     IDD_HELP_FIND, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 227
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 70
!     END
! 
!     IDD_COLUMNS, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 281
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 143
!     END
! 
!     IDD_USER_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 196
!     END
! 
!     IDD_USER_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 298
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 192
!     END
! 
!     IDD_GROUP_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 243
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 192
!     END
! 
!     IDD_USER_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_GROUP_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_BROWSE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 309
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 144
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_USER_PASSWORD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 309
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 139
!     END
! 
!     IDD_GROUP_RENAME, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 275
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 144
!     END
! 
!     IDD_BROWSE_COMBO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 307
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 147
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_BROWSE_BOTH, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 301
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 163
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_NEWUSER_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWUSER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 270
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 163
!     END
! 
!     IDD_NEWGROUP_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 247
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 192
!     END
! 
!     IDD_NEWGROUP_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWGROUP, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 248
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 128
!     END
! 
!     IDD_USER_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 107
!     END
! 
!     IDD_GROUP_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_CELL_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 129
!     END
! 
!     IDD_NEWUSER_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 298
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 192
!     END
! 
!     IDD_NEWUSER_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 279
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 192
!     END
! 
!     IDD_TAB_MACHINES, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_NEWMACHINE_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWMACHINE_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWMACHINE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 270
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 120
!     END
! 
!     IDD_MACHINE_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 311
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_MACHINE_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 197
!     END
! 
!     IDD_MACHINE_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_OPTIONS, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 243
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 157
!     END
! 
!     IDD_SEARCH_USERS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 304
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 129
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include <windows.h>\r\n"
!     "#include <WINNT\\al_resource.h>\r\n"
!     "#ifndef APSTUDIO_INVOKED\r\n"
!     "#define AFS_VERINFO_FILE_DESCRIPTION ""AFS Account Manager""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "#endif // APSTUDIO_INVOKED\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! 32513                   ICON    DISCARDABLE     "..\\afsapplib\\resource\\error.ico"
! IDI_MAIN                ICON    DISCARDABLE     "resource\\afsusrmgr.ico"
! 32515                   ICON    DISCARDABLE     "..\\afsapplib\\resource\\warning.ico"
! IDI_USER                ICON    DISCARDABLE     "..\\afsapplib\\resource\\user.ico"
! IDI_GROUP               ICON    DISCARDABLE     "..\\afsapplib\\resource\\group.ico"
! IDI_CELL                ICON    DISCARDABLE     "..\\afsapplib\\resource\\cell.ico"
! IDI_SERVER              ICON    DISCARDABLE     "..\\afsapplib\\resource\\server.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Menu
! //
! 
! MENU_MAIN MENU DISCARDABLE 
! BEGIN
!     POPUP "&C駘ula"
!     BEGIN
!         MENUITEM "S&eleccionar...",             M_OPENCELL
!         MENUITEM "&Autentificacin...",         M_CREDENTIALS
!         MENUITEM SEPARATOR
!         MENUITEM "P&ropiedades de c駘ula...",   M_CELL_PROPERTIES
!         MENUITEM SEPARATOR
!         MENUITEM "&Salir",                      M_EXIT
!     END
!     POPUP "&Editar"
!     BEGIN
!         MENUITEM "Crear &usuario...",           M_USER_CREATE
!         MENUITEM "Crear &grupo...",             M_GROUP_CREATE
!         MENUITEM SEPARATOR
!         MENUITEM "Cambiar &nombre...",          M_RENAME
!         MENUITEM "&Suprimir...",                M_DELETE
!         MENUITEM SEPARATOR
!         MENUITEM "Seleccionar &todo\tCtrl+A",   M_SELECTALL
!         MENUITEM SEPARATOR
!         MENUITEM "A&ctualizar\tF5",             M_REFRESH
!         MENUITEM "&Pertenencia...\tCtrl+M",     M_MEMBERSHIP
!         MENUITEM "P&ropiedades\tAlt+Intro",     M_PROPERTIES
!     END
!     POPUP "&Ver"
!     BEGIN
!         POPUP "&Iconos"
!         BEGIN
!             MENUITEM "Iconos &grandes",             M_VIEW_LARGE, CHECKED
!             MENUITEM "Iconos &pequeos",            M_VIEW_SMALL, CHECKED
!             MENUITEM "&Detalles",                   M_VIEW_DETAILS, CHECKED
!             MENUITEM SEPARATOR
!             MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!             MENUITEM "&Todos los iconos",           M_VIEW_TWO, CHECKED
!             MENUITEM "Slo &estado",                M_VIEW_STATUS, CHECKED
!         END
!         MENUITEM SEPARATOR
!         MENUITEM "O&peraciones en curso",       M_ACTIONS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Columnas...",                M_COLUMNS
!         MENUITEM "&Opciones...",                M_OPTIONS
!         MENUITEM SEPARATOR
!         MENUITEM "Ac&tualizar todo",            M_REFRESHALL
!     END
!     POPUP "A&yuda"
!     BEGIN
!         MENUITEM "&Contenido",                  M_CONTENTS
!         MENUITEM "Buscar &mandato...",          M_FIND
!         MENUITEM "Buscar cdigo de &error...",  M_LOOKUP
!         MENUITEM SEPARATOR
!         MENUITEM "&Acerca de AFS Account Manager...", M_ABOUT
!     END
! END
! 
! MENU_USER_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "&Ver"
!     BEGIN
!         MENUITEM "Iconos &grandes",             M_VIEW_LARGE, CHECKED
!         MENUITEM "Iconos &pequeos",            M_VIEW_SMALL, CHECKED
!         MENUITEM "&Detalles",                   M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!         MENUITEM "&Todos los iconos",           M_VIEW_TWO, CHECKED
!         MENUITEM "Slo &estado",                M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "&Crear usuario...",           M_USER_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "Ac&tualizar todo",            M_REFRESHALL
! END
! 
! MENU_GROUP_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "&Ver"
!     BEGIN
!         MENUITEM "Iconos &grandes",             M_VIEW_LARGE, CHECKED
!         MENUITEM "Iconos &pequeos",            M_VIEW_SMALL, CHECKED
!         MENUITEM "&Detalles",                   M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!         MENUITEM "&Todos los iconos",           M_VIEW_TWO, CHECKED
!         MENUITEM "Slo &estado",                M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "&Crear grupo...",             M_GROUP_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "Ac&tualizar todo",            M_REFRESHALL
! END
! 
! MENU_USER MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Grupos...",                  M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "&Cambiar contrasea...",      M_CPW
!     MENUITEM "&Desbloquear",                M_UNLOCK
!     MENUITEM "&Suprimir...",                M_DELETE
!     MENUITEM "Ac&tualizar",                 M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "P&ropiedades...",             M_PROPERTIES
! END
! 
! MENU_GROUP MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Miembros de grupo...",       M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "Cambia&r nombre...",          M_RENAME
!     MENUITEM "&Suprimir...",                M_DELETE
!     MENUITEM "Ac&tualizar",                 M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "P&ropiedades...",             M_PROPERTIES
! END
! 
! MENU_COLUMNS MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Columnas...",                M_COLUMNS
! END
! 
! MENU_MACHINE_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "&Ver"
!     BEGIN
!         MENUITEM "Iconos &grandes",             M_VIEW_LARGE, CHECKED
!         MENUITEM "Iconos &pequeos",            M_VIEW_SMALL, CHECKED
!         MENUITEM "&Detalles",                   M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!         MENUITEM "&Todos los iconos",           M_VIEW_TWO, CHECKED
!         MENUITEM "Slo &estado",                M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "&Crear cuenta...",            M_MACHINE_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "Ac&tualizar todo",            M_REFRESHALL
! END
! 
! MENU_MACHINE MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Grupos...",                  M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "&Suprimir...",                M_DELETE
!     MENUITEM "Ac&tualizar",                 M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "P&ropiedades...",             M_PROPERTIES
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Accelerator
! //
! 
! ACCEL_MAIN ACCELERATORS DISCARDABLE 
! BEGIN
!     "A",            M_SELECTALL,            VIRTKEY, CONTROL, NOINVERT
!     "M",            M_MEMBERSHIP,           VIRTKEY, CONTROL, NOINVERT
!     VK_APPS,        M_KEY_MENU,             VIRTKEY, NOINVERT
!     VK_ESCAPE,      M_KEY_ESC,              VIRTKEY, NOINVERT
!     VK_F10,         M_KEY_MENU,             VIRTKEY, SHIFT, NOINVERT
!     VK_F5,          M_REFRESH,              VIRTKEY, NOINVERT
!     VK_RETURN,      M_KEY_RETURN,           VIRTKEY, NOINVERT
!     VK_RETURN,      M_KEY_PROPERTIES,       VIRTKEY, ALT, NOINVERT
!     VK_TAB,         M_KEY_TAB,              VIRTKEY, NOINVERT
!     VK_TAB,         M_KEY_CTRLTAB,          VIRTKEY, CONTROL, NOINVERT
!     VK_TAB,         M_KEY_BACKTAB,          VIRTKEY, SHIFT, NOINVERT
!     VK_TAB,         M_KEY_CTRLBACKTAB,      VIRTKEY, SHIFT, CONTROL, 
!                                                     NOINVERT
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_APP_TITLE           "AFS Account Manager"
!     IDS_USRCOL_NAME         "Nombre de usuario"
!     IDS_GRPCOL_NAME         "Nombre de grupo"
!     IDS_BADCREDS_DESC       "A menos que inicie la sesin como administrador, es posible que no disponga de privilegios suficientes para administrar satisfactoriamente la c駘ula %1."
!     IDS_TAB_USERS           "Usuarios"
!     IDS_TAB_GROUPS          "Grupos"
!     IDS_CELL_NONE           "(no se ha seleccionado ninguna c駘ula)"
!     IDS_CRED_NONE           "(no hay seales en esta c駘ula)"
!     IDS_CRED_EXP            "%1 (han caducado las seales %2)"
!     IDS_CRED_OK             "%1 (caducar疣 las seales %2)"
!     IDS_USERS_ALL           "Todos los usuarios de la c駘ula %1:"
!     IDS_USERS_PATTERN       "Usuarios seleccionados de la c駘ula %1:"
!     IDS_GROUPS_ALL          "Todos los grupos de la c駘ula %1:"
!     IDS_GROUPS_PATTERN      "Grupos seleccionados de la c駘ula %1:"
!     IDS_QUERYING_LONG       "Consultando; espere por favor..."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ACTION_DESC_NONE    "No hay operaciones en curso."
!     IDS_ACTION_DESC_ONE     "La operacin siguiente est actualmente en curso:"
!     IDS_ACTION_DESC_MULT    "Las operaciones siguientes est疣 actualmente en curso:"
!     IDS_ACTCOL_OPERATION    "Operacin"
!     IDS_ACTCOL_ELAPSED      "Tiempo transcurrido"
!     IDS_ACTION_REFRESH_CELL "Actualizacin de informacin para la c駘ula %1"
!     IDS_ACTION_REFRESH_SERVER "Actualizacin de informacin para servidor %1"
!     IDS_ACTION_SCOUT_CELL   "Comprobando si hay problemas en la c駘ula %1"
!     IDS_ACTION_SCOUT_SERVER "Comprobando si hay problemas en el servidor %1"
!     IDS_FIND_NOTHING_TITLE  "No hay ningn mandato seleccionado"
!     IDS_FIND_NOTHING_DESC   "Para averiguar el modo de efectuar una operacin, seleccione en primer lugar una lnea de mandatos de la lista o escriba una palabra clave."
!     IDS_FIND_UNKNOWN_TITLE  "Mandato desconocido"
!     IDS_FIND_UNKNOWN_DESC   "AFS Account Manager no ha podido encontrar ningn tema de ayuda para el mandato ""%1""."
!     IDS_HELPABOUT_DESC1     "Aviso: este programa de sistema est protegido por el copyright y tratados internacionales. +"
!     IDS_HELPABOUT_DESC2     "La reproduccin o distribucin no autorizada de este software puede dar como resultado la aplicacin de graves sanciones civiles y criminales y se perseguir por todos los medios legales posibles.\n\n+"
!     IDS_HELPABOUT_DESC3     "AFS es una marca registrada de Transarc Corporation, una compaa de IBM."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COLUMNS_TITLE       "Columnas - AFS Account Manager"
!     IDS_USER_PROPERTIES_TITLE_MULTIPLE "Mltiples usuarios - Propiedades"
!     IDS_USER_PROPERTIES_TITLE "Usuario %1 - Propiedades"
!     IDS_USER_NAME_MULTIPLE  "Usuarios "
!     IDS_ACCOUNTACCESS_OWNER "Slo propietario de cuenta"
!     IDS_ACCOUNTACCESS_GROUP "Slo miembros de grupo"
!     IDS_ACCOUNTACCESS_ANYONE "Cualquiera"
!     IDS_ACCOUNTACCESS_MIXED "(mltiples configuraciones)"
!     IDS_USER_KEY            "%1\nVersin %2, Suma de comprobacin %3"
!     IDS_USER_KEY_HIDDEN     "(valor de clave real oculto)"
!     IDS_USER_KEY_UNKNOWN    "(desconocido)"
!     IDS_USER_KEY_MULTIPLE   "(mltiples claves)"
!     IDS_ACTION_USER_CHANGE  "Cambio de propiedades para el usuario %1"
!     IDS_COUNT_WEEKS         "%1w"
!     IDS_COUNT_DAYS          "%1d"
!     IDS_COUNT_HOURS         "%1h"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COUNT_MINUTES       "%1m"
!     IDS_COUNT_SECONDS       "%1s"
!     IDS_GROUP_PROPERTIES_TITLE_MULTIPLE "Mltiples grupos - Propiedades"
!     IDS_GROUP_PROPERTIES_TITLE "Grupo %1 - Propiedades"
!     IDS_GROUP_NAME_MULTIPLE "Grupos "
!     IDS_ACCOUNTACCESS_OWNGROUP "Slo propietario de grupo"
!     IDS_OWNER_MIXED         "Mltiples propietarios"
!     IDS_CREATOR_MIXED       "Mltiples creadores"
!     IDS_GROUP_CHANGEOWNER_TITLE "Cambiar propietario de grupo"
!     IDS_GROUP_CHANGEOWNER_PROMPT "Propietario:"
!     IDS_MEMBER_MIXED        "(Algunos)"
!     IDS_USER_SHOW_MEMBER_TITLE 
!                             "Todos los grupos a los que pertenece este usuario:"
!     IDS_USER_SHOW_OWNER_TITLE "Todos los grupos que posee este usuario:"
!     IDS_GROUP_SHOW_MEMBER_TITLE "Todos los miembros de este grupo:"
!     IDS_USER_SHOW_MEMBER_TITLE_MULTIPLE 
!                             "Todos los grupos a los que pertenecen estos usuarios:"
!     IDS_GROUP_SHOW_MEMBER_TITLE_MULTIPLE "Todos los miembros de estos grupos:"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ACTION_GROUP_RENAME "Cambiando el nombre del grupo %1 por %2"
!     IDS_RENAME_TITLE        "Cambiar nombre de grupo %1"
!     IDS_GROUP_TITLE         "Grupo %1"
!     IDS_SHOW_USERS          "Todos los usuarios de esta c駘ula"
!     IDS_SHOW_GROUPS         "Todos los grupos de esta c駘ula"
!     IDS_GROUP_SHOW_OWNED_TITLE "Todos los grupos que posee este grupo:"
!     IDS_BROWSE_TITLE_OWNED  "Seleccionar los grupos a poseer"
!     IDS_BROWSE_PROMPT_OWNED "Grupos:"
!     IDS_BROWSE_CHECK_OWNED  "Mostrar slo los grupos que no se poseen en la actualidad"
!     IDS_NEWUSER_PROPERTIES_TITLE "Crear usuario - Avanzado"
!     IDS_NEWUSER_SHOW_MEMBER_TITLE 
!                             "Todos los grupos a los que pertenecer este usuario:"
!     IDS_NEWUSER_SHOW_OWNER_TITLE "Todos los grupos que poseer este usuario:"
!     IDS_ACTION_CELL_CHANGE  "Cambiando propiedades para c駘ula %1"
!     IDS_ACTION_USER_CREATE  "Creando cuenta para usuario %1"
!     IDS_NEWGROUP_PROPERTIES_TITLE "Crear grupo - Avanzado"
!     IDS_NEWGROUP_SHOW_MEMBER_TITLE "Miembros iniciales de este grupo nuevo:"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_USRCOL_FLAGS        "Indicadores"
!     IDS_USRCOL_ADMIN        "ｿAdmin?"
!     IDS_USRCOL_TICKET       "ｿBilletes?"
!     IDS_USRCOL_SYSTEM       "ｿSistema?"
!     IDS_USRCOL_CHANGEPW     "ｿCambiar contraseas?"
!     IDS_USRCOL_REUSEPW      "ｿVolver a utilizar contraseas?"
!     IDS_USRCOL_EXPIRES      "Caducidad de cuenta"
!     IDS_USRCOL_LASTPW       "ﾚltimo cambio de contrasea"
!     IDS_USRCOL_LASTMOD      "ﾚltima vez que se ha modificado"
!     IDS_USRCOL_LASTMODBY    "Modificado la ltima vez por"
!     IDS_USRCOL_LIFETIME     "Duracin de billete"
!     IDS_USRCOL_CDAYPW       "Caducidad de contrasea"
!     IDS_USRCOL_CFAILLOGIN   "Anomalas de inicio de sesin"
!     IDS_USRCOL_CSECLOCK     "Hora de bloqueo de anomala de inicio de sesin"
!     IDS_USRCOL_CGROUPMAX    "Cuota de creacin de grupo"
!     IDS_USRCOL_UID          "UID"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_USRCOL_OWNER        "Propietario"
!     IDS_USRCOL_CREATOR      "Creador"
!     IDS_USRCOL_STATUS       "Estado"
!     IDS_USRFLAG_ADMIN       "A "
!     IDS_USRFLAG_TICKET      "T "
!     IDS_USRFLAG_ENCRYPT     "E "
!     IDS_USRFLAG_CHANGEPW    "C "
!     IDS_USRFLAG_REUSEPW     "R "
!     IDS_YES                 "S"
!     IDS_NO                  "No"
!     IDS_GRPCOL_CMEMBERS     "Cuenta de pertenencia"
!     IDS_GRPCOL_UID          "UID"
!     IDS_GRPCOL_OWNER        "Propietario"
!     IDS_GRPCOL_CREATOR      "Creador"
!     IDS_COL_USERS           "Usuarios de una c駘ula"
!     IDS_COL_GROUPS          "Grupos de una c駘ula"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEWGROUP_SHOW_OWNED_TITLE "Grupos que poseer este grupo nuevo:"
!     IDS_USER_DELETE_MULTIPLE 
!                             "｡Precaucin!\n\nEsta operacin suprimir permanentemente las cuentas para los usuarios siguientes: %1"
!     IDS_GROUP_DELETE_MULTIPLE 
!                             "｡Precaucin!\n\nEsta operacin suprimir permanentemente los grupos siguientes: %1."
!     IDS_ACTION_GROUP_CREATE "Creando grupo %1"
!     IDS_ACTION_USER_DELETE  "Suprimiendo cuenta para usuario %1"
!     IDS_ACTION_GROUP_DELETE "Suprimiendo grupo %1"
!     IDS_CELL_PROPERTIES_TITLE "C駘ula %1 - Propiedades"
!     IDS_MACHINES_ALL        "Todas las cuentas de direccin IP de la c駘ula %1:"
!     IDS_MACHINES_PATTERN    "Cuentas de direccin IP seleccionadas en la c駘ula %1:"
!     IDS_TAB_MACHINES        "Direcciones"
!     IDS_MACHINE_DELETE_MULTIPLE 
!                             "｡Precaucin!\n\nEsta operacin suprimir permanentemente las cuentas de direccin IP siguientes: %1"
!     IDS_NEWMACHINE_PROPERTIES_TITLE "Crear Cuenta de direccin IP - Avanzado"
!     IDS_MACHINE_PROPERTIES_TITLE_MULTIPLE 
!                             "Mltiples cuentas de direccin IP - Propiedades"
!     IDS_MACHINE_PROPERTIES_TITLE "Cuenta de direccin IP %1 - Propiedades"
!     IDS_COL_MACHINES        "Cuentas de direccin IP de una c駘ula"
!     IDS_MCHCOL_NAME         "Direccin IP"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BROWSE_TITLE_JOIN   "Seleccionar los grupos a unir"
!     IDS_BROWSE_PROMPT_JOIN  "Grupos:"
!     IDS_BROWSE_CHECK_JOIN   "Mostrar slo los grupos no unidos en la actualidad"
!     IDS_BROWSE_TITLE_OWN    "Seleccionar los grupos a poseer"
!     IDS_BROWSE_PROMPT_OWN   "Grupos:"
!     IDS_BROWSE_CHECK_OWN    "Mostrar slo los grupos que no se poseen en la actualidad"
!     IDS_BROWSE_TITLE_MEMBER "Seleccionar los usuarios a unir"
!     IDS_BROWSE_PROMPT_MEMBER "Usuarios:"
!     IDS_BROWSE_CHECK_MEMBER "Mostrar slo los usuarios que no son miembros"
!     IDS_SEPARATORS          ",;"
!     IDS_ACTION_GROUP_CHANGE "Cambiando las propiedades para el grupo %1"
!     IDS_ACTION_GROUP_MEMBER_ADD "Aadiendo usuario %2 a grupo %1"
!     IDS_ACTION_GROUP_MEMBER_REMOVE "Eliminando usuario %2 del grupo %1"
!     IDS_ACTION_USER_PW_CHANGE "Definiendo contrasea para usuario %1"
!     IDS_UNKNOWN_NAME        "(desconocido)"
!     IDS_ACTION_USER_UNLOCK  "Desbloqueando cuenta para usuario %1"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_MCHCOL_CGROUPMAX    "Cuota de creacin de grupo"
!     IDS_MCHCOL_UID          "ID de cuenta"
!     IDS_MCHCOL_OWNER        "Propietario"
!     IDS_MCHCOL_CREATOR      "Creador"
!     IDS_OPTIONS_TITLE       "Opciones de AFS Account Manager"
!     IDS_WARNING_TITLE       "Precaucin"
!     IDS_WARNING_SYSTEM_ACCOUNT 
!                             "En la cuenta %1 los cambios deberan efectuarse con precaucin, ya que efectuar cambios inapropiados en esta cuenta puede impedir que algunas caractersticas de AFS funcionen debidamente.\n\nｿEst seguro de que desea continuar?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_PTS_ADDUSER "pts adduser"
!     IDS_COMMAND_PTS_CHOWN   "pts chown"
!     IDS_COMMAND_PTS_CREATEGROUP "pts creategroup"
!     IDS_COMMAND_PTS_CREATEUSER "pts createuser"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_PTS_DELETE  "pts delete"
!     IDS_COMMAND_PTS_EXAMINE "pts examine"
!     IDS_COMMAND_PTS_LISTMAX "pts listmax"
!     IDS_COMMAND_PTS_LISTOWNED "pts listowned"
!     IDS_COMMAND_PTS_MEMBERSHIP "pts membership"
!     IDS_COMMAND_PTS_REMOVEUSER "pts removeuser"
!     IDS_COMMAND_PTS_RENAME  "pts rename"
!     IDS_COMMAND_PTS_SETFIELDS "pts setfields"
!     IDS_COMMAND_PTS_SETMAX  "pts setmax"
!     IDS_COMMAND_KAS_CREATE  "kas create"
!     IDS_COMMAND_KAS_DELETE  "kas delete"
!     IDS_COMMAND_KAS_EXAMINE "kas examine"
!     IDS_COMMAND_KAS_GETRANDOMKEY "kas getrandomkey"
!     IDS_COMMAND_KAS_LIST    "kas list"
!     IDS_COMMAND_KAS_SETFIELDS "kas setfields"
!     IDS_COMMAND_KAS_SETKEY  "kas setkey"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_KAS_SETPASSWORD "kas setpassword"
!     IDS_COMMAND_KAS_STRINGTOKEY "kas stringtokey"
!     IDS_COMMAND_KAS_UNLOCK  "kas unlock"
!     IDS_MACHINE_SHOW_MEMBER_TITLE 
!                             "Todos los grupos a los que pertenece esta cuenta:"
!     IDS_MACHINE_SHOW_OWNER_TITLE "Todos los grupos que posee esta cuenta:"
!     IDS_MACHINE_SHOW_MEMBER_TITLE_MULTIPLE 
!                             "Todos los grupos a los que pertenecen estas cuentas:"
!     IDS_NEWMACHINE_SHOW_MEMBER_TITLE 
!                             "Todos los grupos a los que pertenecer esta cuenta:"
!     IDS_NEWMACHINE_SHOW_OWNER_TITLE 
!                             "Todos los grupos que poseer esta cuenta:"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_BAD_REMOTE_SERVER 
!                             "AFS Account Manager no ha podido ponerse en contacto con un proceso administrativo que est ejecut疣dose en el sistema %1.\n\nPuede efectuar tareas administrativas de modo remoto ejecutando el programa TaAfsAdmSvr.exe en el otro sistema."
!     IDS_ERROR_BAD_LOCAL_SERVER 
!                             "AFS Account Manager no ha podido encontrar el programa TaAfsAdmSvr.exe, o no ha podido preparar el sistema para efectuar la administracin de AFS. "
!     IDS_ERROR_CANT_OPEN_CELL 
!                             "AFS Account Manager no ha podido ponerse en contacto con ningn servidor de la c駘ula %1.\n\nPor favor, vuelva a efectuar la comprobacin para asegurarse de que ha escrito correctamente el nombre de la c駘ula."
!     IDS_ERROR_BADCREDENTIALS 
!                             "La identidad de AFS que ha entrado no est reconocida, o bien la contrasea que ha especificado es incorrecta."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_TRANSLATED    "Nmero de error 0x%1 (%2):\n\n%3"
!     IDS_ERROR_NOTTRANSLATED "Nmero de error 0x%1 (%2) no est reconocido."
!     IDS_ERROR_USER_MULTIPROP 
!                             "AFS Account Manager no puede visualizar la ventana solicitada debido a que ya hay una ventana de propiedades abierta para uno o m疽 de los usuarios seleccionados."
!     IDS_ERROR_CANT_CHANGE_USER 
!                             "AFS Account Manager no ha podido cambiar las propiedades para usuario %1."
!     IDS_ERROR_GROUP_MULTIPROP 
!                             "AFS Account Manager no puede visualizar la ventana solicitada debido a que ya hay una ventana de propiedades abierta para uno o m疽 de los grupos seleccionados."
!     IDS_ERROR_CANT_CHANGE_GROUP 
!                             "AFS Account Manager no ha podido cambiar las propiedades para grupo %1."
!     IDS_ERROR_CANT_TRANSLATE_USER 
!                             "AFS Account Manager no ha podido encontrar un usuario por medio del nombre especificado.\n\nPor favor, asegrese de que ha escrito el nombre correctamente. "
!     IDS_ERROR_CANT_TRANSLATE_GROUP 
!                             "AFS Account Manager no ha podido encontrar un usuario por medio del nombre especificado.\n\nPor favor, asegrese de que ha escrito el nombre correctamente. "
!     IDS_ERROR_CANT_GET_USERPROP 
!                             "AFS Account Manager no ha podido encontrar propiedades para usuario %1."
!     IDS_ERROR_CANT_CHANGE_PASSWORD 
!                             "AFS Account Manager no ha podido cambiar la contrasea para usuario %1."
!     IDS_ERROR_CANT_GET_RANDOM_KEY 
!                             "AFS Account Manager no ha podido generar una clave de cifrado aleatoria. "
!     IDS_ERROR_CANT_SET_GROUPS 
!                             "AFS Account Manager no ha podido cambiar la lista de grupo especificada para el usuario %1."
!     IDS_ERROR_CANT_SET_GROUPS_MULTIPLE 
!                             "AFS Account Manager no ha podido cambiar la lista de grupo especificada para los usuarios siguientes: %1."
!     IDS_ERROR_CANT_UNLOCK   "AFS Account Manager no ha podido desbloquear la cuenta de usuario %1."
!     IDS_ERROR_CANT_UNLOCK_MULTIPLE 
!                             "AFS Account Manager no ha podido desbloquear las cuentas para los usuarios siguientes: %1."
!     IDS_ERROR_CANT_SET_MEMBERS 
!                             "AFS Account Manager no ha podido cambiar la lista de miembros para grupo %1."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_CANT_SET_MEMBERS_MULTIPLE 
!                             "AFS Account Manager no ha podido cambiar las listas de miembros para los grupos siguientes: %1."
!     IDS_ERROR_CANT_RENAME_GROUP 
!                             "AFS Account Manager no ha podido cambiar el nombre del grupo %1 por ""%2""."
!     IDS_ERROR_CANT_CHANGE_OWNER 
!                             "AFS Account Manager no ha podido cambiar el propietario del grupo %1."
!     IDS_ERROR_CANT_CHANGE_OWNER_MULTIPLE 
!                             "AFS Account Manager no ha podido cambiar los propietarios de los grupos siguientes: %1."
!     IDS_ERROR_CANT_CHANGE_CELL 
!                             "AFS Account Manager no ha podido cambiar las propiedades de la c駘ula %1."
!     IDS_ERROR_NO_PASSWORD_GIVEN 
!                             "Debe especificar una contrasea para la cuenta de usuario que est creando."
!     IDS_ERROR_MISMATCH_PASSWORD_GIVEN 
!                             "Las contraseas que se han entrado para la nueva cuenta de usuario no coinciden. "
!     IDS_ERROR_CANT_CREATE_USER 
!                             "AFS Account Manager no ha podido crear una cuenta para el usuario %1."
!     IDS_ERROR_CANT_CREATE_GROUP 
!                             "AFS Account Manager no ha podido crear el grupo %1."
!     IDS_ERROR_CANT_DELETE_USER 
!                             "AFS Account Manager no ha podido suprimir la cuenta para el usuario %1."
!     IDS_ERROR_CANT_DELETE_USER_MULTIPLE 
!                             "AFS Account Manager no ha podido suprimir las cuentas para los usuarios siguientes: %1."
!     IDS_ERROR_CANT_DELETE_GROUP 
!                             "AFS Account Manager no ha podido suprimir el grupo %1."
!     IDS_ERROR_CANT_DELETE_GROUP_MULTIPLE 
!                             "AFS Account Manager no ha podido suprimir los grupos siguientes: %1."
!     IDS_ERROR_BAD_REMOTE_SERVER_INSTALL 
!                             "AFS Account Manager no ha podido iniciarse debido a que el AFS Control Center no se ha instalado debidamente.\n\nEs posible que tenga que volver a instalar el AFS Control Center."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CMDLINE_TITLE       "Error - AFS Account Manager"
!     IDS_CMDLINE_SYNTAX      "La lnea de mandatos que ha especificado para AFS Account Manager no es v疝ida."
!     IDS_CMDLINE_UNRECOGNIZED 
!                             "La lnea de mandatos que ha especificado para AFS Account Manager no es v疝ida.\n\nNo se reconoce el par疥etro ""%1""."
!     IDS_CMDLINE_DUPLICATE   "La lnea de mandatos que ha especificado para AFS Account Manager no es v疝ida.\n\nEl par疥etro ""%1"" se ha especificado m疽 de una vez."
!     IDS_CMDLINE_UNEXPECTVALUE 
!                             "La lnea de mandatos que ha especificado para AFS Account Manager no es v疝ida.\n\nNo debe darse un valor al par疥etro ""%1""."
!     IDS_CMDLINE_MISSINGVAL  "La lnea de mandatos que ha especificado para AFS Account Manager no es v疝ida.\n\nEl par疥etro ""%1"" debe ir seguido por un valor."
!     IDS_CMDLINE_USERPASSWORD 
!                             "La lnea de mandatos que ha especificado para AFS Account Manager no es v疝ida.\n\nPara obtener nuevas seales de AFS, deben especificarse tanto el par疥etro ""/USER"" como el par疥etro ""/PASSWORD"". "
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 7,1798 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #include <WINNT\al_resource.h>
! #ifndef APSTUDIO_INVOKED
! #define AFS_VERINFO_FILE_DESCRIPTION "AFS Account Manager"
  #define AFS_VERINFO_NAME "AfsUsrMgr"
  #define AFS_VERINFO_FILENAME "AfsUsrMgr.exe"
  #define AFS_VERINFO_LANG_CODE 0x40a
  #define AFS_VERINFO_CHARSET 1252
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! #endif // APSTUDIO_INVOKED
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_MAIN DIALOG DISCARDABLE  0, 0, 327, 220
! STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU | WS_THICKFRAME
! CAPTION "AFS Account Manager"
! MENU MENU_MAIN
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "",IDC_TAB,"SysTabControl32",0x0,4,32,319,184
!     LTEXT           "C駘ula seleccionada:",IDC_STATIC,4,7,68,8
!     LTEXT           "(ninguna seleccionada)",IDC_CELL,79,7,212,8
!     LTEXT           "Seales de AFS:",IDC_STATIC,4,18,55,8
!     LTEXT           "(no hay seales)",IDC_CREDS,79,17,212,8
!     ICON            IDI_MAIN,IDC_ANIM,302,7,21,20,SS_SUNKEN
!     CONTROL         "",IDC_BAR,"Static",SS_ETCHEDHORZ,1,0,308,1
! END
! 
! IDD_TAB_USERS DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_USERS_PATTERN,185,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "Patrn:",IDC_USERS_PATTERN_PROMPT,152,6,28,8
!     LTEXT           "Consultando; espere por favor...",IDC_USERS_TITLE,4,6,
!                     142,8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,103
!     PUSHBUTTON      "&Crear...",M_USER_CREATE,65,126,55,14
!     PUSHBUTTON      "&Pertenencia...",M_MEMBERSHIP,124,126,55,14
!     PUSHBUTTON      "P&ropiedades...",M_PROPERTIES,183,126,55,14
!     PUSHBUTTON      "...",IDC_ADVANCED,229,4,9,13
! END
! 
! IDD_TAB_GROUPS DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "Patrn:",IDC_GROUPS_PATTERN_PROMPT,163,6,28,8
!     LTEXT           "Consultando; espere por favor...",IDC_GROUPS_TITLE,4,6,
!                     142,8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,103
!     PUSHBUTTON      "&Crear...",M_GROUP_CREATE,65,126,55,14
!     PUSHBUTTON      "&Miembros...",M_MEMBERSHIP,124,126,55,14
!     PUSHBUTTON      "P&ropiedades...",M_PROPERTIES,183,126,55,14
! END
! 
! IDD_ACTIONS DIALOGEX 0, 0, 236, 58
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! EXSTYLE WS_EX_TOOLWINDOW
! CAPTION "Operaciones en curso - AFS Account Manager"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Consultando; espere por favor...",IDC_ACTION_DESC,2,2,
!                     232,8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x3,2,14,232,43
! END
! 
! IDD_HELP_ABOUT DIALOG DISCARDABLE  0, 0, 226, 141
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "Acerca de AFS Account Manager"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     ICON            IDI_MAIN,IDC_HELPABOUT_ICON,4,8,21,20
!     LTEXT           "AFS Account Manager versin 3.5",IDC_STATIC,33,8,189,8
!     LTEXT           "Copyright ｩ IBM Corporation 1989, 1999",IDC_STATIC,33,
!                     20,189,8
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,4,37,218,1
!     CTEXT           "",IDC_HELPABOUT_DESC,4,48,218,56
!     PUSHBUTTON      "&Cerrar",IDOK,87,123,50,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,4,114,218,1
! END
! 
! IDD_HELP_ERROR DIALOG DISCARDABLE  0, 0, 223, 141
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "Buscar cdigo de error"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Nmero de &error:",IDC_STATIC,4,41,55,8
!     EDITTEXT        IDC_ERROR_NUMBER,61,39,78,14,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "&Convertir",IDC_ERROR_TRANSLATE,152,39,67,14
!     PUSHBUTTON      "Ce&rrar",IDCANCEL,85,123,48,14
!     LTEXT           "(texto definido durante la ejecucin)",IDC_ERROR_DESC,4,
!                     71,215,42
!     LTEXT           "Para averiguar qu es lo que significa un cdigo de error, escriba el cdigo a continuacin y pulse en el botn ""Convertir"".",
!                     IDC_STATIC,4,4,215,25
!     CONTROL         "",IDC_ADVANCED_BOX,"Static",SS_ETCHEDHORZ,5,60,211,1
! END
! 
! IDD_HELP_FIND DIALOG DISCARDABLE  0, 0, 231, 74
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "Buscar mandato"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     COMBOBOX        IDC_FIND_COMMAND,4,38,150,170,CBS_DROPDOWN | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     DEFPUSHBUTTON   "Mostrar a&yuda",IDOK,160,39,67,14
!     PUSHBUTTON      "&Cancelar",IDCANCEL,160,55,67,14
!     LTEXT           "Para averiguar el modo de utilizar AFS Account Manager para efectuar una tarea, seleccione a continuacin una lnea de mandatos y pulse en el botn Mostrar ayuda.",
!                     IDC_STATIC,4,4,223,25
! END
! 
! IDD_COLUMNS DIALOG DISCARDABLE  0, 0, 286, 148
! STYLE WS_POPUP | WS_CAPTION
! CAPTION "Columnas"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Seleccione las columnas para visualizar al efectuar el listado:",
!                     IDC_STATIC,5,5,126,17
!     COMBOBOX        IDC_COLUMNS,134,8,147,104,CBS_DROPDOWNLIST | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Columnas disponibles:",IDC_STATIC,12,40,100,8
!     LISTBOX         IDC_COL_AVAIL,12,49,100,71,LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Columnas para &visualizar:",IDC_STATIC,173,41,100,8
!     LISTBOX         IDC_COL_SHOWN,173,50,100,71,LBS_NOINTEGRALHEIGHT | 
!                     WS_VSCROLL | WS_TABSTOP
!     PUSHBUTTON      "A&adir >>",IDC_COL_INSERT,119,68,46,14
!     PUSHBUTTON      "<< &Eliminar",IDC_COL_DELETE,119,88,46,14
!     PUSHBUTTON      "Mover hacia &arriba",IDC_COL_UP,141,122,64,14
!     PUSHBUTTON      "Mover hacia a&bajo",IDC_COL_DOWN,207,122,65,14
!     GROUPBOX        "Listar columnas",IDC_STATIC,5,25,276,118
! END
! 
! IDD_USER_ADVANCED DIALOGEX 0, 0, 230, 201
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Avanzado"
! FONT 9, "MS Shell Dlg", 0, 0, 0x1
! BEGIN
!     LTEXT           "Clave actual:",IDC_STATIC,5,5,44,13
!     LTEXT           "Consultando; espere por favor...",IDC_USER_KEY,52,5,173,
!                     20,0,WS_EX_STATICEDGE
!     CONTROL         "&No es una cuenta del sistema (no hay cifrado)",
!                     IDC_USER_NOSEAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     35,160,10
!     CONTROL         "El usuario tiene privilegios &administrativos",
!                     IDC_USER_ADMIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     52,160,10
!     CONTROL         "O&torgar billetes; duracin:",IDC_USER_TGS,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,5,69,99,10
!     CONTROL         "",IDC_USER_LIFETIME,"Elapsed",WS_BORDER | WS_TABSTOP,
!                     110,68,66,12
!     CONTROL         "C&uota de creacin de grupo:",IDC_USER_GROUP_HASQUOTA,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,86,102,10
!     EDITTEXT        IDC_USER_GROUP_QUOTA,111,85,27,13,ES_AUTOHSCROLL
!     LTEXT           "Ver e&stado de cuenta:",IDC_STATIC,12,140,91,8
!     COMBOBOX        IDC_USER_PERM_STATUS,108,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar grupos de pro&piedad:",IDC_STATIC,12,156,88,8
!     COMBOBOX        IDC_USER_PERM_OWNED,108,154,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar pertenencia a &grupos:",IDC_STATIC,12,172,91,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,108,170,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Otros permisos de cuenta",IDC_STATIC,5,103,220,93
!     LTEXT           "Estos valores especifican los usuarios que pueden ver esta cuenta.",
!                     IDC_STATIC,11,116,204,19
! END
! 
! IDD_USER_GENERAL DIALOG DISCARDABLE  0, 0, 303, 197
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "General"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "El &usuario puede cambiar la contrasea",IDC_USER_CPW,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,47,146,10
!     PUSHBUTTON      "Cambiar con&trasea",IDC_USER_CPW_NOW,215,45,73,14
!     CONTROL         "El usuario puede &volver a utilizar contraseas antiguas",
!                     IDC_USER_RPW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,62,
!                     193,10
!     CONTROL         "La c&ontrasea caduca despu駸 de",IDC_USER_PWEXPIRES,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,78,126,10
!     LTEXT           "das",IDC_STATIC,206,79,16,8
!     EDITTEXT        IDC_USER_PWEXPIRATION,152,77,37,13,ES_AUTOHSCROLL
!     CONTROL         "La cuenta &caduca el:",IDC_USER_EXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,97,77,10
!     CONTROL         "",IDC_USER_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,91,
!                     96,61,12
!     LTEXT           "&a las",IDC_USER_EXPIRE_AT,157,98,15,8
!     CONTROL         "",IDC_USER_EXPIRE_TIME,"Time",WS_BORDER | WS_TABSTOP,
!                     176,96,53,12
!     CONTROL         "B&loquear la cuenta despu駸 de",IDC_USER_FAILLOCK,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,140,111,10
!     LTEXT           "inicios de sesin consecutivos anmalos",IDC_STATIC,164,
!                     142,129,8
!     EDITTEXT        IDC_USER_FAILLOCK_COUNT,124,139,32,13,ES_AUTOHSCROLL
!     CONTROL         "&Bloquear la cuenta indefinidamente (hasta que la desbloquee el administrador)",
!                     IDC_USER_FAILLOCK_INFINITE,"Button",BS_AUTORADIOBUTTON,
!                     26,156,260,10
!     CONTROL         "Bloquear cuenta d&urante",IDC_USER_FAILLOCK_FINITE,
!                     "Button",BS_AUTORADIOBUTTON,25,172,94,10
!     CONTROL         "",IDC_USER_FAILLOCK_DURATION,"Elapsed",WS_BORDER | 
!                     WS_TABSTOP,125,171,56,12
!     PUSHBUTTON      "&Desbloquear",IDC_USER_UNLOCK,236,170,50,14
!     GROUPBOX        "Intentos de inicio de sesin anmalos",IDC_STATIC,5,125,
!                     293,67
!     ICON            IDI_USER,IDC_STATIC,5,5,20,20
!     LTEXT           "Usuario %1",IDC_USER_NAME,110,13,188,8
!     GROUPBOX        "Cuenta",IDC_STATIC,5,32,293,85
! END
! 
! IDD_GROUP_GENERAL DIALOG DISCARDABLE  0, 0, 248, 197
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "General"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     ICON            IDI_GROUP,IDC_STATIC,5,5,21,20
!     LTEXT           "Grupo %1",IDC_GROUP_NAME,55,13,188,8
!     LTEXT           "Ver e&stado de cuenta:",IDC_STATIC,12,108,85,8
!     COMBOBOX        IDC_GROUP_PERM_STATUS,114,106,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Ver &grupos de propietario:",IDC_STATIC,12,124,86,8
!     COMBOBOX        IDC_GROUP_PERM_GROUPS,114,122,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar &miembros de grupo:",IDC_STATIC,12,140,89,8
!     COMBOBOX        IDC_GROUP_PERM_MEMBERS,114,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Aadir miembros:",IDC_STATIC,12,156,73,8
!     COMBOBOX        IDC_GROUP_PERM_ADD,114,154,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Eliminar miembros:",IDC_STATIC,12,172,67,8
!     COMBOBOX        IDC_GROUP_PERM_REMOVE,114,170,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Otros permisos de cuenta",IDC_STATIC,5,78,238,114
!     LTEXT           "Estos valores especifican los usuarios que pueden ver este grupo.",
!                     IDC_STATIC,11,92,220,8
!     LTEXT           "Propietario:",IDC_STATIC,5,31,40,8
!     LTEXT           "%1",IDC_GROUP_OWNER,51,31,112,8
!     PUSHBUTTON      "Cambiar &propietario...",IDC_GROUP_CHANGEOWNER,166,29,
!                     77,12
!     LTEXT           "Creador:",IDC_STATIC,5,46,27,8
!     LTEXT           "%1",IDC_GROUP_CREATOR,51,46,113,8
! END
! 
! IDD_USER_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Grupos"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
!     LTEXT           "Estos valores le permiten cambiar la lista de grupos a los que pertenece este usuario, as como la lista de grupos que posee este usuario.",
!                     IDC_STATIC,5,5,220,25
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Aadir...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "&Mostrar los grupos a los que pertenece este usuario",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "M&ostrar los grupos que posee este usuario",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Consultando; espere por favor...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_GROUP_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Pertenencia"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Pertenencia a grupo",IDC_STATIC,5,31,220,160
!     LTEXT           "Estos valores le permiten elegir los miembros de este grupo, as como elegir los grupos que debe poseer este grupo.",
!                     IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Aadir...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "&Mostrar los miembros de este grupo",
!                     IDC_GROUP_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "M&ostrar los grupos que posee este grupo",
!                     IDC_GROUP_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Consultando; espere por favor...)",IDC_USERS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_BROWSE DIALOG DISCARDABLE  0, 0, 316, 151
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(Ttulo seleccionado en el momento de la ejecucin)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "(en ejecucin)",IDC_BROWSE_TYPE,7,115,78,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,87,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "&Seleccionar",IDC_BROWSE_SELECT,259,112,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,259,130,50,14
!     CONTROL         "(texto especificado durante la ejecucin)",
!                     IDC_BROWSE_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
!                     86,134,146,10
!     RTEXT           "Buscar en &c駘ula:",IDC_STATIC,7,8,69,10,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,87,6,140,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "Patrn:",IDC_GROUPS_PATTERN_PROMPT,231,8,29,8
!     EDITTEXT        IDC_BROWSE_PATTERN,268,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,302,84
! END
! 
! IDD_USER_PASSWORD DIALOG DISCARDABLE  0, 0, 316, 146
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Cambiar contrasea de cuenta"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Seleccionar &autom疸icamente un nmero de versin para la nueva contrasea",
!                     IDC_CPW_VERSION_AUTO,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,42,36,261,10
!     CONTROL         "&Utilizar versin clave:",IDC_CPW_VERSION_MANUAL,"Button",
!                     BS_AUTORADIOBUTTON,42,52,85,10
!     EDITTEXT        IDC_CPW_VERSION,138,51,43,14,ES_AUTOHSCROLL
!     CONTROL         "Cifrar esta serie:",IDC_CPW_BYSTRING,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,42,78,73,10
!     CONTROL         "Utilizar esta clave:",IDC_CPW_BYDATA,"Button",
!                     BS_AUTORADIOBUTTON,42,95,85,10
!     EDITTEXT        IDC_CPW_STRING,154,76,155,14,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_CPW_DATA,137,94,103,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "A&leatorio",IDC_CPW_RANDOM,261,94,48,14
!     DEFPUSHBUTTON   "Aceptar",IDOK,116,125,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,170,125,50,14
!     PUSHBUTTON      "Ayuda",9,259,125,50,14
!     LTEXT           "Nueva contrasea para el usuario %1",IDC_CPW_TITLE,78,
!                     14,231,8
!     ICON            IDI_USER,-1,7,6,21,20
!     LTEXT           "Versin:",-1,7,37,26,8
!     LTEXT           "Valor:",-1,7,78,21,8
! END
! 
! IDD_GROUP_RENAME DIALOG DISCARDABLE  0, 0, 282, 151
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Cambiar nombre de grupo"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Nombre de grupo nuevo:",IDC_STATIC,35,103,80,8
!     EDITTEXT        IDC_RENAME_NEWNAME,117,101,104,14,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "Aceptar",IDOK,109,130,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,163,130,50,14
!     PUSHBUTTON      "Ayuda",9,225,130,50,14
!     LTEXT           "Propietario actual:",IDC_STATIC,35,65,69,8
!     PUSHBUTTON      "&Cambiar propietario...",IDC_RENAME_CHOWN,204,63,71,14
!     LTEXT           "Nombre de grupo actual:",IDC_STATIC,35,83,80,8
!     ICON            IDI_GROUP,IDC_STATIC,7,6,21,20
!     LTEXT           "Cambiar nombre de grupo %1",IDC_RENAME_TITLE,35,14,222,
!                     8
!     LTEXT           "Nota: A menos que un nombre de grupo carezca de prefijo, el nombre debera reflejar de modo adecuado el propietario actual del grupo (por ejemplo, ""owner:groupname"").",
!                     IDC_STATIC,35,34,231,28
!     LTEXT           "(consultando)",IDC_RENAME_OWNER,117,65,82,8
!     LTEXT           "(consultando)",IDC_RENAME_OLDNAME,117,83,104,8
! END
! 
! IDD_BROWSE_COMBO DIALOG DISCARDABLE  0, 0, 314, 154
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(Ttulo seleccionado en el momento de la ejecucin)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "(en ejecucin)",IDC_BROWSE_TYPE,7,115,83,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,94,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "&Seleccionar",IDC_BROWSE_SELECT,257,113,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,257,133,50,14
!     RTEXT           "Mostrar:",IDC_STATIC,40,134,49,8
!     COMBOBOX        IDC_BROWSE_COMBO,94,132,140,68,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     RTEXT           "Buscar en &c駘ula:",IDC_STATIC,7,8,78,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,90,6,140,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "Patrn:",IDC_GROUPS_PATTERN_PROMPT,233,8,28,8
!     EDITTEXT        IDC_BROWSE_PATTERN,266,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,300,84
! END
! 
! IDD_BROWSE_BOTH DIALOG DISCARDABLE  0, 0, 308, 170
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(Ttulo seleccionado en el momento de la ejecucin)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     RTEXT           "(en ejecucin)",IDC_BROWSE_TYPE,7,115,77,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,88,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "&Seleccionar",IDC_BROWSE_SELECT,251,113,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,251,132,50,14
!     RTEXT           "Mostrar:",IDC_STATIC,32,134,52,8
!     COMBOBOX        IDC_BROWSE_COMBO,88,132,140,68,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "(texto especificado durante la ejecucin)",
!                     IDC_BROWSE_CHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
!                     88,151,159,10
!     RTEXT           "Buscar en &c駘ula:",IDC_STATIC,7,8,68,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,84,6,140,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "Patrn:",IDC_GROUPS_PATTERN_PROMPT,227,8,28,8
!     EDITTEXT        IDC_BROWSE_PATTERN,260,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,294,84
! END
! 
! IDD_NEWUSER_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Grupos"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
!     LTEXT           "Estos valores le permiten cambiar la lista inicial de grupos a los que pertenecer este usuario, as como los grupos que poseer este usuario.",
!                     IDC_STATIC,5,5,220,26
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Aadir...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "&Mostrar los grupos a los que pertenecer este usuario",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "M&ostrar los grupos que poseer este usuario",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Consultando; espere por favor...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_NEWUSER DIALOG DISCARDABLE  0, 0, 277, 170
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Crear usuario"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Nombre:",IDC_STATIC,7,37,49,8
!     EDITTEXT        IDC_NEWUSER_NAME,64,35,127,14,ES_AUTOHSCROLL
!     LTEXT           "C&ontrasea:",IDC_STATIC,7,57,49,8
!     EDITTEXT        IDC_NEWUSER_PW1,64,55,90,14,ES_PASSWORD | ES_AUTOHSCROLL
!     LTEXT           "(&volver a entrar:)",IDC_STATIC,7,77,53,8
!     EDITTEXT        IDC_NEWUSER_PW2,64,75,90,14,ES_PASSWORD | ES_AUTOHSCROLL
!     CONTROL         "Utilizar a&utom疸icamente el siguiente ID de usuario disponible",
!                     IDC_NEWUSER_ID_AUTO,"Button",BS_AUTORADIOBUTTON,64,97,
!                     204,10
!     CONTROL         "U&tilizar un ID de usuario especfico:",
!                     IDC_NEWUSER_ID_MANUAL,"Button",BS_AUTORADIOBUTTON,64,113,
!                     124,10
!     EDITTEXT        IDC_NEWUSER_ID,196,111,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "&Grupos...",IDC_ADVANCED,7,149,54,14
!     DEFPUSHBUTTON   "Aceptar",IDOK,133,149,43,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,180,149,43,14
!     PUSHBUTTON      "Ayuda",9,227,149,43,14
!     ICON            IDI_USER,IDC_STATIC,7,6,21,20
!     LTEXT           "Usuario nuevo en c駘ula %1",IDC_NEWUSER_TITLE,85,14,185,
!                     8
!     LTEXT           "ID de usuario:",IDC_STATIC,7,97,49,8
! END
! 
! IDD_NEWGROUP_GENERAL DIALOG DISCARDABLE  0, 0, 252, 197
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "General"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     ICON            IDI_GROUP,IDC_STATIC,5,5,21,20
!     LTEXT           "Grupo nuevo en c駘ula %1",IDC_GROUP_NAME,59,13,188,8
!     LTEXT           "Ver e&stado de cuenta:",IDC_STATIC,12,108,106,8
!     COMBOBOX        IDC_GROUP_PERM_STATUS,125,106,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Ver &grupos de propietario:",IDC_STATIC,12,124,107,8
!     COMBOBOX        IDC_GROUP_PERM_GROUPS,125,122,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar &miembros de grupo:",IDC_STATIC,12,140,106,8
!     COMBOBOX        IDC_GROUP_PERM_MEMBERS,125,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Aadir miembros:",IDC_STATIC,12,156,110,8
!     COMBOBOX        IDC_GROUP_PERM_ADD,125,154,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Eliminar miembros:",IDC_STATIC,12,172,67,8
!     COMBOBOX        IDC_GROUP_PERM_REMOVE,125,170,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Otros permisos de cuenta",IDC_STATIC,5,69,242,123
!     LTEXT           "Estos valores especifican los usuarios que pueden ver informacin sobre este grupo.",
!                     IDC_STATIC,11,83,223,17
!     LTEXT           "Propietario:",IDC_STATIC,5,35,46,8
!     LTEXT           "%1",IDC_GROUP_OWNER,56,35,113,8
!     PUSHBUTTON      "Cambiar &propietario...",IDC_GROUP_CHANGEOWNER,173,33,
!                     70,12
! END
! 
! IDD_NEWGROUP_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Pertenencia"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Pertenencia a grupo",IDC_STATIC,5,31,220,160
!     LTEXT           "Estos valores le permiten elegir los miembros iniciales de este grupo, as como elegir los grupos que debe poseer este grupo.",
!                     IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Aadir...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "&Mostrar los miembros iniciales de este grupo",
!                     IDC_GROUP_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "M&ostrar los grupos que posee este grupo",
!                     IDC_GROUP_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Consultando; espere por favor...)",IDC_USERS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_NEWGROUP DIALOG DISCARDABLE  0, 0, 255, 135
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Crear grupo"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Nombre:",-1,7,37,30,8
!     EDITTEXT        IDC_NEWGROUP_NAME,45,35,127,14,ES_AUTOHSCROLL
!     CONTROL         "Utilizar a&utom疸icamente el siguiente ID de grupo disponible",
!                     IDC_NEWGROUP_ID_AUTO,"Button",BS_AUTORADIOBUTTON,49,60,
!                     200,10
!     CONTROL         "U&tilizar un ID de grupo especfico:",
!                     IDC_NEWGROUP_ID_MANUAL,"Button",BS_AUTORADIOBUTTON,49,75,
!                     122,10
!     EDITTEXT        IDC_NEWGROUP_ID,173,74,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "&Miembros...",IDC_ADVANCED,7,114,54,14
!     DEFPUSHBUTTON   "Aceptar",IDOK,111,114,43,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,158,114,43,14
!     PUSHBUTTON      "Ayuda",9,205,114,43,14
!     ICON            IDI_USER,-1,7,6,21,20
!     LTEXT           "Grupo nuevo en c駘ula %1",IDC_NEWGROUP_TITLE,63,14,185,
!                     8
!     LTEXT           "ID de grupo:",-1,7,60,41,8
! END
! 
! IDD_USER_DELETE DIALOG DISCARDABLE  0, 0, 281, 114
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Suprimir usuario"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "Aceptar",IDOK,116,93,50,14
!     DEFPUSHBUTTON   "Cancelar",IDCANCEL,170,93,50,14
!     PUSHBUTTON      "Ayuda",9,224,93,50,14
!     LTEXT           "｡Precaucin!\n\nEsta operacin suprimir permanentemente la cuenta para el usuario %1.",
!                     IDC_DELETE_TITLE,36,14,238,32
!     ICON            32515,-1,7,6,20,20
!     CONTROL         "Suprimir entrada de base de datos de &KAS para esta cuenta",
!                     IDC_DELETE_KAS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,57,
!                     53,210,10
!     CONTROL         "Suprimir entrada de base de datos de &PTS para esta cuenta",
!                     IDC_DELETE_PTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,57,
!                     69,203,10
! END
! 
! IDD_GROUP_DELETE DIALOG DISCARDABLE  0, 0, 281, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Suprimir grupo"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "Aceptar",IDOK,116,61,50,14
!     DEFPUSHBUTTON   "Cancelar",IDCANCEL,170,61,50,14
!     PUSHBUTTON      "Ayuda",9,224,61,50,14
!     LTEXT           "｡Precaucin!\n\nEsta operacin suprimir permanentemente el grupo %1.",
!                     IDC_DELETE_TITLE,36,14,238,32
!     ICON            32515,-1,7,6,21,20
! END
! 
! IDD_CELL_GENERAL DIALOG DISCARDABLE  0, 0, 230, 134
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "General"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Identificador de &usuario m痊imo:",IDC_STATIC,11,87,101,
!                     8
!     EDITTEXT        IDC_CELL_USERMAX,116,85,40,14,ES_AUTOHSCROLL
!     LTEXT           "Identificador de &grupo m痊imo:",IDC_STATIC,14,105,98,8
!     EDITTEXT        IDC_CELL_GROUPMAX,116,103,40,14,ES_AUTOHSCROLL
!     GROUPBOX        "Identificadores de usuario y grupo",IDC_STATIC,5,31,220,
!                     97
!     LTEXT           "Estos valores reflejan los identificadores de grupo y de usuario m疽 altos que se hayan utilizado nunca; sin embargo, no deben disminuirse a menos que se est seguro de que los valores nuevos no entrar疣 en conflicto con las cuentas existentes. ",
!                     IDC_STATIC,11,43,204,32
!     ICON            IDI_CELL,IDC_STATIC,5,5,20,20
!     LTEXT           "C駘ula %1",IDC_CELL_NAME,37,13,188,8
! END
! 
! IDD_NEWUSER_GENERAL DIALOG DISCARDABLE  0, 0, 303, 197
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "General"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "El &usuario puede cambiar la contrasea",IDC_USER_CPW,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,47,141,10
!     PUSHBUTTON      "Cambiar con&trasea",IDC_USER_CPW_NOW,211,45,73,14
!     CONTROL         "El usuario puede &volver a utilizar contraseas antiguas",
!                     IDC_USER_RPW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,62,
!                     187,10
!     CONTROL         "La contrasea &caduca despu駸 de",IDC_USER_PWEXPIRES,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,78,129,10
!     LTEXT           "das",IDC_STATIC,199,79,16,8
!     EDITTEXT        IDC_USER_PWEXPIRATION,157,77,37,13,ES_AUTOHSCROLL
!     CONTROL         "La cue&nta caduca el:",IDC_USER_EXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,97,77,10
!     CONTROL         "",IDC_USER_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,91,
!                     96,61,12
!     LTEXT           "&a las",IDC_USER_EXPIRE_AT,155,98,16,8
!     CONTROL         "",IDC_USER_EXPIRE_TIME,"Time",WS_BORDER | WS_TABSTOP,
!                     174,96,53,12
!     CONTROL         "&Bloquear la cuenta despu駸 de",IDC_USER_FAILLOCK,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,140,114,10
!     LTEXT           "inicios de sesin consecutivos anmalos",IDC_STATIC,165,
!                     141,130,8
!     EDITTEXT        IDC_USER_FAILLOCK_COUNT,126,139,32,13,ES_AUTOHSCROLL
!     CONTROL         "B&loquear la cuenta indefinidamente (hasta que la desbloquee el administrador)",
!                     IDC_USER_FAILLOCK_INFINITE,"Button",BS_AUTORADIOBUTTON,
!                     25,156,258,10
!     CONTROL         "Bloquear cuenta d&urante",IDC_USER_FAILLOCK_FINITE,
!                     "Button",BS_AUTORADIOBUTTON,25,172,97,10
!     CONTROL         "",IDC_USER_FAILLOCK_DURATION,"Elapsed",WS_BORDER | 
!                     WS_TABSTOP,126,171,56,12
!     PUSHBUTTON      "&Desbloquear",IDC_USER_UNLOCK,231,170,50,14
!     GROUPBOX        "Intentos de inicio de sesin anmalos",IDC_STATIC,5,125,
!                     293,67
!     ICON            IDI_USER,IDC_STATIC,5,5,21,20
!     LTEXT           "Usuario nuevo en c駘ula %1",IDC_USER_NAME,110,13,188,8
!     GROUPBOX        "Cuenta",IDC_STATIC,5,32,293,85
! END
! 
! IDD_NEWUSER_ADVANCED DIALOG DISCARDABLE  0, 0, 284, 197
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Avanzado"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Crear una entrada de base de datos de &KAS para esta cuenta (recomendado)",
!                     IDC_USER_CREATE_KAS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,5,6,260,11
!     CONTROL         "Crear una entrada de base de datos de &PTS para esta cuenta (recomendado)",
!                     IDC_USER_CREATE_PTS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,5,23,260,10
!     CONTROL         "&Esta es una cuenta de sistema (no hay cifrado)",
!                     IDC_USER_NOSEAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     40,245,10
!     CONTROL         "El usuario tiene privilegios &administrativos",
!                     IDC_USER_ADMIN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     57,234,10
!     CONTROL         "O&torgar billetes; duracin:",IDC_USER_TGS,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,5,73,114,10
!     CONTROL         "",IDC_USER_LIFETIME,"Elapsed",WS_BORDER | WS_TABSTOP,
!                     122,73,66,12
!     CONTROL         "C&uota de creacin de grupos:",IDC_USER_GROUP_HASQUOTA,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,91,113,10
!     EDITTEXT        IDC_USER_GROUP_QUOTA,122,90,27,13,ES_AUTOHSCROLL
!     LTEXT           "Ver e&stado de cuenta:",-1,12,140,99,8
!     COMBOBOX        IDC_USER_PERM_STATUS,120,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "&Listar grupos de propiedad:",-1,12,156,102,8
!     COMBOBOX        IDC_USER_PERM_OWNED,120,154,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar pertenencia a &grupo:",-1,12,172,100,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,120,170,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Otros permisos de cuenta",-1,5,110,274,82
!     LTEXT           "Estos valores especifican los usuarios que pueden ver esta cuenta.",
!                     -1,11,124,259,8
! END
! 
! IDD_TAB_MACHINES DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "MS Shell Dlg"
! BEGIN
!     EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "Patrn:",IDC_MACHINES_PATTERN_PROMPT,163,6,28,8
!     LTEXT           "Consultando; espere por favor...",IDC_MACHINES_TITLE,4,
!                     6,142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,103
!     PUSHBUTTON      "&Crear...",M_MACHINE_CREATE,65,126,55,14
!     PUSHBUTTON      "&Pertenencia...",M_MEMBERSHIP,124,126,55,14
!     PUSHBUTTON      "P&ropiedades...",M_PROPERTIES,183,126,55,14
! END
! 
! IDD_NEWMACHINE_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Grupos"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
!     LTEXT           "Estos valores le permiten seleccionar la lista inicial de grupos a los que pertenecer esta cuenta, as como los grupos que poseer.",
!                     IDC_STATIC,5,5,220,17,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Aadir...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "&Mostrar los grupos a los que pertenecer esta cuenta",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "M&ostrar los grupos que poseer esta cuenta",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(Consultando; espere por favor...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_NEWMACHINE_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Avanzado"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Ver e&stado de cuenta:",IDC_STATIC,12,96,86,8
!     COMBOBOX        IDC_USER_PERM_STATUS,107,94,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar grupos de pro&piedad:",IDC_STATIC,12,112,90,8
!     COMBOBOX        IDC_USER_PERM_OWNED,107,110,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar pertenencia a &grupos:",IDC_STATIC,12,128,89,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,107,126,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Otros permisos de cuenta",IDC_STATIC,5,57,220,88
!     LTEXT           "Estos valores especifican los usuarios que pueden ver esta cuenta.",
!                     IDC_STATIC,11,72,204,16
!     ICON            IDI_SERVER,IDC_STATIC,5,5,20,20
!     LTEXT           "Cuenta de direccin IP nueva en la c駘ula %1",
!                     IDC_USER_NAME,37,13,188,8
! END
! 
! IDD_NEWMACHINE DIALOG DISCARDABLE  0, 0, 277, 127
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Crear cuenta de direccin IP"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "&Direccin IP:",-1,7,37,48,8
!     EDITTEXT        IDC_NEWUSER_NAME,59,35,127,14,ES_AUTOHSCROLL
!     CONTROL         "Utilizar a&utom疸icamente el siguiente ID de cuenta disponible",
!                     IDC_NEWUSER_ID_AUTO,"Button",BS_AUTORADIOBUTTON,59,60,
!                     205,10
!     CONTROL         "U&tilizar un ID de cuenta especfico:",
!                     IDC_NEWUSER_ID_MANUAL,"Button",BS_AUTORADIOBUTTON,59,76,
!                     127,10
!     EDITTEXT        IDC_NEWUSER_ID,189,75,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "&Grupos...",IDC_ADVANCED,7,106,54,14
!     DEFPUSHBUTTON   "Aceptar",IDOK,132,106,43,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,180,106,43,14
!     PUSHBUTTON      "Ayuda",9,227,106,43,14
!     ICON            IDI_SERVER,-1,7,6,21,20
!     LTEXT           "Cuenta de direccin IP nueva en la c駘ula %1",
!                     IDC_NEWUSER_TITLE,80,14,190,8
!     LTEXT           "ID de cuenta:",-1,7,60,44,8
! END
! 
! IDD_MACHINE_DELETE DIALOG DISCARDABLE  0, 0, 318, 84
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Suprimir cuenta de direccin IP"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     PUSHBUTTON      "Aceptar",IDOK,153,63,50,14
!     DEFPUSHBUTTON   "Cancelar",IDCANCEL,207,63,50,14
!     PUSHBUTTON      "Ayuda",9,261,63,50,14
!     LTEXT           "｡Precaucin!\n\nEsta operacin suprimir permanentemente la cuenta de direccin IP %1.",
!                     IDC_DELETE_TITLE,36,14,275,37
!     ICON            32515,-1,7,6,21,20
! END
! 
! IDD_MACHINE_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 202
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Avanzado"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     LTEXT           "Ver e&stado de cuenta:",IDC_STATIC,12,101,88,8
!     COMBOBOX        IDC_USER_PERM_STATUS,107,98,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar grupos de pro&piedad:",IDC_STATIC,12,117,91,8
!     COMBOBOX        IDC_USER_PERM_OWNED,107,114,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "Listar pertenencia a &grupos:",IDC_STATIC,12,133,91,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,107,130,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "Otros permisos de cuenta",IDC_STATIC,5,57,220,94
!     LTEXT           "Estos valores especifican los usuarios que pueden ver esta cuenta.",
!                     IDC_STATIC,11,73,204,18
!     ICON            IDI_SERVER,IDC_STATIC,5,5,21,20
!     LTEXT           "Cuenta de direccin IP %1",IDC_USER_NAME,37,13,188,8
! END
! 
! IDD_MACHINE_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Grupos"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     GROUPBOX        "Grupos",IDC_STATIC,5,31,220,160
!     LTEXT           "Estos valores le permiten cambiar la lista de grupos a los que pertenece esta cuenta, as como los grupos que posee esta cuenta.",
!                     IDC_STATIC,5,5,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "&Eliminar",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "&Aadir...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "&Mostrar los grupos a los que pertenece esta cuenta",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     206,10
!     CONTROL         "M&ostrar los grupos que posee esta cuenta",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     206,10
!     LTEXT           "(Consultando; espere por favor...)",IDC_GROUPS_TITLE,12,
!                     74,205,8
! END
! 
! IDD_OPTIONS DIALOG DISCARDABLE  0, 0, 248, 162
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "Opciones"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Utilizar expresiones normales de tipo &Unix (""^mar[ky]son\\..*$"")",
!                     IDC_REGEXP_UNIX,"Button",BS_AUTORADIOBUTTON,11,53,213,10
!     CONTROL         "Utilizar expresiones normales de tipo &Windows (""mar?son.*"")",
!                     IDC_REGEXP_WINDOWS,"Button",BS_AUTORADIOBUTTON,11,69,212,
!                     10
!     CONTROL         "Visualizar un aviso si se trabaja sin seales administrativas",
!                     IDC_WARN_BADCREDS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
!                     11,116,209,10
!     CONTROL         "&Actualizar autom疸icamente la informacin cada",
!                     IDC_REFRESH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,134,
!                     162,10
!     LTEXT           "min.",IDC_STATIC,223,135,14,8
!     EDITTEXT        IDC_REFRESH_RATE,178,133,30,14,ES_AUTOHSCROLL
!     ICON            IDI_MAIN,IDC_STATIC,5,5,20,20
!     LTEXT           "Opciones de Afs Account Manager",IDC_STATIC,37,12,96,8
!     GROUPBOX        "Expresiones normales",IDC_STATIC,5,37,238,57
!     GROUPBOX        "General",IDC_STATIC,5,100,238,57
! END
! 
! IDD_SEARCH_USERS DIALOG DISCARDABLE  0, 0, 311, 130
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "Seleccionar los usuarios a visualizar"
! FONT 9, "MS Shell Dlg"
! BEGIN
!     CONTROL         "Mostrar entradas para &todas las cuentas de usuario",
!                     IDC_SEARCH_ALL,"Button",BS_AUTORADIOBUTTON,29,40,236,10
!     CONTROL         "&Mostrar slo las cuentas de usuario que caducan antes de",
!                     IDC_SEARCH_EXPIRE,"Button",BS_AUTORADIOBUTTON,29,55,202,
!                     10
!     CONTROL         "Mostrar slo las cuentas cuyas contraseas &caducan antes de",
!                     IDC_SEARCH_PWEXPIRE,"Button",BS_AUTORADIOBUTTON,29,70,
!                     213,10
!     CONTROL         "",IDC_SEARCH_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,
!                     232,54,61,12
!     CONTROL         "",IDC_SEARCH_PWEXPIRE_DATE,"Date",WS_BORDER | 
!                     WS_TABSTOP,244,69,61,12
!     DEFPUSHBUTTON   "Aceptar",IDOK,146,108,50,14
!     PUSHBUTTON      "Cancelar",IDCANCEL,200,108,50,14
!     PUSHBUTTON      "Ayuda",9,254,108,50,14
!     LTEXT           "Estos controles le permiten especificar los usuarios que deben mostrarse en el tabulador Usuarios. Puede restringir an m疽 la lista de usuarios que se muestra escribiendo un nombre de cuenta parcial en el control Patrn en el tabulador Usuarios. ",
!                     IDC_STATIC,7,6,297,32
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_MAIN, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 323
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 216
!     END
! 
!     IDD_TAB_USERS, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_TAB_GROUPS, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_ACTIONS, DIALOG
!     BEGIN
!         LEFTMARGIN, 2
!         RIGHTMARGIN, 234
!         TOPMARGIN, 2
!         BOTTOMMARGIN, 56
!     END
! 
!     IDD_HELP_ABOUT, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 222
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 137
!     END
! 
!     IDD_HELP_ERROR, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 219
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 137
!     END
! 
!     IDD_HELP_FIND, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 227
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 70
!     END
! 
!     IDD_COLUMNS, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 281
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 143
!     END
! 
!     IDD_USER_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 196
!     END
! 
!     IDD_USER_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 298
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 192
!     END
! 
!     IDD_GROUP_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 243
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 192
!     END
! 
!     IDD_USER_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_GROUP_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_BROWSE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 309
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 144
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_USER_PASSWORD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 309
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 139
!     END
! 
!     IDD_GROUP_RENAME, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 275
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 144
!     END
! 
!     IDD_BROWSE_COMBO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 307
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 147
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_BROWSE_BOTH, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 301
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 163
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_NEWUSER_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWUSER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 270
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 163
!     END
! 
!     IDD_NEWGROUP_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 247
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 192
!     END
! 
!     IDD_NEWGROUP_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWGROUP, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 248
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 128
!     END
! 
!     IDD_USER_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 107
!     END
! 
!     IDD_GROUP_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_CELL_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 129
!     END
! 
!     IDD_NEWUSER_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 298
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 192
!     END
! 
!     IDD_NEWUSER_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 279
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 192
!     END
! 
!     IDD_TAB_MACHINES, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_NEWMACHINE_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWMACHINE_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWMACHINE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 270
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 120
!     END
! 
!     IDD_MACHINE_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 311
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_MACHINE_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 197
!     END
! 
!     IDD_MACHINE_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_OPTIONS, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 243
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 157
!     END
! 
!     IDD_SEARCH_USERS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 304
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 129
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include <windows.h>\r\n"
!     "#include <WINNT\\al_resource.h>\r\n"
!     "#ifndef APSTUDIO_INVOKED\r\n"
!     "#define AFS_VERINFO_FILE_DESCRIPTION ""AFS Account Manager""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "#endif // APSTUDIO_INVOKED\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! 32513                   ICON    DISCARDABLE     "..\\afsapplib\\resource\\error.ico"
! IDI_MAIN                ICON    DISCARDABLE     "resource\\afsusrmgr.ico"
! 32515                   ICON    DISCARDABLE     "..\\afsapplib\\resource\\warning.ico"
! IDI_USER                ICON    DISCARDABLE     "..\\afsapplib\\resource\\user.ico"
! IDI_GROUP               ICON    DISCARDABLE     "..\\afsapplib\\resource\\group.ico"
! IDI_CELL                ICON    DISCARDABLE     "..\\afsapplib\\resource\\cell.ico"
! IDI_SERVER              ICON    DISCARDABLE     "..\\afsapplib\\resource\\server.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Menu
! //
! 
! MENU_MAIN MENU DISCARDABLE 
! BEGIN
!     POPUP "&C駘ula"
!     BEGIN
!         MENUITEM "S&eleccionar...",             M_OPENCELL
!         MENUITEM "&Autentificacin...",         M_CREDENTIALS
!         MENUITEM SEPARATOR
!         MENUITEM "P&ropiedades de c駘ula...",   M_CELL_PROPERTIES
!         MENUITEM SEPARATOR
!         MENUITEM "&Salir",                      M_EXIT
!     END
!     POPUP "&Editar"
!     BEGIN
!         MENUITEM "Crear &usuario...",           M_USER_CREATE
!         MENUITEM "Crear &grupo...",             M_GROUP_CREATE
!         MENUITEM SEPARATOR
!         MENUITEM "Cambiar &nombre...",          M_RENAME
!         MENUITEM "&Suprimir...",                M_DELETE
!         MENUITEM SEPARATOR
!         MENUITEM "Seleccionar &todo\tCtrl+A",   M_SELECTALL
!         MENUITEM SEPARATOR
!         MENUITEM "A&ctualizar\tF5",             M_REFRESH
!         MENUITEM "&Pertenencia...\tCtrl+M",     M_MEMBERSHIP
!         MENUITEM "P&ropiedades\tAlt+Intro",     M_PROPERTIES
!     END
!     POPUP "&Ver"
!     BEGIN
!         POPUP "&Iconos"
!         BEGIN
!             MENUITEM "Iconos &grandes",             M_VIEW_LARGE, CHECKED
!             MENUITEM "Iconos &pequeos",            M_VIEW_SMALL, CHECKED
!             MENUITEM "&Detalles",                   M_VIEW_DETAILS, CHECKED
!             MENUITEM SEPARATOR
!             MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!             MENUITEM "&Todos los iconos",           M_VIEW_TWO, CHECKED
!             MENUITEM "Slo &estado",                M_VIEW_STATUS, CHECKED
!         END
!         MENUITEM SEPARATOR
!         MENUITEM "O&peraciones en curso",       M_ACTIONS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Columnas...",                M_COLUMNS
!         MENUITEM "&Opciones...",                M_OPTIONS
!         MENUITEM SEPARATOR
!         MENUITEM "Ac&tualizar todo",            M_REFRESHALL
!     END
!     POPUP "A&yuda"
!     BEGIN
!         MENUITEM "&Contenido",                  M_CONTENTS
!         MENUITEM "Buscar &mandato...",          M_FIND
!         MENUITEM "Buscar cdigo de &error...",  M_LOOKUP
!         MENUITEM SEPARATOR
!         MENUITEM "&Acerca de AFS Account Manager...", M_ABOUT
!     END
! END
! 
! MENU_USER_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "&Ver"
!     BEGIN
!         MENUITEM "Iconos &grandes",             M_VIEW_LARGE, CHECKED
!         MENUITEM "Iconos &pequeos",            M_VIEW_SMALL, CHECKED
!         MENUITEM "&Detalles",                   M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!         MENUITEM "&Todos los iconos",           M_VIEW_TWO, CHECKED
!         MENUITEM "Slo &estado",                M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "&Crear usuario...",           M_USER_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "Ac&tualizar todo",            M_REFRESHALL
! END
! 
! MENU_GROUP_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "&Ver"
!     BEGIN
!         MENUITEM "Iconos &grandes",             M_VIEW_LARGE, CHECKED
!         MENUITEM "Iconos &pequeos",            M_VIEW_SMALL, CHECKED
!         MENUITEM "&Detalles",                   M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!         MENUITEM "&Todos los iconos",           M_VIEW_TWO, CHECKED
!         MENUITEM "Slo &estado",                M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "&Crear grupo...",             M_GROUP_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "Ac&tualizar todo",            M_REFRESHALL
! END
! 
! MENU_USER MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Grupos...",                  M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "&Cambiar contrasea...",      M_CPW
!     MENUITEM "&Desbloquear",                M_UNLOCK
!     MENUITEM "&Suprimir...",                M_DELETE
!     MENUITEM "Ac&tualizar",                 M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "P&ropiedades...",             M_PROPERTIES
! END
! 
! MENU_GROUP MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Miembros de grupo...",       M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "Cambia&r nombre...",          M_RENAME
!     MENUITEM "&Suprimir...",                M_DELETE
!     MENUITEM "Ac&tualizar",                 M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "P&ropiedades...",             M_PROPERTIES
! END
! 
! MENU_COLUMNS MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Columnas...",                M_COLUMNS
! END
! 
! MENU_MACHINE_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "&Ver"
!     BEGIN
!         MENUITEM "Iconos &grandes",             M_VIEW_LARGE, CHECKED
!         MENUITEM "Iconos &pequeos",            M_VIEW_SMALL, CHECKED
!         MENUITEM "&Detalles",                   M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "&Normal",                     M_VIEW_ONE, CHECKED
!         MENUITEM "&Todos los iconos",           M_VIEW_TWO, CHECKED
!         MENUITEM "Slo &estado",                M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "&Crear cuenta...",            M_MACHINE_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "Ac&tualizar todo",            M_REFRESHALL
! END
! 
! MENU_MACHINE MENU DISCARDABLE 
! BEGIN
!     MENUITEM "&Grupos...",                  M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "&Suprimir...",                M_DELETE
!     MENUITEM "Ac&tualizar",                 M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "P&ropiedades...",             M_PROPERTIES
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Accelerator
! //
! 
! ACCEL_MAIN ACCELERATORS DISCARDABLE 
! BEGIN
!     "A",            M_SELECTALL,            VIRTKEY, CONTROL, NOINVERT
!     "M",            M_MEMBERSHIP,           VIRTKEY, CONTROL, NOINVERT
!     VK_APPS,        M_KEY_MENU,             VIRTKEY, NOINVERT
!     VK_ESCAPE,      M_KEY_ESC,              VIRTKEY, NOINVERT
!     VK_F10,         M_KEY_MENU,             VIRTKEY, SHIFT, NOINVERT
!     VK_F5,          M_REFRESH,              VIRTKEY, NOINVERT
!     VK_RETURN,      M_KEY_RETURN,           VIRTKEY, NOINVERT
!     VK_RETURN,      M_KEY_PROPERTIES,       VIRTKEY, ALT, NOINVERT
!     VK_TAB,         M_KEY_TAB,              VIRTKEY, NOINVERT
!     VK_TAB,         M_KEY_CTRLTAB,          VIRTKEY, CONTROL, NOINVERT
!     VK_TAB,         M_KEY_BACKTAB,          VIRTKEY, SHIFT, NOINVERT
!     VK_TAB,         M_KEY_CTRLBACKTAB,      VIRTKEY, SHIFT, CONTROL, 
!                                                     NOINVERT
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_APP_TITLE           "AFS Account Manager"
!     IDS_USRCOL_NAME         "Nombre de usuario"
!     IDS_GRPCOL_NAME         "Nombre de grupo"
!     IDS_BADCREDS_DESC       "A menos que inicie la sesin como administrador, es posible que no disponga de privilegios suficientes para administrar satisfactoriamente la c駘ula %1."
!     IDS_TAB_USERS           "Usuarios"
!     IDS_TAB_GROUPS          "Grupos"
!     IDS_CELL_NONE           "(no se ha seleccionado ninguna c駘ula)"
!     IDS_CRED_NONE           "(no hay seales en esta c駘ula)"
!     IDS_CRED_EXP            "%1 (han caducado las seales %2)"
!     IDS_CRED_OK             "%1 (caducar疣 las seales %2)"
!     IDS_USERS_ALL           "Todos los usuarios de la c駘ula %1:"
!     IDS_USERS_PATTERN       "Usuarios seleccionados de la c駘ula %1:"
!     IDS_GROUPS_ALL          "Todos los grupos de la c駘ula %1:"
!     IDS_GROUPS_PATTERN      "Grupos seleccionados de la c駘ula %1:"
!     IDS_QUERYING_LONG       "Consultando; espere por favor..."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ACTION_DESC_NONE    "No hay operaciones en curso."
!     IDS_ACTION_DESC_ONE     "La operacin siguiente est actualmente en curso:"
!     IDS_ACTION_DESC_MULT    "Las operaciones siguientes est疣 actualmente en curso:"
!     IDS_ACTCOL_OPERATION    "Operacin"
!     IDS_ACTCOL_ELAPSED      "Tiempo transcurrido"
!     IDS_ACTION_REFRESH_CELL "Actualizacin de informacin para la c駘ula %1"
!     IDS_ACTION_REFRESH_SERVER "Actualizacin de informacin para servidor %1"
!     IDS_ACTION_SCOUT_CELL   "Comprobando si hay problemas en la c駘ula %1"
!     IDS_ACTION_SCOUT_SERVER "Comprobando si hay problemas en el servidor %1"
!     IDS_FIND_NOTHING_TITLE  "No hay ningn mandato seleccionado"
!     IDS_FIND_NOTHING_DESC   "Para averiguar el modo de efectuar una operacin, seleccione en primer lugar una lnea de mandatos de la lista o escriba una palabra clave."
!     IDS_FIND_UNKNOWN_TITLE  "Mandato desconocido"
!     IDS_FIND_UNKNOWN_DESC   "AFS Account Manager no ha podido encontrar ningn tema de ayuda para el mandato ""%1""."
!     IDS_HELPABOUT_DESC1     "Aviso: este programa de sistema est protegido por el copyright y tratados internacionales. +"
!     IDS_HELPABOUT_DESC2     "La reproduccin o distribucin no autorizada de este software puede dar como resultado la aplicacin de graves sanciones civiles y criminales y se perseguir por todos los medios legales posibles.\n\n+"
!     IDS_HELPABOUT_DESC3     "AFS es una marca registrada de Transarc Corporation, una compaa de IBM."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COLUMNS_TITLE       "Columnas - AFS Account Manager"
!     IDS_USER_PROPERTIES_TITLE_MULTIPLE "Mltiples usuarios - Propiedades"
!     IDS_USER_PROPERTIES_TITLE "Usuario %1 - Propiedades"
!     IDS_USER_NAME_MULTIPLE  "Usuarios "
!     IDS_ACCOUNTACCESS_OWNER "Slo propietario de cuenta"
!     IDS_ACCOUNTACCESS_GROUP "Slo miembros de grupo"
!     IDS_ACCOUNTACCESS_ANYONE "Cualquiera"
!     IDS_ACCOUNTACCESS_MIXED "(mltiples configuraciones)"
!     IDS_USER_KEY            "%1\nVersin %2, Suma de comprobacin %3"
!     IDS_USER_KEY_HIDDEN     "(valor de clave real oculto)"
!     IDS_USER_KEY_UNKNOWN    "(desconocido)"
!     IDS_USER_KEY_MULTIPLE   "(mltiples claves)"
!     IDS_ACTION_USER_CHANGE  "Cambio de propiedades para el usuario %1"
!     IDS_COUNT_WEEKS         "%1w"
!     IDS_COUNT_DAYS          "%1d"
!     IDS_COUNT_HOURS         "%1h"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COUNT_MINUTES       "%1m"
!     IDS_COUNT_SECONDS       "%1s"
!     IDS_GROUP_PROPERTIES_TITLE_MULTIPLE "Mltiples grupos - Propiedades"
!     IDS_GROUP_PROPERTIES_TITLE "Grupo %1 - Propiedades"
!     IDS_GROUP_NAME_MULTIPLE "Grupos "
!     IDS_ACCOUNTACCESS_OWNGROUP "Slo propietario de grupo"
!     IDS_OWNER_MIXED         "Mltiples propietarios"
!     IDS_CREATOR_MIXED       "Mltiples creadores"
!     IDS_GROUP_CHANGEOWNER_TITLE "Cambiar propietario de grupo"
!     IDS_GROUP_CHANGEOWNER_PROMPT "Propietario:"
!     IDS_MEMBER_MIXED        "(Algunos)"
!     IDS_USER_SHOW_MEMBER_TITLE 
!                             "Todos los grupos a los que pertenece este usuario:"
!     IDS_USER_SHOW_OWNER_TITLE "Todos los grupos que posee este usuario:"
!     IDS_GROUP_SHOW_MEMBER_TITLE "Todos los miembros de este grupo:"
!     IDS_USER_SHOW_MEMBER_TITLE_MULTIPLE 
!                             "Todos los grupos a los que pertenecen estos usuarios:"
!     IDS_GROUP_SHOW_MEMBER_TITLE_MULTIPLE "Todos los miembros de estos grupos:"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ACTION_GROUP_RENAME "Cambiando el nombre del grupo %1 por %2"
!     IDS_RENAME_TITLE        "Cambiar nombre de grupo %1"
!     IDS_GROUP_TITLE         "Grupo %1"
!     IDS_SHOW_USERS          "Todos los usuarios de esta c駘ula"
!     IDS_SHOW_GROUPS         "Todos los grupos de esta c駘ula"
!     IDS_GROUP_SHOW_OWNED_TITLE "Todos los grupos que posee este grupo:"
!     IDS_BROWSE_TITLE_OWNED  "Seleccionar los grupos a poseer"
!     IDS_BROWSE_PROMPT_OWNED "Grupos:"
!     IDS_BROWSE_CHECK_OWNED  "Mostrar slo los grupos que no se poseen en la actualidad"
!     IDS_NEWUSER_PROPERTIES_TITLE "Crear usuario - Avanzado"
!     IDS_NEWUSER_SHOW_MEMBER_TITLE 
!                             "Todos los grupos a los que pertenecer este usuario:"
!     IDS_NEWUSER_SHOW_OWNER_TITLE "Todos los grupos que poseer este usuario:"
!     IDS_ACTION_CELL_CHANGE  "Cambiando propiedades para c駘ula %1"
!     IDS_ACTION_USER_CREATE  "Creando cuenta para usuario %1"
!     IDS_NEWGROUP_PROPERTIES_TITLE "Crear grupo - Avanzado"
!     IDS_NEWGROUP_SHOW_MEMBER_TITLE "Miembros iniciales de este grupo nuevo:"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_USRCOL_FLAGS        "Indicadores"
!     IDS_USRCOL_ADMIN        "ｿAdmin?"
!     IDS_USRCOL_TICKET       "ｿBilletes?"
!     IDS_USRCOL_SYSTEM       "ｿSistema?"
!     IDS_USRCOL_CHANGEPW     "ｿCambiar contraseas?"
!     IDS_USRCOL_REUSEPW      "ｿVolver a utilizar contraseas?"
!     IDS_USRCOL_EXPIRES      "Caducidad de cuenta"
!     IDS_USRCOL_LASTPW       "ﾚltimo cambio de contrasea"
!     IDS_USRCOL_LASTMOD      "ﾚltima vez que se ha modificado"
!     IDS_USRCOL_LASTMODBY    "Modificado la ltima vez por"
!     IDS_USRCOL_LIFETIME     "Duracin de billete"
!     IDS_USRCOL_CDAYPW       "Caducidad de contrasea"
!     IDS_USRCOL_CFAILLOGIN   "Anomalas de inicio de sesin"
!     IDS_USRCOL_CSECLOCK     "Hora de bloqueo de anomala de inicio de sesin"
!     IDS_USRCOL_CGROUPMAX    "Cuota de creacin de grupo"
!     IDS_USRCOL_UID          "UID"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_USRCOL_OWNER        "Propietario"
!     IDS_USRCOL_CREATOR      "Creador"
!     IDS_USRCOL_STATUS       "Estado"
!     IDS_USRFLAG_ADMIN       "A "
!     IDS_USRFLAG_TICKET      "T "
!     IDS_USRFLAG_ENCRYPT     "E "
!     IDS_USRFLAG_CHANGEPW    "C "
!     IDS_USRFLAG_REUSEPW     "R "
!     IDS_YES                 "S"
!     IDS_NO                  "No"
!     IDS_GRPCOL_CMEMBERS     "Cuenta de pertenencia"
!     IDS_GRPCOL_UID          "UID"
!     IDS_GRPCOL_OWNER        "Propietario"
!     IDS_GRPCOL_CREATOR      "Creador"
!     IDS_COL_USERS           "Usuarios de una c駘ula"
!     IDS_COL_GROUPS          "Grupos de una c駘ula"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEWGROUP_SHOW_OWNED_TITLE "Grupos que poseer este grupo nuevo:"
!     IDS_USER_DELETE_MULTIPLE 
!                             "｡Precaucin!\n\nEsta operacin suprimir permanentemente las cuentas para los usuarios siguientes: %1"
!     IDS_GROUP_DELETE_MULTIPLE 
!                             "｡Precaucin!\n\nEsta operacin suprimir permanentemente los grupos siguientes: %1."
!     IDS_ACTION_GROUP_CREATE "Creando grupo %1"
!     IDS_ACTION_USER_DELETE  "Suprimiendo cuenta para usuario %1"
!     IDS_ACTION_GROUP_DELETE "Suprimiendo grupo %1"
!     IDS_CELL_PROPERTIES_TITLE "C駘ula %1 - Propiedades"
!     IDS_MACHINES_ALL        "Todas las cuentas de direccin IP de la c駘ula %1:"
!     IDS_MACHINES_PATTERN    "Cuentas de direccin IP seleccionadas en la c駘ula %1:"
!     IDS_TAB_MACHINES        "Direcciones"
!     IDS_MACHINE_DELETE_MULTIPLE 
!                             "｡Precaucin!\n\nEsta operacin suprimir permanentemente las cuentas de direccin IP siguientes: %1"
!     IDS_NEWMACHINE_PROPERTIES_TITLE "Crear Cuenta de direccin IP - Avanzado"
!     IDS_MACHINE_PROPERTIES_TITLE_MULTIPLE 
!                             "Mltiples cuentas de direccin IP - Propiedades"
!     IDS_MACHINE_PROPERTIES_TITLE "Cuenta de direccin IP %1 - Propiedades"
!     IDS_COL_MACHINES        "Cuentas de direccin IP de una c駘ula"
!     IDS_MCHCOL_NAME         "Direccin IP"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BROWSE_TITLE_JOIN   "Seleccionar los grupos a unir"
!     IDS_BROWSE_PROMPT_JOIN  "Grupos:"
!     IDS_BROWSE_CHECK_JOIN   "Mostrar slo los grupos no unidos en la actualidad"
!     IDS_BROWSE_TITLE_OWN    "Seleccionar los grupos a poseer"
!     IDS_BROWSE_PROMPT_OWN   "Grupos:"
!     IDS_BROWSE_CHECK_OWN    "Mostrar slo los grupos que no se poseen en la actualidad"
!     IDS_BROWSE_TITLE_MEMBER "Seleccionar los usuarios a unir"
!     IDS_BROWSE_PROMPT_MEMBER "Usuarios:"
!     IDS_BROWSE_CHECK_MEMBER "Mostrar slo los usuarios que no son miembros"
!     IDS_SEPARATORS          ",;"
!     IDS_ACTION_GROUP_CHANGE "Cambiando las propiedades para el grupo %1"
!     IDS_ACTION_GROUP_MEMBER_ADD "Aadiendo usuario %2 a grupo %1"
!     IDS_ACTION_GROUP_MEMBER_REMOVE "Eliminando usuario %2 del grupo %1"
!     IDS_ACTION_USER_PW_CHANGE "Definiendo contrasea para usuario %1"
!     IDS_UNKNOWN_NAME        "(desconocido)"
!     IDS_ACTION_USER_UNLOCK  "Desbloqueando cuenta para usuario %1"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_MCHCOL_CGROUPMAX    "Cuota de creacin de grupo"
!     IDS_MCHCOL_UID          "ID de cuenta"
!     IDS_MCHCOL_OWNER        "Propietario"
!     IDS_MCHCOL_CREATOR      "Creador"
!     IDS_OPTIONS_TITLE       "Opciones de AFS Account Manager"
!     IDS_WARNING_TITLE       "Precaucin"
!     IDS_WARNING_SYSTEM_ACCOUNT 
!                             "En la cuenta %1 los cambios deberan efectuarse con precaucin, ya que efectuar cambios inapropiados en esta cuenta puede impedir que algunas caractersticas de AFS funcionen debidamente.\n\nｿEst seguro de que desea continuar?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_PTS_ADDUSER "pts adduser"
!     IDS_COMMAND_PTS_CHOWN   "pts chown"
!     IDS_COMMAND_PTS_CREATEGROUP "pts creategroup"
!     IDS_COMMAND_PTS_CREATEUSER "pts createuser"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_PTS_DELETE  "pts delete"
!     IDS_COMMAND_PTS_EXAMINE "pts examine"
!     IDS_COMMAND_PTS_LISTMAX "pts listmax"
!     IDS_COMMAND_PTS_LISTOWNED "pts listowned"
!     IDS_COMMAND_PTS_MEMBERSHIP "pts membership"
!     IDS_COMMAND_PTS_REMOVEUSER "pts removeuser"
!     IDS_COMMAND_PTS_RENAME  "pts rename"
!     IDS_COMMAND_PTS_SETFIELDS "pts setfields"
!     IDS_COMMAND_PTS_SETMAX  "pts setmax"
!     IDS_COMMAND_KAS_CREATE  "kas create"
!     IDS_COMMAND_KAS_DELETE  "kas delete"
!     IDS_COMMAND_KAS_EXAMINE "kas examine"
!     IDS_COMMAND_KAS_GETRANDOMKEY "kas getrandomkey"
!     IDS_COMMAND_KAS_LIST    "kas list"
!     IDS_COMMAND_KAS_SETFIELDS "kas setfields"
!     IDS_COMMAND_KAS_SETKEY  "kas setkey"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_KAS_SETPASSWORD "kas setpassword"
!     IDS_COMMAND_KAS_STRINGTOKEY "kas stringtokey"
!     IDS_COMMAND_KAS_UNLOCK  "kas unlock"
!     IDS_MACHINE_SHOW_MEMBER_TITLE 
!                             "Todos los grupos a los que pertenece esta cuenta:"
!     IDS_MACHINE_SHOW_OWNER_TITLE "Todos los grupos que posee esta cuenta:"
!     IDS_MACHINE_SHOW_MEMBER_TITLE_MULTIPLE 
!                             "Todos los grupos a los que pertenecen estas cuentas:"
!     IDS_NEWMACHINE_SHOW_MEMBER_TITLE 
!                             "Todos los grupos a los que pertenecer esta cuenta:"
!     IDS_NEWMACHINE_SHOW_OWNER_TITLE 
!                             "Todos los grupos que poseer esta cuenta:"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_BAD_REMOTE_SERVER 
!                             "AFS Account Manager no ha podido ponerse en contacto con un proceso administrativo que est ejecut疣dose en el sistema %1.\n\nPuede efectuar tareas administrativas de modo remoto ejecutando el programa TaAfsAdmSvr.exe en el otro sistema."
!     IDS_ERROR_BAD_LOCAL_SERVER 
!                             "AFS Account Manager no ha podido encontrar el programa TaAfsAdmSvr.exe, o no ha podido preparar el sistema para efectuar la administracin de AFS. "
!     IDS_ERROR_CANT_OPEN_CELL 
!                             "AFS Account Manager no ha podido ponerse en contacto con ningn servidor de la c駘ula %1.\n\nPor favor, vuelva a efectuar la comprobacin para asegurarse de que ha escrito correctamente el nombre de la c駘ula."
!     IDS_ERROR_BADCREDENTIALS 
!                             "La identidad de AFS que ha entrado no est reconocida, o bien la contrasea que ha especificado es incorrecta."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_TRANSLATED    "Nmero de error 0x%1 (%2):\n\n%3"
!     IDS_ERROR_NOTTRANSLATED "Nmero de error 0x%1 (%2) no est reconocido."
!     IDS_ERROR_USER_MULTIPROP 
!                             "AFS Account Manager no puede visualizar la ventana solicitada debido a que ya hay una ventana de propiedades abierta para uno o m疽 de los usuarios seleccionados."
!     IDS_ERROR_CANT_CHANGE_USER 
!                             "AFS Account Manager no ha podido cambiar las propiedades para usuario %1."
!     IDS_ERROR_GROUP_MULTIPROP 
!                             "AFS Account Manager no puede visualizar la ventana solicitada debido a que ya hay una ventana de propiedades abierta para uno o m疽 de los grupos seleccionados."
!     IDS_ERROR_CANT_CHANGE_GROUP 
!                             "AFS Account Manager no ha podido cambiar las propiedades para grupo %1."
!     IDS_ERROR_CANT_TRANSLATE_USER 
!                             "AFS Account Manager no ha podido encontrar un usuario por medio del nombre especificado.\n\nPor favor, asegrese de que ha escrito el nombre correctamente. "
!     IDS_ERROR_CANT_TRANSLATE_GROUP 
!                             "AFS Account Manager no ha podido encontrar un usuario por medio del nombre especificado.\n\nPor favor, asegrese de que ha escrito el nombre correctamente. "
!     IDS_ERROR_CANT_GET_USERPROP 
!                             "AFS Account Manager no ha podido encontrar propiedades para usuario %1."
!     IDS_ERROR_CANT_CHANGE_PASSWORD 
!                             "AFS Account Manager no ha podido cambiar la contrasea para usuario %1."
!     IDS_ERROR_CANT_GET_RANDOM_KEY 
!                             "AFS Account Manager no ha podido generar una clave de cifrado aleatoria. "
!     IDS_ERROR_CANT_SET_GROUPS 
!                             "AFS Account Manager no ha podido cambiar la lista de grupo especificada para el usuario %1."
!     IDS_ERROR_CANT_SET_GROUPS_MULTIPLE 
!                             "AFS Account Manager no ha podido cambiar la lista de grupo especificada para los usuarios siguientes: %1."
!     IDS_ERROR_CANT_UNLOCK   "AFS Account Manager no ha podido desbloquear la cuenta de usuario %1."
!     IDS_ERROR_CANT_UNLOCK_MULTIPLE 
!                             "AFS Account Manager no ha podido desbloquear las cuentas para los usuarios siguientes: %1."
!     IDS_ERROR_CANT_SET_MEMBERS 
!                             "AFS Account Manager no ha podido cambiar la lista de miembros para grupo %1."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_CANT_SET_MEMBERS_MULTIPLE 
!                             "AFS Account Manager no ha podido cambiar las listas de miembros para los grupos siguientes: %1."
!     IDS_ERROR_CANT_RENAME_GROUP 
!                             "AFS Account Manager no ha podido cambiar el nombre del grupo %1 por ""%2""."
!     IDS_ERROR_CANT_CHANGE_OWNER 
!                             "AFS Account Manager no ha podido cambiar el propietario del grupo %1."
!     IDS_ERROR_CANT_CHANGE_OWNER_MULTIPLE 
!                             "AFS Account Manager no ha podido cambiar los propietarios de los grupos siguientes: %1."
!     IDS_ERROR_CANT_CHANGE_CELL 
!                             "AFS Account Manager no ha podido cambiar las propiedades de la c駘ula %1."
!     IDS_ERROR_NO_PASSWORD_GIVEN 
!                             "Debe especificar una contrasea para la cuenta de usuario que est creando."
!     IDS_ERROR_MISMATCH_PASSWORD_GIVEN 
!                             "Las contraseas que se han entrado para la nueva cuenta de usuario no coinciden. "
!     IDS_ERROR_CANT_CREATE_USER 
!                             "AFS Account Manager no ha podido crear una cuenta para el usuario %1."
!     IDS_ERROR_CANT_CREATE_GROUP 
!                             "AFS Account Manager no ha podido crear el grupo %1."
!     IDS_ERROR_CANT_DELETE_USER 
!                             "AFS Account Manager no ha podido suprimir la cuenta para el usuario %1."
!     IDS_ERROR_CANT_DELETE_USER_MULTIPLE 
!                             "AFS Account Manager no ha podido suprimir las cuentas para los usuarios siguientes: %1."
!     IDS_ERROR_CANT_DELETE_GROUP 
!                             "AFS Account Manager no ha podido suprimir el grupo %1."
!     IDS_ERROR_CANT_DELETE_GROUP_MULTIPLE 
!                             "AFS Account Manager no ha podido suprimir los grupos siguientes: %1."
!     IDS_ERROR_BAD_REMOTE_SERVER_INSTALL 
!                             "AFS Account Manager no ha podido iniciarse debido a que el AFS Control Center no se ha instalado debidamente.\n\nEs posible que tenga que volver a instalar el AFS Control Center."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CMDLINE_TITLE       "Error - AFS Account Manager"
!     IDS_CMDLINE_SYNTAX      "La lnea de mandatos que ha especificado para AFS Account Manager no es v疝ida."
!     IDS_CMDLINE_UNRECOGNIZED 
!                             "La lnea de mandatos que ha especificado para AFS Account Manager no es v疝ida.\n\nNo se reconoce el par疥etro ""%1""."
!     IDS_CMDLINE_DUPLICATE   "La lnea de mandatos que ha especificado para AFS Account Manager no es v疝ida.\n\nEl par疥etro ""%1"" se ha especificado m疽 de una vez."
!     IDS_CMDLINE_UNEXPECTVALUE 
!                             "La lnea de mandatos que ha especificado para AFS Account Manager no es v疝ida.\n\nNo debe darse un valor al par疥etro ""%1""."
!     IDS_CMDLINE_MISSINGVAL  "La lnea de mandatos que ha especificado para AFS Account Manager no es v疝ida.\n\nEl par疥etro ""%1"" debe ir seguido por un valor."
!     IDS_CMDLINE_USERPASSWORD 
!                             "La lnea de mandatos que ha especificado para AFS Account Manager no es v疝ida.\n\nPara obtener nuevas seales de AFS, deben especificarse tanto el par疥etro ""/USER"" como el par疥etro ""/PASSWORD"". "
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
Index: openafs/src/WINNT/afsusrmgr/lang/ja_JP/AfsUsrMgr.rc
diff -c openafs/src/WINNT/afsusrmgr/lang/ja_JP/AfsUsrMgr.rc:1.3 openafs/src/WINNT/afsusrmgr/lang/ja_JP/AfsUsrMgr.rc:1.3.2.1
*** openafs/src/WINNT/afsusrmgr/lang/ja_JP/AfsUsrMgr.rc:1.3	Thu Jun 19 15:01:23 2003
--- openafs/src/WINNT/afsusrmgr/lang/ja_JP/AfsUsrMgr.rc	Fri Mar 11 01:59:44 2005
***************
*** 7,1774 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #include <WINNT\al_resource.h>
! #ifndef APSTUDIO_INVOKED
! #define AFS_VERINFO_FILE_DESCRIPTION "AFS アカウント・マネージャー"
  #define AFS_VERINFO_NAME "AfsUsrMgr"
  #define AFS_VERINFO_FILENAME "AfsUsrMgr.exe"
  #define AFS_VERINFO_LANG_CODE 0x411
  #define AFS_VERINFO_CHARSET 932
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! #endif // APSTUDIO_INVOKED
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // Japanese resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
! #ifdef _WIN32
! LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_MAIN DIALOG DISCARDABLE  0, 0, 310, 220
! STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU | WS_THICKFRAME
! CAPTION "AFS アカウント・マネージャー"
! MENU MENU_MAIN
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "",IDC_TAB,"SysTabControl32",0x0,4,33,305,184
!     LTEXT           "選択したセル:",IDC_STATIC,6,3,45,8
!     LTEXT           "(選択なし)",IDC_CELL,59,3,220,8
!     LTEXT           "AFS トークン:",IDC_STATIC,6,18,45,8
!     LTEXT           "(トークンなし)",IDC_CREDS,59,18,220,8
!     ICON            IDI_MAIN,IDC_ANIM,287,3,20,20,SS_SUNKEN
!     CONTROL         "",IDC_BAR,"Static",SS_ETCHEDHORZ,4,1,307,1
! END
! 
! IDD_TAB_USERS DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_USERS_PATTERN,180,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "パターン:",IDC_USERS_PATTERN_PROMPT,138,6,34,8
!     LTEXT           "照会中です。お待ちください...",IDC_USERS_TITLE,4,6,100,
!                     8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,99
!     PUSHBUTTON      "作成(&C)...",M_USER_CREATE,17,126,55,14
!     PUSHBUTTON      "メンバーシップ(&M)...",M_MEMBERSHIP,76,126,83,14
!     PUSHBUTTON      "プロパティー(&R)...",M_PROPERTIES,163,126,74,14
!     PUSHBUTTON      "...",IDC_ADVANCED,229,4,9,13
! END
! 
! IDD_TAB_GROUPS DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "パターン:",IDC_GROUPS_PATTERN_PROMPT,155,6,34,8
!     LTEXT           "照会中です。お待ちください...",IDC_GROUPS_TITLE,4,6,142,
!                     8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,96
!     PUSHBUTTON      "作成(&C)...",M_GROUP_CREATE,41,125,55,14
!     PUSHBUTTON      "メンバー(&M)...",M_MEMBERSHIP,100,125,59,14
!     PUSHBUTTON      "プロパティー(&R)...",M_PROPERTIES,163,125,74,14
! END
! 
! IDD_ACTIONS DIALOGEX 0, 0, 236, 58
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! EXSTYLE WS_EX_TOOLWINDOW
! CAPTION "進行中の操作 - AFS アカウント・マネージャー"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック", 0, 0, 0x1
! BEGIN
!     LTEXT           "照会中です。お待ちください...",IDC_ACTION_DESC,2,2,232,
!                     8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x3,2,14,232,43
! END
! 
! IDD_HELP_ABOUT DIALOG DISCARDABLE  0, 0, 226, 141
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS アカウント・マネージャーについて"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     ICON            IDI_MAIN,IDC_HELPABOUT_ICON,4,8,20,20
!     LTEXT           "AFS アカウント・マネージャー バージョン 3.5",IDC_STATIC,
!                     33,8,189,8
!     LTEXT           "Copyright (C) IBM Corporation 1989, 1999",IDC_STATIC,33,
!                     20,189,8
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,4,37,218,1
!     CTEXT           "",IDC_HELPABOUT_DESC,4,48,218,56
!     PUSHBUTTON      "クローズ(&C)",IDOK,87,121,53,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,4,114,218,1
! END
! 
! IDD_HELP_ERROR DIALOG DISCARDABLE  0, 0, 218, 141
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "エラー・コードの検索"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "エラー番号(&E):",IDC_STATIC,4,41,44,8
!     EDITTEXT        IDC_ERROR_NUMBER,59,39,78,14,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "変換(&T)",IDC_ERROR_TRANSLATE,147,39,67,14
!     PUSHBUTTON      "クローズ(&C)",IDCANCEL,85,121,53,14
!     LTEXT           "(テキストは実行時に設定)",IDC_ERROR_DESC,4,71,210,42
!     LTEXT           "エラー・コードの意味を調べるには、コードを下に入力して「変換」ボタンをクリックしてください。",
!                     IDC_STATIC,4,4,210,25
!     CONTROL         "",IDC_ADVANCED_BOX,"Static",SS_ETCHEDHORZ,4,60,211,1
! END
! 
! IDD_HELP_FIND DIALOG DISCARDABLE  0, 0, 231, 74
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "コマンド検索"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     COMBOBOX        IDC_FIND_COMMAND,4,38,146,170,CBS_DROPDOWN | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     DEFPUSHBUTTON   "ヘルプの表示(&H)",IDOK,161,37,65,14
!     PUSHBUTTON      "取消し(&C)",IDCANCEL,161,53,65,14
!     LTEXT           "AFS アカウント・マネージャーを使用してタスクを実行する方法を見るには、下のコマンド行を選択して「ヘルプの表示」ボタンをクリックしてください。",
!                     IDC_STATIC,4,4,223,25
! END
! 
! IDD_COLUMNS DIALOG DISCARDABLE  0, 0, 286, 148
! STYLE WS_POPUP | WS_CAPTION
! CAPTION "列"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "リスト時に表示する列の選択(&S):",IDC_STATIC,5,7,111,8
!     COMBOBOX        IDC_COLUMNS,134,5,147,104,CBS_DROPDOWNLIST | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     LTEXT           "使用可能な列(&C):",IDC_STATIC,12,40,100,8
!     LISTBOX         IDC_COL_AVAIL,12,49,100,71,LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "表示する列(&I):",IDC_STATIC,173,41,100,8
!     LISTBOX         IDC_COL_SHOWN,173,50,100,71,LBS_NOINTEGRALHEIGHT | 
!                     WS_VSCROLL | WS_TABSTOP
!     PUSHBUTTON      "追加(&A) >>",IDC_COL_INSERT,119,68,47,14
!     PUSHBUTTON      "<< 削除(&R)",IDC_COL_DELETE,119,88,47,14
!     PUSHBUTTON      "上に移動(&U)",IDC_COL_UP,170,123,53,14
!     PUSHBUTTON      "下に移動(&D)",IDC_COL_DOWN,224,123,53,14
!     GROUPBOX        "列のリスト",IDC_STATIC,5,25,276,118
! END
! 
! IDD_USER_ADVANCED DIALOGEX 0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "拡張"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "現行鍵:",IDC_STATIC,5,5,40,8
!     LTEXT           "照会中です。お待ちください...",IDC_USER_KEY,52,5,173,20,
!                     0,WS_EX_STATICEDGE
!     CONTROL         "これはシステム・アカウントです (暗号化なし) (&S)",
!                     IDC_USER_NOSEAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     35,195,10
!     CONTROL         "ユーザーが管理権限を持っています (&A)",IDC_USER_ADMIN,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,52,155,10
!     CONTROL         "チケットの許可、存続時間(&G):",IDC_USER_TGS,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,5,69,111,10
!     CONTROL         "",IDC_USER_LIFETIME,"Elapsed",WS_BORDER | WS_TABSTOP,
!                     134,68,66,12
!     CONTROL         "グループ作成割り当て量(&Q):",IDC_USER_GROUP_HASQUOTA,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,86,116,10
!     EDITTEXT        IDC_USER_GROUP_QUOTA,137,85,27,13,ES_AUTOHSCROLL
!     LTEXT           "アカウント状況の表示(&V):",IDC_STATIC,12,136,91,8
!     COMBOBOX        IDC_USER_PERM_STATUS,110,134,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "所有グループのリスト(&W):",IDC_STATIC,12,149,91,8
!     COMBOBOX        IDC_USER_PERM_OWNED,110,148,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "グループ・メンバーシップのリスト(&M):",IDC_STATIC,12,
!                     164,116,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,110,174,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "その他のアカウント許可",IDC_STATIC,5,109,220,82
!     LTEXT           "このアカウントを見ることができるユーザーを指定します。",
!                     IDC_STATIC,7,124,215,8
! END
! 
! IDD_USER_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "一般"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "ユーザーがパスワードを変更可能(&C)",IDC_USER_CPW,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,46,124,11
!     PUSHBUTTON      "パスワードの変更(&P)",IDC_USER_CPW_NOW,143,44,78,14
!     CONTROL         "ユーザーが旧パスワードを再使用可能(&R)",IDC_USER_RPW,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,65,162,10
!     CONTROL         "パスワードの有効期間(&V)",IDC_USER_PWEXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,25,78,97,10
!     LTEXT           "日数",IDC_STATIC,196,81,16,8
!     EDITTEXT        IDC_USER_PWEXPIRATION,135,79,37,13,ES_AUTOHSCROLL
!     CONTROL         "アカウントの有効期限(&E):",IDC_USER_EXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,91,89,10
!     CONTROL         "",IDC_USER_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,84,
!                     103,61,12
!     CONTROL         "",IDC_USER_EXPIRE_TIME,"Time",WS_BORDER | WS_TABSTOP,
!                     159,103,53,12
!     CONTROL         "アカウントをロック(&L)",IDC_USER_FAILLOCK,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,137,76,10
!     LTEXT           "回の連続ログイン失敗後",IDC_STATIC,146,138,75,8
!     EDITTEXT        IDC_USER_FAILLOCK_COUNT,102,136,27,13,ES_AUTOHSCROLL
!     CONTROL         "無期限に (管理者がロック解除するまで) ロック(&K)",
!                     IDC_USER_FAILLOCK_INFINITE,"Button",BS_AUTORADIOBUTTON,
!                     25,153,194,10
!     CONTROL         "アカウントのロック期間(&F)",IDC_USER_FAILLOCK_FINITE,
!                     "Button",BS_AUTORADIOBUTTON,25,165,91,10
!     CONTROL         "",IDC_USER_FAILLOCK_DURATION,"Elapsed",WS_BORDER | 
!                     WS_TABSTOP,84,177,56,12
!     PUSHBUTTON      "ロック解除(&U)",IDC_USER_UNLOCK,157,176,61,14
!     GROUPBOX        "失敗したログイン試行",IDC_STATIC,5,124,220,67
!     ICON            IDI_USER,IDC_STATIC,5,5,20,20
!     LTEXT           "ユーザー %1",IDC_USER_NAME,35,7,188,16
!     GROUPBOX        "アカウント",IDC_STATIC,5,32,220,85
! END
! 
! IDD_GROUP_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "一般"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     ICON            IDI_GROUP,IDC_STATIC,5,5,20,20
!     LTEXT           "グループ %1",IDC_GROUP_NAME,34,7,190,16
!     LTEXT           "アカウント状況の表示(&S):",IDC_STATIC,12,105,90,8
!     COMBOBOX        IDC_GROUP_PERM_STATUS,111,104,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "所有グループの表示(&G):",IDC_STATIC,12,117,90,8
!     COMBOBOX        IDC_GROUP_PERM_GROUPS,111,117,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "グループ・メンバーのリスト(&M):",IDC_STATIC,12,129,90,8
!     COMBOBOX        IDC_GROUP_PERM_MEMBERS,111,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "メンバーの追加(&A):",IDC_STATIC,12,156,90,8
!     COMBOBOX        IDC_GROUP_PERM_ADD,111,154,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "メンバーの削除(&R):",IDC_STATIC,12,172,90,8
!     COMBOBOX        IDC_GROUP_PERM_REMOVE,111,170,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "その他のアカウントのアクセス権",IDC_STATIC,5,77,220,114
!     LTEXT           "このグループを見ることができるユーザーを指定します。",
!                     IDC_STATIC,11,92,209,8
!     LTEXT           "所有者:",IDC_STATIC,5,33,26,8
!     LTEXT           "%1",IDC_GROUP_OWNER,39,33,104,16
!     PUSHBUTTON      "所有者の変更(&O)...",IDC_GROUP_CHANGEOWNER,149,33,74,12
!     LTEXT           "作成者:",IDC_STATIC,5,55,26,8
!     LTEXT           "%1",IDC_GROUP_CREATOR,39,55,182,14
! END
! 
! IDD_USER_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "グループ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "グループ",IDC_STATIC,5,31,220,160
!     LTEXT           "以下の設定を使用して、このユーザーが属しているグループのリストと、このユーザーが所有しているグループのリストを変更することができます。",
!                     IDC_STATIC,5,3,220,22
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "削除(&R)",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "追加(&A)...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "このユーザーが属しているグループを表示(&S)",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "このユーザーが所有しているグループを表示(&H)",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(照会中です。お待ちください...)",IDC_GROUPS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_GROUP_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "メンバーシップ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "グループ・メンバーシップ",IDC_STATIC,5,31,220,160
!     LTEXT           "以下の設定を使用して、このグループのメンバーと、このグループが所有するグループを選択することができます。",
!                     IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,85,205,82
!     PUSHBUTTON      "削除(&R)",IDC_MEMBER_REMOVE,167,172,50,14
!     PUSHBUTTON      "追加(&A)...",IDC_MEMBER_ADD,113,172,50,14
!     CONTROL         "このグループのメンバーを表示(&S)",IDC_GROUP_SHOW_MEMBER,
!                     "Button",BS_AUTORADIOBUTTON,12,45,195,10
!     CONTROL         "このグループが所有しているグループを表示(&H)",
!                     IDC_GROUP_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(照会中です。お待ちください...)",IDC_USERS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_BROWSE DIALOG DISCARDABLE  0, 0, 281, 150
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(このタイトルは実行時に選択されます)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     RTEXT           "(実行時)",IDC_BROWSE_TYPE,7,115,49,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,60,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "選択(&S)",IDC_BROWSE_SELECT,224,112,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,224,129,50,14
!     CONTROL         "(テキストは実行時に指定)",IDC_BROWSE_CHECK,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,59,133,146,10
!     RTEXT           "セルを見る(&C):",IDC_STATIC,2,8,53,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,56,6,140,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "パターン:",IDC_GROUPS_PATTERN_PROMPT,198,8,34,8
!     EDITTEXT        IDC_BROWSE_PATTERN,235,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,267,84
! END
! 
! IDD_USER_PASSWORD DIALOG DISCARDABLE  0, 0, 281, 145
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "アカウント・パスワードの変更"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "新規パスワードのバージョン番号を自動的に選択(&A)",
!                     IDC_CPW_VERSION_AUTO,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,52,36,203,10
!     CONTROL         "鍵バージョンを使用(&U):",IDC_CPW_VERSION_MANUAL,"Button",
!                     BS_AUTORADIOBUTTON,52,52,100,10
!     EDITTEXT        IDC_CPW_VERSION,168,51,43,14,ES_AUTOHSCROLL
!     CONTROL         "このストリングを暗号化:",IDC_CPW_BYSTRING,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,52,71,101,10
!     CONTROL         "この鍵を使用:",IDC_CPW_BYDATA,"Button",
!                     BS_AUTORADIOBUTTON,52,105,55,10
!     EDITTEXT        IDC_CPW_STRING,115,85,155,14,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_CPW_DATA,115,104,96,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "ランダム(&R)",IDC_CPW_RANDOM,219,104,53,14
!     DEFPUSHBUTTON   "了解",IDOK,113,124,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,167,124,50,14
!     PUSHBUTTON      "ヘルプ",9,221,124,50,14
!     LTEXT           "ユーザー %1 の新規パスワード",IDC_CPW_TITLE,43,9,231,16
!     ICON            IDI_USER,-1,7,6,20,20
!     LTEXT           "バージョン:",-1,9,37,35,8
!     LTEXT           "値:",-1,9,72,35,8
! END
! 
! IDD_GROUP_RENAME DIALOG DISCARDABLE  0, 0, 274, 150
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "グループの名前変更"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "新規グループ名(&N):",IDC_STATIC,17,108,62,8
!     EDITTEXT        IDC_RENAME_NEWNAME,86,106,104,14,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "了解",IDOK,107,126,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,161,126,50,14
!     PUSHBUTTON      "ヘルプ",9,215,126,50,14
!     LTEXT           "現行所有者:",IDC_STATIC,17,65,62,8
!     PUSHBUTTON      "所有者の変更(&C)...",IDC_RENAME_CHOWN,200,63,67,14
!     LTEXT           "現行グループ名:",IDC_STATIC,17,87,62,8
!     ICON            IDI_GROUP,IDC_STATIC,7,6,20,20
!     LTEXT           "グループ %1 の名前変更",IDC_RENAME_TITLE,35,10,232,15
!     LTEXT           "注: グループの名前にプレフィックスがあれば、名前は正確にグループの現在の所有者を反映します (例: ""owner:groupname"")。",
!                     IDC_STATIC,35,35,231,16
!     LTEXT           "(照会中)",IDC_RENAME_OWNER,86,65,105,15
!     LTEXT           "(照会中)",IDC_RENAME_OLDNAME,86,87,181,12
! END
! 
! IDD_BROWSE_COMBO DIALOG DISCARDABLE  0, 0, 281, 153
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(このタイトルは実行時に選択されます)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     RTEXT           "(実行時)",IDC_BROWSE_TYPE,7,115,65,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,80,113,130,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "選択(&S)",IDC_BROWSE_SELECT,221,113,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,221,132,50,14
!     RTEXT           "表示:",IDC_STATIC,7,134,65,8
!     COMBOBOX        IDC_BROWSE_COMBO,80,132,130,68,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     RTEXT           "セルを見る(&C):",IDC_STATIC,7,8,47,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,61,6,130,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "パターン:",IDC_GROUPS_PATTERN_PROMPT,198,8,28,8
!     EDITTEXT        IDC_BROWSE_PATTERN,233,6,39,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,267,84
! END
! 
! IDD_BROWSE_BOTH DIALOG DISCARDABLE  0, 0, 281, 169
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(このタイトルは実行時に選択されます)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     RTEXT           "(実行時)",IDC_BROWSE_TYPE,7,115,47,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,64,113,129,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "選択(&S)",IDC_BROWSE_SELECT,220,113,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,220,132,50,14
!     RTEXT           "表示:",IDC_STATIC,7,133,47,8
!     COMBOBOX        IDC_BROWSE_COMBO,64,132,129,68,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "(テキストは実行時に指定)",IDC_BROWSE_CHECK,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,64,151,140,10
!     RTEXT           "セルを見る(&C):",IDC_STATIC,7,9,47,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,62,6,129,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "パターン:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
!     EDITTEXT        IDC_BROWSE_PATTERN,235,6,33,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,267,84
! END
! 
! IDD_NEWUSER_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "グループ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "グループ",IDC_STATIC,5,31,220,160
!     LTEXT           "以下の設定を使用して、このユーザーが属する初期グループのリストと、このユーザーが所有するグループを変更することができます。",
!                     IDC_STATIC,5,3,220,22
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "削除(&R)",IDC_MEMBER_REMOVE,167,171,50,14
!     PUSHBUTTON      "追加(&A)...",IDC_MEMBER_ADD,113,171,50,14
!     CONTROL         "このユーザーが属するグループを表示(&S)",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "このユーザーが所有するグループを表示(&H)",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(照会中です。お待ちください...)",IDC_GROUPS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_NEWUSER DIALOG DISCARDABLE  0, 0, 238, 170
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "ユーザーの作成"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "名前(&N):",IDC_STATIC,10,37,47,8
!     EDITTEXT        IDC_NEWUSER_NAME,68,35,127,14,ES_AUTOHSCROLL
!     LTEXT           "パスワード(&P):",IDC_STATIC,10,57,47,8
!     EDITTEXT        IDC_NEWUSER_PW1,68,55,90,14,ES_PASSWORD | ES_AUTOHSCROLL
!     LTEXT           "(再入力(&R):)",IDC_STATIC,10,77,47,8
!     EDITTEXT        IDC_NEWUSER_PW2,68,75,90,14,ES_PASSWORD | ES_AUTOHSCROLL
!     CONTROL         "次に使用可能なユーザー ID を自動的に使用(&U)",
!                     IDC_NEWUSER_ID_AUTO,"Button",BS_AUTORADIOBUTTON,44,109,
!                     183,11
!     CONTROL         "特定ユーザー ID を使用(&S):",IDC_NEWUSER_ID_MANUAL,
!                     "Button",BS_AUTORADIOBUTTON,44,130,113,10
!     EDITTEXT        IDC_NEWUSER_ID,167,129,39,12,ES_AUTOHSCROLL
!     PUSHBUTTON      "グループ(&G)...",IDC_ADVANCED,7,147,58,14
!     DEFPUSHBUTTON   "了解",IDOK,94,147,43,14
!     PUSHBUTTON      "取消し",IDCANCEL,141,147,43,14
!     PUSHBUTTON      "ヘルプ",9,188,147,43,14
!     ICON            IDI_USER,IDC_STATIC,7,6,20,20
!     LTEXT           "セル %1 内の新規ユーザー",IDC_NEWUSER_TITLE,37,9,192,16
!     LTEXT           "ユーザー ID:",IDC_STATIC,10,94,42,8
! END
! 
! IDD_NEWGROUP_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "一般"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     ICON            IDI_GROUP,IDC_STATIC,5,5,20,20
!     LTEXT           "セル %1 内の新規グループ",IDC_GROUP_NAME,35,8,188,16
!     LTEXT           "アカウント状況の表示(&S):",IDC_STATIC,12,106,91,8
!     COMBOBOX        IDC_GROUP_PERM_STATUS,111,106,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "所有グループの表示(&G):",IDC_STATIC,12,118,90,8
!     COMBOBOX        IDC_GROUP_PERM_GROUPS,111,118,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "グループ・メンバーのリスト(&M):",IDC_STATIC,12,130,94,8
!     COMBOBOX        IDC_GROUP_PERM_MEMBERS,111,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "メンバーの追加(&A):",IDC_STATIC,12,156,73,8
!     COMBOBOX        IDC_GROUP_PERM_ADD,111,154,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "メンバーの削除(&R):",IDC_STATIC,12,172,74,8
!     COMBOBOX        IDC_GROUP_PERM_REMOVE,111,170,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "その他のアカウントのアクセス権",IDC_STATIC,5,68,220,123
!     LTEXT           "以下の設定はこのグループに関する情報を見ることができるユーザーを指定します。",
!                     IDC_STATIC,11,83,204,17
!     LTEXT           "所有者:",IDC_STATIC,5,35,26,8
!     LTEXT           "%1",IDC_GROUP_OWNER,39,35,101,17
!     PUSHBUTTON      "所有者の変更(&O)...",IDC_GROUP_CHANGEOWNER,149,33,74,12
! END
! 
! IDD_NEWGROUP_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "メンバーシップ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "グループ・メンバーシップ",IDC_STATIC,5,31,220,160
!     LTEXT           "以下の設定を使用して、このグループの初期メンバーと、このグループが所有するグループを選択することができます。",
!                     IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "削除(&R)",IDC_MEMBER_REMOVE,167,170,50,14
!     PUSHBUTTON      "追加(&A)...",IDC_MEMBER_ADD,113,170,50,14
!     CONTROL         "このグループの初期メンバーを表示(&S)",
!                     IDC_GROUP_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "このグループが所有しているグループを表示(&H)",
!                     IDC_GROUP_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(照会中です。お待ちください...)",IDC_USERS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_NEWGROUP DIALOG DISCARDABLE  0, 0, 238, 135
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "グループの作成"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "名前(&N):",-1,7,37,32,8
!     EDITTEXT        IDC_NEWGROUP_NAME,54,35,127,14,ES_AUTOHSCROLL
!     CONTROL         "次に使用可能なグループ ID を自動的に使用(&U)",
!                     IDC_NEWGROUP_ID_AUTO,"Button",BS_AUTORADIOBUTTON,31,72,
!                     200,12
!     CONTROL         "特定グループ ID を使用(&S):",IDC_NEWGROUP_ID_MANUAL,
!                     "Button",BS_AUTORADIOBUTTON,31,93,111,10
!     EDITTEXT        IDC_NEWGROUP_ID,158,90,55,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "メンバー(&M)...",IDC_ADVANCED,7,112,59,14
!     DEFPUSHBUTTON   "了解",IDOK,94,112,43,14
!     PUSHBUTTON      "取消し",IDCANCEL,141,112,43,14
!     PUSHBUTTON      "ヘルプ",9,188,112,43,14
!     ICON            IDI_USER,-1,7,6,20,20
!     LTEXT           "セル %1 内の新規グループ",IDC_NEWGROUP_TITLE,34,9,193,
!                     18
!     LTEXT           "グループ ID:",-1,7,55,39,8
! END
! 
! IDD_USER_DELETE DIALOG DISCARDABLE  0, 0, 281, 114
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "ユーザーの削除"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     PUSHBUTTON      "了解",IDOK,114,91,50,14
!     DEFPUSHBUTTON   "取消し",IDCANCEL,168,91,50,14
!     PUSHBUTTON      "ヘルプ",9,222,91,50,14
!     LTEXT           "注意!\n\nこの操作はユーザー %1 のアカウントを永久に削除します。",
!                     IDC_DELETE_TITLE,36,10,232,32
!     ICON            32515,-1,7,6,20,20
!     CONTROL         "このアカウントの KAS データベース項目を削除(&K)",
!                     IDC_DELETE_KAS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,
!                     53,250,10
!     CONTROL         "このアカウントの PTS データベース項目を削除(&P)",
!                     IDC_DELETE_PTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,
!                     72,250,10
! END
! 
! IDD_GROUP_DELETE DIALOG DISCARDABLE  0, 0, 281, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "グループの削除"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     PUSHBUTTON      "了解",IDOK,113,61,50,14
!     DEFPUSHBUTTON   "取消し",IDCANCEL,167,61,50,14
!     PUSHBUTTON      "ヘルプ",9,221,61,50,14
!     LTEXT           "注意!\n\nこの操作はグループ %1 を永久に削除します。",
!                     IDC_DELETE_TITLE,36,12,238,38
!     ICON            32515,-1,7,6,20,20
! END
! 
! IDD_CELL_GENERAL DIALOG DISCARDABLE  0, 0, 230, 134
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "一般"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "最大ユーザー ID(&U):",IDC_STATIC,11,91,76,8
!     EDITTEXT        IDC_CELL_USERMAX,102,89,40,14,ES_AUTOHSCROLL
!     LTEXT           "最大グループ ID(&G):",IDC_STATIC,11,109,76,8
!     EDITTEXT        IDC_CELL_GROUPMAX,102,107,40,14,ES_AUTOHSCROLL
!     GROUPBOX        "ユーザー ID とグループ ID",IDC_STATIC,5,31,220,97
!     LTEXT           "以下の設定は、これまでに使用された最大のユーザーおよびグループ ID の数値を反映します。値を増加するのはかまいませんが、新しい値が既存のアカウントと矛盾しないという確信がある場合を除き、値を減少すべきではありません。",
!                     IDC_STATIC,11,43,208,39
!     ICON            IDI_CELL,IDC_STATIC,5,5,20,20
!     LTEXT           "セル %1",IDC_CELL_NAME,32,7,193,16
! END
! 
! IDD_NEWUSER_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "一般"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "ユーザーがパスワードを変更可能(&C)",IDC_USER_CPW,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,47,120,10
!     PUSHBUTTON      "パスワードの変更(&P)",IDC_USER_CPW_NOW,138,44,85,14
!     CONTROL         "ユーザーが旧パスワードを再使用可能(&R)",IDC_USER_RPW,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,65,149,10
!     CONTROL         "パスワードの有効期間(&V)",IDC_USER_PWEXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,25,78,94,10
!     LTEXT           "日数",IDC_STATIC,197,81,17,8
!     EDITTEXT        IDC_USER_PWEXPIRATION,133,79,37,13,ES_AUTOHSCROLL
!     CONTROL         "アカウントの有効期限(&E):",IDC_USER_EXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,91,87,10
!     CONTROL         "",IDC_USER_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,79,
!                     103,61,12
!     CONTROL         "",IDC_USER_EXPIRE_TIME,"Time",WS_BORDER | WS_TABSTOP,
!                     158,102,53,12
!     CONTROL         "アカウントをロック(&L)",IDC_USER_FAILLOCK,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,7,138,78,10
!     LTEXT           "回の連続ログイン失敗後",IDC_STATIC,148,139,73,8
!     EDITTEXT        IDC_USER_FAILLOCK_COUNT,101,137,27,13,ES_AUTOHSCROLL
!     CONTROL         "無期限に (管理者がロック解除するまで) ロック(&K)",
!                     IDC_USER_FAILLOCK_INFINITE,"Button",BS_AUTORADIOBUTTON,
!                     25,153,180,10
!     CONTROL         "アカウントのロック期間(&F)",IDC_USER_FAILLOCK_FINITE,
!                     "Button",BS_AUTORADIOBUTTON,25,165,113,10
!     CONTROL         "",IDC_USER_FAILLOCK_DURATION,"Elapsed",WS_BORDER | 
!                     WS_TABSTOP,79,176,56,12
!     PUSHBUTTON      "ロック解除(&U)",IDC_USER_UNLOCK,161,175,61,14
!     GROUPBOX        "失敗したログイン試行",IDC_STATIC,5,124,220,67
!     ICON            IDI_USER,IDC_STATIC,5,5,20,20
!     LTEXT           "セル %1 内の新規ユーザー",IDC_USER_NAME,35,7,188,16
!     GROUPBOX        "アカウント",IDC_STATIC,5,32,220,85
! END
! 
! IDD_NEWUSER_ADVANCED DIALOG DISCARDABLE  0, 0, 232, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "拡張"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "このアカウントの KAS データベース項目を作成 (推奨)(&K)",
!                     IDC_USER_CREATE_KAS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,5,6,219,11
!     CONTROL         "このアカウントの PTS データベース項目を作成 (推奨)(&P)",
!                     IDC_USER_CREATE_PTS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,5,23,220,10
!     CONTROL         "これをシステム・アカウントにします (暗号化なし) (&S)",
!                     IDC_USER_NOSEAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     40,211,10
!     CONTROL         "ユーザーが管理権限を持ちます(&A)",IDC_USER_ADMIN,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,5,57,138,10
!     CONTROL         "チケットの許可、存続時間(&G):",IDC_USER_TGS,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,5,74,112,10
!     CONTROL         "",IDC_USER_LIFETIME,"Elapsed",WS_BORDER | WS_TABSTOP,
!                     132,73,66,12
!     CONTROL         "グループ作成割り当て量(&Q):",IDC_USER_GROUP_HASQUOTA,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,91,116,10
!     EDITTEXT        IDC_USER_GROUP_QUOTA,132,90,27,13,ES_AUTOHSCROLL
!     LTEXT           "アカウント状況の表示(&V):",-1,11,137,91,8
!     COMBOBOX        IDC_USER_PERM_STATUS,111,135,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "所有グループのリスト(&W):",-1,11,150,91,8
!     COMBOBOX        IDC_USER_PERM_OWNED,111,148,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "グループ・メンバーシップのリスト(&M):",-1,11,163,112,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,111,173,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "その他のアカウントのアクセス権",-1,5,109,220,82
!     LTEXT           "このアカウントを見ることができるユーザーを指定します。",
!                     -1,7,124,215,8
! END
! 
! IDD_TAB_MACHINES DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "パターン:",IDC_MACHINES_PATTERN_PROMPT,155,6,34,8
!     LTEXT           "照会中です。お待ちください...",IDC_MACHINES_TITLE,4,6,
!                     142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,98
!     PUSHBUTTON      "作成(&C)...",M_MACHINE_CREATE,15,126,55,14
!     PUSHBUTTON      "メンバーシップ(&M)...",M_MEMBERSHIP,74,126,83,14
!     PUSHBUTTON      "プロパティー(&R)...",M_PROPERTIES,163,126,74,14
! END
! 
! IDD_NEWMACHINE_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "グループ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "グループ",IDC_STATIC,5,31,220,160
!     LTEXT           "以下の設定を使用して、このアカウントが属する初期グループのリストと、このアカウントが所有するグループを選択することができます。",
!                     IDC_STATIC,5,3,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "削除(&R)",IDC_MEMBER_REMOVE,167,170,50,14
!     PUSHBUTTON      "追加(&A)...",IDC_MEMBER_ADD,113,170,50,14
!     CONTROL         "このアカウントが属するグループを表示(&S)",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "このアカウントが所有するグループを表示(&H)",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(照会中です。お待ちください...)",IDC_GROUPS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_NEWMACHINE_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "拡張"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "アカウント状況の表示(&S):",IDC_STATIC,11,85,85,8
!     COMBOBOX        IDC_USER_PERM_STATUS,111,84,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "所有グループのリスト(&W):",IDC_STATIC,11,98,85,8
!     COMBOBOX        IDC_USER_PERM_OWNED,111,98,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "グループ・メンバーシップのリスト(&M):",IDC_STATIC,11,
!                     113,112,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,111,123,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "その他のアカウントのアクセス権",IDC_STATIC,5,57,220,82
!     LTEXT           "このアカウントを見ることができるユーザーを指定します。",
!                     IDC_STATIC,7,72,215,8
!     ICON            IDI_SERVER,IDC_STATIC,5,5,20,20
!     LTEXT           "セル %1 の新規 IP アドレス・アカウント",IDC_USER_NAME,
!                     35,8,190,23
! END
! 
! IDD_NEWMACHINE DIALOG DISCARDABLE  0, 0, 247, 126
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "IP アドレス・アカウントの作成"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "IP アドレス(&A):",-1,10,35,50,8
!     EDITTEXT        IDC_NEWUSER_NAME,70,35,127,14,ES_AUTOHSCROLL
!     CONTROL         "次に使用可能なアカウント ID を自動的に使用(&U)",
!                     IDC_NEWUSER_ID_AUTO,"Button",BS_AUTORADIOBUTTON,32,66,
!                     208,12
!     CONTROL         "特定アカウント ID を使用(&S):",IDC_NEWUSER_ID_MANUAL,
!                     "Button",BS_AUTORADIOBUTTON,32,85,106,10
!     EDITTEXT        IDC_NEWUSER_ID,176,83,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "グループ(&G)...",IDC_ADVANCED,7,103,58,14
!     DEFPUSHBUTTON   "了解",IDOK,103,103,43,14
!     PUSHBUTTON      "取消し",IDCANCEL,151,103,43,14
!     PUSHBUTTON      "ヘルプ",9,197,103,43,14
!     ICON            IDI_SERVER,-1,7,6,20,20
!     LTEXT           "セル %1 の新規 IP アドレス・アカウント",
!                     IDC_NEWUSER_TITLE,37,10,200,19
!     LTEXT           "アカウント ID:",-1,10,51,41,8
! END
! 
! IDD_MACHINE_DELETE DIALOG DISCARDABLE  0, 0, 318, 84
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "IP アドレス・アカウントの削除"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     PUSHBUTTON      "了解",IDOK,151,61,50,14
!     DEFPUSHBUTTON   "取消し",IDCANCEL,205,61,50,14
!     PUSHBUTTON      "ヘルプ",9,259,61,50,14
!     LTEXT           "注意!\n\nこの操作は IP アドレス・アカウント %1 を永久に削除します。",
!                     IDC_DELETE_TITLE,36,14,275,37
!     ICON            32515,-1,7,6,20,20
! END
! 
! IDD_MACHINE_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "拡張"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "アカウント状況の表示(&S):",IDC_STATIC,10,84,94,8
!     COMBOBOX        IDC_USER_PERM_STATUS,111,82,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "所有グループのリスト(&W):",IDC_STATIC,10,96,95,8
!     COMBOBOX        IDC_USER_PERM_OWNED,111,96,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "グループ・メンバーシップのリスト(&M):",IDC_STATIC,10,
!                     111,113,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,111,121,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "その他のアカウントのアクセス権",IDC_STATIC,5,57,220,82
!     LTEXT           "このアカウントを見ることができるユーザーを指定します。",
!                     IDC_STATIC,7,69,215,8
!     ICON            IDI_SERVER,IDC_STATIC,5,5,20,20
!     LTEXT           "IP アドレス・アカウント %1",IDC_USER_NAME,37,10,188,22
! END
! 
! IDD_MACHINE_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "グループ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "グループ",IDC_STATIC,5,31,220,160
!     LTEXT           "以下の設定を使用して、このアカウントが属しているグループのリストと、このアカウントが所有しているグループを変更することができます。",
!                     IDC_STATIC,5,4,220,21,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "削除(&R)",IDC_MEMBER_REMOVE,167,171,50,14
!     PUSHBUTTON      "追加(&A)...",IDC_MEMBER_ADD,113,171,50,14
!     CONTROL         "このアカウントが属しているグループを表示(&S)",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "このアカウントが所有しているグループを表示(&H)",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(照会中です。お待ちください...)",IDC_GROUPS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_OPTIONS DIALOG DISCARDABLE  0, 0, 235, 162
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "オプション"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "UNIX 形式の正規表現を使用(&U) (""^mar[ky]son\\..*$"")",
!                     IDC_REGEXP_UNIX,"Button",BS_AUTORADIOBUTTON,11,53,199,10
!     CONTROL         "Windows 形式の正規表現を使用(&W) (""mar?son.*"")",
!                     IDC_REGEXP_WINDOWS,"Button",BS_AUTORADIOBUTTON,11,69,189,
!                     10
!     CONTROL         "管理トークンなしで機能する場合に警告を表示",
!                     IDC_WARN_BADCREDS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
!                     11,116,209,10
!     CONTROL         "情報を",IDC_REFRESH,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,11,134,36,10
!     LTEXT           "分ごとに最新表示",IDC_STATIC,114,135,65,8
!     EDITTEXT        IDC_REFRESH_RATE,56,133,30,14,ES_AUTOHSCROLL
!     ICON            IDI_MAIN,IDC_STATIC,5,5,20,20
!     LTEXT           "AFS アカウント・マネージャー・オプション",IDC_STATIC,37,
!                     12,161,8
!     GROUPBOX        "正規表現",IDC_STATIC,5,37,225,57
!     GROUPBOX        "一般",IDC_STATIC,5,100,225,57
! END
! 
! IDD_SEARCH_USERS DIALOG DISCARDABLE  0, 0, 284, 129
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "表示するユーザーの選択"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "すべてのユーザー・アカウントの項目を表示(&A)",
!                     IDC_SEARCH_ALL,"Button",BS_AUTORADIOBUTTON,7,38,248,10
!     CONTROL         "この日付より前に期限が切れるユーザー・アカウントのみを表示(&E)",
!                     IDC_SEARCH_EXPIRE,"Button",BS_AUTORADIOBUTTON,7,52,248,
!                     10
!     CONTROL         "この日付より前に期限が切れるパスワードを持つアカウントのみを表示(&F)",
!                     IDC_SEARCH_PWEXPIRE,"Button",BS_AUTORADIOBUTTON,7,79,248,
!                     10
!     CONTROL         "",IDC_SEARCH_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,
!                     211,63,61,12
!     CONTROL         "",IDC_SEARCH_PWEXPIRE_DATE,"Date",WS_BORDER | 
!                     WS_TABSTOP,211,92,61,12
!     DEFPUSHBUTTON   "了解",IDOK,116,110,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,170,110,50,14
!     PUSHBUTTON      "ヘルプ",9,224,110,50,14
!     LTEXT           "以下の制御を使用して、「ユーザー」タブに表示するユーザーを指定することができます。さらに、「ユーザー」タブの「パターン」制御に部分的なアカウント名を入力して、ユーザーのリストを限定することができます。",
!                     IDC_STATIC,7,6,272,25
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_MAIN, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 309
!         TOPMARGIN, 3
!         BOTTOMMARGIN, 217
!     END
! 
!     IDD_TAB_USERS, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_TAB_GROUPS, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_ACTIONS, DIALOG
!     BEGIN
!         LEFTMARGIN, 2
!         RIGHTMARGIN, 234
!         TOPMARGIN, 2
!         BOTTOMMARGIN, 56
!     END
! 
!     IDD_HELP_ABOUT, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 222
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 137
!     END
! 
!     IDD_HELP_ERROR, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 214
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 137
!     END
! 
!     IDD_HELP_FIND, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 227
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 70
!     END
! 
!     IDD_COLUMNS, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 281
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 143
!     END
! 
!     IDD_USER_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_USER_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_GROUP_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_USER_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_GROUP_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_BROWSE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 143
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_USER_PASSWORD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 138
!     END
! 
!     IDD_GROUP_RENAME, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 267
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 143
!     END
! 
!     IDD_BROWSE_COMBO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 146
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_BROWSE_BOTH, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 162
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_NEWUSER_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWUSER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 231
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 163
!     END
! 
!     IDD_NEWGROUP_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWGROUP_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWGROUP, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 231
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 128
!     END
! 
!     IDD_USER_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 107
!     END
! 
!     IDD_GROUP_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_CELL_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 129
!     END
! 
!     IDD_NEWUSER_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWUSER_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_TAB_MACHINES, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_NEWMACHINE_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWMACHINE_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWMACHINE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 240
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 119
!     END
! 
!     IDD_MACHINE_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 311
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_MACHINE_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_MACHINE_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_OPTIONS, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 230
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 157
!     END
! 
!     IDD_SEARCH_USERS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 277
!         TOPMARGIN, 6
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include <windows.h>\r\n"
!     "#include <WINNT\\al_resource.h>\r\n"
!     "#ifndef APSTUDIO_INVOKED\r\n"
!     "#define AFS_VERINFO_FILE_DESCRIPTION ""AFS アカウント・マネージャー""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "#endif // APSTUDIO_INVOKED\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! 32513                   ICON    DISCARDABLE     "..\\afsapplib\\resource\\error.ico"
! IDI_MAIN                ICON    DISCARDABLE     "resource\\afsusrmgr.ico"
! 32515                   ICON    DISCARDABLE     "..\\afsapplib\\resource\\warning.ico"
! IDI_USER                ICON    DISCARDABLE     "..\\afsapplib\\resource\\user.ico"
! IDI_GROUP               ICON    DISCARDABLE     "..\\afsapplib\\resource\\group.ico"
! IDI_CELL                ICON    DISCARDABLE     "..\\afsapplib\\resource\\cell.ico"
! IDI_SERVER              ICON    DISCARDABLE     "..\\afsapplib\\resource\\server.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Menu
! //
! 
! MENU_MAIN MENU DISCARDABLE 
! BEGIN
!     POPUP "セル(&C)"
!     BEGIN
!         MENUITEM "選択(&S)...",                 M_OPENCELL
!         MENUITEM "認証(&A)...",                 M_CREDENTIALS
!         MENUITEM SEPARATOR
!         MENUITEM "セル・プロパティー(&R)...",   M_CELL_PROPERTIES
!         MENUITEM SEPARATOR
!         MENUITEM "終了(&X)",                    M_EXIT
!     END
!     POPUP "編集(&E)"
!     BEGIN
!         MENUITEM "ユーザーの作成(&C)...",       M_USER_CREATE
!         MENUITEM "グループの作成(&C)...",       M_GROUP_CREATE
!         MENUITEM SEPARATOR
!         MENUITEM "名前変更(&N)...",             M_RENAME
!         MENUITEM "削除(&D)...",                 M_DELETE
!         MENUITEM SEPARATOR
!         MENUITEM "すべて選択(&A)\tCtrl+A",      M_SELECTALL
!         MENUITEM SEPARATOR
!         MENUITEM "最新表示(&F)\tF5",            M_REFRESH
!         MENUITEM "メンバーシップ(&M)...\tCtrl+M", M_MEMBERSHIP
!         MENUITEM "プロパティー(&R)\tAlt+Enter", M_PROPERTIES
!     END
!     POPUP "表示(&V)"
!     BEGIN
!         POPUP "アイコン(&I)"
!         BEGIN
!             MENUITEM "大アイコン(&G)",              M_VIEW_LARGE, CHECKED
!             MENUITEM "小アイコン(&M)",              M_VIEW_SMALL, CHECKED
!             MENUITEM "詳細(&D)",                    M_VIEW_DETAILS, CHECKED
!             MENUITEM SEPARATOR
!             MENUITEM "標準(&N)",                    M_VIEW_ONE, CHECKED
!             MENUITEM "すべてのアイコン(&A)",        M_VIEW_TWO, CHECKED
!             MENUITEM "状況のみ(&S)",                M_VIEW_STATUS, CHECKED
!         END
!         MENUITEM SEPARATOR
!         MENUITEM "進行中の操作(&P)",            M_ACTIONS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "列(&C)...",                   M_COLUMNS
!         MENUITEM "オプション(&O)...",           M_OPTIONS
!         MENUITEM SEPARATOR
!         MENUITEM "すべて最新表示(&F)",          M_REFRESHALL
!     END
!     POPUP "ヘルプ(&H)"
!     BEGIN
!         MENUITEM "目次(&C)",                    M_CONTENTS
!         MENUITEM "コマンド検索(&F)...",         M_FIND
!         MENUITEM "エラー・コードの検索(&L)...", M_LOOKUP
!         MENUITEM SEPARATOR
!         MENUITEM "AFS アカウント・マネージャーについて(&A)...", M_ABOUT
!     END
! END
! 
! MENU_USER_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "表示(&V)"
!     BEGIN
!         MENUITEM "大アイコン(&G)",              M_VIEW_LARGE, CHECKED
!         MENUITEM "小アイコン(&M)",              M_VIEW_SMALL, CHECKED
!         MENUITEM "詳細(&D)",                    M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "標準(&N)",                    M_VIEW_ONE, CHECKED
!         MENUITEM "すべてのアイコン(&A)",        M_VIEW_TWO, CHECKED
!         MENUITEM "状況のみ(&S)",                M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "ユーザーの作成(&C)...",       M_USER_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "すべて最新表示(&F)",          M_REFRESHALL
! END
! 
! MENU_GROUP_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "表示(&V)"
!     BEGIN
!         MENUITEM "大アイコン(&G)",              M_VIEW_LARGE, CHECKED
!         MENUITEM "小アイコン(&M)",              M_VIEW_SMALL, CHECKED
!         MENUITEM "詳細(&D)",                    M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "標準(&N)",                    M_VIEW_ONE, CHECKED
!         MENUITEM "すべてのアイコン(&A)",        M_VIEW_TWO, CHECKED
!         MENUITEM "状況のみ(&S)",                M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "グループの作成(&C)...",       M_GROUP_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "すべて最新表示(&F)",          M_REFRESHALL
! END
! 
! MENU_USER MENU DISCARDABLE 
! BEGIN
!     MENUITEM "グループ(&G)...",             M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "パスワードの変更(&P)...",     M_CPW
!     MENUITEM "ロック解除(&U)",              M_UNLOCK
!     MENUITEM "削除(&D)...",                 M_DELETE
!     MENUITEM "最新表示(&F)",                M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "プロパティー(&R)...",         M_PROPERTIES
! END
! 
! MENU_GROUP MENU DISCARDABLE 
! BEGIN
!     MENUITEM "グループ・メンバー(&M)...",   M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "名前変更(&R)...",             M_RENAME
!     MENUITEM "削除(&D)...",                 M_DELETE
!     MENUITEM "最新表示(&F)",                M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "プロパティー(&R)...",         M_PROPERTIES
! END
! 
! MENU_COLUMNS MENU DISCARDABLE 
! BEGIN
!     MENUITEM "列(&C)...",                   M_COLUMNS
! END
! 
! MENU_MACHINE_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "表示(&V)"
!     BEGIN
!         MENUITEM "大アイコン(&G)",              M_VIEW_LARGE, CHECKED
!         MENUITEM "小アイコン(&M)",              M_VIEW_SMALL, CHECKED
!         MENUITEM "詳細(&D)",                    M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "標準(&N)",                    M_VIEW_ONE, CHECKED
!         MENUITEM "すべてのアイコン(&A)",        M_VIEW_TWO, CHECKED
!         MENUITEM "状況のみ(&S)",                M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "アカウントの作成(&C)...",     M_MACHINE_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "すべて最新表示(&F)",          M_REFRESHALL
! END
! 
! MENU_MACHINE MENU DISCARDABLE 
! BEGIN
!     MENUITEM "グループ(&G)...",             M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "削除(&D)...",                 M_DELETE
!     MENUITEM "最新表示(&F)",                M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "プロパティー(&R)...",         M_PROPERTIES
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Accelerator
! //
! 
! ACCEL_MAIN ACCELERATORS DISCARDABLE 
! BEGIN
!     "A",            M_SELECTALL,            VIRTKEY, CONTROL, NOINVERT
!     "M",            M_MEMBERSHIP,           VIRTKEY, CONTROL, NOINVERT
!     VK_APPS,        M_KEY_MENU,             VIRTKEY, NOINVERT
!     VK_ESCAPE,      M_KEY_ESC,              VIRTKEY, NOINVERT
!     VK_F10,         M_KEY_MENU,             VIRTKEY, SHIFT, NOINVERT
!     VK_F5,          M_REFRESH,              VIRTKEY, NOINVERT
!     VK_RETURN,      M_KEY_RETURN,           VIRTKEY, NOINVERT
!     VK_RETURN,      M_KEY_PROPERTIES,       VIRTKEY, ALT, NOINVERT
!     VK_TAB,         M_KEY_TAB,              VIRTKEY, NOINVERT
!     VK_TAB,         M_KEY_CTRLTAB,          VIRTKEY, CONTROL, NOINVERT
!     VK_TAB,         M_KEY_BACKTAB,          VIRTKEY, SHIFT, NOINVERT
!     VK_TAB,         M_KEY_CTRLBACKTAB,      VIRTKEY, SHIFT, CONTROL, 
!                                                     NOINVERT
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // String Table
! //
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_APP_TITLE           "AFS アカウント・マネージャー"
!     IDS_USRCOL_NAME         "ユーザー名"
!     IDS_GRPCOL_NAME         "グループ名"
!     IDS_BADCREDS_DESC       "管理者としてログインしないと、%1 セルの管理に十分な権限が与えられない可能性があります。"
!     IDS_TAB_USERS           "ユーザー"
!     IDS_TAB_GROUPS          "グループ"
!     IDS_CELL_NONE           "(セルが選択されていません)"
!     IDS_CRED_NONE           "(このセルにトークンがありません)"
!     IDS_CRED_EXP            "%1 (トークンの期限が %2 に切れました)"
!     IDS_CRED_OK             "%1 (トークンの期限が %2 に切れます)"
!     IDS_USERS_ALL           "セル %1 内のすべてのユーザー:"
!     IDS_USERS_PATTERN       "セル %1 内で選択されたユーザー:"
!     IDS_GROUPS_ALL          "セル %1 内のすべてのグループ:"
!     IDS_GROUPS_PATTERN      "セル %1 内で選択されたグループ:"
!     IDS_QUERYING_LONG       "照会中です。お待ちください..."
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ACTION_DESC_NONE    "進行中の操作はありません。"
!     IDS_ACTION_DESC_ONE     "次の操作が現在進行中です:"
!     IDS_ACTION_DESC_MULT    "次の操作が現在進行中です:"
!     IDS_ACTCOL_OPERATION    "操作"
!     IDS_ACTCOL_ELAPSED      "経過時間"
!     IDS_ACTION_REFRESH_CELL "セル %1 の情報を最新表示中"
!     IDS_ACTION_REFRESH_SERVER "サーバー %1 の情報を最新表示中"
!     IDS_ACTION_SCOUT_CELL   "セル %1 の問題をテスト中"
!     IDS_ACTION_SCOUT_SERVER "サーバー %1 の問題をテスト中"
!     IDS_FIND_NOTHING_TITLE  "コマンドが選択されていません"
!     IDS_FIND_NOTHING_DESC   "操作の実行方法については、リストからコマンド行を選択するか、キーワードを入力してください。"
!     IDS_FIND_UNKNOWN_TITLE  "不明なコマンド"
!     IDS_FIND_UNKNOWN_DESC   "AFS アカウント・マネージャーは ""%1"" コマンドのヘルプ・トピックを見つけられませんでした。"
!     IDS_HELPABOUT_DESC1     "警告: このコンピューター・プログラムは、著作権および国際規約により保護されています。+"
!     IDS_HELPABOUT_DESC2     "許可なくこのソフトウェアを複写あるいは配布すると、民事または刑事上の犯罪となり、法律のもと告訴される場合があります。\n\n+"
!     IDS_HELPABOUT_DESC3     "AFS は Transarc Corporation (IBM company) の商標です。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COLUMNS_TITLE       "列 - AFS アカウント・マネージャー"
!     IDS_USER_PROPERTIES_TITLE_MULTIPLE "複数ユーザー - プロパティー"
!     IDS_USER_PROPERTIES_TITLE "ユーザー %1 - プロパティー"
!     IDS_USER_NAME_MULTIPLE  "ユーザー "
!     IDS_ACCOUNTACCESS_OWNER "アカウント所有者のみ"
!     IDS_ACCOUNTACCESS_GROUP "グループ・メンバーのみ"
!     IDS_ACCOUNTACCESS_ANYONE "すべての人"
!     IDS_ACCOUNTACCESS_MIXED "(複数設定)"
!     IDS_USER_KEY            "%1\nバージョン %2, チェックサム %3"
!     IDS_USER_KEY_HIDDEN     "(実鍵値が隠されている)"
!     IDS_USER_KEY_UNKNOWN    "(不明)"
!     IDS_USER_KEY_MULTIPLE   "(複数鍵)"
!     IDS_ACTION_USER_CHANGE  "ユーザー %1　のプロパティーを変更"
!     IDS_COUNT_WEEKS         "%1w"
!     IDS_COUNT_DAYS          "%1d"
!     IDS_COUNT_HOURS         "%1h"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COUNT_MINUTES       "%1m"
!     IDS_COUNT_SECONDS       "%1s"
!     IDS_GROUP_PROPERTIES_TITLE_MULTIPLE "複数グループ - プロパティー"
!     IDS_GROUP_PROPERTIES_TITLE "グループ %1 - プロパティー"
!     IDS_GROUP_NAME_MULTIPLE "グループ "
!     IDS_ACCOUNTACCESS_OWNGROUP "グループ所有者のみ"
!     IDS_OWNER_MIXED         "複数所有者"
!     IDS_CREATOR_MIXED       "複数作成者"
!     IDS_GROUP_CHANGEOWNER_TITLE "グループ所有者の変更"
!     IDS_GROUP_CHANGEOWNER_PROMPT "所有者:"
!     IDS_MEMBER_MIXED        "(一部)"
!     IDS_USER_SHOW_MEMBER_TITLE "このユーザーが属しているすべてのグループ:"
!     IDS_USER_SHOW_OWNER_TITLE "このユーザーが所有しているすべてのグループ:"
!     IDS_GROUP_SHOW_MEMBER_TITLE "このグループのすべてのメンバー:"
!     IDS_USER_SHOW_MEMBER_TITLE_MULTIPLE 
!                             "これらのユーザーが属しているすべてのグループ:"
!     IDS_GROUP_SHOW_MEMBER_TITLE_MULTIPLE "これらのグループのすべてのメンバー:"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ACTION_GROUP_RENAME "グループ %1 を %2 に名前変更"
!     IDS_RENAME_TITLE        "グループ %1 の名前変更"
!     IDS_GROUP_TITLE         "グループ %1"
!     IDS_SHOW_USERS          "このセル内のすべてのユーザー"
!     IDS_SHOW_GROUPS         "このセル内のすべてのグループ"
!     IDS_GROUP_SHOW_OWNED_TITLE "このグループが所有しているすべてのグループ:"
!     IDS_BROWSE_TITLE_OWNED  "所有するグループの選択"
!     IDS_BROWSE_PROMPT_OWNED "グループ:"
!     IDS_BROWSE_CHECK_OWNED  "現在所有されていないグループのみ表示"
!     IDS_NEWUSER_PROPERTIES_TITLE "ユーザーの作成 - 拡張"
!     IDS_NEWUSER_SHOW_MEMBER_TITLE "このユーザーが属するすべてのグループ:"
!     IDS_NEWUSER_SHOW_OWNER_TITLE "このユーザーが所有するすべてのグループ:"
!     IDS_ACTION_CELL_CHANGE  "セル %1 のプロパティーを変更"
!     IDS_ACTION_USER_CREATE  "ユーザー %1 のアカウントを作成"
!     IDS_NEWGROUP_PROPERTIES_TITLE "グループの作成 - 拡張"
!     IDS_NEWGROUP_SHOW_MEMBER_TITLE "この新規グループの初期メンバー:"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_USRCOL_FLAGS        "フラグ"
!     IDS_USRCOL_ADMIN        "管理?"
!     IDS_USRCOL_TICKET       "チケット?"
!     IDS_USRCOL_SYSTEM       "システム?"
!     IDS_USRCOL_CHANGEPW     "パスワードの変更?"
!     IDS_USRCOL_REUSEPW      "パスワードの再使用?"
!     IDS_USRCOL_EXPIRES      "アカウント有効期限"
!     IDS_USRCOL_LASTPW       "最終パスワード変更"
!     IDS_USRCOL_LASTMOD      "最終変更"
!     IDS_USRCOL_LASTMODBY    "最終変更者"
!     IDS_USRCOL_LIFETIME     "チケット存続時間"
!     IDS_USRCOL_CDAYPW       "パスワード有効期限"
!     IDS_USRCOL_CFAILLOGIN   "ログイン失敗"
!     IDS_USRCOL_CSECLOCK     "ログイン失敗ロック時間"
!     IDS_USRCOL_CGROUPMAX    "グループ作成割り当て量"
!     IDS_USRCOL_UID          "UID"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_USRCOL_OWNER        "所有者"
!     IDS_USRCOL_CREATOR      "作成者"
!     IDS_USRCOL_STATUS       "状況"
!     IDS_USRFLAG_ADMIN       "A "
!     IDS_USRFLAG_TICKET      "T "
!     IDS_USRFLAG_ENCRYPT     "E "
!     IDS_USRFLAG_CHANGEPW    "C "
!     IDS_USRFLAG_REUSEPW     "R "
!     IDS_YES                 "はい"
!     IDS_NO                  "いいえ"
!     IDS_GRPCOL_CMEMBERS     "メンバーシップ・カウント"
!     IDS_GRPCOL_UID          "UID"
!     IDS_GRPCOL_OWNER        "所有者"
!     IDS_GRPCOL_CREATOR      "作成者"
!     IDS_COL_USERS           "セル内のユーザー"
!     IDS_COL_GROUPS          "セル内のグループ"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_NEWGROUP_SHOW_OWNED_TITLE "この新規グループが所有するグループ:"
!     IDS_USER_DELETE_MULTIPLE 
!                             "注意!\n\nこの操作は次のユーザーのアカウントを永久に削除します: %1"
!     IDS_GROUP_DELETE_MULTIPLE 
!                             "注意!\n\nこの操作は次のグループを永久に削除します: %1"
!     IDS_ACTION_GROUP_CREATE "グループ %1 の作成"
!     IDS_ACTION_USER_DELETE  "ユーザー %1 のアカウントを削除"
!     IDS_ACTION_GROUP_DELETE "グループ %1 の削除"
!     IDS_CELL_PROPERTIES_TITLE "セル %1 - プロパティー"
!     IDS_MACHINES_ALL        "セル %1 内のすべての IP アドレス・アカウント:"
!     IDS_MACHINES_PATTERN    "セル %1 内で選択された IP アドレス・アカウント:"
!     IDS_TAB_MACHINES        "アドレス"
!     IDS_MACHINE_DELETE_MULTIPLE 
!                             "注意!\n\nこの操作は次の IP アドレス・アカウントを永久に削除します: %1"
!     IDS_NEWMACHINE_PROPERTIES_TITLE "IP アドレス・アカウントの作成 - 拡張"
!     IDS_MACHINE_PROPERTIES_TITLE_MULTIPLE 
!                             "複数 IP アドレス・アカウント - プロパティー"
!     IDS_MACHINE_PROPERTIES_TITLE "IP アドレス・アカウント %1 - プロパティー"
!     IDS_COL_MACHINES        "セル内の IP アドレス・アカウント"
!     IDS_MCHCOL_NAME         "IP アドレス"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_BROWSE_TITLE_JOIN   "組み込むグループの選択"
!     IDS_BROWSE_PROMPT_JOIN  "グループ:"
!     IDS_BROWSE_CHECK_JOIN   "現在組み込まれていないグループのみ表示"
!     IDS_BROWSE_TITLE_OWN    "所有するグループの選択"
!     IDS_BROWSE_PROMPT_OWN   "グループ:"
!     IDS_BROWSE_CHECK_OWN    "現在所有されていないグループのみ表示"
!     IDS_BROWSE_TITLE_MEMBER "組み込むユーザーの選択"
!     IDS_BROWSE_PROMPT_MEMBER "ユーザー:"
!     IDS_BROWSE_CHECK_MEMBER "メンバーでないユーザーのみ表示"
!     IDS_SEPARATORS          ",;"
!     IDS_ACTION_GROUP_CHANGE "グループ %1 のプロパティーを変更"
!     IDS_ACTION_GROUP_MEMBER_ADD "ユーザー %2 をグループ %1 に追加"
!     IDS_ACTION_GROUP_MEMBER_REMOVE "ユーザー %2 をグループ %1 から削除"
!     IDS_ACTION_USER_PW_CHANGE "ユーザー %1 のパスワードを設定"
!     IDS_UNKNOWN_NAME        "(不明)"
!     IDS_ACTION_USER_UNLOCK  "ユーザー %1 のアカウントをロック解除"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_MCHCOL_CGROUPMAX    "グループ作成割り当て量"
!     IDS_MCHCOL_UID          "アカウント ID"
!     IDS_MCHCOL_OWNER        "所有者"
!     IDS_MCHCOL_CREATOR      "作成者"
!     IDS_OPTIONS_TITLE       "AFS アカウント・マネージャー・オプション"
!     IDS_WARNING_TITLE       "注意"
!     IDS_WARNING_SYSTEM_ACCOUNT 
!                             "%1 アカウントに不適切な変更を行うと AFS の一部が正しく機能しなくなるため、このアカウントの変更には注意が必要です。\n\n続けてもいいですか?"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_PTS_ADDUSER "pts adduser"
!     IDS_COMMAND_PTS_CHOWN   "pts chown"
!     IDS_COMMAND_PTS_CREATEGROUP "pts creategroup"
!     IDS_COMMAND_PTS_CREATEUSER "pts createuser"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_PTS_DELETE  "pts delete"
!     IDS_COMMAND_PTS_EXAMINE "pts examine"
!     IDS_COMMAND_PTS_LISTMAX "pts listmax"
!     IDS_COMMAND_PTS_LISTOWNED "pts listowned"
!     IDS_COMMAND_PTS_MEMBERSHIP "pts membership"
!     IDS_COMMAND_PTS_REMOVEUSER "pts removeuser"
!     IDS_COMMAND_PTS_RENAME  "pts rename"
!     IDS_COMMAND_PTS_SETFIELDS "pts setfields"
!     IDS_COMMAND_PTS_SETMAX  "pts setmax"
!     IDS_COMMAND_KAS_CREATE  "kas create"
!     IDS_COMMAND_KAS_DELETE  "kas delete"
!     IDS_COMMAND_KAS_EXAMINE "kas examine"
!     IDS_COMMAND_KAS_GETRANDOMKEY "kas getrandomkey"
!     IDS_COMMAND_KAS_LIST    "kas list"
!     IDS_COMMAND_KAS_SETFIELDS "kas setfields"
!     IDS_COMMAND_KAS_SETKEY  "kas setkey"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_COMMAND_KAS_SETPASSWORD "kas setpassword"
!     IDS_COMMAND_KAS_STRINGTOKEY "kas stringtokey"
!     IDS_COMMAND_KAS_UNLOCK  "kas unlock"
!     IDS_MACHINE_SHOW_MEMBER_TITLE 
!                             "このアカウントが属しているすべてのグループ:"
!     IDS_MACHINE_SHOW_OWNER_TITLE 
!                             "このアカウントが所有しているすべてのグループ:"
!     IDS_MACHINE_SHOW_MEMBER_TITLE_MULTIPLE 
!                             "これらのアカウントが属しているすべてのグループ:"
!     IDS_NEWMACHINE_SHOW_MEMBER_TITLE "このアカウントが属するすべてのグループ:"
!     IDS_NEWMACHINE_SHOW_OWNER_TITLE 
!                             "このアカウントが所有するすべてのグループ:"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_BAD_REMOTE_SERVER 
!                             "AFS アカウント・マネージャーが %1 コンピューターで実行中の管理プロセスに接続できませんでした。\n\n他のコンピューターで TaAfsAdmSvr.exe プログラムを実行することにより、管理タスクをリモートで実行することができます。"
!     IDS_ERROR_BAD_LOCAL_SERVER 
!                             "AFS アカウント・マネージャーが TaAfsAdmSvr.exe プログラムを見つけられなかったか、AFS 管理を実行するためにコンピューターを準備できませんでした。"
!     IDS_ERROR_CANT_OPEN_CELL 
!                             "AFS アカウント・マネージャーがセル %1 内のサーバーに接続できませんでした。\n\nセルの名前を正しく入力したかをもう一度確認してください。"
!     IDS_ERROR_BADCREDENTIALS 
!                             "入力した AFS ID が認識されないか、または指定したパスワードが正しくありません。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_TRANSLATED    "エラー番号 0x%1 (%2):\n\n%3"
!     IDS_ERROR_NOTTRANSLATED "エラー番号 0x%1 (%2) が認識できません。"
!     IDS_ERROR_USER_MULTIPROP 
!                             "プロパティー・ウィンドウがすでに選択されたユーザーについて開かれているため、AFS アカウント・マネージャーが要求されたウィンドウを表示できません。"
!     IDS_ERROR_CANT_CHANGE_USER 
!                             "AFS アカウント・マネージャーがユーザー %1 のプロパティーを変更できませんでした。"
!     IDS_ERROR_GROUP_MULTIPROP 
!                             "プロパティー・ウィンドウがすでに選択されたグループについて開かれているため、AFS アカウント・マネージャーが要求されたウィンドウを表示できません。"
!     IDS_ERROR_CANT_CHANGE_GROUP 
!                             "AFS アカウント・マネージャーがグループ %1 のプロパティーを変更できませんでした。"
!     IDS_ERROR_CANT_TRANSLATE_USER 
!                             "AFS アカウント・マネージャーが指定された名前のユーザーを見つけられませんでした。\n\n名前を正しく入力したかを確かめてください。"
!     IDS_ERROR_CANT_TRANSLATE_GROUP 
!                             "AFS アカウント・マネージャーが指定された名前のユーザーを見つけられませんでした。\n\n名前を正しく入力したかを確かめてください。"
!     IDS_ERROR_CANT_GET_USERPROP 
!                             "AFS アカウント・マネージャーがユーザー %1 のプロパティーを見つけられませんでした。"
!     IDS_ERROR_CANT_CHANGE_PASSWORD 
!                             "AFS アカウント・マネージャーがユーザー %1 のパスワードを変更できませんでした。"
!     IDS_ERROR_CANT_GET_RANDOM_KEY 
!                             "AFS アカウント・マネージャーがランダム暗号化鍵を生成できませんでした。"
!     IDS_ERROR_CANT_SET_GROUPS 
!                             "AFS アカウント・マネージャーがユーザー %1 の指定されたグループ・リストを変更できませんでした。"
!     IDS_ERROR_CANT_SET_GROUPS_MULTIPLE 
!                             "AFS アカウント・マネージャーが次のユーザーの指定されたグループ・リストを変更できませんでした: %1"
!     IDS_ERROR_CANT_UNLOCK   "AFS アカウント・マネージャーがユーザー %1 のアカウントをロック解除できませんでした。"
!     IDS_ERROR_CANT_UNLOCK_MULTIPLE 
!                             "AFS アカウント・マネージャーが次のユーザーのアカウントをロック解除できませんでした: %1"
!     IDS_ERROR_CANT_SET_MEMBERS 
!                             "AFS アカウント・マネージャーがグループ %1 のメンバーのリストを変更できませんでした。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_ERROR_CANT_SET_MEMBERS_MULTIPLE 
!                             "AFS アカウント・マネージャーが次のグループのメンバーのリストを変更できませんでした: %1"
!     IDS_ERROR_CANT_RENAME_GROUP 
!                             "AFS アカウント・マネージャーがグループ %1 を ""%2"" に名前変更できませんでした。"
!     IDS_ERROR_CANT_CHANGE_OWNER 
!                             "AFS アカウント・マネージャーがグループ %1 の所有者を変更できませんでした。"
!     IDS_ERROR_CANT_CHANGE_OWNER_MULTIPLE 
!                             "AFS アカウント・マネージャーが次のグループの所有者を変更できませんでした: %1"
!     IDS_ERROR_CANT_CHANGE_CELL 
!                             "AFS アカウント・マネージャーがセル %1 のプロパティーを変更できませんでした。"
!     IDS_ERROR_NO_PASSWORD_GIVEN 
!                             "作成しているユーザー・アカウントのパスワードを指定してください。"
!     IDS_ERROR_MISMATCH_PASSWORD_GIVEN 
!                             "新規ユーザー・アカウントについて入力したパスワードが一致しません。"
!     IDS_ERROR_CANT_CREATE_USER 
!                             "AFS アカウント・マネージャーがユーザー %1 のアカウントを作成できませんでした。"
!     IDS_ERROR_CANT_CREATE_GROUP 
!                             "AFS アカウント・マネージャーがグループ %1 を作成できませんでした。"
!     IDS_ERROR_CANT_DELETE_USER 
!                             "AFS アカウント・マネージャーがユーザー %1 のアカウントを削除できませんでした。"
!     IDS_ERROR_CANT_DELETE_USER_MULTIPLE 
!                             "AFS アカウント・マネージャーが次のユーザーのアカウントを削除できませんでした: %1"
!     IDS_ERROR_CANT_DELETE_GROUP 
!                             "AFS アカウント・マネージャーがグループ %1 を削除できませんでした。"
!     IDS_ERROR_CANT_DELETE_GROUP_MULTIPLE 
!                             "AFS アカウント・マネージャーが次のグループを削除できませんでした: %1"
!     IDS_ERROR_BAD_REMOTE_SERVER_INSTALL 
!                             "AFS コントロール・センターが正しくインストールされていないため、AFS アカウント・マネージャーが開始できませんでした。\n\nAFS コントロール・センターの再インストールが必要である可能性があります。"
! END
! 
! STRINGTABLE DISCARDABLE 
! BEGIN
!     IDS_CMDLINE_TITLE       "エラー - AFS アカウント・マネージャー"
!     IDS_CMDLINE_SYNTAX      "AFS アカウント・マネージャーに指定したコマンド行が無効です。"
!     IDS_CMDLINE_UNRECOGNIZED 
!                             "AFS アカウント・マネージャーに指定したコマンド行が無効です。\n\n""%1""パラメーターが認識できません。"
!     IDS_CMDLINE_DUPLICATE   "AFS アカウント・マネージャーに指定したコマンド行が無効です。\n\n""%1""パラメーターが複数回指定されています。"
!     IDS_CMDLINE_UNEXPECTVALUE 
!                             "AFS アカウント・マネージャーに指定したコマンド行が無効です。\n\n""%1""パラメーターに値がありません。"
!     IDS_CMDLINE_MISSINGVAL  "AFS アカウント・マネージャーに指定したコマンド行が無効です。\n\n""%1""パラメーターの後に値が続いていません。"
!     IDS_CMDLINE_USERPASSWORD 
!                             "AFS アカウント・マネージャーに指定したコマンド行が無効です。\n\n新しい AFSトークンを取得するには、 ""/USER"" および ""/PASSWORD"" パラメーターを指定する必要があります。"
! END
! 
! #endif    // Japanese resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 7,1774 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include <windows.h>
! #include <WINNT\al_resource.h>
! #ifndef APSTUDIO_INVOKED
! #define AFS_VERINFO_FILE_DESCRIPTION "AFS アカウント・マネージャー"
  #define AFS_VERINFO_NAME "AfsUsrMgr"
  #define AFS_VERINFO_FILENAME "AfsUsrMgr.exe"
  #define AFS_VERINFO_LANG_CODE 0x411
  #define AFS_VERINFO_CHARSET 932
! #include "AFS_component_version_number.h"
! #include "..\..\config\NTVersioninfo.rc"
! #endif // APSTUDIO_INVOKED
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // Japanese resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
! #ifdef _WIN32
! LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
! #endif //_WIN32
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_MAIN DIALOG DISCARDABLE  0, 0, 310, 220
! STYLE DS_CENTER | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU | WS_THICKFRAME
! CAPTION "AFS アカウント・マネージャー"
! MENU MENU_MAIN
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "",IDC_TAB,"SysTabControl32",0x0,4,33,305,184
!     LTEXT           "選択したセル:",IDC_STATIC,6,3,45,8
!     LTEXT           "(選択なし)",IDC_CELL,59,3,220,8
!     LTEXT           "AFS トークン:",IDC_STATIC,6,18,45,8
!     LTEXT           "(トークンなし)",IDC_CREDS,59,18,220,8
!     ICON            IDI_MAIN,IDC_ANIM,287,3,20,20,SS_SUNKEN
!     CONTROL         "",IDC_BAR,"Static",SS_ETCHEDHORZ,4,1,307,1
! END
! 
! IDD_TAB_USERS DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_USERS_PATTERN,180,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "パターン:",IDC_USERS_PATTERN_PROMPT,138,6,34,8
!     LTEXT           "照会中です。お待ちください...",IDC_USERS_TITLE,4,6,100,
!                     8
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,99
!     PUSHBUTTON      "作成(&C)...",M_USER_CREATE,17,126,55,14
!     PUSHBUTTON      "メンバーシップ(&M)...",M_MEMBERSHIP,76,126,83,14
!     PUSHBUTTON      "プロパティー(&R)...",M_PROPERTIES,163,126,74,14
!     PUSHBUTTON      "...",IDC_ADVANCED,229,4,9,13
! END
! 
! IDD_TAB_GROUPS DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_GROUPS_PATTERN,197,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "パターン:",IDC_GROUPS_PATTERN_PROMPT,155,6,34,8
!     LTEXT           "照会中です。お待ちください...",IDC_GROUPS_TITLE,4,6,142,
!                     8
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,96
!     PUSHBUTTON      "作成(&C)...",M_GROUP_CREATE,41,125,55,14
!     PUSHBUTTON      "メンバー(&M)...",M_MEMBERSHIP,100,125,59,14
!     PUSHBUTTON      "プロパティー(&R)...",M_PROPERTIES,163,125,74,14
! END
! 
! IDD_ACTIONS DIALOGEX 0, 0, 236, 58
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
! EXSTYLE WS_EX_TOOLWINDOW
! CAPTION "進行中の操作 - AFS アカウント・マネージャー"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック", 0, 0, 0x1
! BEGIN
!     LTEXT           "照会中です。お待ちください...",IDC_ACTION_DESC,2,2,232,
!                     8
!     CONTROL         "",IDC_ACTION_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x3,2,14,232,43
! END
! 
! IDD_HELP_ABOUT DIALOG DISCARDABLE  0, 0, 226, 141
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "AFS アカウント・マネージャーについて"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     ICON            IDI_MAIN,IDC_HELPABOUT_ICON,4,8,20,20
!     LTEXT           "AFS アカウント・マネージャー バージョン 3.5",IDC_STATIC,
!                     33,8,189,8
!     LTEXT           "Copyright (C) IBM Corporation 1989, 1999",IDC_STATIC,33,
!                     20,189,8
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,4,37,218,1
!     CTEXT           "",IDC_HELPABOUT_DESC,4,48,218,56
!     PUSHBUTTON      "クローズ(&C)",IDOK,87,121,53,14
!     CONTROL         "",IDC_STATIC,"Static",SS_ETCHEDHORZ,4,114,218,1
! END
! 
! IDD_HELP_ERROR DIALOG DISCARDABLE  0, 0, 218, 141
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "エラー・コードの検索"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "エラー番号(&E):",IDC_STATIC,4,41,44,8
!     EDITTEXT        IDC_ERROR_NUMBER,59,39,78,14,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "変換(&T)",IDC_ERROR_TRANSLATE,147,39,67,14
!     PUSHBUTTON      "クローズ(&C)",IDCANCEL,85,121,53,14
!     LTEXT           "(テキストは実行時に設定)",IDC_ERROR_DESC,4,71,210,42
!     LTEXT           "エラー・コードの意味を調べるには、コードを下に入力して「変換」ボタンをクリックしてください。",
!                     IDC_STATIC,4,4,210,25
!     CONTROL         "",IDC_ADVANCED_BOX,"Static",SS_ETCHEDHORZ,4,60,211,1
! END
! 
! IDD_HELP_FIND DIALOG DISCARDABLE  0, 0, 231, 74
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "コマンド検索"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     COMBOBOX        IDC_FIND_COMMAND,4,38,146,170,CBS_DROPDOWN | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     DEFPUSHBUTTON   "ヘルプの表示(&H)",IDOK,161,37,65,14
!     PUSHBUTTON      "取消し(&C)",IDCANCEL,161,53,65,14
!     LTEXT           "AFS アカウント・マネージャーを使用してタスクを実行する方法を見るには、下のコマンド行を選択して「ヘルプの表示」ボタンをクリックしてください。",
!                     IDC_STATIC,4,4,223,25
! END
! 
! IDD_COLUMNS DIALOG DISCARDABLE  0, 0, 286, 148
! STYLE WS_POPUP | WS_CAPTION
! CAPTION "列"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "リスト時に表示する列の選択(&S):",IDC_STATIC,5,7,111,8
!     COMBOBOX        IDC_COLUMNS,134,5,147,104,CBS_DROPDOWNLIST | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     LTEXT           "使用可能な列(&C):",IDC_STATIC,12,40,100,8
!     LISTBOX         IDC_COL_AVAIL,12,49,100,71,LBS_SORT | 
!                     LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "表示する列(&I):",IDC_STATIC,173,41,100,8
!     LISTBOX         IDC_COL_SHOWN,173,50,100,71,LBS_NOINTEGRALHEIGHT | 
!                     WS_VSCROLL | WS_TABSTOP
!     PUSHBUTTON      "追加(&A) >>",IDC_COL_INSERT,119,68,47,14
!     PUSHBUTTON      "<< 削除(&R)",IDC_COL_DELETE,119,88,47,14
!     PUSHBUTTON      "上に移動(&U)",IDC_COL_UP,170,123,53,14
!     PUSHBUTTON      "下に移動(&D)",IDC_COL_DOWN,224,123,53,14
!     GROUPBOX        "列のリスト",IDC_STATIC,5,25,276,118
! END
! 
! IDD_USER_ADVANCED DIALOGEX 0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "拡張"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "現行鍵:",IDC_STATIC,5,5,40,8
!     LTEXT           "照会中です。お待ちください...",IDC_USER_KEY,52,5,173,20,
!                     0,WS_EX_STATICEDGE
!     CONTROL         "これはシステム・アカウントです (暗号化なし) (&S)",
!                     IDC_USER_NOSEAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     35,195,10
!     CONTROL         "ユーザーが管理権限を持っています (&A)",IDC_USER_ADMIN,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,52,155,10
!     CONTROL         "チケットの許可、存続時間(&G):",IDC_USER_TGS,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,5,69,111,10
!     CONTROL         "",IDC_USER_LIFETIME,"Elapsed",WS_BORDER | WS_TABSTOP,
!                     134,68,66,12
!     CONTROL         "グループ作成割り当て量(&Q):",IDC_USER_GROUP_HASQUOTA,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,86,116,10
!     EDITTEXT        IDC_USER_GROUP_QUOTA,137,85,27,13,ES_AUTOHSCROLL
!     LTEXT           "アカウント状況の表示(&V):",IDC_STATIC,12,136,91,8
!     COMBOBOX        IDC_USER_PERM_STATUS,110,134,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "所有グループのリスト(&W):",IDC_STATIC,12,149,91,8
!     COMBOBOX        IDC_USER_PERM_OWNED,110,148,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "グループ・メンバーシップのリスト(&M):",IDC_STATIC,12,
!                     164,116,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,110,174,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "その他のアカウント許可",IDC_STATIC,5,109,220,82
!     LTEXT           "このアカウントを見ることができるユーザーを指定します。",
!                     IDC_STATIC,7,124,215,8
! END
! 
! IDD_USER_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "一般"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "ユーザーがパスワードを変更可能(&C)",IDC_USER_CPW,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,46,124,11
!     PUSHBUTTON      "パスワードの変更(&P)",IDC_USER_CPW_NOW,143,44,78,14
!     CONTROL         "ユーザーが旧パスワードを再使用可能(&R)",IDC_USER_RPW,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,65,162,10
!     CONTROL         "パスワードの有効期間(&V)",IDC_USER_PWEXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,25,78,97,10
!     LTEXT           "日数",IDC_STATIC,196,81,16,8
!     EDITTEXT        IDC_USER_PWEXPIRATION,135,79,37,13,ES_AUTOHSCROLL
!     CONTROL         "アカウントの有効期限(&E):",IDC_USER_EXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,91,89,10
!     CONTROL         "",IDC_USER_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,84,
!                     103,61,12
!     CONTROL         "",IDC_USER_EXPIRE_TIME,"Time",WS_BORDER | WS_TABSTOP,
!                     159,103,53,12
!     CONTROL         "アカウントをロック(&L)",IDC_USER_FAILLOCK,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,137,76,10
!     LTEXT           "回の連続ログイン失敗後",IDC_STATIC,146,138,75,8
!     EDITTEXT        IDC_USER_FAILLOCK_COUNT,102,136,27,13,ES_AUTOHSCROLL
!     CONTROL         "無期限に (管理者がロック解除するまで) ロック(&K)",
!                     IDC_USER_FAILLOCK_INFINITE,"Button",BS_AUTORADIOBUTTON,
!                     25,153,194,10
!     CONTROL         "アカウントのロック期間(&F)",IDC_USER_FAILLOCK_FINITE,
!                     "Button",BS_AUTORADIOBUTTON,25,165,91,10
!     CONTROL         "",IDC_USER_FAILLOCK_DURATION,"Elapsed",WS_BORDER | 
!                     WS_TABSTOP,84,177,56,12
!     PUSHBUTTON      "ロック解除(&U)",IDC_USER_UNLOCK,157,176,61,14
!     GROUPBOX        "失敗したログイン試行",IDC_STATIC,5,124,220,67
!     ICON            IDI_USER,IDC_STATIC,5,5,20,20
!     LTEXT           "ユーザー %1",IDC_USER_NAME,35,7,188,16
!     GROUPBOX        "アカウント",IDC_STATIC,5,32,220,85
! END
! 
! IDD_GROUP_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "一般"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     ICON            IDI_GROUP,IDC_STATIC,5,5,20,20
!     LTEXT           "グループ %1",IDC_GROUP_NAME,34,7,190,16
!     LTEXT           "アカウント状況の表示(&S):",IDC_STATIC,12,105,90,8
!     COMBOBOX        IDC_GROUP_PERM_STATUS,111,104,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "所有グループの表示(&G):",IDC_STATIC,12,117,90,8
!     COMBOBOX        IDC_GROUP_PERM_GROUPS,111,117,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "グループ・メンバーのリスト(&M):",IDC_STATIC,12,129,90,8
!     COMBOBOX        IDC_GROUP_PERM_MEMBERS,111,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "メンバーの追加(&A):",IDC_STATIC,12,156,90,8
!     COMBOBOX        IDC_GROUP_PERM_ADD,111,154,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "メンバーの削除(&R):",IDC_STATIC,12,172,90,8
!     COMBOBOX        IDC_GROUP_PERM_REMOVE,111,170,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "その他のアカウントのアクセス権",IDC_STATIC,5,77,220,114
!     LTEXT           "このグループを見ることができるユーザーを指定します。",
!                     IDC_STATIC,11,92,209,8
!     LTEXT           "所有者:",IDC_STATIC,5,33,26,8
!     LTEXT           "%1",IDC_GROUP_OWNER,39,33,104,16
!     PUSHBUTTON      "所有者の変更(&O)...",IDC_GROUP_CHANGEOWNER,149,33,74,12
!     LTEXT           "作成者:",IDC_STATIC,5,55,26,8
!     LTEXT           "%1",IDC_GROUP_CREATOR,39,55,182,14
! END
! 
! IDD_USER_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "グループ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "グループ",IDC_STATIC,5,31,220,160
!     LTEXT           "以下の設定を使用して、このユーザーが属しているグループのリストと、このユーザーが所有しているグループのリストを変更することができます。",
!                     IDC_STATIC,5,3,220,22
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "削除(&R)",IDC_MEMBER_REMOVE,167,169,50,14
!     PUSHBUTTON      "追加(&A)...",IDC_MEMBER_ADD,113,169,50,14
!     CONTROL         "このユーザーが属しているグループを表示(&S)",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "このユーザーが所有しているグループを表示(&H)",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(照会中です。お待ちください...)",IDC_GROUPS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_GROUP_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "メンバーシップ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "グループ・メンバーシップ",IDC_STATIC,5,31,220,160
!     LTEXT           "以下の設定を使用して、このグループのメンバーと、このグループが所有するグループを選択することができます。",
!                     IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,85,205,82
!     PUSHBUTTON      "削除(&R)",IDC_MEMBER_REMOVE,167,172,50,14
!     PUSHBUTTON      "追加(&A)...",IDC_MEMBER_ADD,113,172,50,14
!     CONTROL         "このグループのメンバーを表示(&S)",IDC_GROUP_SHOW_MEMBER,
!                     "Button",BS_AUTORADIOBUTTON,12,45,195,10
!     CONTROL         "このグループが所有しているグループを表示(&H)",
!                     IDC_GROUP_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(照会中です。お待ちください...)",IDC_USERS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_BROWSE DIALOG DISCARDABLE  0, 0, 281, 150
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(このタイトルは実行時に選択されます)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     RTEXT           "(実行時)",IDC_BROWSE_TYPE,7,115,49,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,60,113,140,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "選択(&S)",IDC_BROWSE_SELECT,224,112,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,224,129,50,14
!     CONTROL         "(テキストは実行時に指定)",IDC_BROWSE_CHECK,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,59,133,146,10
!     RTEXT           "セルを見る(&C):",IDC_STATIC,2,8,53,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,56,6,140,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "パターン:",IDC_GROUPS_PATTERN_PROMPT,198,8,34,8
!     EDITTEXT        IDC_BROWSE_PATTERN,235,6,41,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,267,84
! END
! 
! IDD_USER_PASSWORD DIALOG DISCARDABLE  0, 0, 281, 145
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "アカウント・パスワードの変更"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "新規パスワードのバージョン番号を自動的に選択(&A)",
!                     IDC_CPW_VERSION_AUTO,"Button",BS_AUTORADIOBUTTON | 
!                     WS_GROUP,52,36,203,10
!     CONTROL         "鍵バージョンを使用(&U):",IDC_CPW_VERSION_MANUAL,"Button",
!                     BS_AUTORADIOBUTTON,52,52,100,10
!     EDITTEXT        IDC_CPW_VERSION,168,51,43,14,ES_AUTOHSCROLL
!     CONTROL         "このストリングを暗号化:",IDC_CPW_BYSTRING,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP,52,71,101,10
!     CONTROL         "この鍵を使用:",IDC_CPW_BYDATA,"Button",
!                     BS_AUTORADIOBUTTON,52,105,55,10
!     EDITTEXT        IDC_CPW_STRING,115,85,155,14,ES_PASSWORD | 
!                     ES_AUTOHSCROLL
!     EDITTEXT        IDC_CPW_DATA,115,104,96,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "ランダム(&R)",IDC_CPW_RANDOM,219,104,53,14
!     DEFPUSHBUTTON   "了解",IDOK,113,124,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,167,124,50,14
!     PUSHBUTTON      "ヘルプ",9,221,124,50,14
!     LTEXT           "ユーザー %1 の新規パスワード",IDC_CPW_TITLE,43,9,231,16
!     ICON            IDI_USER,-1,7,6,20,20
!     LTEXT           "バージョン:",-1,9,37,35,8
!     LTEXT           "値:",-1,9,72,35,8
! END
! 
! IDD_GROUP_RENAME DIALOG DISCARDABLE  0, 0, 274, 150
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "グループの名前変更"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "新規グループ名(&N):",IDC_STATIC,17,108,62,8
!     EDITTEXT        IDC_RENAME_NEWNAME,86,106,104,14,ES_AUTOHSCROLL
!     DEFPUSHBUTTON   "了解",IDOK,107,126,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,161,126,50,14
!     PUSHBUTTON      "ヘルプ",9,215,126,50,14
!     LTEXT           "現行所有者:",IDC_STATIC,17,65,62,8
!     PUSHBUTTON      "所有者の変更(&C)...",IDC_RENAME_CHOWN,200,63,67,14
!     LTEXT           "現行グループ名:",IDC_STATIC,17,87,62,8
!     ICON            IDI_GROUP,IDC_STATIC,7,6,20,20
!     LTEXT           "グループ %1 の名前変更",IDC_RENAME_TITLE,35,10,232,15
!     LTEXT           "注: グループの名前にプレフィックスがあれば、名前は正確にグループの現在の所有者を反映します (例: ""owner:groupname"")。",
!                     IDC_STATIC,35,35,231,16
!     LTEXT           "(照会中)",IDC_RENAME_OWNER,86,65,105,15
!     LTEXT           "(照会中)",IDC_RENAME_OLDNAME,86,87,181,12
! END
! 
! IDD_BROWSE_COMBO DIALOG DISCARDABLE  0, 0, 281, 153
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(このタイトルは実行時に選択されます)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     RTEXT           "(実行時)",IDC_BROWSE_TYPE,7,115,65,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,80,113,130,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "選択(&S)",IDC_BROWSE_SELECT,221,113,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,221,132,50,14
!     RTEXT           "表示:",IDC_STATIC,7,134,65,8
!     COMBOBOX        IDC_BROWSE_COMBO,80,132,130,68,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     RTEXT           "セルを見る(&C):",IDC_STATIC,7,8,47,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,61,6,130,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "パターン:",IDC_GROUPS_PATTERN_PROMPT,198,8,28,8
!     EDITTEXT        IDC_BROWSE_PATTERN,233,6,39,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,267,84
! END
! 
! IDD_BROWSE_BOTH DIALOG DISCARDABLE  0, 0, 281, 169
! STYLE DS_CENTER | WS_CAPTION | WS_SYSMENU
! CAPTION "(このタイトルは実行時に選択されます)"
! CLASS "AFSAccountManagerClass"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     RTEXT           "(実行時)",IDC_BROWSE_TYPE,7,115,47,8,SS_NOTIFY
!     EDITTEXT        IDC_BROWSE_NAMED,64,113,129,14,ES_MULTILINE | 
!                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
!     PUSHBUTTON      "選択(&S)",IDC_BROWSE_SELECT,220,113,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,220,132,50,14
!     RTEXT           "表示:",IDC_STATIC,7,133,47,8
!     COMBOBOX        IDC_BROWSE_COMBO,64,132,129,68,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     CONTROL         "(テキストは実行時に指定)",IDC_BROWSE_CHECK,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,64,151,140,10
!     RTEXT           "セルを見る(&C):",IDC_STATIC,7,9,47,8,SS_NOTIFY
!     COMBOBOX        IDC_BROWSE_CELL,62,6,129,91,CBS_DROPDOWN | 
!                     CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_VSCROLL | 
!                     WS_TABSTOP
!     RTEXT           "パターン:",IDC_GROUPS_PATTERN_PROMPT,199,8,28,8
!     EDITTEXT        IDC_BROWSE_PATTERN,235,6,33,13,ES_AUTOHSCROLL
!     CONTROL         "",IDC_BROWSE_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x12,7,23,267,84
! END
! 
! IDD_NEWUSER_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "グループ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "グループ",IDC_STATIC,5,31,220,160
!     LTEXT           "以下の設定を使用して、このユーザーが属する初期グループのリストと、このユーザーが所有するグループを変更することができます。",
!                     IDC_STATIC,5,3,220,22
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "削除(&R)",IDC_MEMBER_REMOVE,167,171,50,14
!     PUSHBUTTON      "追加(&A)...",IDC_MEMBER_ADD,113,171,50,14
!     CONTROL         "このユーザーが属するグループを表示(&S)",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "このユーザーが所有するグループを表示(&H)",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(照会中です。お待ちください...)",IDC_GROUPS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_NEWUSER DIALOG DISCARDABLE  0, 0, 238, 170
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "ユーザーの作成"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "名前(&N):",IDC_STATIC,10,37,47,8
!     EDITTEXT        IDC_NEWUSER_NAME,68,35,127,14,ES_AUTOHSCROLL
!     LTEXT           "パスワード(&P):",IDC_STATIC,10,57,47,8
!     EDITTEXT        IDC_NEWUSER_PW1,68,55,90,14,ES_PASSWORD | ES_AUTOHSCROLL
!     LTEXT           "(再入力(&R):)",IDC_STATIC,10,77,47,8
!     EDITTEXT        IDC_NEWUSER_PW2,68,75,90,14,ES_PASSWORD | ES_AUTOHSCROLL
!     CONTROL         "次に使用可能なユーザー ID を自動的に使用(&U)",
!                     IDC_NEWUSER_ID_AUTO,"Button",BS_AUTORADIOBUTTON,44,109,
!                     183,11
!     CONTROL         "特定ユーザー ID を使用(&S):",IDC_NEWUSER_ID_MANUAL,
!                     "Button",BS_AUTORADIOBUTTON,44,130,113,10
!     EDITTEXT        IDC_NEWUSER_ID,167,129,39,12,ES_AUTOHSCROLL
!     PUSHBUTTON      "グループ(&G)...",IDC_ADVANCED,7,147,58,14
!     DEFPUSHBUTTON   "了解",IDOK,94,147,43,14
!     PUSHBUTTON      "取消し",IDCANCEL,141,147,43,14
!     PUSHBUTTON      "ヘルプ",9,188,147,43,14
!     ICON            IDI_USER,IDC_STATIC,7,6,20,20
!     LTEXT           "セル %1 内の新規ユーザー",IDC_NEWUSER_TITLE,37,9,192,16
!     LTEXT           "ユーザー ID:",IDC_STATIC,10,94,42,8
! END
! 
! IDD_NEWGROUP_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "一般"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     ICON            IDI_GROUP,IDC_STATIC,5,5,20,20
!     LTEXT           "セル %1 内の新規グループ",IDC_GROUP_NAME,35,8,188,16
!     LTEXT           "アカウント状況の表示(&S):",IDC_STATIC,12,106,91,8
!     COMBOBOX        IDC_GROUP_PERM_STATUS,111,106,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "所有グループの表示(&G):",IDC_STATIC,12,118,90,8
!     COMBOBOX        IDC_GROUP_PERM_GROUPS,111,118,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "グループ・メンバーのリスト(&M):",IDC_STATIC,12,130,94,8
!     COMBOBOX        IDC_GROUP_PERM_MEMBERS,111,138,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "メンバーの追加(&A):",IDC_STATIC,12,156,73,8
!     COMBOBOX        IDC_GROUP_PERM_ADD,111,154,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "メンバーの削除(&R):",IDC_STATIC,12,172,74,8
!     COMBOBOX        IDC_GROUP_PERM_REMOVE,111,170,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "その他のアカウントのアクセス権",IDC_STATIC,5,68,220,123
!     LTEXT           "以下の設定はこのグループに関する情報を見ることができるユーザーを指定します。",
!                     IDC_STATIC,11,83,204,17
!     LTEXT           "所有者:",IDC_STATIC,5,35,26,8
!     LTEXT           "%1",IDC_GROUP_OWNER,39,35,101,17
!     PUSHBUTTON      "所有者の変更(&O)...",IDC_GROUP_CHANGEOWNER,149,33,74,12
! END
! 
! IDD_NEWGROUP_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "メンバーシップ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "グループ・メンバーシップ",IDC_STATIC,5,31,220,160
!     LTEXT           "以下の設定を使用して、このグループの初期メンバーと、このグループが所有するグループを選択することができます。",
!                     IDC_STATIC,5,5,220,18
!     CONTROL         "",IDC_USERS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "削除(&R)",IDC_MEMBER_REMOVE,167,170,50,14
!     PUSHBUTTON      "追加(&A)...",IDC_MEMBER_ADD,113,170,50,14
!     CONTROL         "このグループの初期メンバーを表示(&S)",
!                     IDC_GROUP_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "このグループが所有しているグループを表示(&H)",
!                     IDC_GROUP_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(照会中です。お待ちください...)",IDC_USERS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_NEWGROUP DIALOG DISCARDABLE  0, 0, 238, 135
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "グループの作成"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "名前(&N):",-1,7,37,32,8
!     EDITTEXT        IDC_NEWGROUP_NAME,54,35,127,14,ES_AUTOHSCROLL
!     CONTROL         "次に使用可能なグループ ID を自動的に使用(&U)",
!                     IDC_NEWGROUP_ID_AUTO,"Button",BS_AUTORADIOBUTTON,31,72,
!                     200,12
!     CONTROL         "特定グループ ID を使用(&S):",IDC_NEWGROUP_ID_MANUAL,
!                     "Button",BS_AUTORADIOBUTTON,31,93,111,10
!     EDITTEXT        IDC_NEWGROUP_ID,158,90,55,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "メンバー(&M)...",IDC_ADVANCED,7,112,59,14
!     DEFPUSHBUTTON   "了解",IDOK,94,112,43,14
!     PUSHBUTTON      "取消し",IDCANCEL,141,112,43,14
!     PUSHBUTTON      "ヘルプ",9,188,112,43,14
!     ICON            IDI_USER,-1,7,6,20,20
!     LTEXT           "セル %1 内の新規グループ",IDC_NEWGROUP_TITLE,34,9,193,
!                     18
!     LTEXT           "グループ ID:",-1,7,55,39,8
! END
! 
! IDD_USER_DELETE DIALOG DISCARDABLE  0, 0, 281, 114
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "ユーザーの削除"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     PUSHBUTTON      "了解",IDOK,114,91,50,14
!     DEFPUSHBUTTON   "取消し",IDCANCEL,168,91,50,14
!     PUSHBUTTON      "ヘルプ",9,222,91,50,14
!     LTEXT           "注意!\n\nこの操作はユーザー %1 のアカウントを永久に削除します。",
!                     IDC_DELETE_TITLE,36,10,232,32
!     ICON            32515,-1,7,6,20,20
!     CONTROL         "このアカウントの KAS データベース項目を削除(&K)",
!                     IDC_DELETE_KAS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,
!                     53,250,10
!     CONTROL         "このアカウントの PTS データベース項目を削除(&P)",
!                     IDC_DELETE_PTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,
!                     72,250,10
! END
! 
! IDD_GROUP_DELETE DIALOG DISCARDABLE  0, 0, 281, 82
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "グループの削除"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     PUSHBUTTON      "了解",IDOK,113,61,50,14
!     DEFPUSHBUTTON   "取消し",IDCANCEL,167,61,50,14
!     PUSHBUTTON      "ヘルプ",9,221,61,50,14
!     LTEXT           "注意!\n\nこの操作はグループ %1 を永久に削除します。",
!                     IDC_DELETE_TITLE,36,12,238,38
!     ICON            32515,-1,7,6,20,20
! END
! 
! IDD_CELL_GENERAL DIALOG DISCARDABLE  0, 0, 230, 134
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "一般"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "最大ユーザー ID(&U):",IDC_STATIC,11,91,76,8
!     EDITTEXT        IDC_CELL_USERMAX,102,89,40,14,ES_AUTOHSCROLL
!     LTEXT           "最大グループ ID(&G):",IDC_STATIC,11,109,76,8
!     EDITTEXT        IDC_CELL_GROUPMAX,102,107,40,14,ES_AUTOHSCROLL
!     GROUPBOX        "ユーザー ID とグループ ID",IDC_STATIC,5,31,220,97
!     LTEXT           "以下の設定は、これまでに使用された最大のユーザーおよびグループ ID の数値を反映します。値を増加するのはかまいませんが、新しい値が既存のアカウントと矛盾しないという確信がある場合を除き、値を減少すべきではありません。",
!                     IDC_STATIC,11,43,208,39
!     ICON            IDI_CELL,IDC_STATIC,5,5,20,20
!     LTEXT           "セル %1",IDC_CELL_NAME,32,7,193,16
! END
! 
! IDD_NEWUSER_GENERAL DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "一般"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "ユーザーがパスワードを変更可能(&C)",IDC_USER_CPW,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,47,120,10
!     PUSHBUTTON      "パスワードの変更(&P)",IDC_USER_CPW_NOW,138,44,85,14
!     CONTROL         "ユーザーが旧パスワードを再使用可能(&R)",IDC_USER_RPW,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,65,149,10
!     CONTROL         "パスワードの有効期間(&V)",IDC_USER_PWEXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,25,78,94,10
!     LTEXT           "日数",IDC_STATIC,197,81,17,8
!     EDITTEXT        IDC_USER_PWEXPIRATION,133,79,37,13,ES_AUTOHSCROLL
!     CONTROL         "アカウントの有効期限(&E):",IDC_USER_EXPIRES,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,11,91,87,10
!     CONTROL         "",IDC_USER_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,79,
!                     103,61,12
!     CONTROL         "",IDC_USER_EXPIRE_TIME,"Time",WS_BORDER | WS_TABSTOP,
!                     158,102,53,12
!     CONTROL         "アカウントをロック(&L)",IDC_USER_FAILLOCK,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,7,138,78,10
!     LTEXT           "回の連続ログイン失敗後",IDC_STATIC,148,139,73,8
!     EDITTEXT        IDC_USER_FAILLOCK_COUNT,101,137,27,13,ES_AUTOHSCROLL
!     CONTROL         "無期限に (管理者がロック解除するまで) ロック(&K)",
!                     IDC_USER_FAILLOCK_INFINITE,"Button",BS_AUTORADIOBUTTON,
!                     25,153,180,10
!     CONTROL         "アカウントのロック期間(&F)",IDC_USER_FAILLOCK_FINITE,
!                     "Button",BS_AUTORADIOBUTTON,25,165,113,10
!     CONTROL         "",IDC_USER_FAILLOCK_DURATION,"Elapsed",WS_BORDER | 
!                     WS_TABSTOP,79,176,56,12
!     PUSHBUTTON      "ロック解除(&U)",IDC_USER_UNLOCK,161,175,61,14
!     GROUPBOX        "失敗したログイン試行",IDC_STATIC,5,124,220,67
!     ICON            IDI_USER,IDC_STATIC,5,5,20,20
!     LTEXT           "セル %1 内の新規ユーザー",IDC_USER_NAME,35,7,188,16
!     GROUPBOX        "アカウント",IDC_STATIC,5,32,220,85
! END
! 
! IDD_NEWUSER_ADVANCED DIALOG DISCARDABLE  0, 0, 232, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "拡張"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "このアカウントの KAS データベース項目を作成 (推奨)(&K)",
!                     IDC_USER_CREATE_KAS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,5,6,219,11
!     CONTROL         "このアカウントの PTS データベース項目を作成 (推奨)(&P)",
!                     IDC_USER_CREATE_PTS,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,5,23,220,10
!     CONTROL         "これをシステム・アカウントにします (暗号化なし) (&S)",
!                     IDC_USER_NOSEAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,
!                     40,211,10
!     CONTROL         "ユーザーが管理権限を持ちます(&A)",IDC_USER_ADMIN,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,5,57,138,10
!     CONTROL         "チケットの許可、存続時間(&G):",IDC_USER_TGS,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,5,74,112,10
!     CONTROL         "",IDC_USER_LIFETIME,"Elapsed",WS_BORDER | WS_TABSTOP,
!                     132,73,66,12
!     CONTROL         "グループ作成割り当て量(&Q):",IDC_USER_GROUP_HASQUOTA,
!                     "Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,91,116,10
!     EDITTEXT        IDC_USER_GROUP_QUOTA,132,90,27,13,ES_AUTOHSCROLL
!     LTEXT           "アカウント状況の表示(&V):",-1,11,137,91,8
!     COMBOBOX        IDC_USER_PERM_STATUS,111,135,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "所有グループのリスト(&W):",-1,11,150,91,8
!     COMBOBOX        IDC_USER_PERM_OWNED,111,148,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "グループ・メンバーシップのリスト(&M):",-1,11,163,112,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,111,173,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "その他のアカウントのアクセス権",-1,5,109,220,82
!     LTEXT           "このアカウントを見ることができるユーザーを指定します。",
!                     -1,7,124,215,8
! END
! 
! IDD_TAB_MACHINES DIALOG DISCARDABLE  0, 0, 242, 144
! STYLE WS_CHILD
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     EDITTEXT        IDC_MACHINES_PATTERN,197,4,41,13,ES_AUTOHSCROLL
!     RTEXT           "パターン:",IDC_MACHINES_PATTERN_PROMPT,155,6,34,8
!     LTEXT           "照会中です。お待ちください...",IDC_MACHINES_TITLE,4,6,
!                     142,8
!     CONTROL         "",IDC_MACHINES_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x313,4,21,234,98
!     PUSHBUTTON      "作成(&C)...",M_MACHINE_CREATE,15,126,55,14
!     PUSHBUTTON      "メンバーシップ(&M)...",M_MEMBERSHIP,74,126,83,14
!     PUSHBUTTON      "プロパティー(&R)...",M_PROPERTIES,163,126,74,14
! END
! 
! IDD_NEWMACHINE_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "グループ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "グループ",IDC_STATIC,5,31,220,160
!     LTEXT           "以下の設定を使用して、このアカウントが属する初期グループのリストと、このアカウントが所有するグループを選択することができます。",
!                     IDC_STATIC,5,3,220,25,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "削除(&R)",IDC_MEMBER_REMOVE,167,170,50,14
!     PUSHBUTTON      "追加(&A)...",IDC_MEMBER_ADD,113,170,50,14
!     CONTROL         "このアカウントが属するグループを表示(&S)",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "このアカウントが所有するグループを表示(&H)",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(照会中です。お待ちください...)",IDC_GROUPS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_NEWMACHINE_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "拡張"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "アカウント状況の表示(&S):",IDC_STATIC,11,85,85,8
!     COMBOBOX        IDC_USER_PERM_STATUS,111,84,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "所有グループのリスト(&W):",IDC_STATIC,11,98,85,8
!     COMBOBOX        IDC_USER_PERM_OWNED,111,98,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "グループ・メンバーシップのリスト(&M):",IDC_STATIC,11,
!                     113,112,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,111,123,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "その他のアカウントのアクセス権",IDC_STATIC,5,57,220,82
!     LTEXT           "このアカウントを見ることができるユーザーを指定します。",
!                     IDC_STATIC,7,72,215,8
!     ICON            IDI_SERVER,IDC_STATIC,5,5,20,20
!     LTEXT           "セル %1 の新規 IP アドレス・アカウント",IDC_USER_NAME,
!                     35,8,190,23
! END
! 
! IDD_NEWMACHINE DIALOG DISCARDABLE  0, 0, 247, 126
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "IP アドレス・アカウントの作成"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "IP アドレス(&A):",-1,10,35,50,8
!     EDITTEXT        IDC_NEWUSER_NAME,70,35,127,14,ES_AUTOHSCROLL
!     CONTROL         "次に使用可能なアカウント ID を自動的に使用(&U)",
!                     IDC_NEWUSER_ID_AUTO,"Button",BS_AUTORADIOBUTTON,32,66,
!                     208,12
!     CONTROL         "特定アカウント ID を使用(&S):",IDC_NEWUSER_ID_MANUAL,
!                     "Button",BS_AUTORADIOBUTTON,32,85,106,10
!     EDITTEXT        IDC_NEWUSER_ID,176,83,39,14,ES_AUTOHSCROLL
!     PUSHBUTTON      "グループ(&G)...",IDC_ADVANCED,7,103,58,14
!     DEFPUSHBUTTON   "了解",IDOK,103,103,43,14
!     PUSHBUTTON      "取消し",IDCANCEL,151,103,43,14
!     PUSHBUTTON      "ヘルプ",9,197,103,43,14
!     ICON            IDI_SERVER,-1,7,6,20,20
!     LTEXT           "セル %1 の新規 IP アドレス・アカウント",
!                     IDC_NEWUSER_TITLE,37,10,200,19
!     LTEXT           "アカウント ID:",-1,10,51,41,8
! END
! 
! IDD_MACHINE_DELETE DIALOG DISCARDABLE  0, 0, 318, 84
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "IP アドレス・アカウントの削除"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     PUSHBUTTON      "了解",IDOK,151,61,50,14
!     DEFPUSHBUTTON   "取消し",IDCANCEL,205,61,50,14
!     PUSHBUTTON      "ヘルプ",9,259,61,50,14
!     LTEXT           "注意!\n\nこの操作は IP アドレス・アカウント %1 を永久に削除します。",
!                     IDC_DELETE_TITLE,36,14,275,37
!     ICON            32515,-1,7,6,20,20
! END
! 
! IDD_MACHINE_ADVANCED DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "拡張"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     LTEXT           "アカウント状況の表示(&S):",IDC_STATIC,10,84,94,8
!     COMBOBOX        IDC_USER_PERM_STATUS,111,82,112,76,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "所有グループのリスト(&W):",IDC_STATIC,10,96,95,8
!     COMBOBOX        IDC_USER_PERM_OWNED,111,96,112,67,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     LTEXT           "グループ・メンバーシップのリスト(&M):",IDC_STATIC,10,
!                     111,113,8
!     COMBOBOX        IDC_USER_PERM_MEMBER,111,121,112,82,CBS_DROPDOWNLIST | 
!                     CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     GROUPBOX        "その他のアカウントのアクセス権",IDC_STATIC,5,57,220,82
!     LTEXT           "このアカウントを見ることができるユーザーを指定します。",
!                     IDC_STATIC,7,69,215,8
!     ICON            IDI_SERVER,IDC_STATIC,5,5,20,20
!     LTEXT           "IP アドレス・アカウント %1",IDC_USER_NAME,37,10,188,22
! END
! 
! IDD_MACHINE_MEMBER DIALOG DISCARDABLE  0, 0, 230, 196
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "グループ"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     GROUPBOX        "グループ",IDC_STATIC,5,31,220,160
!     LTEXT           "以下の設定を使用して、このアカウントが属しているグループのリストと、このアカウントが所有しているグループを変更することができます。",
!                     IDC_STATIC,5,4,220,21,NOT WS_GROUP
!     CONTROL         "",IDC_GROUPS_LIST,"FastList",WS_BORDER | WS_TABSTOP | 
!                     0x312,12,84,205,82
!     PUSHBUTTON      "削除(&R)",IDC_MEMBER_REMOVE,167,171,50,14
!     PUSHBUTTON      "追加(&A)...",IDC_MEMBER_ADD,113,171,50,14
!     CONTROL         "このアカウントが属しているグループを表示(&S)",
!                     IDC_USER_SHOW_MEMBER,"Button",BS_AUTORADIOBUTTON,12,45,
!                     195,10
!     CONTROL         "このアカウントが所有しているグループを表示(&H)",
!                     IDC_USER_SHOW_OWNER,"Button",BS_AUTORADIOBUTTON,12,58,
!                     195,10
!     LTEXT           "(照会中です。お待ちください...)",IDC_GROUPS_TITLE,12,74,
!                     205,8
! END
! 
! IDD_OPTIONS DIALOG DISCARDABLE  0, 0, 235, 162
! STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION
! CAPTION "オプション"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "UNIX 形式の正規表現を使用(&U) (""^mar[ky]son\\..*$"")",
!                     IDC_REGEXP_UNIX,"Button",BS_AUTORADIOBUTTON,11,53,199,10
!     CONTROL         "Windows 形式の正規表現を使用(&W) (""mar?son.*"")",
!                     IDC_REGEXP_WINDOWS,"Button",BS_AUTORADIOBUTTON,11,69,189,
!                     10
!     CONTROL         "管理トークンなしで機能する場合に警告を表示",
!                     IDC_WARN_BADCREDS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
!                     11,116,209,10
!     CONTROL         "情報を",IDC_REFRESH,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,11,134,36,10
!     LTEXT           "分ごとに最新表示",IDC_STATIC,114,135,65,8
!     EDITTEXT        IDC_REFRESH_RATE,56,133,30,14,ES_AUTOHSCROLL
!     ICON            IDI_MAIN,IDC_STATIC,5,5,20,20
!     LTEXT           "AFS アカウント・マネージャー・オプション",IDC_STATIC,37,
!                     12,161,8
!     GROUPBOX        "正規表現",IDC_STATIC,5,37,225,57
!     GROUPBOX        "一般",IDC_STATIC,5,100,225,57
! END
! 
! IDD_SEARCH_USERS DIALOG DISCARDABLE  0, 0, 284, 129
! STYLE DS_MODALFRAME | DS_CENTER | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | 
!     WS_SYSMENU
! CAPTION "表示するユーザーの選択"
! FONT 9, "ＭＳ Ｐゴシック"
! BEGIN
!     CONTROL         "すべてのユーザー・アカウントの項目を表示(&A)",
!                     IDC_SEARCH_ALL,"Button",BS_AUTORADIOBUTTON,7,38,248,10
!     CONTROL         "この日付より前に期限が切れるユーザー・アカウントのみを表示(&E)",
!                     IDC_SEARCH_EXPIRE,"Button",BS_AUTORADIOBUTTON,7,52,248,
!                     10
!     CONTROL         "この日付より前に期限が切れるパスワードを持つアカウントのみを表示(&F)",
!                     IDC_SEARCH_PWEXPIRE,"Button",BS_AUTORADIOBUTTON,7,79,248,
!                     10
!     CONTROL         "",IDC_SEARCH_EXPIRE_DATE,"Date",WS_BORDER | WS_TABSTOP,
!                     211,63,61,12
!     CONTROL         "",IDC_SEARCH_PWEXPIRE_DATE,"Date",WS_BORDER | 
!                     WS_TABSTOP,211,92,61,12
!     DEFPUSHBUTTON   "了解",IDOK,116,110,50,14
!     PUSHBUTTON      "取消し",IDCANCEL,170,110,50,14
!     PUSHBUTTON      "ヘルプ",9,224,110,50,14
!     LTEXT           "以下の制御を使用して、「ユーザー」タブに表示するユーザーを指定することができます。さらに、「ユーザー」タブの「パターン」制御に部分的なアカウント名を入力して、ユーザーのリストを限定することができます。",
!                     IDC_STATIC,7,6,272,25
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO DISCARDABLE 
! BEGIN
!     IDD_MAIN, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 309
!         TOPMARGIN, 3
!         BOTTOMMARGIN, 217
!     END
! 
!     IDD_TAB_USERS, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_TAB_GROUPS, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_ACTIONS, DIALOG
!     BEGIN
!         LEFTMARGIN, 2
!         RIGHTMARGIN, 234
!         TOPMARGIN, 2
!         BOTTOMMARGIN, 56
!     END
! 
!     IDD_HELP_ABOUT, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 222
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 137
!     END
! 
!     IDD_HELP_ERROR, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 214
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 137
!     END
! 
!     IDD_HELP_FIND, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 227
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 70
!     END
! 
!     IDD_COLUMNS, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 281
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 143
!     END
! 
!     IDD_USER_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_USER_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_GROUP_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_USER_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_GROUP_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_BROWSE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 143
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_USER_PASSWORD, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 138
!     END
! 
!     IDD_GROUP_RENAME, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 267
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 143
!     END
! 
!     IDD_BROWSE_COMBO, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 146
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_BROWSE_BOTH, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 162
!         HORZGUIDE, 23
!         HORZGUIDE, 107
!     END
! 
!     IDD_NEWUSER_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWUSER, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 231
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 163
!     END
! 
!     IDD_NEWGROUP_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWGROUP_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWGROUP, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 231
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 128
!     END
! 
!     IDD_USER_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 107
!     END
! 
!     IDD_GROUP_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 274
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 75
!     END
! 
!     IDD_CELL_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 129
!     END
! 
!     IDD_NEWUSER_GENERAL, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWUSER_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_TAB_MACHINES, DIALOG
!     BEGIN
!         LEFTMARGIN, 4
!         RIGHTMARGIN, 238
!         TOPMARGIN, 4
!         BOTTOMMARGIN, 140
!     END
! 
!     IDD_NEWMACHINE_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWMACHINE_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_NEWMACHINE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 240
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 119
!     END
! 
!     IDD_MACHINE_DELETE, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 311
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 77
!     END
! 
!     IDD_MACHINE_ADVANCED, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_MACHINE_MEMBER, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 225
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 191
!     END
! 
!     IDD_OPTIONS, DIALOG
!     BEGIN
!         LEFTMARGIN, 5
!         RIGHTMARGIN, 230
!         TOPMARGIN, 5
!         BOTTOMMARGIN, 157
!     END
! 
!     IDD_SEARCH_USERS, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 277
!         TOPMARGIN, 6
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "#include <windows.h>\r\n"
!     "#include <WINNT\\al_resource.h>\r\n"
!     "#ifndef APSTUDIO_INVOKED\r\n"
!     "#define AFS_VERINFO_FILE_DESCRIPTION ""AFS アカウント・マネージャー""\r\n"
!     "#include ""AFS_component_version_number.h""\r\n"
!     "#include ""..\\..\\config\\NTVersioninfo.rc""\r\n"
!     "#endif // APSTUDIO_INVOKED\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE DISCARDABLE 
! BEGIN
!     "\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! 32513                   ICON    DISCARDABLE     "..\\afsapplib\\resource\\error.ico"
! IDI_MAIN                ICON    DISCARDABLE     "resource\\afsusrmgr.ico"
! 32515                   ICON    DISCARDABLE     "..\\afsapplib\\resource\\warning.ico"
! IDI_USER                ICON    DISCARDABLE     "..\\afsapplib\\resource\\user.ico"
! IDI_GROUP               ICON    DISCARDABLE     "..\\afsapplib\\resource\\group.ico"
! IDI_CELL                ICON    DISCARDABLE     "..\\afsapplib\\resource\\cell.ico"
! IDI_SERVER              ICON    DISCARDABLE     "..\\afsapplib\\resource\\server.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Menu
! //
! 
! MENU_MAIN MENU DISCARDABLE 
! BEGIN
!     POPUP "セル(&C)"
!     BEGIN
!         MENUITEM "選択(&S)...",                 M_OPENCELL
!         MENUITEM "認証(&A)...",                 M_CREDENTIALS
!         MENUITEM SEPARATOR
!         MENUITEM "セル・プロパティー(&R)...",   M_CELL_PROPERTIES
!         MENUITEM SEPARATOR
!         MENUITEM "終了(&X)",                    M_EXIT
!     END
!     POPUP "編集(&E)"
!     BEGIN
!         MENUITEM "ユーザーの作成(&C)...",       M_USER_CREATE
!         MENUITEM "グループの作成(&C)...",       M_GROUP_CREATE
!         MENUITEM SEPARATOR
!         MENUITEM "名前変更(&N)...",             M_RENAME
!         MENUITEM "削除(&D)...",                 M_DELETE
!         MENUITEM SEPARATOR
!         MENUITEM "すべて選択(&A)\tCtrl+A",      M_SELECTALL
!         MENUITEM SEPARATOR
!         MENUITEM "最新表示(&F)\tF5",            M_REFRESH
!         MENUITEM "メンバーシップ(&M)...\tCtrl+M", M_MEMBERSHIP
!         MENUITEM "プロパティー(&R)\tAlt+Enter", M_PROPERTIES
!     END
!     POPUP "表示(&V)"
!     BEGIN
!         POPUP "アイコン(&I)"
!         BEGIN
!             MENUITEM "大アイコン(&G)",              M_VIEW_LARGE, CHECKED
!             MENUITEM "小アイコン(&M)",              M_VIEW_SMALL, CHECKED
!             MENUITEM "詳細(&D)",                    M_VIEW_DETAILS, CHECKED
!             MENUITEM SEPARATOR
!             MENUITEM "標準(&N)",                    M_VIEW_ONE, CHECKED
!             MENUITEM "すべてのアイコン(&A)",        M_VIEW_TWO, CHECKED
!             MENUITEM "状況のみ(&S)",                M_VIEW_STATUS, CHECKED
!         END
!         MENUITEM SEPARATOR
!         MENUITEM "進行中の操作(&P)",            M_ACTIONS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "列(&C)...",                   M_COLUMNS
!         MENUITEM "オプション(&O)...",           M_OPTIONS
!         MENUITEM SEPARATOR
!         MENUITEM "すべて最新表示(&F)",          M_REFRESHALL
!     END
!     POPUP "ヘルプ(&H)"
!     BEGIN
!         MENUITEM "目次(&C)",                    M_CONTENTS
!         MENUITEM "コマンド検索(&F)...",         M_FIND
!         MENUITEM "エラー・コードの検索(&L)...", M_LOOKUP
!         MENUITEM SEPARATOR
!         MENUITEM "AFS アカウント・マネージャーについて(&A)...", M_ABOUT
!     END
! END
! 
! MENU_USER_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "表示(&V)"
!     BEGIN
!         MENUITEM "大アイコン(&G)",              M_VIEW_LARGE, CHECKED
!         MENUITEM "小アイコン(&M)",              M_VIEW_SMALL, CHECKED
!         MENUITEM "詳細(&D)",                    M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "標準(&N)",                    M_VIEW_ONE, CHECKED
!         MENUITEM "すべてのアイコン(&A)",        M_VIEW_TWO, CHECKED
!         MENUITEM "状況のみ(&S)",                M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "ユーザーの作成(&C)...",       M_USER_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "すべて最新表示(&F)",          M_REFRESHALL
! END
! 
! MENU_GROUP_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "表示(&V)"
!     BEGIN
!         MENUITEM "大アイコン(&G)",              M_VIEW_LARGE, CHECKED
!         MENUITEM "小アイコン(&M)",              M_VIEW_SMALL, CHECKED
!         MENUITEM "詳細(&D)",                    M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "標準(&N)",                    M_VIEW_ONE, CHECKED
!         MENUITEM "すべてのアイコン(&A)",        M_VIEW_TWO, CHECKED
!         MENUITEM "状況のみ(&S)",                M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "グループの作成(&C)...",       M_GROUP_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "すべて最新表示(&F)",          M_REFRESHALL
! END
! 
! MENU_USER MENU DISCARDABLE 
! BEGIN
!     MENUITEM "グループ(&G)...",             M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "パスワードの変更(&P)...",     M_CPW
!     MENUITEM "ロック解除(&U)",              M_UNLOCK
!     MENUITEM "削除(&D)...",                 M_DELETE
!     MENUITEM "最新表示(&F)",                M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "プロパティー(&R)...",         M_PROPERTIES
! END
! 
! MENU_GROUP MENU DISCARDABLE 
! BEGIN
!     MENUITEM "グループ・メンバー(&M)...",   M_MEMBERSHIP
!     MENUITEM SEPARATOR
!     MENUITEM "名前変更(&R)...",             M_RENAME
!     MENUITEM "削除(&D)...",                 M_DELETE
!     MENUITEM "最新表示(&F)",                M_REFRESH
!     MENUITEM SEPARATOR
!     MENUITEM "プロパティー(&R)...",         M_PROPERTIES
! END
! 
! MENU_COLUMNS MENU DISCARDABLE 
! BEGIN
!     MENUITEM "列(&C)...",                   M_COLUMNS
! END
! 
! MENU_MACHINE_NONE MENU DISCARDABLE 
! BEGIN
!     POPUP "表示(&V)"
!     BEGIN
!         MENUITEM "大アイコン(&G)",              M_VIEW_LARGE, CHECKED
!         MENUITEM "小アイコン(&M)",              M_VIEW_SMALL, CHECKED
!         MENUITEM "詳細(&D)",                    M_VIEW_DETAILS, CHECKED
!         MENUITEM SEPARATOR
!         MENUITEM "標準(&N)",                    M_VIEW_ONE, CHECKED
!         MENUITEM "すべてのアイコン(&A)",        M_VIEW_TWO, CHECKED
!         MENUITEM "状況のみ(&S)",                M_VIEW_STATUS, CHECKED
!     END
!     MENUITEM SEPARATOR
!     MENUITEM "アカウントの作成(&C)...",     M_MACHINE_CREATE
!     MENUITEM SEPARATOR
!     MENUITEM "すべて最新
