Index: openafs/src/WINNT/afsd/NTMakefile
diff -c openafs/src/WINNT/afsd/NTMakefile:1.46.2.3 openafs/src/WINNT/afsd/NTMakefile:1.46.2.4
*** openafs/src/WINNT/afsd/NTMakefile:1.46.2.3	Mon Jul 24 10:13:16 2006
--- openafs/src/WINNT/afsd/NTMakefile	Thu Aug 31 06:29:48 2006
***************
*** 330,335 ****
--- 330,336 ----
  	$(DESTDIR)\lib\afs\afscom_err.lib \
  	$(DESTDIR)\lib\afs\afsreg.lib \
  	$(DESTDIR)\lib\afs\afscmd.lib \
+ 	$(DESTDIR)\lib\afs\afsvldb.lib \
  	$(DESTDIR)\lib\afsubik.lib \
  	$(DESTDIR)\lib\afsrxkad.lib \
  	$(DESTDIR)\lib\afsdes.lib \
Index: openafs/src/WINNT/afsd/afsd_init.c
diff -c openafs/src/WINNT/afsd/afsd_init.c:1.79.2.4 openafs/src/WINNT/afsd/afsd_init.c:1.79.2.5
*** openafs/src/WINNT/afsd/afsd_init.c:1.79.2.4	Thu Aug 17 08:41:45 2006
--- openafs/src/WINNT/afsd/afsd_init.c	Wed Aug 30 16:12:03 2006
***************
*** 116,122 ****
      if ( afsi_log_useTimestamp ) {
          GetTimeFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, t, sizeof(t));
          GetDateFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, d, sizeof(d));
!         StringCbPrintfA(u, sizeof(u), "%s %s: %s\n", d, t, s);
          if (afsi_file != INVALID_HANDLE_VALUE)
              WriteFile(afsi_file, u, (DWORD)strlen(u), &zilch, NULL);
  #ifdef NOTSERVICE
--- 116,122 ----
      if ( afsi_log_useTimestamp ) {
          GetTimeFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, t, sizeof(t));
          GetDateFormat(LOCALE_SYSTEM_DEFAULT, 0, NULL, NULL, d, sizeof(d));
!         StringCbPrintfA(u, sizeof(u), "%s %s: %s\r\n", d, t, s);
          if (afsi_file != INVALID_HANDLE_VALUE)
              WriteFile(afsi_file, u, (DWORD)strlen(u), &zilch, NULL);
  #ifdef NOTSERVICE
Index: openafs/src/WINNT/afsd/cm_callback.c
diff -c openafs/src/WINNT/afsd/cm_callback.c:1.41.4.5 openafs/src/WINNT/afsd/cm_callback.c:1.41.4.6
*** openafs/src/WINNT/afsd/cm_callback.c:1.41.4.5	Tue Jun 27 23:24:05 2006
--- openafs/src/WINNT/afsd/cm_callback.c	Fri Aug 25 13:08:23 2006
***************
*** 125,131 ****
          Sleep(dwDelay);
  
      /* for directories, this sends a change notification on the dir itself */
! 	if (scp->fileType == CM_SCACHETYPE_DIRECTORY) {
  #ifndef AFSIFS
          if (scp->flags & CM_SCACHEFLAG_ANYWATCH)
              smb_NotifyChange(0,
--- 125,131 ----
          Sleep(dwDelay);
  
      /* for directories, this sends a change notification on the dir itself */
!     if (scp->fileType == CM_SCACHETYPE_DIRECTORY) {
  #ifndef AFSIFS
          if (scp->flags & CM_SCACHEFLAG_ANYWATCH)
              smb_NotifyChange(0,
Index: openafs/src/WINNT/afsd/cm_daemon.c
diff -c openafs/src/WINNT/afsd/cm_daemon.c:1.16.4.3 openafs/src/WINNT/afsd/cm_daemon.c:1.16.4.4
*** openafs/src/WINNT/afsd/cm_daemon.c:1.16.4.3	Wed Jul 26 09:04:08 2006
--- openafs/src/WINNT/afsd/cm_daemon.c	Wed Aug 30 16:16:15 2006
***************
*** 144,150 ****
      if (!scm) return FALSE;
  
      /* Open Windows Firewall service */
!     svc = OpenService(scm, "SharedAccess", SERVICE_QUERY_CONFIG);
      if (!svc)
          goto close_scm;
  
--- 144,156 ----
      if (!scm) return FALSE;
  
      /* Open Windows Firewall service */
!     svc = OpenService(scm, "MpsSvc", SERVICE_QUERY_CONFIG);
!     if (!svc) {
! 	afsi_log("MpsSvc Service could not be opened for query: 0x%x", GetLastError());
! 	svc = OpenService(scm, "SharedAccess", SERVICE_QUERY_CONFIG);
! 	if (!svc)
! 	    afsi_log("SharedAccess Service could not be opened for query: 0x%x", GetLastError());
!     }
      if (!svc)
          goto close_scm;
  
***************
*** 162,171 ****
  
      /* Query Windows Firewall service config, this time for real */
      flag = QueryServiceConfig(svc, pConfig, BufSize, &BufSize);
!     if (!flag)
          goto free_pConfig;
  
      /* Is it autostart? */
      if (pConfig->dwStartType < SERVICE_DEMAND_START)
          result = TRUE;
  
--- 168,180 ----
  
      /* Query Windows Firewall service config, this time for real */
      flag = QueryServiceConfig(svc, pConfig, BufSize, &BufSize);
!     if (!flag) {
! 	afsi_log("QueryServiceConfig failed: 0x%x", GetLastError());
          goto free_pConfig;
+     }
  
      /* Is it autostart? */
+     afsi_log("AutoStart 0x%x", pConfig->dwStartType);
      if (pConfig->dwStartType < SERVICE_DEMAND_START)
          result = TRUE;
  
***************
*** 247,252 ****
--- 256,265 ----
      HMODULE hHookDll;
      int configureFirewall = IsWindowsFirewallPresent();
  
+     if (!configureFirewall) {
+ 	afsi_log("No Windows Firewall detected");
+     }
+ 
      /* 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.
***************
*** 297,303 ****
  	    default:
  		afsi_log("Unknown Windows Firewall Configuration error");
  	    }
! 	}
  
          /* find out what time it is */
          now = osi_Time();
--- 310,316 ----
  	    default:
  		afsi_log("Unknown Windows Firewall Configuration error");
  	    }
! 	} 
  
          /* find out what time it is */
          now = osi_Time();
Index: openafs/src/WINNT/afsd/cm_dnlc.c
diff -c openafs/src/WINNT/afsd/cm_dnlc.c:1.10 openafs/src/WINNT/afsd/cm_dnlc.c:1.10.4.1
*** openafs/src/WINNT/afsd/cm_dnlc.c:1.10	Mon Dec 19 07:42:23 2005
--- openafs/src/WINNT/afsd/cm_dnlc.c	Wed Sep  6 13:21:19 2006
***************
*** 116,122 ****
  
      if (!cm_useDnlc)
  	return ;
!   
      if ( cm_debugDnlc ) 
  	osi_Log3(afsd_logp,"cm_dnlcEnter dir %x name %s scache %x", 
  	    adp, osi_LogSaveString(afsd_logp,aname), avc);
--- 116,125 ----
  
      if (!cm_useDnlc)
  	return ;
! 
!     if (!strcmp(aname,".") || !strcmp(aname,".."))
! 	return ;
! 
      if ( cm_debugDnlc ) 
  	osi_Log3(afsd_logp,"cm_dnlcEnter dir %x name %s scache %x", 
  	    adp, osi_LogSaveString(afsd_logp,aname), avc);
Index: openafs/src/WINNT/afsd/cm_vnodeops.c
diff -c openafs/src/WINNT/afsd/cm_vnodeops.c:1.69.2.9 openafs/src/WINNT/afsd/cm_vnodeops.c:1.69.2.11
*** openafs/src/WINNT/afsd/cm_vnodeops.c:1.69.2.9	Thu Jul 20 17:46:19 2006
--- openafs/src/WINNT/afsd/cm_vnodeops.c	Wed Sep  6 13:21:19 2006
***************
*** 1094,1099 ****
--- 1094,1102 ----
              return CM_ERROR_NOSUCHVOLUME;
          rock.fid = dscp->dotdotFid;
          goto haveFid;
+     } else if (strcmp(namep, ".") == 0) {
+ 	rock.fid = dscp->fid;
+ 	goto haveFid;
      }
  
      memset(&rock, 0, sizeof(rock));
***************
*** 1256,1262 ****
      long code;
      char tname[256];
      int sysNameIndex = 0;
!     cm_scache_t *scp = 0;
  
      if ( stricmp(namep,SMB_IOCTL_FILENAME_NOSLASH) == 0 ) {
          if (flags & CM_FLAG_CHECKPATH)
--- 1259,1265 ----
      long code;
      char tname[256];
      int sysNameIndex = 0;
!     cm_scache_t *scp = NULL;
  
      if ( stricmp(namep,SMB_IOCTL_FILENAME_NOSLASH) == 0 ) {
          if (flags & CM_FLAG_CHECKPATH)
***************
*** 1275,1281 ****
              }
              if (scp) {
                  cm_ReleaseSCache(scp);
!                 scp = 0;
              }
          } else {
              return cm_LookupInternal(dscp, namep, flags, userp, reqp, outpScpp);
--- 1278,1284 ----
              }
              if (scp) {
                  cm_ReleaseSCache(scp);
!                 scp = NULL;
              }
          } else {
              return cm_LookupInternal(dscp, namep, flags, userp, reqp, outpScpp);
***************
*** 1543,1549 ****
      tscp = rootSCachep;
      cm_HoldSCache(tscp);
      symlinkCount = 0;
!     dirScp = 0;
  
      while (1) {
          tc = *tp++;
--- 1546,1552 ----
      tscp = rootSCachep;
      cm_HoldSCache(tscp);
      symlinkCount = 0;
!     dirScp = NULL;
  
      while (1) {
          tc = *tp++;
***************
*** 1578,1611 ****
                   * is a symlink, we have more to do.
                   */
                  *cp++ = 0;	/* add null termination */
!                 extraFlag = 0;
!                 if ((flags & CM_FLAG_DIRSEARCH) && tc == 0)
!                     extraFlag = CM_FLAG_NOMOUNTCHASE;
!                 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)
!                         return CM_ERROR_NOSUCHPATH;
!                     else
!                         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;
                  }
--- 1581,1622 ----
                   * is a symlink, we have more to do.
                   */
                  *cp++ = 0;	/* add null termination */
! 		if (!strcmp(".",component)) {
!                     code = 0;
!                     if (dirScp) {
                          cm_ReleaseSCache(dirScp);
!                         dirScp = NULL;
!                     }
!                     break;
! 		}
! 		extraFlag = 0;
! 		if ((flags & CM_FLAG_DIRSEARCH) && tc == 0)
! 		    extraFlag = CM_FLAG_NOMOUNTCHASE;
! 		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)
! 			return CM_ERROR_NOSUCHPATH;
! 		    else
! 			return code;
! 		}	
! 		haveComponent = 0;	/* component done */
! 		if (dirScp)
! 		    cm_ReleaseSCache(dirScp);
! 		dirScp = tscp;		/* for some symlinks */
! 		tscp = nscp;	        /* already held */
! 		nscp = NULL;
! 		if (tc == 0 && !(flags & CM_FLAG_FOLLOW) && phase == 2) {
                      code = 0;
                      if (dirScp) {
                          cm_ReleaseSCache(dirScp);
!                         dirScp = NULL;
                      }
                      break;
                  }
***************
*** 1620,1629 ****
                  if (code) {
                      lock_ReleaseMutex(&tscp->mx);
                      cm_ReleaseSCache(tscp);
!                     tscp = 0;
                      if (dirScp) {
                          cm_ReleaseSCache(dirScp);
!                         dirScp = 0;
                      }
                      break;
                  }
--- 1631,1640 ----
                  if (code) {
                      lock_ReleaseMutex(&tscp->mx);
                      cm_ReleaseSCache(tscp);
!                     tscp = NULL;
                      if (dirScp) {
                          cm_ReleaseSCache(dirScp);
!                         dirScp = NULL;
                      }
                      break;
                  }
***************
*** 1632,1641 ****
                      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);
--- 1643,1652 ----
                      lock_ReleaseMutex(&tscp->mx);
                      if (symlinkCount++ >= MAX_SYMLINK_COUNT) {
                          cm_ReleaseSCache(tscp);
!                         tscp = NULL;
                          if (dirScp) {
                              cm_ReleaseSCache(dirScp);
!                             dirScp = NULL;
                          }
                          if (psp) 
                              cm_FreeSpace(psp);
***************
*** 1649,1658 ****
                      if (code) {
                          /* something went wrong */
                          cm_ReleaseSCache(tscp);
!                         tscp = 0;
                          if (dirScp) {
                              cm_ReleaseSCache(dirScp);
!                             dirScp = 0;
                          }
                          break;
                      }
--- 1660,1669 ----
                      if (code) {
                          /* something went wrong */
                          cm_ReleaseSCache(tscp);
!                         tscp = NULL;
                          if (dirScp) {
                              cm_ReleaseSCache(dirScp);
!                             dirScp = NULL;
                          }
                          break;
                      }
***************
*** 1671,1677 ****
                      tp = psp->data;
                      cm_ReleaseSCache(tscp);
                      tscp = linkScp;
!                     linkScp = 0;
                      /* already held
                       * by AssembleLink
                       * now, if linkScp is null, that's
--- 1682,1688 ----
                      tp = psp->data;
                      cm_ReleaseSCache(tscp);
                      tscp = linkScp;
!                     linkScp = NULL;
                      /* already held
                       * by AssembleLink
                       * now, if linkScp is null, that's
***************
*** 1684,1690 ****
                       */
                      if (tscp == NULL) {
                          tscp = dirScp;
!                         dirScp = 0;
                      }
                  } else {
                      /* not a symlink, we may be done */
--- 1695,1701 ----
                       */
                      if (tscp == NULL) {
                          tscp = dirScp;
!                         dirScp = NULL;
                      }
                  } else {
                      /* not a symlink, we may be done */
***************
*** 1697,1703 ****
                          }
                          if (dirScp) {
                              cm_ReleaseSCache(dirScp);
!                             dirScp = 0;
                          }
                          code = 0;
                          break;
--- 1708,1714 ----
                          }
                          if (dirScp) {
                              cm_ReleaseSCache(dirScp);
!                             dirScp = NULL;
                          }
                          code = 0;
                          break;
***************
*** 1705,1711 ****
                  }
                  if (dirScp) {
                      cm_ReleaseSCache(dirScp);
!                     dirScp = 0;
                  }
              } /* end of a component */
              else 
--- 1716,1722 ----
                  }
                  if (dirScp) {
                      cm_ReleaseSCache(dirScp);
!                     dirScp = NULL;
                  }
              } /* end of a component */
              else 
Index: openafs/src/WINNT/afsd/cm_volume.c
diff -c openafs/src/WINNT/afsd/cm_volume.c:1.14.4.1 openafs/src/WINNT/afsd/cm_volume.c:1.14.4.2
*** openafs/src/WINNT/afsd/cm_volume.c:1.14.4.1	Sat Jun 24 16:41:55 2006
--- openafs/src/WINNT/afsd/cm_volume.c	Fri Aug 25 11:27:39 2006
***************
*** 435,441 ****
                          break;
                      }
                  }
!                 osi_panic("Exceeded Max Volumes", __FILE__, __LINE__);
              }
  
              if (volp) {
--- 435,442 ----
                          break;
                      }
                  }
! 		if (!volp)
! 		    osi_panic("Exceeded Max Volumes", __FILE__, __LINE__);
              }
  
              if (volp) {
Index: openafs/src/WINNT/afsd/fs.c
diff -c openafs/src/WINNT/afsd/fs.c:1.32.4.2 openafs/src/WINNT/afsd/fs.c:1.32.4.4
*** openafs/src/WINNT/afsd/fs.c:1.32.4.2	Fri Jul 28 09:38:13 2006
--- openafs/src/WINNT/afsd/fs.c	Tue Sep  5 19:54:48 2006
***************
*** 23,30 ****
--- 23,32 ----
  
  #include <osi.h>
  #include <afsint.h>
+ #include <afs/cellconfig.h>
  #include <afs/ptserver.h>
  #include <afs/ptuser.h>
+ #include <afs/volser.h>
  #include <WINNT\afsreg.h>
  
  #include "fs.h"
***************
*** 46,54 ****
  static char space[MAXSIZE];
  static char tspace[1024];
  
- #ifndef WIN32
  static struct ubik_client *uclient;
- #endif /* not WIN32 */
  
  static int GetClientAddrsCmd(struct cmd_syndesc *asp, char *arock);
  static int SetClientAddrsCmd(struct cmd_syndesc *asp, char *arock);
--- 48,54 ----
***************
*** 62,82 ****
  static int CSCPolicyCmd(struct cmd_syndesc *asp, char *arock);
  static int MiniDumpCmd(struct cmd_syndesc *asp, char *arock);
  
- extern afs_int32 VL_GetEntryByNameO();
- 
  static char pn[] = "fs";
  static int rxInitDone = 0;
  
- struct afsconf_cell {
-     char name[MAXCELLCHARS];
-     short numServers;
-     short flags;
-     struct sockaddr_in hostAddr[MAXCELLHOSTS];
-     char hostName[MAXCELLHOSTS][MAXHOSTCHARS];
-     char *linkedCell;
- };      
- 
- 
  /*
   * Character to use between name and rights in printed representation for
   * DFS ACL's.
--- 62,70 ----
***************
*** 1475,1480 ****
--- 1463,1469 ----
              *(input++) = '\0';
  	code = pioctl(ti->data,VIOCSETVOLSTAT, &blob, 1);
  	if (code) {
+ 	    Die(errno, ti->data);
  	    error = 1;
  	}
      }
***************
*** 1851,1859 ****
  #endif
      char path[1024] = "";
      struct afsconf_cell info;
- #ifndef WIN32
      struct vldbentry vldbEntry;
- #endif
      struct ViceIoctl blob;
      char * parent;
  
--- 1840,1846 ----
***************
*** 1933,1939 ****
      if (code) {
  	return 1;
      }
- #ifndef WIN32
      if (!(as->parms[4].items)) {
        /* not fast, check which cell the mountpoint is being created in */
        code = 0;
--- 1920,1925 ----
***************
*** 1942,1955 ****
  	code = VLDBInit(1, &info);
        if (code == 0) {
  	  /* make the check.  Don't complain if there are problems with init */
! 	  code = ubik_Call(VL_GetEntryByNameO, uclient, 0, volName, &vldbEntry);
  	  if (code == VL_NOENT) {
  	      fprintf(stderr,"%s: warning, volume %s does not exist in cell %s.\n",
  		      pn, volName, cellName ? cellName : space);
  	  }
        }
      }
- #endif /* not WIN32 */
  
      if (as->parms[3].items)	/* if -rw specified */
  	strcpy(space, "%");
--- 1928,1940 ----
  	code = VLDBInit(1, &info);
        if (code == 0) {
  	  /* make the check.  Don't complain if there are problems with init */
! 	  code = ubik_VL_GetEntryByNameO(uclient, 0, volName, &vldbEntry);
  	  if (code == VL_NOENT) {
  	      fprintf(stderr,"%s: warning, volume %s does not exist in cell %s.\n",
  		      pn, volName, cellName ? cellName : space);
  	  }
        }
      }
  
      if (as->parms[3].items)	/* if -rw specified */
  	strcpy(space, "%");
***************
*** 2968,2980 ****
      strcpy(infop->name, cellNamep);
      return 0;
  }
! 
! static int
! VLDBInit(int noAuthFlag, struct afsconf_cell *infop)
! {
!     return 0;
! }
! #else /* not WIN32 */
  static int
  GetCellName(char *cellName, struct afsconf_cell *info)
  {
--- 2953,2959 ----
      strcpy(infop->name, cellNamep);
      return 0;
  }
! #else
  static int
  GetCellName(char *cellName, struct afsconf_cell *info)
  {
***************
*** 2998,3004 ****
  
      return 0;
  }
! 
  
  static int
  VLDBInit(int noAuthFlag, struct afsconf_cell *info)
--- 2977,2983 ----
  
      return 0;
  }
! #endif /* not WIN32 */
  
  static int
  VLDBInit(int noAuthFlag, struct afsconf_cell *info)
***************
*** 3013,3019 ****
      rxInitDone = 1;
      return code;
  }
- #endif /* not WIN32 */
  
  static struct ViceIoctl gblob;
  static int debug = 0;
--- 2992,2997 ----
***************
*** 4611,4620 ****
  
      code = cmd_Dispatch(argc, argv);
  
- #ifndef WIN32
      if (rxInitDone) 
          rx_Finalize();
- #endif /* not WIN32 */
      
      return code;
  }
--- 4589,4596 ----
Index: openafs/src/WINNT/afsd/smb.h
diff -c openafs/src/WINNT/afsd/smb.h:1.41.2.7 openafs/src/WINNT/afsd/smb.h:1.41.2.8
*** openafs/src/WINNT/afsd/smb.h:1.41.2.7	Fri Jul 28 09:38:13 2006
--- openafs/src/WINNT/afsd/smb.h	Fri Aug 25 13:08:23 2006
***************
*** 20,25 ****
--- 20,26 ----
  #define AFS_LARGEFILES
  
  /* basic core protocol SMB structure */
+ #pragma pack(push, 1)
  typedef struct smb {
      unsigned char id[4];
      unsigned char com;
***************
*** 37,43 ****
      unsigned char wct;
      unsigned char vdata[1];
  } smb_t;
! 
  
  /* reb values */
  #define SMB_FLAGS_SUPPORT_LOCKREAD         0x01
--- 38,44 ----
      unsigned char wct;
      unsigned char vdata[1];
  } smb_t;
! #pragma pack(pop)
  
  /* reb values */
  #define SMB_FLAGS_SUPPORT_LOCKREAD         0x01
Index: openafs/src/WINNT/afsd/smb3.c
diff -c openafs/src/WINNT/afsd/smb3.c:1.95.2.14 openafs/src/WINNT/afsd/smb3.c:1.95.2.16
*** openafs/src/WINNT/afsd/smb3.c:1.95.2.14	Fri Jul 28 09:38:13 2006
--- openafs/src/WINNT/afsd/smb3.c	Wed Aug 30 02:33:01 2006
***************
*** 3419,3425 ****
  	    lock_ReleaseMutex(&fidp->mx);
          }
      }       
!     else if (infoLevel == SMB_SET_FILE_ALLOCATION_INFO) {
          LARGE_INTEGER size = *((LARGE_INTEGER *)(p->datap));
          cm_attr_t attr;
  
--- 3419,3426 ----
  	    lock_ReleaseMutex(&fidp->mx);
          }
      }       
!     else if (infoLevel == SMB_SET_FILE_ALLOCATION_INFO ||
! 	     infoLevel == SMB_SET_FILE_END_OF_FILE_INFO) {
          LARGE_INTEGER size = *((LARGE_INTEGER *)(p->datap));
          cm_attr_t attr;
  
***************
*** 3428,3442 ****
          attr.length.HighPart = size.HighPart;
          code = cm_SetAttr(scp, &attr, userp, &req);
      }       
-     else if (infoLevel == SMB_SET_FILE_END_OF_FILE_INFO) {
-         unsigned short size = *((unsigned short *)(p->datap));
-         cm_attr_t attr;
- 
-         attr.mask = CM_ATTRMASK_LENGTH;
- 		attr.length.HighPart = 0;
-         attr.length.LowPart = size;
-         code = cm_SetAttr(scp, &attr, userp, &req);
-     }       
  
    done:
      cm_ReleaseSCache(scp);
--- 3429,3434 ----
***************
*** 4254,4259 ****
--- 4246,4257 ----
      osi_Log3(smb_logp, "...T2 search op %d, id %d, nextCookie 0x%x",
                p->opcode, dsp->cookie, nextCookie);
  
+     if (infoLevel > SMB_FIND_FILE_BOTH_DIRECTORY_INFO) {
+         osi_Log1(smb_logp, "Unsupported InfoLevel 0x%x", infoLevel);
+         smb_ReleaseDirSearch(dsp);
+         return CM_ERROR_INVAL;
+     }
+ 
      if (infoLevel >= SMB_FIND_FILE_DIRECTORY_INFO)
          searchFlags &= ~4;	/* no resume keys */
  
Index: openafs/src/WINNT/afsd/smb3.h
diff -c openafs/src/WINNT/afsd/smb3.h:1.12.2.3 openafs/src/WINNT/afsd/smb3.h:1.12.2.4
*** openafs/src/WINNT/afsd/smb3.h:1.12.2.3	Fri Jul 28 09:38:14 2006
--- openafs/src/WINNT/afsd/smb3.h	Fri Aug 25 13:08:23 2006
***************
*** 40,48 ****
          long flags;
  } smb_tran2Dispatch_t;
  
  typedef struct smb_tran2QFSInfo {
      union {
- #pragma pack(push, 2)
          struct {
              unsigned long FSID;			/* file system ID */
              unsigned long sectorsPerAllocUnit;
--- 40,51 ----
          long flags;
  } smb_tran2Dispatch_t;
  
+ /* Data Structures that are written to or read from the wire directly
+  * must be byte aligned (no padding).
+  */
+ #pragma pack(push, 1)
  typedef struct smb_tran2QFSInfo {
      union {
          struct {
              unsigned long FSID;			/* file system ID */
              unsigned long sectorsPerAllocUnit;
***************
*** 50,56 ****
              unsigned long availAllocUnits;	/* free blocks */
              unsigned short bytesPerSector;	/* bytes per sector */
          } allocInfo;
- #pragma pack(pop)
          struct {
              unsigned long vsn;			/* volume serial number */
              char vnCount;			/* count of chars in label, incl null */
--- 53,58 ----
***************
*** 205,210 ****
--- 207,213 ----
  	} QFfileNameInfo;
      } u;
  } smb_tran2QFileInfo_t;
+ #pragma pack(pop)
  
  /* more than enough opcodes for today, anyway */
  #define SMB_TRAN2_NOPCODES		20
Index: openafs/src/WINNT/client_cpa/lang/NTMakefile
diff -c openafs/src/WINNT/client_cpa/lang/NTMakefile:1.5 openafs/src/WINNT/client_cpa/lang/NTMakefile:1.5.14.1
*** openafs/src/WINNT/client_cpa/lang/NTMakefile:1.5	Fri Nov 21 02:59:57 2003
--- openafs/src/WINNT/client_cpa/lang/NTMakefile	Mon Aug 28 00:28:08 2006
***************
*** 48,54 ****
  install : $(DLLFILE)
  
  clean ::
! 	$(DEL) *.res RC* RD* $(DLLFILE)
  
  ############################################################################
  #
--- 48,58 ----
  install : $(DLLFILE)
  
  clean ::
! 	$(DEL) $(RESFILE)
! 	$(DEL) RC* 
! 	$(DEL) RD* 
! 	$(DEL) $(DLLFILE) 
! 	$(DEL) AFS_component_version_number.h
  
  ############################################################################
  #
Index: openafs/src/WINNT/client_exp/afs_shl_ext.cpp
diff -c openafs/src/WINNT/client_exp/afs_shl_ext.cpp:1.6 openafs/src/WINNT/client_exp/afs_shl_ext.cpp:1.6.4.2
*** openafs/src/WINNT/client_exp/afs_shl_ext.cpp:1.6	Sun Oct  2 10:46:13 2005
--- openafs/src/WINNT/client_exp/afs_shl_ext.cpp	Wed Sep  6 19:14:00 2006
***************
*** 25,32 ****
  static char THIS_FILE[] = __FILE__;
  #endif
  
  static const IID IID_IShellExt =
! { 0xdc515c27, 0x6cac, 0x11d1, { 0xba, 0xe7, 0x0, 0xc0, 0x4f, 0xd1, 0x40, 0xd2 } };
  
  /////////////////////////////////////////////////////////////////////////////
  // CAfsShlExt
--- 25,43 ----
  static char THIS_FILE[] = __FILE__;
  #endif
  
+ #ifndef _WIN64
+ 
+ // 32-bit
+ static const IID IID_IShellExt =
+     { 0xdc515c27, 0x6cac, 0x11d1, { 0xba, 0xe7, 0x0, 0xc0, 0x4f, 0xd1, 0x40, 0xd2 } };
+ 
+ #else
+ 
+ // 64-bit
  static const IID IID_IShellExt =
!     { 0x5f820ca1, 0x3dde, 0x11db, {0xb2, 0xce, 0x00, 0x15, 0x58, 0x09, 0x2d, 0xb5} };
! 
! #endif
  
  /////////////////////////////////////////////////////////////////////////////
  // CAfsShlExt
***************
*** 60,66 ****
  BOOL CAfsShlExt::InitInstance()
  {
  	// Load our translated resources
! 	TaLocale_LoadCorrespondingModule (m_hInstance);
  
  	// Register all OLE server (factories) as running.  This enables the
  	//  OLE libraries to create objects from other applications.
--- 71,77 ----
  BOOL CAfsShlExt::InitInstance()
  {
  	// Load our translated resources
! 	TaLocale_LoadCorrespondingModuleByName (m_hInstance, TEXT("afs_shl_ext.dll"));
  
  	// Register all OLE server (factories) as running.  This enables the
  	//  OLE libraries to create objects from other applications.
***************
*** 152,158 ****
  	}
      
      /*
!     [HKEY_CLASSES_ROOT\CLSID\{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}\InprocServer32]
      @="Y:\\DEST\\root.client\\usr\\vice\\etc\\afs_shl_ext.dll"
      "ThreadingModel"="Apartment"
      */
--- 163,169 ----
  	}
      
      /*
!     [HKEY_CLASSES_ROOT\CLSID\{$CLSID}\InprocServer32]
      @="Y:\\DEST\\root.client\\usr\\vice\\etc\\afs_shl_ext.dll"
      "ThreadingModel"="Apartment"
      */
***************
*** 178,187 ****
  	//If running on NT, register the extension as approved.
      /*
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]
!     "{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"="AFS Client Shell Extension"
  
      [HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\AFS Client Shell Extension]
!     @="{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
      */
  
      OSVERSIONINFO  osvi;
--- 189,198 ----
  	//If running on NT, register the extension as approved.
      /*
      [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]
!     "{$(CLSID)}"="AFS Client Shell Extension"
  
      [HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\AFS Client Shell Extension]
!     @="{$(CLSID)}"
      */
  
      OSVERSIONINFO  osvi;
***************
*** 204,210 ****
      Register InfoTip
  
      [HKEY_CLASSES_ROOT\Folder\shellex\{00021500-0000-0000-C000-000000000046}]
!     @="{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}"
      */
  
  	wsprintf(szSubKey, TEXT("Folder\\shellex\\{00021500-0000-0000-C000-000000000046}"));
--- 215,221 ----
      Register InfoTip
  
      [HKEY_CLASSES_ROOT\Folder\shellex\{00021500-0000-0000-C000-000000000046}]
!     @="{$(CLSID)}"
      */
  
  	wsprintf(szSubKey, TEXT("Folder\\shellex\\{00021500-0000-0000-C000-000000000046}"));
Index: openafs/src/WINNT/client_exp/afs_shl_ext.odl
diff -c openafs/src/WINNT/client_exp/afs_shl_ext.odl:1.2 openafs/src/WINNT/client_exp/afs_shl_ext.odl:1.2.32.1
*** openafs/src/WINNT/client_exp/afs_shl_ext.odl:1.2	Sat Nov  4 05:02:51 2000
--- openafs/src/WINNT/client_exp/afs_shl_ext.odl	Wed Sep  6 19:14:00 2006
***************
*** 7,20 ****
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! [ uuid(DC515C1A-6CAC-11D1-BAE7-00C04FD140D2), version(1.0) ]
  library afs_shl_ext
  {
  	importlib("stdole32.tlb");
  	
  	//  Primary dispatch interface for CShellExt
  	
! 	[ uuid(DC515C27-6CAC-11D1-BAE7-00C04FD140D2) ]
  	dispinterface IShellExt
  	{
  		properties:
--- 7,36 ----
   * directory or online at http://www.openafs.org/dl/license10.html
   */
  
! #ifndef _WIN64
! 
! /* 32-bit UUIDs */
! #define lib_uuid   DC515C1A-6CAC-11D1-BAE7-00C04FD140D2
! #define int_uuid   DC515C27-6CAC-11D1-BAE7-00C04FD140D2
! #define class_uuid DC515C29-6CAC-11D1-BAE7-00C04FD140D2
! 
! #else
! 
! /* 64-bit UUIDs */
! #define lib_uuid   5F820CA0-3DDE-11DB-B2CE-001558092DB5
! #define int_uuid   5F820CA1-3DDE-11DB-B2CE-001558092DB5
! #define class_uuid 5F820CA2-3DDE-11DB-B2CE-001558092DB5
! 
! #endif
! 
! [ uuid(lib_uuid), version(1.0) ]
  library afs_shl_ext
  {
  	importlib("stdole32.tlb");
  	
  	//  Primary dispatch interface for CShellExt
  	
! 	[ uuid(int_uuid) ]
  	dispinterface IShellExt
  	{
  		properties:
***************
*** 33,39 ****
  
  	//  Class information for CShellExt
  
! 	[ uuid(DC515C29-6CAC-11D1-BAE7-00C04FD140D2) ]
  	coclass ShellExt
  	{
  		[default] dispinterface IShellExt;
--- 49,55 ----
  
  	//  Class information for CShellExt
  
! 	[ uuid(class_uuid) ]
  	coclass ShellExt
  	{
  		[default] dispinterface IShellExt;
Index: openafs/src/WINNT/client_exp/gui2fs.cpp
diff -c openafs/src/WINNT/client_exp/gui2fs.cpp:1.19 openafs/src/WINNT/client_exp/gui2fs.cpp:1.19.4.1
*** openafs/src/WINNT/client_exp/gui2fs.cpp:1.19	Sat Oct 15 17:45:48 2005
--- openafs/src/WINNT/client_exp/gui2fs.cpp	Thu Aug 31 07:35:12 2006
***************
*** 25,43 ****
  #include "down_servers_dlg.h"
  
  extern "C" {
! #include <afs/param.h>
! #include <osi.h>
  #include "fs.h"
  #include "fs_utils.h"
  #include <afsint.h>
  #include <afs/auth.h>
  #include <WINNT\afsreg.h>
  #include <cm.h>
  }
  
- 
  #define PCCHAR(str)		((char *)(const char *)(str))
! 
  
  #define	MAXHOSTS 13
  #define	OMAXHOSTS 8
--- 25,44 ----
  #include "down_servers_dlg.h"
  
  extern "C" {
! #include <rx/rx_globals.h>
  #include "fs.h"
  #include "fs_utils.h"
  #include <afsint.h>
+ #include <afs/cellconfig.h>
+ #include <afs/vldbint.h>
+ #include <afs/volser.h>
  #include <afs/auth.h>
  #include <WINNT\afsreg.h>
  #include <cm.h>
  }
  
  #define PCCHAR(str)		((char *)(const char *)(str))
! #define VL_NOENT                (363524L)
  
  #define	MAXHOSTS 13
  #define	OMAXHOSTS 8
***************
*** 50,73 ****
  #define MAXHOSTCHARS		64
  #define MAXHOSTSPERCELL		8
  
- struct afsconf_cell {
- 	char name[MAXCELLCHARS];
-     short numServers;
-     short flags;
-     struct sockaddr_in hostAddr[MAXHOSTSPERCELL];
-     char hostName[MAXHOSTSPERCELL][MAXHOSTCHARS];
-     char *linkedCell;
- };
- 
  static char space[MAXSIZE];
  static char tspace[1024];
  
  // #define	LOGGING_ON		// Enable this to log certain pioctl calls
  
  #ifdef	LOGGING_ON
  static char *szLogFileName = "afsguilog.txt";
  #endif
  
  FILE *OpenFile(char *file, char *rwp)
  {
      char wdir[256];
--- 51,83 ----
  #define MAXHOSTCHARS		64
  #define MAXHOSTSPERCELL		8
  
  static char space[MAXSIZE];
  static char tspace[1024];
  
+ static struct ubik_client *uclient;
+ static int rxInitDone = 0;
+ static char pn[] = "fs";
+ 
  // #define	LOGGING_ON		// Enable this to log certain pioctl calls
  
  #ifdef	LOGGING_ON
  static char *szLogFileName = "afsguilog.txt";
  #endif
  
+ static int
+ VLDBInit(int noAuthFlag, struct afsconf_cell *info)
+ {
+     afs_int32 code;
+ 
+     code = ugen_ClientInit(noAuthFlag, (char *)AFSDIR_CLIENT_ETC_DIRPATH, 
+ 			   info->name, 0, &uclient, 
+                            NULL, pn, rxkad_clear,
+                            VLDB_MAXSERVERS, AFSCONF_VLDBSERVICE, 50,
+                            0, 0, USER_SERVICE_ID);
+     rxInitDone = 1;
+     return code;
+ }
+ 
  FILE *OpenFile(char *file, char *rwp)
  {
      char wdir[256];
***************
*** 125,138 ****
          if (code) {
              error = 1;
              if (errno == EMFILE)
!                 ShowMessageBox(IDS_FLUSH_FAILED, MB_ICONEXCLAMATION, IDS_FLUSH_FAILED, files[i]);
              else 
!                 ShowMessageBox(IDS_FLUSH_ERROR, MB_ICONEXCLAMATION, IDS_FLUSH_ERROR, files[i], strerror(errno));
          }
      }   
  
      if (!error)
!         ShowMessageBox(IDS_FLUSH_OK, MB_ICONEXCLAMATION, IDS_FLUSH_OK);
  }       
  
  void FlushVolume(const CStringArray& files)
--- 135,148 ----
          if (code) {
              error = 1;
              if (errno == EMFILE)
!                 ShowMessageBox(IDS_FLUSH_FAILED, MB_ICONERROR, IDS_FLUSH_FAILED, files[i]);
              else 
!                 ShowMessageBox(IDS_FLUSH_ERROR, MB_ICONERROR, IDS_FLUSH_ERROR, files[i], strerror(errno));
          }
      }   
  
      if (!error)
!         ShowMessageBox(IDS_FLUSH_OK, MB_ICONINFORMATION, IDS_FLUSH_OK);
  }       
  
  void FlushVolume(const CStringArray& files)
***************
*** 149,160 ****
          code = pioctl(PCCHAR(files[i]), VIOC_FLUSHVOLUME, &blob, 0);
          if (code) {
              error = 1;
!             ShowMessageBox(IDS_FLUSH_VOLUME_ERROR, MB_ICONEXCLAMATION, IDS_FLUSH_VOLUME_ERROR, files[i], strerror(errno));
          }
      }   
  
      if (!code)
!         ShowMessageBox(IDS_FLUSH_VOLUME_OK, MB_ICONEXCLAMATION, IDS_FLUSH_VOLUME_OK);
  }       
  
  void WhichCell(CStringArray& files)
--- 159,170 ----
          code = pioctl(PCCHAR(files[i]), VIOC_FLUSHVOLUME, &blob, 0);
          if (code) {
              error = 1;
!             ShowMessageBox(IDS_FLUSH_VOLUME_ERROR, MB_ICONERROR, IDS_FLUSH_VOLUME_ERROR, files[i], strerror(errno));
          }
      }   
  
      if (!code)
!         ShowMessageBox(IDS_FLUSH_VOLUME_OK, MB_ICONINFORMATION, IDS_FLUSH_VOLUME_OK);
  }       
  
  void WhichCell(CStringArray& files)
***************
*** 224,234 ****
      blob.out_size = 0;
      code = pioctl(0, VIOCCKBACK, &blob, 1);
      if (code) {
!         ShowMessageBox(IDS_CHECK_VOLUMES_ERROR, MB_ICONEXCLAMATION, IDS_CHECK_VOLUMES_ERROR, GetAfsError(errno, CString()));
          return FALSE;
      }
  
!     ShowMessageBox(IDS_CHECK_VOLUMES_OK, MB_OK, IDS_CHECK_VOLUMES_OK);
  
      return TRUE;
  }
--- 234,244 ----
      blob.out_size = 0;
      code = pioctl(0, VIOCCKBACK, &blob, 1);
      if (code) {
!         ShowMessageBox(IDS_CHECK_VOLUMES_ERROR, MB_ICONERROR, IDS_CHECK_VOLUMES_ERROR, GetAfsError(errno, CString()));
          return FALSE;
      }
  
!     ShowMessageBox(IDS_CHECK_VOLUMES_OK, MB_OK|MB_ICONINFORMATION, IDS_CHECK_VOLUMES_OK);
  
      return TRUE;
  }
***************
*** 651,657 ****
      struct ViceIoctl blob;
      int changes;
  
!     ShowMessageBox(IDS_CLEANACL_MSG, MB_OK, IDS_CLEANACL_MSG);
  
      HOURGLASS hourglass;
  
--- 661,667 ----
      struct ViceIoctl blob;
      int changes;
  
!     ShowMessageBox(IDS_CLEANACL_MSG, MB_OK|MB_ICONINFORMATION, IDS_CLEANACL_MSG);
  
      HOURGLASS hourglass;
  
***************
*** 662,674 ****
  
          code = pioctl(PCCHAR(names[i]), VIOCGETAL, &blob, 1);
          if (code) {
!             ShowMessageBox(IDS_CLEANACL_ERROR, MB_ICONEXCLAMATION, 0, names[i], GetAfsError(errno));
              continue;
          }
  
          ta = ParseAcl(space);
          if (ta->dfs) {
!             ShowMessageBox(IDS_CLEANACL_NOT_SUPPORTED, MB_ICONEXCLAMATION, IDS_CLEANACL_NOT_SUPPORTED, names[i]);
              continue;
          }
  
--- 672,684 ----
  
          code = pioctl(PCCHAR(names[i]), VIOCGETAL, &blob, 1);
          if (code) {
!             ShowMessageBox(IDS_CLEANACL_ERROR, MB_ICONERROR, 0, names[i], GetAfsError(errno));
              continue;
          }
  
          ta = ParseAcl(space);
          if (ta->dfs) {
!             ShowMessageBox(IDS_CLEANACL_NOT_SUPPORTED, MB_ICONERROR, IDS_CLEANACL_NOT_SUPPORTED, names[i]);
              continue;
          }
  
***************
*** 684,694 ****
          code = pioctl(PCCHAR(names[i]), VIOCSETAL, &blob, 1);
          if (code) {
              if (errno == EINVAL) {
!                 ShowMessageBox(IDS_CLEANACL_INVALID_ARG, MB_ICONEXCLAMATION, IDS_CLEANACL_INVALID_ARG, names[i]);
                  continue;
              }
              else {
!                 ShowMessageBox(IDS_CLEANACL_ERROR, MB_ICONEXCLAMATION, 0, names[i], GetAfsError(errno));
                  continue;
              }
          }
--- 694,704 ----
          code = pioctl(PCCHAR(names[i]), VIOCSETAL, &blob, 1);
          if (code) {
              if (errno == EINVAL) {
!                 ShowMessageBox(IDS_CLEANACL_INVALID_ARG, MB_ICONERROR, IDS_CLEANACL_INVALID_ARG, names[i]);
                  continue;
              }
              else {
!                 ShowMessageBox(IDS_CLEANACL_ERROR, MB_ICONERROR, 0, names[i], GetAfsError(errno));
                  continue;
              }
          }
***************
*** 712,724 ****
  	
      code = pioctl(PCCHAR(strDir), VIOCGETAL, &blob, 1);
      if (code) {
!         ShowMessageBox(IDS_GETRIGHTS_ERROR, MB_ICONEXCLAMATION, IDS_GETRIGHTS_ERROR, strDir, GetAfsError(errno));
          return FALSE;
      }
  
      ta = ParseAcl(space);
      if (ta->dfs) {
!         ShowMessageBox(IDS_DFSACL_ERROR, MB_ICONEXCLAMATION, IDS_DFSACL_ERROR);
          return FALSE;
      }
  
--- 722,734 ----
  	
      code = pioctl(PCCHAR(strDir), VIOCGETAL, &blob, 1);
      if (code) {
!         ShowMessageBox(IDS_GETRIGHTS_ERROR, MB_ICONERROR, IDS_GETRIGHTS_ERROR, strDir, GetAfsError(errno));
          return FALSE;
      }
  
      ta = ParseAcl(space);
      if (ta->dfs) {
!         ShowMessageBox(IDS_DFSACL_ERROR, MB_ICONERROR, IDS_DFSACL_ERROR);
          return FALSE;
      }
  
***************
*** 878,886 ****
      code = pioctl(PCCHAR(strDir), VIOCSETAL, &blob, 1);
      if (code) {
          if (errno == EINVAL)
!             ShowMessageBox(IDS_SAVE_ACL_EINVAL_ERROR, MB_ICONEXCLAMATION, IDS_SAVE_ACL_EINVAL_ERROR, strDir);
          else
!             ShowMessageBox(IDS_SAVE_ACL_ERROR, MB_ICONEXCLAMATION, IDS_SAVE_ACL_ERROR, strDir, GetAfsError(errno, strDir));
      }       
  
      ZapAcl(pAcl);
--- 888,896 ----
      code = pioctl(PCCHAR(strDir), VIOCSETAL, &blob, 1);
      if (code) {
          if (errno == EINVAL)
!             ShowMessageBox(IDS_SAVE_ACL_EINVAL_ERROR, MB_ICONERROR, IDS_SAVE_ACL_EINVAL_ERROR, strDir);
          else
!             ShowMessageBox(IDS_SAVE_ACL_ERROR, MB_ICONERROR, IDS_SAVE_ACL_ERROR, strDir, GetAfsError(errno, strDir));
      }       
  
      ZapAcl(pAcl);
***************
*** 904,910 ****
  	
      code = pioctl(PCCHAR(strToDir), VIOCGETAL, &blob, 1);
      if (code) {
!         ShowMessageBox(IDS_ACL_READ_ERROR, MB_ICONEXCLAMATION, IDS_ACL_READ_ERROR, strToDir, GetAfsError(errno, strToDir));
          return FALSE;
      }
  	
--- 914,920 ----
  	
      code = pioctl(PCCHAR(strToDir), VIOCGETAL, &blob, 1);
      if (code) {
!         ShowMessageBox(IDS_ACL_READ_ERROR, MB_ICONERROR, IDS_ACL_READ_ERROR, strToDir, GetAfsError(errno, strToDir));
          return FALSE;
      }
  	
***************
*** 916,922 ****
      CleanAcl(pToAcl);
  
      if (pToAcl->dfs) {
!         ShowMessageBox(IDS_NO_DFS_COPY_ACL, MB_ICONEXCLAMATION, IDS_NO_DFS_COPY_ACL, strToDir);
          ZapAcl(pToAcl);
          return FALSE;
      }
--- 926,932 ----
      CleanAcl(pToAcl);
  
      if (pToAcl->dfs) {
!         ShowMessageBox(IDS_NO_DFS_COPY_ACL, MB_ICONERROR, IDS_NO_DFS_COPY_ACL, strToDir);
          ZapAcl(pToAcl);
          return FALSE;
      }
***************
*** 945,959 ****
      if (code) {
          ZapAcl(pToAcl);
          if (errno == EINVAL)
!             ShowMessageBox(IDS_COPY_ACL_EINVAL_ERROR, MB_ICONEXCLAMATION, IDS_COPY_ACL_EINVAL_ERROR, strToDir);
          else 
!             ShowMessageBox(IDS_COPY_ACL_ERROR, MB_ICONEXCLAMATION, IDS_COPY_ACL_ERROR, strToDir, GetAfsError(errno, strToDir));
          return FALSE;
      }
  
      ZapAcl(pToAcl);
  
!     ShowMessageBox(IDS_COPY_ACL_OK, MB_OK, IDS_COPY_ACL_OK);
  
      return TRUE;
  }
--- 955,969 ----
      if (code) {
          ZapAcl(pToAcl);
          if (errno == EINVAL)
!             ShowMessageBox(IDS_COPY_ACL_EINVAL_ERROR, MB_ICONERROR, IDS_COPY_ACL_EINVAL_ERROR, strToDir);
          else 
!             ShowMessageBox(IDS_COPY_ACL_ERROR, MB_ICONERROR, IDS_COPY_ACL_ERROR, strToDir, GetAfsError(errno, strToDir));
          return FALSE;
      }
  
      ZapAcl(pToAcl);
  
!     ShowMessageBox(IDS_COPY_ACL_OK, MB_OK|MB_ICONINFORMATION, IDS_COPY_ACL_OK);
  
      return TRUE;
  }
***************
*** 1294,1299 ****
--- 1304,1310 ----
      register char *cellName;
      char localCellName[128];
      struct afsconf_cell info;
+     struct vldbentry vldbEntry;
      struct ViceIoctl blob;
      char * parent;
      char path[1024] = "";
***************
*** 1320,1330 ****
  	    sprintf(path,"%sall\\%s", parent, &(PCCHAR(strDir)[strlen(parent)]));
  	    parent = Parent(path);
  	    if (!IsPathInAfs(parent)) {
! 		ShowMessageBox(IDS_MAKE_MP_NOT_AFS_ERROR, MB_ICONEXCLAMATION, IDS_MAKE_MP_NOT_AFS_ERROR);
  		return FALSE;
  	    }
  	} else {
! 	    ShowMessageBox(IDS_MAKE_MP_NOT_AFS_ERROR, MB_ICONEXCLAMATION, IDS_MAKE_MP_NOT_AFS_ERROR);
  	    return FALSE;
  	}
      }
--- 1331,1341 ----
  	    sprintf(path,"%sall\\%s", parent, &(PCCHAR(strDir)[strlen(parent)]));
  	    parent = Parent(path);
  	    if (!IsPathInAfs(parent)) {
! 		ShowMessageBox(IDS_MAKE_MP_NOT_AFS_ERROR, MB_ICONERROR, IDS_MAKE_MP_NOT_AFS_ERROR);
  		return FALSE;
  	    }
  	} else {
! 	    ShowMessageBox(IDS_MAKE_MP_NOT_AFS_ERROR, MB_ICONERROR, IDS_MAKE_MP_NOT_AFS_ERROR);
  	    return FALSE;
  	}
      }
***************
*** 1334,1340 ****
  
      if ( IsFreelanceRoot(parent) ) {
  	if ( !IsAdmin() ) {
! 	    ShowMessageBox(IDS_NOT_AFS_CLIENT_ADMIN_ERROR, MB_ICONEXCLAMATION, IDS_NOT_AFS_CLIENT_ADMIN_ERROR);
  	    return FALSE;
  	}
  
--- 1345,1351 ----
  
      if ( IsFreelanceRoot(parent) ) {
  	if ( !IsAdmin() ) {
! 	    ShowMessageBox(IDS_NOT_AFS_CLIENT_ADMIN_ERROR, MB_ICONERROR, IDS_NOT_AFS_CLIENT_ADMIN_ERROR);
  	    return FALSE;
  	}
  
***************
*** 1356,1361 ****
--- 1367,1386 ----
  	return FALSE;
      }
  
+ #if 0
+     code = VLDBInit(1, &info);
+     if (code == 0) {
+ 	/* make the check.  Don't complain if there are problems with init */
+ 	code = ubik_VL_GetEntryByNameO(uclient, 0, PCCHAR(strVolName), &vldbEntry);
+ 	if (code == VL_NOENT) {
+ 	    ShowMessageBox(IDS_WARNING, MB_ICONWARNING, IDS_VOLUME_NOT_IN_CELL_WARNING, 
+ 			    PCCHAR(strVolName), cellName ? cellName : space);
+ 	}
+     }
+     if (rxInitDone) 
+         rx_Finalize();
+ #endif
+ 
      if (bRW)	/* if -rw specified */
          strcpy(space, "%");
      else
***************
*** 1380,1386 ****
      code = pioctl(path, VIOC_AFS_CREATE_MT_PT, &blob, 0);
  
      if (code) {
!         ShowMessageBox(IDS_MOUNT_POINT_ERROR, MB_ICONEXCLAMATION, IDS_MOUNT_POINT_ERROR, GetAfsError(errno, strDir));
          return FALSE;
      }
      
--- 1405,1411 ----
      code = pioctl(path, VIOC_AFS_CREATE_MT_PT, &blob, 0);
  
      if (code) {
!         ShowMessageBox(IDS_MOUNT_POINT_ERROR, MB_ICONERROR, IDS_MOUNT_POINT_ERROR, GetAfsError(errno, strDir));
          return FALSE;
      }
      
***************
*** 1460,1466 ****
      }
  
      if ( IsFreelanceRoot(tbuffer) && !IsAdmin() ) {
! 	ShowMessageBox(IDS_NOT_AFS_CLIENT_ADMIN_ERROR, MB_ICONEXCLAMATION, IDS_NOT_AFS_CLIENT_ADMIN_ERROR);
  	return FALSE;
      }
  
--- 1485,1491 ----
      }
  
      if ( IsFreelanceRoot(tbuffer) && !IsAdmin() ) {
! 	ShowMessageBox(IDS_NOT_AFS_CLIENT_ADMIN_ERROR, MB_ICONERROR, IDS_NOT_AFS_CLIENT_ADMIN_ERROR);
  	return FALSE;
      }
  
***************
*** 1753,1759 ****
  
      code = pioctl(PCCHAR(volInfo.m_strFilePath), VIOCSETVOLSTAT, &blob, 1);
      if (code) {
!         ShowMessageBox(IDS_SET_QUOTA_ERROR, MB_ICONEXCLAMATION, IDS_SET_QUOTA_ERROR, GetAfsError(errno, volInfo.m_strName));
          return FALSE;
      }
  
--- 1778,1784 ----
  
      code = pioctl(PCCHAR(volInfo.m_strFilePath), VIOCSETVOLSTAT, &blob, 1);
      if (code) {
!         ShowMessageBox(IDS_SET_QUOTA_ERROR, MB_ICONERROR, IDS_SET_QUOTA_ERROR, GetAfsError(errno, volInfo.m_strName));
          return FALSE;
      }
  
***************
*** 1805,1818 ****
  
      code = pioctl(0, VIOCCKSERV, &blob, 1);
      if (code) {
!         ShowMessageBox(IDS_CHECK_SERVERS_ERROR, MB_ICONEXCLAMATION, IDS_CHECK_SERVERS_ERROR, GetAfsError(errno, CString()));
          return FALSE;
      }
  
      memcpy(&temp, space, sizeof(LONG));
  
      if (temp == 0) {
!         ShowMessageBox(IDS_ALL_SERVERS_RUNNING, MB_OK, IDS_ALL_SERVERS_RUNNING);
          return TRUE;
      }
  
--- 1830,1843 ----
  
      code = pioctl(0, VIOCCKSERV, &blob, 1);
      if (code) {
!         ShowMessageBox(IDS_CHECK_SERVERS_ERROR, MB_ICONERROR, IDS_CHECK_SERVERS_ERROR, GetAfsError(errno, CString()));
          return FALSE;
      }
  
      memcpy(&temp, space, sizeof(LONG));
  
      if (temp == 0) {
!         ShowMessageBox(IDS_ALL_SERVERS_RUNNING, MB_OK|MB_ICONINFORMATION, IDS_ALL_SERVERS_RUNNING);
          return TRUE;
      }
  
***************
*** 1873,1879 ****
              break;
          }
          else if (rc) {
!             ShowMessageBox(IDS_GET_TOKENS_UNEXPECTED_ERROR, MB_ICONEXCLAMATION, IDS_GET_TOKENS_UNEXPECTED_ERROR, rc);
              return FALSE;
  //	    printf("Unexpected error, code %d\n", rc);
  //	    exit(1);
--- 1898,1904 ----
              break;
          }
          else if (rc) {
!             ShowMessageBox(IDS_GET_TOKENS_UNEXPECTED_ERROR, MB_ICONERROR, IDS_GET_TOKENS_UNEXPECTED_ERROR, rc);
              return FALSE;
  //	    printf("Unexpected error, code %d\n", rc);
  //	    exit(1);
***************
*** 1881,1887 ****
          else {
              rc = ktc_GetToken(&serviceName, &token, sizeof(token), &clientName);
              if (rc) {
!                 ShowMessageBox(IDS_GET_TOKENS_UNEXPECTED_ERROR2, MB_ICONEXCLAMATION, IDS_GET_TOKENS_UNEXPECTED_ERROR2, 
                                  serviceName.name, serviceName.instance,	serviceName.cell, rc);
                  continue;
              }
--- 1906,1912 ----
          else {
              rc = ktc_GetToken(&serviceName, &token, sizeof(token), &clientName);
              if (rc) {
!                 ShowMessageBox(IDS_GET_TOKENS_UNEXPECTED_ERROR2, MB_ICONERROR, IDS_GET_TOKENS_UNEXPECTED_ERROR2, 
                                  serviceName.name, serviceName.instance,	serviceName.cell, rc);
                  continue;
              }
***************
*** 1965,1981 ****
  	    OutputDebugString(message);
  
  	    if (!IsPathInAfs(parent)) {
! 		ShowMessageBox(IDS_MAKE_LNK_NOT_AFS_ERROR, MB_ICONEXCLAMATION, IDS_MAKE_LNK_NOT_AFS_ERROR);
  		return TRUE;
  	    }
  	} else {
! 	    ShowMessageBox(IDS_MAKE_LNK_NOT_AFS_ERROR, MB_ICONEXCLAMATION, IDS_MAKE_LNK_NOT_AFS_ERROR);
  	    return TRUE;
  	}
      }
  
      if ( IsFreelanceRoot(parent) && !IsAdmin() ) {
! 	ShowMessageBox(IDS_NOT_AFS_CLIENT_ADMIN_ERROR, MB_ICONEXCLAMATION, IDS_NOT_AFS_CLIENT_ADMIN_ERROR);
  	return FALSE;
      }
  
--- 1990,2006 ----
  	    OutputDebugString(message);
  
  	    if (!IsPathInAfs(parent)) {
! 		ShowMessageBox(IDS_MAKE_LNK_NOT_AFS_ERROR, MB_ICONERROR, IDS_MAKE_LNK_NOT_AFS_ERROR);
  		return TRUE;
  	    }
  	} else {
! 	    ShowMessageBox(IDS_MAKE_LNK_NOT_AFS_ERROR, MB_ICONERROR, IDS_MAKE_LNK_NOT_AFS_ERROR);
  	    return TRUE;
  	}
      }
  
      if ( IsFreelanceRoot(parent) && !IsAdmin() ) {
! 	ShowMessageBox(IDS_NOT_AFS_CLIENT_ADMIN_ERROR, MB_ICONERROR, IDS_NOT_AFS_CLIENT_ADMIN_ERROR);
  	return FALSE;
      }
  
Index: openafs/src/WINNT/client_exp/resource.h
diff -c openafs/src/WINNT/client_exp/resource.h:1.8 openafs/src/WINNT/client_exp/resource.h:1.8.4.1
*** openafs/src/WINNT/client_exp/resource.h:1.8	Wed Aug 31 20:00:41 2005
--- openafs/src/WINNT/client_exp/resource.h	Thu Aug 31 07:35:12 2006
***************
*** 127,133 ****
  #define IDS_CLEANACL_ERROR                     135
  #define IDS_MAKE_LNK_NOT_AFS_ERROR             136
  #define IDS_NOT_AFS_CLIENT_ADMIN_ERROR         137
!                                            
  #define IDM_AUTHENTICATION                    0
  #define IDM_ACL_SET                           1
  #define IDM_VOLUME_PROPERTIES                 2
--- 127,135 ----
  #define IDS_CLEANACL_ERROR                     135
  #define IDS_MAKE_LNK_NOT_AFS_ERROR             136
  #define IDS_NOT_AFS_CLIENT_ADMIN_ERROR         137
! #define IDS_WARNING			       138
! #define IDS_VOLUME_NOT_IN_CELL_WARNING         139
! 
  #define IDM_AUTHENTICATION                    0
  #define IDM_ACL_SET                           1
  #define IDM_VOLUME_PROPERTIES                 2
Index: openafs/src/WINNT/client_exp/shell_ext.cpp
diff -c openafs/src/WINNT/client_exp/shell_ext.cpp:1.12 openafs/src/WINNT/client_exp/shell_ext.cpp:1.12.4.1
*** openafs/src/WINNT/client_exp/shell_ext.cpp:1.12	Sat Nov 19 09:30:34 2005
--- openafs/src/WINNT/client_exp/shell_ext.cpp	Wed Sep  6 19:14:00 2006
***************
*** 120,128 ****
--- 120,136 ----
  //  from VBA.  This IID must match the GUID that is attached to the 
  //  dispinterface in the .ODL file.
  
+ #ifndef _WIN64
+ // 32-bit
  // {DC515C27-6CAC-11D1-BAE7-00C04FD140D2}
  static const IID IID_IShellExt =
  { 0xdc515c27, 0x6cac, 0x11d1, { 0xba, 0xe7, 0x0, 0xc0, 0x4f, 0xd1, 0x40, 0xd2 } };
+ #else
+ // 64-bit
+ // {5f820ca1-3dde-11db-b2ce-001558092db5}
+ static const IID IID_IShellExt =
+ { 0x5f820ca1, 0x3dde, 0x11db, {0xb2, 0xce, 0x00, 0x15, 0x58, 0x09, 0x2d, 0xb5 } };
+ #endif
  
  BEGIN_INTERFACE_MAP(CShellExt, CCmdTarget)
  	INTERFACE_PART(CShellExt, IID_IShellExt, Dispatch)
***************
*** 133,139 ****
--- 141,153 ----
  	INTERFACE_PART(CShellExt, IID_IPersistFile , PersistFileExt)
  END_INTERFACE_MAP()
  
+ #ifndef _WIN64
+     // 32-bit
  IMPLEMENT_OLECREATE(CShellExt, STR_EXT_TITLE, 0xdc515c27, 0x6cac, 0x11d1, 0xba, 0xe7, 0x0, 0xc0, 0x4f, 0xd1, 0x40, 0xd2)
+ #else
+     // 64-bit
+ IMPLEMENT_OLECREATE(CShellExt, STR_EXT_TITLE, 0x5f820ca1, 0x3dde, 0x11db, 0xb2, 0xce, 0x0, 0x15, 0x58, 0x09, 0x2d, 0xb5)
+ #endif
  
  
  /////////////////////////////////////////////////////////////////////////////
Index: openafs/src/WINNT/client_exp/lang/NTMakefile
diff -c openafs/src/WINNT/client_exp/lang/NTMakefile:1.5.14.1 openafs/src/WINNT/client_exp/lang/NTMakefile:1.5.14.2
*** openafs/src/WINNT/client_exp/lang/NTMakefile:1.5.14.1	Sun Jun 25 12:58:00 2006
--- openafs/src/WINNT/client_exp/lang/NTMakefile	Mon Aug 28 00:28:09 2006
***************
*** 48,54 ****
  install : $(DLLFILE)
  
  clean ::
! 	$(DEL) $(OUT)\*.res RC* RD* $(DLLFILE) AFS_component_version_number.h
  
  ############################################################################
  #
--- 48,58 ----
  install : $(DLLFILE)
  
  clean ::
! 	$(DEL) $(RESFILE) 
!         $(DEL) RC* 
!         $(DEL) RD* 
!         $(DEL) $(DLLFILE) 
! 	$(DEL) AFS_component_version_number.h
  
  ############################################################################
  #
Index: openafs/src/WINNT/client_exp/lang/en_US/afs_shl_ext.rc
diff -c openafs/src/WINNT/client_exp/lang/en_US/afs_shl_ext.rc:1.10 openafs/src/WINNT/client_exp/lang/en_US/afs_shl_ext.rc:1.10.4.1
*** openafs/src/WINNT/client_exp/lang/en_US/afs_shl_ext.rc:1.10	Sun Oct  2 10:48:29 2005
--- openafs/src/WINNT/client_exp/lang/en_US/afs_shl_ext.rc	Thu Aug 31 07:35:12 2006
***************
*** 659,664 ****
--- 659,666 ----
      IDS_CLEANACL_ERROR                    "Error Cleaning ACL(s)."
      IDS_MAKE_LNK_NOT_AFS_ERROR            "Symlinks must be created within the AFS file system."
      IDS_NOT_AFS_CLIENT_ADMIN_ERROR        "Must be AFS Client Administrators to modify the root.afs volume."
+     IDS_WARNING				  "Warning"
+     IDS_VOLUME_NOT_IN_CELL_WARNING	  "Volume %s does not exist in cell %s.\n"
  END
  
  STRINGTABLE DISCARDABLE 
Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm
diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.5 openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.5.4.2
*** openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm:1.5	Sun Sep 25 22:51:41 2005
--- openafs/src/WINNT/doc/install/Documentation/en_US/html/index.htm	Sun Sep  3 12:55:28 2006
***************
*** 198,204 ****
  
  <h1>OpenAFS for Windows</h1>
  
! <h2>Version 1.4.0</h2>
  
  <p class=MsoNormal><span style='mso-fareast-font-family:"MS Mincho"'>&nbsp; <o:p></o:p></span></p>
  
--- 198,204 ----
  
  <h1>OpenAFS for Windows</h1>
  
! <h2>Version 1.5.8</h2>
  
  <p class=MsoNormal><span style='mso-fareast-font-family:"MS Mincho"'>&nbsp; <o:p></o:p></span></p>
  
Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm
diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm:1.1.6.2 openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm:1.1.6.3
*** openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm:1.1.6.2	Thu Aug 17 09:16:05 2006
--- openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/logo.htm	Sun Sep  3 12:55:33 2006
***************
*** 3,9 ****
  <head>
  <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  <meta name=Generator content="Microsoft Word 11 (filtered)">
! <title>OpenAFS for Windows 1.5.7 Release Notes</title>
  <style>
  <!--
   /* Font Definitions */
--- 3,9 ----
  <head>
  <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  <meta name=Generator content="Microsoft Word 11 (filtered)">
! <title>OpenAFS for Windows 1.5.8 Release Notes</title>
  <style>
  <!--
   /* Font Definitions */
Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes-frames.htm
diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes-frames.htm:1.1.4.4 openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes-frames.htm:1.1.4.5
*** openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes-frames.htm:1.1.4.4	Thu Aug 17 09:16:05 2006
--- openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes-frames.htm	Sun Sep  3 12:55:33 2006
***************
*** 3,9 ****
  <head>
  <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  <meta name=Generator content="Microsoft Word 11 (filtered)">
! <title>OpenAFS for Windows 1.5.7 Release Notes</title>
  <style>
  <!--
   /* Font Definitions */
--- 3,9 ----
  <head>
  <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  <meta name=Generator content="Microsoft Word 11 (filtered)">
! <title>OpenAFS for Windows 1.5.8 Release Notes</title>
  <style>
  <!--
   /* Font Definitions */
Index: openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes.htm
diff -c openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes.htm:1.6.4.3 openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes.htm:1.6.4.4
*** openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes.htm:1.6.4.3	Thu Aug 17 09:16:05 2006
--- openafs/src/WINNT/doc/install/Documentation/en_US/html/ReleaseNotes/relnotes.htm	Sun Sep  3 12:55:33 2006
***************
*** 3,9 ****
  <head>
  <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  <meta name=Generator content="Microsoft Word 11 (filtered)">
! <title>OpenAFS for Windows 1.5.7 Release Notes</title>
  
  <style>
  <!--
--- 3,9 ----
  <head>
  <meta http-equiv=Content-Type content="text/html; charset=windows-1252">
  <meta name=Generator content="Microsoft Word 11 (filtered)">
! <title>OpenAFS for Windows 1.5.8 Release Notes</title>
  
  <style>
  <!--
***************
*** 306,312 ****
  
  <div class=Section1>
  
! <p class=MsoTitle>OpenAFS for Windows 1.5.7<br>
  Release Notes</p>
  
  <p class=MsoBodyText>The Andrew File System (AFS) is a location-independent
--- 306,312 ----
  
  <div class=Section1>
  
! <p class=MsoTitle>OpenAFS for Windows 1.5.8<br>
  Release Notes</p>
  
  <p class=MsoBodyText>The Andrew File System (AFS) is a location-independent
Index: openafs/src/WINNT/install/NSIS/OpenAFS.nsi
diff -c openafs/src/WINNT/install/NSIS/OpenAFS.nsi:1.88.4.2 openafs/src/WINNT/install/NSIS/OpenAFS.nsi:1.88.4.3
*** openafs/src/WINNT/install/NSIS/OpenAFS.nsi:1.88.4.2	Sun Jul  2 21:04:36 2006
--- openafs/src/WINNT/install/NSIS/OpenAFS.nsi	Wed Sep  6 01:10:48 2006
***************
*** 110,116 ****
  ;--------------------------------
  ;Modern UI Configuration
  
!   ;!define MUI_LICENSEPAGE
    !define MUI_CUSTOMPAGECOMMANDS
    !define MUI_WELCOMEPAGE
    !define MUI_COMPONENTSPAGE
--- 110,116 ----
  ;--------------------------------
  ;Modern UI Configuration
  
!   !define MUI_LICENSEPAGE
    !define MUI_CUSTOMPAGECOMMANDS
    !define MUI_WELCOMEPAGE
    !define MUI_COMPONENTSPAGE
***************
*** 125,130 ****
--- 125,131 ----
    
    
    !insertmacro MUI_PAGE_WELCOME
+   !insertmacro MUI_PAGE_LICENSE "Licenses.rtf"
    !insertmacro MUI_PAGE_COMPONENTS
    !insertmacro MUI_PAGE_DIRECTORY
    Page custom AFSPageGetCellServDB
***************
*** 133,139 ****
    !insertmacro MUI_PAGE_INSTFILES
    !insertmacro MUI_PAGE_FINISH
    
-   ;LicenseData "Licenses.rtf"
  ;--------------------------------
  ;Languages
  
--- 134,139 ----
Index: openafs/src/WINNT/install/NSIS/licenses.rtf
diff -c /dev/null openafs/src/WINNT/install/NSIS/licenses.rtf:1.1.2.2
*** /dev/null	Wed Sep  6 21:51:12 2006
--- openafs/src/WINNT/install/NSIS/licenses.rtf	Wed Sep  6 01:10:48 2006
***************
*** 0 ****
--- 1,679 ----
+ {\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch11\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1041{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
+ {\f11\froman\fcharset128\fprq1{\*\panose 02020609040205080304}MS Mincho{\*\falt \'82\'6c\'82\'72 \'96\'be\'92\'a9};}{\f37\froman\fcharset128\fprq1{\*\panose 02020609040205080304}@MS Mincho;}{\f38\froman\fcharset238\fprq2 Times New Roman CE;}
+ {\f39\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f41\froman\fcharset161\fprq2 Times New Roman Greek;}{\f42\froman\fcharset162\fprq2 Times New Roman Tur;}{\f43\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
+ {\f44\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f45\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f46\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f58\fmodern\fcharset238\fprq1 Courier New CE;}
+ {\f59\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f61\fmodern\fcharset161\fprq1 Courier New Greek;}{\f62\fmodern\fcharset162\fprq1 Courier New Tur;}{\f63\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}
+ {\f64\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f65\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f66\fmodern\fcharset163\fprq1 Courier New (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;
+ \red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;
+ \red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 
+ \fs24\lang1033\langfe1041\loch\f0\hich\af0\dbch\af11\cgrid\langnp1033\langfenp1041 \snext0 Normal;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\*
+ \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv 
+ \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}
+ {\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid5512945\rsid16720314}{\*\generator Microsoft Word 11.0.8026;}{\info{\operator Jeffrey Altman}{\creatim\yr2006\mo9\dy6\min9}{\revtim\yr2006\mo9\dy6\min27}{\version2}{\edmins18}{\nofpages12}
+ {\nofwords5339}{\nofchars30435}{\nofcharsws35703}{\vern24609}{\*\password 00000000}}{\*\xmlnstbl {\xmlns1 urn:schemas-microsoft-com:office:smarttags}}\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect 
+ \widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind4\viewscale100\nolnhtadjtbl\rsidroot5512945 \fet0{\*\wgrffmtfilter 013f}
+ \ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}
+ {\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang 
+ {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 
+ \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1041\loch\af0\hich\af0\dbch\af11\cgrid\langnp1033\langfenp1041 {\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 IBM Public License Version 1.0
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS IBM\hich\af2\dbch\af11\loch\f2  PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF\hich\af2\dbch\af11\loch\f2 
+   THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 1. DEFINITIONS
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 "Contribution" m\hich\af2\dbch\af11\loch\f2 eans:
+ \par \hich\af2\dbch\af11\loch\f2 a) in the case of International Business Machines Corporation ("IBM"),\hich\af2\dbch\af11\loch\f2  the Original Program, and
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 b) in the case of each Contributor,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 i) changes to the Program, and
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 ii) additions to the Program;
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 wh\hich\af2\dbch\af11\loch\f2 ere such changes and/or additions to the Program originate from and\hich\af2\dbch\af11\loch\f2  are distributed by that particular Contributor. A Contribution\hich\af2\dbch\af11\loch\f2 
+  'originates' from a Contributor if it was added to the Program by\hich\af2\dbch\af11\loch\f2  such Contributor itself or anyone acti\hich\af2\dbch\af11\loch\f2 ng on such Contributor's\hich\af2\dbch\af11\loch\f2 
+  behalf. Contributions do not include additions to the Program\hich\af2\dbch\af11\loch\f2  which: (i) are separate modules of software distributed in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 conjunction with the Program under their own license agreement,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and (ii) are not d\hich\af2\dbch\af11\loch\f2 erivative works of the Program.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 "Contributor" means IBM and any other entity that distributes the\hich\af2\dbch\af11\loch\f2  Program.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 "Licensed Patents " mean patent claims licensable by a Contributor\hich\af2\dbch\af11\loch\f2  which are necessarily infringed by the use or sale of its Contribution}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 alone or when combined with the Program.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 "Original Program" means the original version of the software}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 accompanying this Agreement as released by IBM, including source c\hich\af2\dbch\af11\loch\f2 ode,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 object code and documentation, if any.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 "Program" means the Original Program and Contributions.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 "Recipient" means anyone who receives the Program under this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Agreement, including all Contributors.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 2. GRANT OF RIGHTS
+ \par \hich\af2\dbch\af11\loch\f2 a) Subj\hich\af2\dbch\af11\loch\f2 ect to the terms of this Agreement, each Contributor hereby\hich\af2\dbch\af11\loch\f2  grants Recipient a non-exclusive, worldwide, royalty-free\hich\af2\dbch\af11\loch\f2 
+  copyright license to reproduce, prepare derivative works of,\hich\af2\dbch\af11\loch\f2   publicly display, publicly perform, distribute and subli\hich\af2\dbch\af11\loch\f2 cense the\hich\af2\dbch\af11\loch\f2 
+  Contribution of such Contributor, if any, and such derivative}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ works, in source code and object code form.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 b) Subject to the terms of this Agreement, each Contributor hereby\hich\af2\dbch\af11\loch\f2  grants Recipient a non-exclusive, worldwi\hich\af2\dbch\af11\loch\f2 de, royalty-free patent\hich\af2\dbch\af11\loch\f2 
+  license under Licensed Patents to make, use, sell, offer to sell,\hich\af2\dbch\af11\loch\f2  import and otherwise transfer the Contribution of such\hich\af2\dbch\af11\loch\f2  Contributor, if any, in source code and object code form. This
+ \hich\af2\dbch\af11\loch\f2  patent license shall\hich\af2\dbch\af11\loch\f2  apply to the combination of the Contribution\hich\af2\dbch\af11\loch\f2  and the Program if, at the time the Contribution is added by the\hich\af2\dbch\af11\loch\f2 
+  Contributor, such addition of the Contribution causes such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ combination to be covered by the Licensed Patents. The patent}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ license shall not apply to any other combinations which include}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ the Contribution. No hardware per se is licensed hereunder.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 c) Recipient understands that although each Contributor grants the\hich\af2\dbch\af11\loch\f2  licenses to its Contributions set\hich\af2\dbch\af11\loch\f2  forth herein, no assurances are\hich\af2\dbch\af11\loch\f2 
+  provided by any Contributor that the Program does not infringe the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ patent or other intellectual property rights of any other entity.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ Each Contributor disclaims any liability to Recipient for claims}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ brought by any other entity based on infringement of intellectual}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ property rights or otherwise. As a condition to exercising the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ rights and licenses granted hereunder, each Recipient hereby}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ assumes sole responsibility to secure any \hich\af2\dbch\af11\loch\f2 other intellectual\hich\af2\dbch\af11\loch\f2  property rights needed, if any. For example, if a third party\hich\af2\dbch\af11\loch\f2 
+  patent license is required to allow Recipient to distribute the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ Program, it is Recipient's responsibility to acquire that license}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ before distributi\hich\af2\dbch\af11\loch\f2 ng the Program.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 d) Each Contributor represents that to its knowledge it has sufficient\hich\af2\dbch\af11\loch\f2        copyright rights in its Contribution, if any, to grant the\hich\af2\dbch\af11\loch\f2 
+  copyright license set forth in this Agreement.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 3. REQUIREMENTS
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 A Co\hich\af2\dbch\af11\loch\f2 ntributor may choose to distribute the Program in object code form\hich\af2\dbch\af11\loch\f2  under its own license agreement, provided that:}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 
+ \par 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 a) it complies with the terms and conditions of this Agreement; and
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 b) its license agreement:
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 i) effectively disclaims on behalf of all Contributors all warranties\hich\af2\dbch\af11\loch\f2  and conditions, express and implied, including warranties or\hich\af2\dbch\af11\loch\f2 
+  conditions of title and non-infringement, and implied warranties}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ or conditions of merchantability and\hich\af2\dbch\af11\loch\f2  fitness for a particular}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 purpose;
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 ii) effectively excludes on behalf of all Contributors all liability\hich\af2\dbch\af11\loch\f2  for damages, including direct, indirect, special, incidental and\hich\af2\dbch\af11\loch\f2 
+  consequential damages, such as lost profits;
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 iii) states that any provisions which differ from this Agreement are}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 offered by that Contributor alone and not by any other party; and
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 iv) states that source code for the Program is available from such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  Contributor, and informs lic\hich\af2\dbch\af11\loch\f2 ensees how to obtain it in a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 reasonable manner on or through a medium customarily used for}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  s}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 oftware exchange.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 When the Program is made available in source code form:}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 a) it must be made available under this Agreement; and
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 b) a copy of this Agreement must be included with each copy of the\hich\af2\dbch\af11\loch\f2  Program.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 Each Contributor must include the following in a conspicuous location}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 in the Program:
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 \hich\f2 Copyright \'a9\loch\f2  \{date here\}\hich\af2\dbch\af11\loch\f2 , International Business Machines Corporation}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and others. All Rights Reserved.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 In addition, each Contributor must identify itself as the originator}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 of its Contribution, if any, in a manner that reasonably allows}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 subsequent Recipient\hich\af2\dbch\af11\loch\f2 s to identify the originator of the Contribution.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 4. COMMERCIAL DISTRIBUTION
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 Commercial distributors of software may accept certain}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 responsibilities with respect to end users, business partners and the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 like. While this license is intend\hich\af2\dbch\af11\loch\f2 ed to facilitate the commercial use}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 of the Program, the Contributor who includes the Program in a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 commercial product offering should do so in a manner which does not\hich\af2\dbch\af11\loch\f2  create potential liability for other Contributors. Therefore, if a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Contributor\hich\af2\dbch\af11\loch\f2  includes the Program in a commercial product offering,}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 such Contributor ("Commercial Contributor") hereby agrees to defend}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and indemnify every other Contributor ("Indemnified Contributor")}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 against any losses, damages and costs (collectively "Loss\hich\af2\dbch\af11\loch\f2 
+ es") arising}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ from claims, lawsuits and other legal actions brought by a third party}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ against the Indemnified Contributor to the extent caused by the acts}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ or omissions of such Commercial Contributor in connection with its}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ distribution of the Prog\hich\af2\dbch\af11\loch\f2 ram in a commercial product offering. The}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 obligations in this section do not apply to any claims or Losses}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 relating to any actual or alleged intellectual property infringement.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 In order to qualify, an Indemnified Contributor must: a) promptly\hich\af2\dbch\af11\loch\f2  notify the Commercial Contributor in writing of such claim, and b)}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 allow the Commercial Contributor to control, and cooperate with the\hich\af2\dbch\af11\loch\f2 
+  Commercial Contributor in, the defense and any related settlement\hich\af2\dbch\af11\loch\f2  negotiations. The Indemnified Contributor m\hich\af2\dbch\af11\loch\f2 ay participate in any such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 claim at its own expense.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 For example, a Contributor might include the Program in a commercial}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 product offering, Product X. That Contributor is then a Commercial}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Contributor. If that Commercial Contributor then ma\hich\af2\dbch\af11\loch\f2 kes performance}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 claims, or offers warranties related to Product X, those performance}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  c}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 laims and warranties are such Commercial Contributor's responsibility\hich\af2\dbch\af11\loch\f2  alone. Under this section, the Commercial Contributor would have to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 defend claims agains\hich\af2\dbch\af11\loch\f2 t the other Contributors related to those}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 performance claims and warranties, and if a court requires any other}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Contributor to pay any damages as a result, the Commercial Contributor}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 must pay those damages.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 5. NO WARRANTY
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 EXCEPT AS EX\hich\af2\dbch\af11\loch\f2 PRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY\hich\af2\dbch\af11\loch\f2  WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCH\hich\af2\dbch\af11\loch\f2 ANTABILITY}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 responsible for determining the appropriateness of using and}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 distributing the Program and assumes all risks associated with its}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 exercise of rights under this Agreement, in\hich\af2\dbch\af11\loch\f2 cluding but not limited to}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the risks and costs of program errors, compliance with applicable}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 laws, damage to or loss of data, programs or equipment, and}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 unavailability or interruption of operations.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 6. DISCLAIMER OF LIABILITY
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 WITHOUT LIMITATION LOST PROFITS), HOW\hich\af2\dbch\af11\loch\f2 EVER CAUSED AND ON ANY THEORY OF}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  \hich\af2\dbch\af11\loch\f2 L}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 IABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED\hich\af2\dbch\af11\loch\f2  HEREUNDER, EVE\hich\af2\dbch\af11\loch\f2 
+ N IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 7. GENERAL
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 If any provision of this Agreement is invalid or unenforceable under}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 applicable law, it shall not affect the validity or enforceability of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the remainder of the terms of this Ag\hich\af2\dbch\af11\loch\f2 reement, and without further}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 action by the parties hereto, such provision shall be reformed to the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 minimum extent necessary to make such provision valid and enforceable.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 If Recipient institutes patent litigation against a Contributor with}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 r\hich\af2\dbch\af11\loch\f2 espect to a patent applicable to software (including a cross-claim or\hich\af2\dbch\af11\loch\f2  counterclaim in a lawsuit), then any patent licenses granted by that\hich\af2\dbch\af11\loch\f2 
+  Contributor to such Recipient under this Agreement shall terminate as\hich\af2\dbch\af11\loch\f2  of the date such litigation is filed. \hich\af2\dbch\af11\loch\f2 In addition, If Recipient}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 institutes patent litigation against any entity (including a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 cross-claim or counterclaim in a lawsuit) alleging that the Program}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 itself (excluding combinations of the Program with other software or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 hardware) infringes such Recipient's patent(s), then such Recipient's}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rights granted under Section 2(b) shall terminate as of the date such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 litigation is filed.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 All Recipient's rights under this Agreement shall terminate if it}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 fails to c\hich\af2\dbch\af11\loch\f2 omply with any of the material terms or conditions of this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Agreement and does not cure such failure in a reasonable period of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 time after becoming aware of such noncompliance. If all Recipient's}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rights under this Agreement terminate, Recipient agre\hich\af2\dbch\af11\loch\f2 es to cease use}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and distribution of the Program as soon as reasonably practicable.\hich\af2\dbch\af11\loch\f2   However, Recipient's obligations under this Agreement and any licenses
+ \hich\af2\dbch\af11\loch\f2  granted by Recipient relating to the Program shall continue and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 survive.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 IBM may pu\hich\af2\dbch\af11\loch\f2 blish new versions (including revisions) of this Agreement}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 from time to time. Each new version of the Agreement will be given a\hich\af2\dbch\af11\loch\f2  distinguishing version number. The Program (including Contributions)}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 may always be distributed subject to the version o\hich\af2\dbch\af11\loch\f2 f the Agreement}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 under which it was received. In addition, after a new version of the}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Agreement is published, Contributor may elect to distribute the}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Program (including its Contributions) under the new version. No one}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 other than IBM has the righ\hich\af2\dbch\af11\loch\f2 t to modify this Agreement. Except as}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 expressly stated in Sections 2(a) and 2(b) above, Recipient receives}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 no rights or licenses to the intellectual property of any Contributor}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 under this Agreement, whether expressly, by implication, estoppel or}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 otherwise. All rights in the Program not expressly granted under this}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Agreement are reserved.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 This Agreement is governed by the laws of the State of {\*\xmlopen\xmlns1{\factoidname State}}New York{\*\xmlclose} and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the intellectual property laws of the {\*\xmlopen\xmlns1{\factoidname place}}{\*\xmlopen\xmlns1{\factoidname country-region}}United States of America{\*\xmlclose}{\*\xmlclose}. No
+ }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 party to\hich\af2\dbch\af11\loch\f2 
+  this Agreement will bring a legal action under this Agreement}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ more than one year after the cause of action arose. Each party waives}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ its rights to a jury trial in any resulting litigation.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 Kerberos 5 ticket support in rxkad is subject to the followi\hich\af2\dbch\af11\loch\f2 ng copyright:
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 \hich\f2 Copyright (c) 1995, 1996, 1997, 2002 Kungliga Tekniska H\'f6\loch\f2 gskolan
+ \par \hich\af2\dbch\af11\loch\f2 (Royal {\*\xmlopen\xmlns1{\factoidname PostalCode}}Institute{\*\xmlclose} of {\*\xmlopen\xmlns1{\factoidname PostalCode}}Technology{\*\xmlclose}, {\*\xmlopen\xmlns1{\factoidname PostalCode}}{\*\xmlopen\xmlns1{\factoidname 
+ PostalCode}}Stockholm{\*\xmlclose}, {\*\xmlopen\xmlns1{\factoidname PostalCode}}Sweden{\*\xmlclose}{\*\xmlclose}).
+ \par \hich\af2\dbch\af11\loch\f2 All rights reserved.
+ \par \hich\af2\dbch\af11\loch\f2  
+ \par \hich\af2\dbch\af11\loch\f2 Redistribution and use in source a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 nd binary forms, with or \hich\af2\dbch\af11\loch\f2 without\hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 modification, a\hich\af2\dbch\af11\loch\f2 re permitted provided that the following conditions}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 are met:
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1. Redistributions of source code must retain the above copyright\hich\af2\dbch\af11\loch\f2  notice, this list of conditions and the following disclaimer.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  
+ \par \hich\af2\dbch\af11\loch\f2 2. Redistributions in binary form must repro\hich\af2\dbch\af11\loch\f2 duce the above copyright\hich\af2\dbch\af11\loch\f2   notice, this list of conditions and the following disclaimer in the\hich\af2\dbch\af11\loch\f2 
+   documentation and/or other materials provided with the distribution.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  
+ \par \hich\af2\dbch\af11\loch\f2 3. Neither the name of the Institute nor the names of its contributors\hich\af2\dbch\af11\loch\f2  may be used to endorse or promote products derived from this software\hich\af2\dbch\af11\loch\f2 
+  without specific prior written permission.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND\hich\af2\dbch\af11\loch\f2  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\hich\af2\dbch\af11\loch\f2 
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\hich\af2\dbch\af11\loch\f2  ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 FOR ANY DIRECT, INDIRECT\hich\af2\dbch\af11\loch\f2 , INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\hich\af2\dbch\af11\loch\f2 
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\hich\af2\dbch\af11\loch\f2  IN CONTRACT, STRICT\hich\af2\dbch\af11\loch\f2  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\hich\af2\dbch\af11\loch\f2 
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\hich\af2\dbch\af11\loch\f2  SUCH DAMAGE.
+ \par 
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 Some code in rxkad/ticket5.c}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  and WINNT/afsd/afskfw.\hich\af2\dbch\af11\loch\f2 c}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  is subject to the following copyri\hich\af2\dbch\af11\loch\f2 ght:
+ \par 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2 Copyright 1992, 2006}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  by the Massachusetts Institute of Technology.
+ \par \hich\af2\dbch\af11\loch\f2 All Rights Reserved.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 Export of this software from the {\*\xmlopen\xmlns1{\factoidname PostalCode}}{\*\xmlopen\xmlns1{\factoidname PostalCode}}United States of America{\*\xmlclose}{\*\xmlclose} may}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 require a specific license from the United States Government.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2   It is the resp\hich\af2\dbch\af11\loch\f2 onsibility of any person or organization contemplating
+ \hich\af2\dbch\af11\loch\f2   export to obtain such a license before exporting.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 WITHIN THAT CONSTRAINT, permission to use, copy, modify, and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 distribute this software and its documentation for any purpose and\hich\af2\dbch\af11\loch\f2  witho\hich\af2\dbch\af11\loch\f2 ut fee is hereby granted, provided that the above copyright\hich\af2\dbch\af11\loch\f2 
+  notice appear in all copies and that both that copyright notice and\hich\af2\dbch\af11\loch\f2  this permission notice appear in supporting documentation, and that\hich\af2\dbch\af11\loch\f2 
+  the name of M.I.T. not be used in advertising or publicity pertaining\hich\af2\dbch\af11\loch\f2  to distribution of the software without specific, written prior\hich\af2\dbch\af11\loch\f2 
+  permission.  Furthermore if you modify this software you must label\hich\af2\dbch\af11\loch\f2  your software as modified software and not\hich\af2\dbch\af11\loch\f2  distribute it in such a\hich\af2\dbch\af11\loch\f2 
+  fashion that it might be confused with the original M.I.T. software.\hich\af2\dbch\af11\loch\f2  M.I.T. makes no representations about the suitability of\hich\af2\dbch\af11\loch\f2  this software for any purpose.  It is provided "as is" without express
+ \hich\af2\dbch\af11\loch\f2  or implied warranty.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 afssettings is subject to the following license:
+ \par \hich\af2\dbch\af11\loch\f2 APPLE PUBLIC SOURCE LICENSE
+ \par \hich\af2\dbch\af11\loch\f2 Version 2.0 - August 6, 2003
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 Please read this License carefully before downloading this software.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 By downloading or using this software, you are agreeing to be bound by}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the t\hich\af2\dbch\af11\loch\f2 erms of this License. If you do not or cannot agree to the terms}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 of this License, please do not download or use the software.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1. General; Definitions. This License applies to any program or other}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 work which Apple Computer, Inc. ("Apple") makes publicly av\hich\af2\dbch\af11\loch\f2 ailable and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 which contains a notice placed by Apple identifying such program or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 work as "Original Code" and stating that it is subject to the terms of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 this Apple Public Source License version 2.0 ("License"). As used in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 this License:
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the grantor of rights, (i) claims of patents that are now or hereafter}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 acquired, owned by or assigned to Apple and (ii) that cover subject}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 matter contained in the Original Code, but only t\hich\af2\dbch\af11\loch\f2 o the extent}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 necessary to use, reproduce and/or distribute the Original Code}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 without infringement; and (b) in the case where You are the grantor of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rights, (i) claims of patents that are now or hereafter acquired,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 owned by or assigned to You and (ii) that \hich\af2\dbch\af11\loch\f2 cover subject matter in Your}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications, taken alone or in combination with Original Code.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.2 "Contributor" means any person or entity that creates or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 contributes to the creation of Modifications.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.3 "Covered Code" means the Original Code, Modificat\hich\af2\dbch\af11\loch\f2 ions, the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 combination of Original Code and any Modifications, and/or any}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 respective portions thereof.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.4 "Externally Deploy" means: (a) to sublicense, distribute or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 otherwise make Covered Code available, directly or indirectly, to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 anyone other than You; \hich\af2\dbch\af11\loch\f2 and/or (b) to use Covered Code, alone or as}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 part of a Larger Work, in any way to provide a service, including but}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 not limited to delivery of content, through electronic communication}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 with a client other than You.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.5 "Larger Work" means a work which combi\hich\af2\dbch\af11\loch\f2 nes Covered Code or portions}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 thereof with code not governed by the terms of this License.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 1.6 "Modifications" mean any addition to, deletion fr}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2 o}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 m, and/or change}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 to, the substance and/or structure of the Original Code, any previous}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Modifications, the combination of Original Code and any previous}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Modifications, and/or any respective portions thereof. When code is}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 released as a series of files, a Modification is: (a) any addition to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 or deletion from the contents of a file containing Co\hich\af2\dbch\af11\loch\f2 vered Code;}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and/or (b) any new file or other representation of computer program}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 statements that contains any part of Covered Code.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.7 "Original Code" means (a) the Source Code of a program or other}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 work as originally made available by Apple under this Li\hich\af2\dbch\af11\loch\f2 cense,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 including the Source Code of any updates or upgrades to such programs}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 or works made available by Apple under this License, and that has been}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 expressly identified by Apple as such in the header file(s) of such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 work; and (b) the object code compiled f\hich\af2\dbch\af11\loch\f2 rom such Source Code and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 originally made available by Apple under this License.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.8 "Source Code" means the human readable form of a program or other}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 work that is suitable for making modifications to it, including all}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 modules it contains, plus any associa\hich\af2\dbch\af11\loch\f2 ted interface definition files,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 scripts used to control compilation and installation of an executable}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 (object code).
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.9 "You" or "Your" means an individual or a legal entity exercising}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 rights under this License. For legal entities, "You" or "Your"}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 includ\hich\af2\dbch\af11\loch\f2 es any entity which controls, is controlled by, or is under}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 common control with, You, where "control" means (a) the power, direct}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 or indirect, to cause the direction or management of such entity,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 whether by contract or otherwise, or (b) ownership of fifty \hich\af2\dbch\af11\loch\f2 percent}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 (50%) or more of the outstanding shares or beneficial ownership of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 such entity.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 2. Permitted Uses; Conditions & Restrictions. Subject to the terms}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 and conditions of this License, Apple hereby grants You, effective on}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the date You accept this License and download the Original Code, a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 world-wide, royalty-free, non-exclusive license, to the extent of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Apple's Applicable Patent Rights and copyrights covering the Original}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Code, to do the following:
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 2.1 Unmodified Code. You \hich\af2\dbch\af11\loch\f2 may use, reproduce, display, perform,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 internally distribute within Your organization, and Externally Deploy}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 verbatim, unmodified copies of the Original Code, for commercial or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 non-commercial purposes, provided that in each instance:
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (a) You must retain an\hich\af2\dbch\af11\loch\f2 d reproduce in all copies of Original Code the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 copyright and other proprietary notices and disclaimers of Apple as}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 they appear in the Original Code, and keep intact all notices in the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Original Code that refer to this License; and
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (b) You must include a co\hich\af2\dbch\af11\loch\f2 py of this License with every copy of Source}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Code of Covered Code and documentation You distribute or Externally}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Deploy, and You may not offer or impose any terms on such Source Code}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 that alter or restrict this License or the recipients' rights}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 hereunder, \hich\af2\dbch\af11\loch\f2 except as permitted under Section 6.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 2.2 Modified Code. You may modify Covered Code and use, reproduce,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 display, perform, internally distribute within Your organization, and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Externally Deploy Your Modifications and Covered Code, for commercial}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 or non-commercial purposes, provided that in each instance You also}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 meet all of these conditions:
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (a) You must satisfy all the conditions of Section 2.1 with respect to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the Source Code of the Covered Code;
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (b) You must duplicate, to the extent it does no\hich\af2\dbch\af11\loch\f2 t already exist, the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 notice in Exhibit A in each file of the Source Code of all Your}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications, and cause the modified files to carry prominent notices}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 stating that You changed the files and the date of any change; and
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (c) If You Externally Deploy You\hich\af2\dbch\af11\loch\f2 r Modifications, You must make}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Source Code of all Your Externally Deployed Modifications either}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 available to those to whom You have Externally Deployed Your}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications, or publicly available. Source Code of Your Externally}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Deployed Modifications must be\hich\af2\dbch\af11\loch\f2  released under the terms set forth in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 this License, including the license grants set forth in Section 3}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 below, for as long as you Externally Deploy the Covered Code or twelve}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 (12) months from the date of initial External Deployment, whichever is}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 longer. Y\hich\af2\dbch\af11\loch\f2 ou should preferably distribute the Source Code of Your}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Externally Deployed Modifications electronically (e.g. download from a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 web site).
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 2.3 Distribution of Executable Versions. In addition, if You}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Externally Deploy Covered Code (Original Code and/or Mod\hich\af2\dbch\af11\loch\f2 ifications) in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 object code, executable form only, You must include a prominent}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 notice, in the code itself as well as in related documentation,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 stating that Source Code of the Covered Code is available under the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 terms of this License with information on how and where to obtain such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Source Code.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par \hich\af2\dbch\af11\loch\f2 2}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 .4 Third Party Rights. You expressly acknowledge and agree that}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 although Apple and each Contributor grants the licenses to their}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 respective portions of the Covered Code s\hich\af2\dbch\af11\loch\f2 et forth herein, no}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 assurances are provided by Apple or any Contributor that the Covered}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Code does not infringe the patent or other intellectual property}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rights of any other entity. Apple and each Contributor disclaim any}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 liability to You for claims brough\hich\af2\dbch\af11\loch\f2 t by any other entity based on}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 infringement of intellectual property rights or otherwise. As a}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 condition to exercising the rights and licenses granted hereunder, You}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 hereby assume sole responsibility to secure any other intellectual}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 property rights needed,\hich\af2\dbch\af11\loch\f2  if any. For example, if a third party patent}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 license is required to allow You to distribute the Covered Code, it is}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Your responsibility to acquire that license before distributing the}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Covered Code.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 3. Your Grants. In consideration of, and as a condition \hich\af2\dbch\af11\loch\f2 to, the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 licenses granted to You under this License, You hereby grant to any}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 person or entity receiving or distributing Covered Code under this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 License a non-exclusive, royalty-free, perpetual, irrevocable license,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 under Your Applicable Patent Rights and ot\hich\af2\dbch\af11\loch\f2 her intellectual property}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rights (other than patent) owned or controlled by You, to use,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 reproduce, display, perform, modify, sublicense, distribute and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Externally Deploy Your Modifications of the same scope and extent as}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Apple's licenses under Sections 2.\hich\af2\dbch\af11\loch\f2 1 and 2.2 above.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 4. Larger Works. You may create a Larger Work by combining Covered}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Code with other code not governed by the terms of this License and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 distribute the Larger Work as a single product. In each such instance,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 You must make sure the requirements of this License are fulfilled for}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the Covered Code or any portion thereof.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 5. Limitations on Patent License. Except as expressly stated in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Section 2, no other patent rights, express or implied, are granted by}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Apple here\hich\af2\dbch\af11\loch\f2 in. Modifications and/or Larger Works may require additional}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 patent licenses from Apple which Apple may grant in its sole}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 discretion.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 6. Additional Terms. You may choose to offer, and to charge a fee for,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 warranty, support, indemnity or liability obligati\hich\af2\dbch\af11\loch\f2 ons and/or other}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rights consistent with the scope of the license granted herein}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 ("Additional Terms") to one or more recipients of Covered Code.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 However, You may do so only on Your own behalf and as Your sole}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 responsibility, and not on behalf of Apple or an\hich\af2\dbch\af11\loch\f2 y Contributor. You}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 must obtain the recipient's agreement that any such Additional Terms
+ \par \hich\af2\dbch\af11\loch\f2 are offered by You alone, and You hereby agree to indemnify, defend}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 and hold Apple and every Contributor harmless for any liability}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 incurred by or claims asserted again\hich\af2\dbch\af11\loch\f2 st Apple or such Contributor by}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 reason of any such Additional Terms.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 7. Versions of the License. Apple may publish revised and/or new}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 versions of this License from time to time. Each version will be given}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 a distinguishing version number. Once Original Cod\hich\af2\dbch\af11\loch\f2 e has been published}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 under a particular version of this License, You may continue to use it}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 under the terms of that version. You may also choose to use such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Original Code under the terms of any subsequent version of this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 License published by Apple. No one other than Apple has the right to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 modify the terms applicable to Covered Code created under this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 License.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 part pre-release, untested, or not fully te\hich\af2\dbch\af11\loch\f2 sted works. The Covered}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Code may contain errors that could cause failures or loss of data, and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  \hich\af2\dbch\af11\loch\f2 m}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 ay be incomplete or contain inaccuracies. You expressly acknowledge}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and agree that use of the Covered Code, or any portion thereof, is at}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Your sole and entire r\hich\af2\dbch\af11\loch\f2 isk. THE COVERED CODE IS PROVIDED "AS IS" AND}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 ALL WARRANT\hich\af2\dbch\af11\loch\f2 IES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THI\hich\af2\dbch\af11\loch\f2 RD}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST
+ \par \hich\af2\dbch\af11\loch\f2 INTERF}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2 E}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ RENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERR\hich\af2\dbch\af11\loch\f2 UPTED OR}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 You acknowledge that the Covered Code is not\hich\af2\dbch\af11\loch\f2  intended for use in the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 operation of nuclear facilities, aircraft navigation, communication}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 systems, or air traffic control machines in which case the failure of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the Covered Code could lead to death, personal injury, or severe
+ \par \hich\af2\dbch\af11\loch\f2 physical or environmental damage.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 TO THIS LICEN\hich\af2\dbch\af11\loch\f2 SE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY O\hich\af2\dbch\af11\loch\f2 F SUCH}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 TO YOU. In no event shall Apple's total \hich\af2\dbch\af11\loch\f2 liability to You for all}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 damages (other than as may be required by applicable law) under this}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 License exceed the amount of fifty dollars ($50.00).
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 10. Trademarks. This License does not grant any rights to use the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 trademarks or trade names "Apple", "Apple \hich\af2\dbch\af11\loch\f2 Computer", "Mac", "Mac OS",}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 "QuickTime", "QuickTime Streaming Server" or any other trademarks,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 service marks, logos or trade names belonging to Apple (collectively}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 "Apple Marks") or to any trademark, service mark, logo or trade name}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 belonging to any Contri\hich\af2\dbch\af11\loch\f2 butor. You agree not to use any Apple Marks in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 or as part of the name of products derived from the Original Code or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 to endorse or promote products derived from the Original Code other}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 than as expressly permitted by and in strict compliance at all times}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 with Apple's third party trademark usage guidelines which are posted}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 at}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 http://www.apple.com/legal/guidelinesfor3rdparties.html.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 11. Ownership. Subject to the licenses granted under this License,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 each Contributor retains all rights, title and interest in \hich\af2\dbch\af11\loch\f2 and to any}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications made by such Contributor. Apple retains all rights,
+ \par \hich\af2\dbch\af11\loch\f2 t\hich\af2\dbch\af11\loch\f2 itle and interest in and to the Original Code and any Modifications}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 made by or on behalf of Apple ("Apple Modifications"), and such Apple}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications will not be automatically \hich\af2\dbch\af11\loch\f2 subject to this License. Apple
+ \par \hich\af2\dbch\af11\loch\f2 m\hich\af2\dbch\af11\loch\f2 ay, at its sole discretion, choose to license such Apple}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications under this License, or on different terms from those}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 contained in this License or may choose not to license them at all.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 12. Termination.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 12.1 Terminat\hich\af2\dbch\af11\loch\f2 ion. This License and the rights granted hereunder will}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 terminate:
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (a) automatically without notice from Apple if You fail to comply with}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 any term(s) of this License and fail to cure such breach within 30}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 days of becoming aware of such breach;
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (b) immedi\hich\af2\dbch\af11\loch\f2 ately in the event of the circumstances described in Section}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 13.5(b); or
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (c) automatically without notice from Apple if You, at any time during}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the term of this License, commence an action for patent infringement}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 against Apple; provided that Apple did not\hich\af2\dbch\af11\loch\f2  first commence}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 an action for patent infringement against You in that instance.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 12.2 Effect of Termination. Upon termination, You agree to immediately}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 stop any further use, reproduction, modification, sublicensing and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 distribution of the Covered Code. All sublicenses to the Covered Code}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 which have been properly granted prior to termination shall survive}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 any termination of this License. Provisions which, by their nature,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 should remain in effect beyond the termination of \hich\af2\dbch\af11\loch\f2 this License shall}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 12.2 and 13. No party will be liable to any other for compensation,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 indemnity or damages of any sort solely as a result of terminating}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 this License in accordance with its\hich\af2\dbch\af11\loch\f2  terms, and termination of this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 License will be without prejudice to any other right or remedy of
+ \par \hich\af2\dbch\af11\loch\f2 any p}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2 a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rty.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13. Miscellaneous.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.1 Government End Users. The Covered Code is a "commercial item" as}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 defined in FAR 2.101. Government software and technical \hich\af2\dbch\af11\loch\f2 data rights in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the Covered Code include only those rights customarily provided to the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 public as defined in this License. This customary commercial license}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 in technical data and software is provided in accordance with FAR}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 12.211 (Technical Data) and 12.212 \hich\af2\dbch\af11\loch\f2 (Computer Software) and, for}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Department of Defense purchases, DFAR 252.227-7015 (Technical Data --}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Commercial Items) and 227.7202-3 (Rights in Commercial Computer}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Software or Computer Software Documentation). Accordingly, all U.S.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Government End Users acqu\hich\af2\dbch\af11\loch\f2 ire Covered Code with only those rights set}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 forth herein.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.2 Relationship of Parties. This License will not be construed as}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 creating an agency, partnership, joint venture or any other form of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 legal association between or among You, Apple or any Contributor, and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 You will not represent to the contrary, whether expressly, by}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 implication, appearance or otherwise.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.3 Independent Development. Nothing in this License will impair}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Apple's right to ac\hich\af2\dbch\af11\loch\f2 quire, license, develop, have others develop for}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 it, market and/or distribute technology or products that perform the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 same or similar functions as, or otherwise compete with,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications, Larger Works, technology or products that You may}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 develop, produce\hich\af2\dbch\af11\loch\f2 , market or distribute.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.4 Waiver; Construction. Failure by Apple or any Contributor to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 enforce any provision of this License will not be deemed a waiver of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 future enforcement of that or any other provision. Any law or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 regulation which provides that the\hich\af2\dbch\af11\loch\f2  language of a contract shall be}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 construed against the drafter will not apply to this License.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.5 Severability. (a) If for any reason a court of competent}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 jurisdiction finds any provision of this License, or portion thereof,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 to be unenforceable, that pr\hich\af2\dbch\af11\loch\f2 ovision of the License will be enforced to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the maximum extent permissible so as to effect the economic benefits}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and intent of the parties, and the remainder of this License will}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 continue in full force and effect. (b) Notwithstanding the foregoing,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 if appli\hich\af2\dbch\af11\loch\f2 cable law prohibits or restricts You from fully and/or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 specifically complying with Sections 2 and/or 3 or prevents the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 enforceability of either of those Sections, this License will
+ \par \hich\af2\dbch\af11\loch\f2 immediately \hich\af2\dbch\af11\loch\f2 t\hich\af2\dbch\af11\loch\f2 erminate and You must immediately discontinue any use of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the Covered Code and destroy all copies of it that are in your}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 possession or control.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.6 Dispute Resolution. Any litigation or other dispute resolution}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 between You and Apple relating to this License shall take place in the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Northern District of Californi\hich\af2\dbch\af11\loch\f2 a, and You and Apple hereby consent to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the personal jurisdiction of, and venue in, the state and federal}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 courts within that District with respect to this License. The}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 application of the United Nations Convention on Contracts for the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 International Sale of G\hich\af2\dbch\af11\loch\f2 oods is expressly excluded.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.7 Entire Agreement; Governing Law. This License constitutes the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 entire agreement between the parties with respect to the subject}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 matter hereof. This License shall be governed by the laws of the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 United States and the State of\hich\af2\dbch\af11\loch\f2  California, except that body of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 California law concerning conflicts of law.
+ \par \hich\af2\dbch\af11\loch\f2 Where You are located in the {\*\xmlopen\xmlns1{\factoidname PostalCode}}province{\*\xmlclose} of {\*\xmlopen\xmlns1{\factoidname PostalCode}}Quebec{\*\xmlclose}, {\*\xmlopen\xmlns1{\factoidname PostalCode}}
+ {\*\xmlopen\xmlns1{\factoidname PostalCode}}Canada{\*\xmlclose}{\*\xmlclose}, the following}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 clause applies: The parties hereby confirm that they have requested}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 that this License and all related docum\hich\af2\dbch\af11\loch\f2 ents be drafted in English. Les}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 parties ont exige que le present contrat et tous les documents}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 connexes soient rediges en anglais.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 EXHIBIT A.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 "Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Reserved.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 This file contains Original Code and/or Modifications of Original Code}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 as defined in and that are subject to the Apple Public Source License}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Version 2.0 (the 'License'). You may not use this file except in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 compliance with the License. Please obtain a copy \hich\af2\dbch\af11\loch\f2 of the License at}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 http://www.opensource.apple.com/apsl/ and read it before using this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 file.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 The Original Code and all software distributed under the License are}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 E\hich\af2\dbch\af11\loch\f2 XPRESS OR IMPLIED, AND \hich\af2\dbch\af11\loch\f2 APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Please see the License for the specific language governing rights and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 limita\hich\af2\dbch\af11\loch\f2 tions under the License."
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 Some portions of Rx are subject to the following license:
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Sun RPC is a product of Sun Microsystems, Inc. and is provided for}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 unrestricted use provided that this legend is included on all tape}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 media and as a part of th\hich\af2\dbch\af11\loch\f2 e software program in whole or part.  Users\hich\af2\dbch\af11\loch\f2 
+  may copy or modify Sun RPC without charge, but are not authorized\hich\af2\dbch\af11\loch\f2  to license or distribute it to anyone else except as part of a product or\hich\af2\dbch\af11\loch\f2 
+  program developed by the user or with the express written conse\hich\af2\dbch\af11\loch\f2 nt of\hich\af2\dbch\af11\loch\f2  Sun Microsystems, Inc.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR\hich\af2\dbch\af11\loch\f2  PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Sun RPC is provided with no support and without any obligation on the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 part of Sun Microsystems, Inc. to assist in its use, correction,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 modification or enhancement.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 S}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 UN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 INFRING\hich\af2\dbch\af11\loch\f2 EMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC\hich\af2\dbch\af11\loch\f2 
+  OR ANY PART THEREOF.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 In no event will Sun Microsystems, Inc. be liable for any lost revenue\hich\af2\dbch\af11\loch\f2 
+  or profits or other special, indirect and consequential damages, even if}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ Sun has been ad\hich\af2\dbch\af11\loch\f2 vised of the possibility of such damages.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Sun Microsystems, Inc.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 {\*\xmlopen\xmlns1{\factoidname PostalCode}}{\*\xmlopen\xmlns1{\factoidname PostalCode}}
+ \hich\af2\dbch\af11\loch\f2 2550 Garcia Avenue{\*\xmlclose}{\*\xmlclose}
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 {\*\xmlopen\xmlns1{\factoidname PostalCode}}{\*\xmlopen\xmlns1{\factoidname PostalCode}}
+ \hich\af2\dbch\af11\loch\f2 Mountain View{\*\xmlclose}, {\*\xmlopen\xmlns1{\factoidname PostalCode}}California{\*\xmlclose}  {\*\xmlopen\xmlns1{\factoidname PostalCode}}94043{\*\xmlclose}{\*\xmlclose}
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 src/afs/LINUX/osi_flush.s included code under IBM Public License with permission \hich\af2\dbch\af11\loch\f2 of the author, Paul MacKerras.
+ \par }}
\ No newline at end of file
Index: openafs/src/WINNT/install/wix/feature.wxi
diff -c openafs/src/WINNT/install/wix/feature.wxi:1.14.2.1 openafs/src/WINNT/install/wix/feature.wxi:1.14.2.2
*** openafs/src/WINNT/install/wix/feature.wxi:1.14.2.1	Tue Jul 18 12:03:59 2006
--- openafs/src/WINNT/install/wix/feature.wxi	Wed Sep  6 19:14:01 2006
***************
*** 298,303 ****
--- 298,305 ----
                  <ComponentRef Id="cmf_translate_et_EXE" />
                  <ComponentRef Id="cmf_rxdebug_EXE" />
                  <ComponentRef Id="cmf_backup_EXE" />
+                 <ComponentRef Id="cmf_afs_shl_ext_DLL" />
+                 <ComponentRef Id="cmf_afs_shl_ext_$(var.LanguageCode)_DLL" />
  
                  <ComponentRef Id="rcm_BinsOnly_Parm" />
                  <?if $(env.CPU) = "i386"?>
Index: openafs/src/WINNT/install/wix/files.wxi
diff -c openafs/src/WINNT/install/wix/files.wxi:1.22.2.5 openafs/src/WINNT/install/wix/files.wxi:1.22.2.7
*** openafs/src/WINNT/install/wix/files.wxi:1.22.2.5	Tue Jul 18 12:03:59 2006
--- openafs/src/WINNT/install/wix/files.wxi	Wed Sep  6 19:14:01 2006
***************
*** 3,9 ****
    <?ifndef BinsOnly?>
      <Directory Id="$(var.PISystemFolder)" SourceName="System">
          <Component Win64="$(var.Win64)" Id="cmf_afslogon_DLL" Guid="$(var.cmf_afslogon_DLL_guid)">
!             <File Id="fileafslogon_DLL" Name="afslogon.dll" LongName="afslogon.dll" KeyPath="yes" DiskId="1" src="$(var.ClientDir)afslogon.dll" />
              <Registry Id="reg_afslogon01" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" Action="createKeyAndRemoveKeyOnUninstall" />
              <Registry Id="reg_afslogon02" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" />
              <Registry Id="reg_afslogon03" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" Name="Asynchronous" Type="integer" Value="0" />
--- 3,9 ----
    <?ifndef BinsOnly?>
      <Directory Id="$(var.PISystemFolder)" SourceName="System">
          <Component Win64="$(var.Win64)" Id="cmf_afslogon_DLL" Guid="$(var.cmf_afslogon_DLL_guid)">
!             <File Id="fileafslogon_DLL" Name="afslogon.dll" KeyPath="yes" DiskId="1" src="$(var.ClientDir)afslogon.dll" />
              <Registry Id="reg_afslogon01" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" Action="createKeyAndRemoveKeyOnUninstall" />
              <Registry Id="reg_afslogon02" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" />
              <Registry Id="reg_afslogon03" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify\AfsLogon" Name="Asynchronous" Type="integer" Value="0" />
***************
*** 22,29 ****
          </Component>
      <?ifdef DebugSyms?>
          <Component Win64="$(var.Win64)" Id="cmp_ClientSystemDebug" Guid="$(var.cmp_ClientSystemDebug_guid)">
! 			<File Id="fileafslogon_PDB" Name="afslogon.pdb" LongName="afslogon.pdb" KeyPath="yes" DiskId="1" src="$(var.ClientDir)afslogon.pdb" />
! 			<File Id="fileafscpcc_PDB" Name="afscpcc.pdb" LongName="afscpcc.pdb" DiskId="1" src="$(var.ClientDir)afscpcc.pdb" />
          </Component>
      <?endif?>
      </Directory>
--- 22,29 ----
          </Component>
      <?ifdef DebugSyms?>
          <Component Win64="$(var.Win64)" Id="cmp_ClientSystemDebug" Guid="$(var.cmp_ClientSystemDebug_guid)">
! 			<File Id="fileafslogon_PDB" Name="afslogon.pdb" KeyPath="yes" DiskId="1" src="$(var.ClientDir)afslogon.pdb" />
! 			<File Id="fileafscpcc_PDB" Name="afscpcc.pdb" DiskId="1" src="$(var.ClientDir)afscpcc.pdb" />
          </Component>
      <?endif?>
      </Directory>
***************
*** 141,158 ****
                  <Component Win64="$(var.Win64)" Id="cmf_TaAfsServerManager_1033_DLL" Guid="$(var.cmf_TaAfsServerManager_1033_DLL_guid)">
                      <File Id="fileTaAfsServerManager_1033_DLL" Name="tasm1033.dll" LongName="TaAfsServerManager_1033.dll" KeyPath="yes" DiskId="1" src="$(var.ServerDir)\TaAfsServerManager_1033.dll"/>
                  </Component>
-                 <Component Win64="$(var.Win64)" Id="cmf_afscreds_1033_DLL" Guid="$(var.cmf_afscreds_1033_DLL_guid)">
-                     <File Id="fileafscreds_1033_DLL" Name="acrd1033.dll" LongName="afscreds_1033.dll" KeyPath="yes" DiskId="1" src="$(var.ClientDir)\afscreds_1033.dll"/>
-                 </Component>
                  <Component Win64="$(var.Win64)" Id="cmf_afs_config_1033_DLL" Guid="$(var.cmf_afs_config_1033_DLL_guid)">
                      <File Id="fileafs_config_1033_DLL" Name="acfg1033.dll" LongName="afs_config_1033.dll" KeyPath="yes" DiskId="1" src="$(var.ClientDir)\afs_config_1033.dll"/>
                  </Component>
                  <Component Win64="$(var.Win64)" Id="cmf_afs_cpa_1033_DLL" Guid="$(var.cmf_afs_cpa_1033_DLL_guid)">
                      <File Id="fileafs_cpa_1033_DLL" Name="acpa1033.dll" LongName="afs_cpa_1033.dll" KeyPath="yes" DiskId="1" src="$(var.ClientDir)\afs_cpa_1033.dll"/>
                  </Component>
-                 <Component Win64="$(var.Win64)" Id="cmf_afs_shl_ext_1033_DLL" Guid="$(var.cmf_afs_shl_ext_1033_DLL_guid)">
-                     <File Id="fileafs_shl_ext_1033_DLL" Name="ashl1033.dll" LongName="afs_shl_ext_1033.dll" KeyPath="yes" DiskId="1" src="$(var.ClientDir)\afs_shl_ext_1033.dll"/>
-                 </Component>
  
                  <Directory Id="dirCommon_en_US" Name="en_US" src="$(var.SrcDir)\WINNT\doc\help\en_US\">
  
--- 141,152 ----
***************
*** 835,853 ****
  							<Shortcut Id="scAfsCreds" Directory="dirShortCut" Name="Auth.lnk" LongName="Authentication.lnk" Description="$(loc.StrAfsCredsDesc)" Arguments="[CREDSAUTOINIT] [CREDSRENEWDRMAP] [CREDSIPCHDET] [CREDSQUIET] [CREDSSHOW]" Icon="ico_afscreds" IconIndex="0" Show="normal" WorkingDirectory="dirCommon" />
                          </File>
                      </Component>
                      <Component Win64="$(var.Win64)" Id="cmp_credsStartup" Guid="$(var.cmp_credsStartup_guid)">
  						<Shortcut Id="scAfsCredsStart" Directory="StartupFolder" Name="AFSAuth.lnk" LongName="AFS Credentials.lnk" Description="$(loc.StrAfsCredsDesc)" Arguments="[CREDSAUTOINIT] [CREDSRENEWDRMAP] [CREDSIPCHDET] [CREDSQUIET] [CREDSSHOW]" Icon="ico_afscreds" IconIndex="0" Show="normal" WorkingDirectory="dirCommon" Target="[#fileafscreds_EXE]"/>
  						<Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client\CurrentVersion" Name="StartupShortcutInstalled" Type="integer" Value="1" Id="reg_CredsAutoStart" KeyPath="yes" />
                      </Component>
                      <Component Win64="$(var.Win64)" Id="cmf_afs_shl_ext_DLL" Guid="$(var.cmf_afs_shl_ext_DLL_guid)">
                          <File Id="fileafs_shl_ext_DLL" Name="afsshext.dll" LongName="afs_shl_ext.dll" KeyPath="yes" DiskId="1">
!                             <Class Id="DC515C27-6CAC-11D1-BAE7-00C04FD140D2" Advertise="no" Context="InprocServer32" Description="$(loc.StrShlExtDesc)" ThreadingModel="apartment">
                                  <ProgId Id="AfsClientContextMenu.1" Description="$(loc.StrShlExtDesc)">
                                      <ProgId Id="AfsClientContextMenu" />
                                  </ProgId>
                              </Class>
                          </File>
                      </Component>
                      <Component Win64="$(var.Win64)" Id="cmf_afsd_service_EXE" Guid="$(var.cmf_afsd_service_EXE_guid)">
                          <File Id="fileafsd_service_EXE" Name="afsd_svc.exe" LongName="afsd_service.exe" KeyPath="yes" DiskId="1" />
                          <ServiceControl Id="TransarcAFSDaemon" Name="TransarcAFSDaemon" Stop="both" Remove="both" Wait="yes" />
--- 829,857 ----
  							<Shortcut Id="scAfsCreds" Directory="dirShortCut" Name="Auth.lnk" LongName="Authentication.lnk" Description="$(loc.StrAfsCredsDesc)" Arguments="[CREDSAUTOINIT] [CREDSRENEWDRMAP] [CREDSIPCHDET] [CREDSQUIET] [CREDSSHOW]" Icon="ico_afscreds" IconIndex="0" Show="normal" WorkingDirectory="dirCommon" />
                          </File>
                      </Component>
+                     <Component Win64="$(var.Win64)" Id="cmf_afscreds_1033_DLL" Guid="$(var.cmf_afscreds_1033_DLL_guid)">
+                         <File Id="fileafscreds_1033_DLL" Name="acrd1033.dll" LongName="afscreds_1033.dll" KeyPath="yes" DiskId="1" src="$(var.ClientDir)\afscreds_1033.dll"/>
+                     </Component>
                      <Component Win64="$(var.Win64)" Id="cmp_credsStartup" Guid="$(var.cmp_credsStartup_guid)">
  						<Shortcut Id="scAfsCredsStart" Directory="StartupFolder" Name="AFSAuth.lnk" LongName="AFS Credentials.lnk" Description="$(loc.StrAfsCredsDesc)" Arguments="[CREDSAUTOINIT] [CREDSRENEWDRMAP] [CREDSIPCHDET] [CREDSQUIET] [CREDSSHOW]" Icon="ico_afscreds" IconIndex="0" Show="normal" WorkingDirectory="dirCommon" Target="[#fileafscreds_EXE]"/>
  						<Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client\CurrentVersion" Name="StartupShortcutInstalled" Type="integer" Value="1" Id="reg_CredsAutoStart" KeyPath="yes" />
                      </Component>
+   <?endif?>
+ 
                      <Component Win64="$(var.Win64)" Id="cmf_afs_shl_ext_DLL" Guid="$(var.cmf_afs_shl_ext_DLL_guid)">
                          <File Id="fileafs_shl_ext_DLL" Name="afsshext.dll" LongName="afs_shl_ext.dll" KeyPath="yes" DiskId="1">
!                             <Class Id="$(var.clsid_afs_shl_ext)" Advertise="no" Context="InprocServer32" Description="$(loc.StrShlExtDesc)" ThreadingModel="apartment">
                                  <ProgId Id="AfsClientContextMenu.1" Description="$(loc.StrShlExtDesc)">
                                      <ProgId Id="AfsClientContextMenu" />
                                  </ProgId>
                              </Class>
                          </File>
                      </Component>
+                     <Component Win64="$(var.Win64)" Id="cmf_afs_shl_ext_1033_DLL" Guid="$(var.cmf_afs_shl_ext_1033_DLL_guid)">
+                         <File Id="fileafs_shl_ext_1033_DLL" Name="ashl1033.dll" LongName="afs_shl_ext_1033.dll" KeyPath="yes" DiskId="1" src="$(var.ClientDir)\afs_shl_ext_1033.dll"/>
+                     </Component>
+ 
+   <?ifndef BinsOnly ?>
                      <Component Win64="$(var.Win64)" Id="cmf_afsd_service_EXE" Guid="$(var.cmf_afsd_service_EXE_guid)">
                          <File Id="fileafsd_service_EXE" Name="afsd_svc.exe" LongName="afsd_service.exe" KeyPath="yes" DiskId="1" />
                          <ServiceControl Id="TransarcAFSDaemon" Name="TransarcAFSDaemon" Stop="both" Remove="both" Wait="yes" />
***************
*** 932,941 ****
                          	<File Id="fileaklog_PDB" Name="aklog.pdb" LongName="aklog.pdb" DiskId="1" />
  			<?endif?>
                          <File Id="filecmdebug_PDB" Name="cmdebug.pdb" LongName="cmdebug.pdb" DiskId="1" />
    <?ifndef BinsOnly ?>
  			<File Id="fileafs_cpa_PDB" Name="afs_cpa.pdb" LongName="afs_cpa.pdb" KeyPath="yes" DiskId="1"/>
                          <File Id="fileafscreds_PDB" Name="afscreds.pdb" LongName="afscreds.pdb" DiskId="1" />
-                         <File Id="fileafs_shl_ext_PDB" Name="afsshext.pdb" LongName="afs_shl_ext.pdb" DiskId="1" />
                          <File Id="fileafsd_service_PDB" Name="afsd_svc.pdb" LongName="afsd_service.pdb" DiskId="1" />
    <?endif?>
                      </Component>
--- 936,945 ----
                          	<File Id="fileaklog_PDB" Name="aklog.pdb" LongName="aklog.pdb" DiskId="1" />
  			<?endif?>
                          <File Id="filecmdebug_PDB" Name="cmdebug.pdb" LongName="cmdebug.pdb" DiskId="1" />
+                         <File Id="fileafs_shl_ext_PDB" Name="afsshext.pdb" LongName="afs_shl_ext.pdb" DiskId="1" />
    <?ifndef BinsOnly ?>
  			<File Id="fileafs_cpa_PDB" Name="afs_cpa.pdb" LongName="afs_cpa.pdb" KeyPath="yes" DiskId="1"/>
                          <File Id="fileafscreds_PDB" Name="afscreds.pdb" LongName="afscreds.pdb" DiskId="1" />
                          <File Id="fileafsd_service_PDB" Name="afsd_svc.pdb" LongName="afsd_service.pdb" DiskId="1" />
    <?endif?>
                      </Component>
***************
*** 1389,1403 ****
  
  	<!-- Shared assembly runtime for VS 2005 -->
  	<?if $(env.AFSVER_CL) = "1400"?>
! 		<?if $(var.Platform) = "x64" ?>
! 		    <?ifdef env.CommonProgramFiles6432?>
! 		    	<?define CPF="$(env.CommonProgramFiles)"?>
! 		    <?else?>
! 		        <?define CPF="$(env.CommonProgramFiles(x86))"?>
! 		    <?endif?>
!                 <?else?>
! 		    <?define CPF="$(env.CommonProgramFiles)"?>
!                 <?endif?>
  		<?if $(var.Platform) = "x64" ?>
  			<?ifndef Debug?>
  				<Merge Id="MSVCRT8MEM" DiskId="1" Language="0" src="$(var.CPF)\Merge Modules\Microsoft_VC80_CRT_x86_x64.msm"/>
--- 1393,1404 ----
  
  	<!-- Shared assembly runtime for VS 2005 -->
  	<?if $(env.AFSVER_CL) = "1400"?>
! 		<?ifdef env.CommonProgramFiles6432?>
! 		  <?define CPF="$(env.CommonProgramFiles(x86)"?>
! 		<?else?>
! 		  <?define CPF="$(env.CommonProgramFiles)"?>
! 		<?endif?>
! 
  		<?if $(var.Platform) = "x64" ?>
  			<?ifndef Debug?>
  				<Merge Id="MSVCRT8MEM" DiskId="1" Language="0" src="$(var.CPF)\Merge Modules\Microsoft_VC80_CRT_x86_x64.msm"/>
Index: openafs/src/WINNT/install/wix/licenses.rtf
diff -c /dev/null openafs/src/WINNT/install/wix/licenses.rtf:1.1.2.2
*** /dev/null	Wed Sep  6 21:51:12 2006
--- openafs/src/WINNT/install/wix/licenses.rtf	Wed Sep  6 01:10:48 2006
***************
*** 0 ****
--- 1,679 ----
+ {\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch11\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1041{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
+ {\f11\froman\fcharset128\fprq1{\*\panose 02020609040205080304}MS Mincho{\*\falt \'82\'6c\'82\'72 \'96\'be\'92\'a9};}{\f37\froman\fcharset128\fprq1{\*\panose 02020609040205080304}@MS Mincho;}{\f38\froman\fcharset238\fprq2 Times New Roman CE;}
+ {\f39\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f41\froman\fcharset161\fprq2 Times New Roman Greek;}{\f42\froman\fcharset162\fprq2 Times New Roman Tur;}{\f43\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
+ {\f44\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f45\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f46\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f58\fmodern\fcharset238\fprq1 Courier New CE;}
+ {\f59\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f61\fmodern\fcharset161\fprq1 Courier New Greek;}{\f62\fmodern\fcharset162\fprq1 Courier New Tur;}{\f63\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}
+ {\f64\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f65\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f66\fmodern\fcharset163\fprq1 Courier New (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;
+ \red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;
+ \red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 
+ \fs24\lang1033\langfe1041\loch\f0\hich\af0\dbch\af11\cgrid\langnp1033\langfenp1041 \snext0 Normal;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\*
+ \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv 
+ \ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}
+ {\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid5512945\rsid16720314}{\*\generator Microsoft Word 11.0.8026;}{\info{\operator Jeffrey Altman}{\creatim\yr2006\mo9\dy6\min9}{\revtim\yr2006\mo9\dy6\min27}{\version2}{\edmins18}{\nofpages12}
+ {\nofwords5339}{\nofchars30435}{\nofcharsws35703}{\vern24609}{\*\password 00000000}}{\*\xmlnstbl {\xmlns1 urn:schemas-microsoft-com:office:smarttags}}\paperw12240\paperh15840\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect 
+ \widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind4\viewscale100\nolnhtadjtbl\rsidroot5512945 \fet0{\*\wgrffmtfilter 013f}
+ \ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}
+ {\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang 
+ {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 
+ \rtlch\fcs1 \af0\afs24\alang1025 \ltrch\fcs0 \fs24\lang1033\langfe1041\loch\af0\hich\af0\dbch\af11\cgrid\langnp1033\langfenp1041 {\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 IBM Public License Version 1.0
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS IBM\hich\af2\dbch\af11\loch\f2  PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF\hich\af2\dbch\af11\loch\f2 
+   THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 1. DEFINITIONS
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 "Contribution" m\hich\af2\dbch\af11\loch\f2 eans:
+ \par \hich\af2\dbch\af11\loch\f2 a) in the case of International Business Machines Corporation ("IBM"),\hich\af2\dbch\af11\loch\f2  the Original Program, and
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 b) in the case of each Contributor,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 i) changes to the Program, and
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 ii) additions to the Program;
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 wh\hich\af2\dbch\af11\loch\f2 ere such changes and/or additions to the Program originate from and\hich\af2\dbch\af11\loch\f2  are distributed by that particular Contributor. A Contribution\hich\af2\dbch\af11\loch\f2 
+  'originates' from a Contributor if it was added to the Program by\hich\af2\dbch\af11\loch\f2  such Contributor itself or anyone acti\hich\af2\dbch\af11\loch\f2 ng on such Contributor's\hich\af2\dbch\af11\loch\f2 
+  behalf. Contributions do not include additions to the Program\hich\af2\dbch\af11\loch\f2  which: (i) are separate modules of software distributed in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 conjunction with the Program under their own license agreement,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and (ii) are not d\hich\af2\dbch\af11\loch\f2 erivative works of the Program.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 "Contributor" means IBM and any other entity that distributes the\hich\af2\dbch\af11\loch\f2  Program.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 "Licensed Patents " mean patent claims licensable by a Contributor\hich\af2\dbch\af11\loch\f2  which are necessarily infringed by the use or sale of its Contribution}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 alone or when combined with the Program.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 "Original Program" means the original version of the software}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 accompanying this Agreement as released by IBM, including source c\hich\af2\dbch\af11\loch\f2 ode,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 object code and documentation, if any.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 "Program" means the Original Program and Contributions.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 "Recipient" means anyone who receives the Program under this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Agreement, including all Contributors.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 2. GRANT OF RIGHTS
+ \par \hich\af2\dbch\af11\loch\f2 a) Subj\hich\af2\dbch\af11\loch\f2 ect to the terms of this Agreement, each Contributor hereby\hich\af2\dbch\af11\loch\f2  grants Recipient a non-exclusive, worldwide, royalty-free\hich\af2\dbch\af11\loch\f2 
+  copyright license to reproduce, prepare derivative works of,\hich\af2\dbch\af11\loch\f2   publicly display, publicly perform, distribute and subli\hich\af2\dbch\af11\loch\f2 cense the\hich\af2\dbch\af11\loch\f2 
+  Contribution of such Contributor, if any, and such derivative}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ works, in source code and object code form.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 b) Subject to the terms of this Agreement, each Contributor hereby\hich\af2\dbch\af11\loch\f2  grants Recipient a non-exclusive, worldwi\hich\af2\dbch\af11\loch\f2 de, royalty-free patent\hich\af2\dbch\af11\loch\f2 
+  license under Licensed Patents to make, use, sell, offer to sell,\hich\af2\dbch\af11\loch\f2  import and otherwise transfer the Contribution of such\hich\af2\dbch\af11\loch\f2  Contributor, if any, in source code and object code form. This
+ \hich\af2\dbch\af11\loch\f2  patent license shall\hich\af2\dbch\af11\loch\f2  apply to the combination of the Contribution\hich\af2\dbch\af11\loch\f2  and the Program if, at the time the Contribution is added by the\hich\af2\dbch\af11\loch\f2 
+  Contributor, such addition of the Contribution causes such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ combination to be covered by the Licensed Patents. The patent}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ license shall not apply to any other combinations which include}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ the Contribution. No hardware per se is licensed hereunder.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 c) Recipient understands that although each Contributor grants the\hich\af2\dbch\af11\loch\f2  licenses to its Contributions set\hich\af2\dbch\af11\loch\f2  forth herein, no assurances are\hich\af2\dbch\af11\loch\f2 
+  provided by any Contributor that the Program does not infringe the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ patent or other intellectual property rights of any other entity.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ Each Contributor disclaims any liability to Recipient for claims}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ brought by any other entity based on infringement of intellectual}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ property rights or otherwise. As a condition to exercising the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ rights and licenses granted hereunder, each Recipient hereby}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ assumes sole responsibility to secure any \hich\af2\dbch\af11\loch\f2 other intellectual\hich\af2\dbch\af11\loch\f2  property rights needed, if any. For example, if a third party\hich\af2\dbch\af11\loch\f2 
+  patent license is required to allow Recipient to distribute the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ Program, it is Recipient's responsibility to acquire that license}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ before distributi\hich\af2\dbch\af11\loch\f2 ng the Program.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 d) Each Contributor represents that to its knowledge it has sufficient\hich\af2\dbch\af11\loch\f2        copyright rights in its Contribution, if any, to grant the\hich\af2\dbch\af11\loch\f2 
+  copyright license set forth in this Agreement.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 3. REQUIREMENTS
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 A Co\hich\af2\dbch\af11\loch\f2 ntributor may choose to distribute the Program in object code form\hich\af2\dbch\af11\loch\f2  under its own license agreement, provided that:}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 
+ \par 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 a) it complies with the terms and conditions of this Agreement; and
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 b) its license agreement:
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 i) effectively disclaims on behalf of all Contributors all warranties\hich\af2\dbch\af11\loch\f2  and conditions, express and implied, including warranties or\hich\af2\dbch\af11\loch\f2 
+  conditions of title and non-infringement, and implied warranties}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ or conditions of merchantability and\hich\af2\dbch\af11\loch\f2  fitness for a particular}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 purpose;
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 ii) effectively excludes on behalf of all Contributors all liability\hich\af2\dbch\af11\loch\f2  for damages, including direct, indirect, special, incidental and\hich\af2\dbch\af11\loch\f2 
+  consequential damages, such as lost profits;
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 iii) states that any provisions which differ from this Agreement are}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 offered by that Contributor alone and not by any other party; and
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 iv) states that source code for the Program is available from such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  Contributor, and informs lic\hich\af2\dbch\af11\loch\f2 ensees how to obtain it in a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 reasonable manner on or through a medium customarily used for}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  s}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 oftware exchange.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 When the Program is made available in source code form:}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 a) it must be made available under this Agreement; and
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 b) a copy of this Agreement must be included with each copy of the\hich\af2\dbch\af11\loch\f2  Program.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 Each Contributor must include the following in a conspicuous location}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 in the Program:
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 \hich\f2 Copyright \'a9\loch\f2  \{date here\}\hich\af2\dbch\af11\loch\f2 , International Business Machines Corporation}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and others. All Rights Reserved.
+ \par \hich\af2\dbch\af11\loch\f2        
+ \par \hich\af2\dbch\af11\loch\f2 In addition, each Contributor must identify itself as the originator}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 of its Contribution, if any, in a manner that reasonably allows}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 subsequent Recipient\hich\af2\dbch\af11\loch\f2 s to identify the originator of the Contribution.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 4. COMMERCIAL DISTRIBUTION
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 Commercial distributors of software may accept certain}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 responsibilities with respect to end users, business partners and the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 like. While this license is intend\hich\af2\dbch\af11\loch\f2 ed to facilitate the commercial use}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 of the Program, the Contributor who includes the Program in a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 commercial product offering should do so in a manner which does not\hich\af2\dbch\af11\loch\f2  create potential liability for other Contributors. Therefore, if a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Contributor\hich\af2\dbch\af11\loch\f2  includes the Program in a commercial product offering,}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 such Contributor ("Commercial Contributor") hereby agrees to defend}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and indemnify every other Contributor ("Indemnified Contributor")}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 against any losses, damages and costs (collectively "Loss\hich\af2\dbch\af11\loch\f2 
+ es") arising}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ from claims, lawsuits and other legal actions brought by a third party}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ against the Indemnified Contributor to the extent caused by the acts}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ or omissions of such Commercial Contributor in connection with its}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ distribution of the Prog\hich\af2\dbch\af11\loch\f2 ram in a commercial product offering. The}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 obligations in this section do not apply to any claims or Losses}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 relating to any actual or alleged intellectual property infringement.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 In order to qualify, an Indemnified Contributor must: a) promptly\hich\af2\dbch\af11\loch\f2  notify the Commercial Contributor in writing of such claim, and b)}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 allow the Commercial Contributor to control, and cooperate with the\hich\af2\dbch\af11\loch\f2 
+  Commercial Contributor in, the defense and any related settlement\hich\af2\dbch\af11\loch\f2  negotiations. The Indemnified Contributor m\hich\af2\dbch\af11\loch\f2 ay participate in any such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 claim at its own expense.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 For example, a Contributor might include the Program in a commercial}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 product offering, Product X. That Contributor is then a Commercial}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Contributor. If that Commercial Contributor then ma\hich\af2\dbch\af11\loch\f2 kes performance}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 claims, or offers warranties related to Product X, those performance}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  c}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 laims and warranties are such Commercial Contributor's responsibility\hich\af2\dbch\af11\loch\f2  alone. Under this section, the Commercial Contributor would have to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 defend claims agains\hich\af2\dbch\af11\loch\f2 t the other Contributors related to those}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 performance claims and warranties, and if a court requires any other}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Contributor to pay any damages as a result, the Commercial Contributor}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 must pay those damages.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 5. NO WARRANTY
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 EXCEPT AS EX\hich\af2\dbch\af11\loch\f2 PRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY\hich\af2\dbch\af11\loch\f2  WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCH\hich\af2\dbch\af11\loch\f2 ANTABILITY}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 responsible for determining the appropriateness of using and}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 distributing the Program and assumes all risks associated with its}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 exercise of rights under this Agreement, in\hich\af2\dbch\af11\loch\f2 cluding but not limited to}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the risks and costs of program errors, compliance with applicable}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 laws, damage to or loss of data, programs or equipment, and}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 unavailability or interruption of operations.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 6. DISCLAIMER OF LIABILITY
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 WITHOUT LIMITATION LOST PROFITS), HOW\hich\af2\dbch\af11\loch\f2 EVER CAUSED AND ON ANY THEORY OF}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  \hich\af2\dbch\af11\loch\f2 L}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 IABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED\hich\af2\dbch\af11\loch\f2  HEREUNDER, EVE\hich\af2\dbch\af11\loch\f2 
+ N IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 7. GENERAL
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 If any provision of this Agreement is invalid or unenforceable under}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 applicable law, it shall not affect the validity or enforceability of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the remainder of the terms of this Ag\hich\af2\dbch\af11\loch\f2 reement, and without further}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 action by the parties hereto, such provision shall be reformed to the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 minimum extent necessary to make such provision valid and enforceable.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 If Recipient institutes patent litigation against a Contributor with}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 r\hich\af2\dbch\af11\loch\f2 espect to a patent applicable to software (including a cross-claim or\hich\af2\dbch\af11\loch\f2  counterclaim in a lawsuit), then any patent licenses granted by that\hich\af2\dbch\af11\loch\f2 
+  Contributor to such Recipient under this Agreement shall terminate as\hich\af2\dbch\af11\loch\f2  of the date such litigation is filed. \hich\af2\dbch\af11\loch\f2 In addition, If Recipient}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 institutes patent litigation against any entity (including a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 cross-claim or counterclaim in a lawsuit) alleging that the Program}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 itself (excluding combinations of the Program with other software or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 hardware) infringes such Recipient's patent(s), then such Recipient's}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rights granted under Section 2(b) shall terminate as of the date such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 litigation is filed.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 All Recipient's rights under this Agreement shall terminate if it}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 fails to c\hich\af2\dbch\af11\loch\f2 omply with any of the material terms or conditions of this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Agreement and does not cure such failure in a reasonable period of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 time after becoming aware of such noncompliance. If all Recipient's}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rights under this Agreement terminate, Recipient agre\hich\af2\dbch\af11\loch\f2 es to cease use}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and distribution of the Program as soon as reasonably practicable.\hich\af2\dbch\af11\loch\f2   However, Recipient's obligations under this Agreement and any licenses
+ \hich\af2\dbch\af11\loch\f2  granted by Recipient relating to the Program shall continue and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 survive.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 IBM may pu\hich\af2\dbch\af11\loch\f2 blish new versions (including revisions) of this Agreement}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 from time to time. Each new version of the Agreement will be given a\hich\af2\dbch\af11\loch\f2  distinguishing version number. The Program (including Contributions)}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 may always be distributed subject to the version o\hich\af2\dbch\af11\loch\f2 f the Agreement}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 under which it was received. In addition, after a new version of the}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Agreement is published, Contributor may elect to distribute the}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Program (including its Contributions) under the new version. No one}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 other than IBM has the righ\hich\af2\dbch\af11\loch\f2 t to modify this Agreement. Except as}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 expressly stated in Sections 2(a) and 2(b) above, Recipient receives}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 no rights or licenses to the intellectual property of any Contributor}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 under this Agreement, whether expressly, by implication, estoppel or}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 otherwise. All rights in the Program not expressly granted under this}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Agreement are reserved.
+ \par \hich\af2\dbch\af11\loch\f2    
+ \par \hich\af2\dbch\af11\loch\f2 This Agreement is governed by the laws of the State of {\*\xmlopen\xmlns1{\factoidname State}}New York{\*\xmlclose} and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the intellectual property laws of the {\*\xmlopen\xmlns1{\factoidname place}}{\*\xmlopen\xmlns1{\factoidname country-region}}United States of America{\*\xmlclose}{\*\xmlclose}. No
+ }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 party to\hich\af2\dbch\af11\loch\f2 
+  this Agreement will bring a legal action under this Agreement}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ more than one year after the cause of action arose. Each party waives}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ its rights to a jury trial in any resulting litigation.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 Kerberos 5 ticket support in rxkad is subject to the followi\hich\af2\dbch\af11\loch\f2 ng copyright:
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 \hich\f2 Copyright (c) 1995, 1996, 1997, 2002 Kungliga Tekniska H\'f6\loch\f2 gskolan
+ \par \hich\af2\dbch\af11\loch\f2 (Royal {\*\xmlopen\xmlns1{\factoidname PostalCode}}Institute{\*\xmlclose} of {\*\xmlopen\xmlns1{\factoidname PostalCode}}Technology{\*\xmlclose}, {\*\xmlopen\xmlns1{\factoidname PostalCode}}{\*\xmlopen\xmlns1{\factoidname 
+ PostalCode}}Stockholm{\*\xmlclose}, {\*\xmlopen\xmlns1{\factoidname PostalCode}}Sweden{\*\xmlclose}{\*\xmlclose}).
+ \par \hich\af2\dbch\af11\loch\f2 All rights reserved.
+ \par \hich\af2\dbch\af11\loch\f2  
+ \par \hich\af2\dbch\af11\loch\f2 Redistribution and use in source a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 nd binary forms, with or \hich\af2\dbch\af11\loch\f2 without\hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 modification, a\hich\af2\dbch\af11\loch\f2 re permitted provided that the following conditions}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 are met:
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1. Redistributions of source code must retain the above copyright\hich\af2\dbch\af11\loch\f2  notice, this list of conditions and the following disclaimer.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  
+ \par \hich\af2\dbch\af11\loch\f2 2. Redistributions in binary form must repro\hich\af2\dbch\af11\loch\f2 duce the above copyright\hich\af2\dbch\af11\loch\f2   notice, this list of conditions and the following disclaimer in the\hich\af2\dbch\af11\loch\f2 
+   documentation and/or other materials provided with the distribution.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  
+ \par \hich\af2\dbch\af11\loch\f2 3. Neither the name of the Institute nor the names of its contributors\hich\af2\dbch\af11\loch\f2  may be used to endorse or promote products derived from this software\hich\af2\dbch\af11\loch\f2 
+  without specific prior written permission.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND\hich\af2\dbch\af11\loch\f2  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\hich\af2\dbch\af11\loch\f2 
+  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\hich\af2\dbch\af11\loch\f2  ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 FOR ANY DIRECT, INDIRECT\hich\af2\dbch\af11\loch\f2 , INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\hich\af2\dbch\af11\loch\f2 
+  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\hich\af2\dbch\af11\loch\f2  IN CONTRACT, STRICT\hich\af2\dbch\af11\loch\f2  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\hich\af2\dbch\af11\loch\f2 
+  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\hich\af2\dbch\af11\loch\f2  SUCH DAMAGE.
+ \par 
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 Some code in rxkad/ticket5.c}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  and WINNT/afsd/afskfw.\hich\af2\dbch\af11\loch\f2 c}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  is subject to the following copyri\hich\af2\dbch\af11\loch\f2 ght:
+ \par 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2 Copyright 1992, 2006}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  by the Massachusetts Institute of Technology.
+ \par \hich\af2\dbch\af11\loch\f2 All Rights Reserved.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 Export of this software from the {\*\xmlopen\xmlns1{\factoidname PostalCode}}{\*\xmlopen\xmlns1{\factoidname PostalCode}}United States of America{\*\xmlclose}{\*\xmlclose} may}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 require a specific license from the United States Government.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2   It is the resp\hich\af2\dbch\af11\loch\f2 onsibility of any person or organization contemplating
+ \hich\af2\dbch\af11\loch\f2   export to obtain such a license before exporting.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 WITHIN THAT CONSTRAINT, permission to use, copy, modify, and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 distribute this software and its documentation for any purpose and\hich\af2\dbch\af11\loch\f2  witho\hich\af2\dbch\af11\loch\f2 ut fee is hereby granted, provided that the above copyright\hich\af2\dbch\af11\loch\f2 
+  notice appear in all copies and that both that copyright notice and\hich\af2\dbch\af11\loch\f2  this permission notice appear in supporting documentation, and that\hich\af2\dbch\af11\loch\f2 
+  the name of M.I.T. not be used in advertising or publicity pertaining\hich\af2\dbch\af11\loch\f2  to distribution of the software without specific, written prior\hich\af2\dbch\af11\loch\f2 
+  permission.  Furthermore if you modify this software you must label\hich\af2\dbch\af11\loch\f2  your software as modified software and not\hich\af2\dbch\af11\loch\f2  distribute it in such a\hich\af2\dbch\af11\loch\f2 
+  fashion that it might be confused with the original M.I.T. software.\hich\af2\dbch\af11\loch\f2  M.I.T. makes no representations about the suitability of\hich\af2\dbch\af11\loch\f2  this software for any purpose.  It is provided "as is" without express
+ \hich\af2\dbch\af11\loch\f2  or implied warranty.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 afssettings is subject to the following license:
+ \par \hich\af2\dbch\af11\loch\f2 APPLE PUBLIC SOURCE LICENSE
+ \par \hich\af2\dbch\af11\loch\f2 Version 2.0 - August 6, 2003
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 Please read this License carefully before downloading this software.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 By downloading or using this software, you are agreeing to be bound by}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the t\hich\af2\dbch\af11\loch\f2 erms of this License. If you do not or cannot agree to the terms}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 of this License, please do not download or use the software.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1. General; Definitions. This License applies to any program or other}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 work which Apple Computer, Inc. ("Apple") makes publicly av\hich\af2\dbch\af11\loch\f2 ailable and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 which contains a notice placed by Apple identifying such program or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 work as "Original Code" and stating that it is subject to the terms of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 this Apple Public Source License version 2.0 ("License"). As used in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 this License:
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.1 "Applicable Patent Rights" mean: (a) in the case where Apple is}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the grantor of rights, (i) claims of patents that are now or hereafter}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 acquired, owned by or assigned to Apple and (ii) that cover subject}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 matter contained in the Original Code, but only t\hich\af2\dbch\af11\loch\f2 o the extent}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 necessary to use, reproduce and/or distribute the Original Code}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 without infringement; and (b) in the case where You are the grantor of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rights, (i) claims of patents that are now or hereafter acquired,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 owned by or assigned to You and (ii) that \hich\af2\dbch\af11\loch\f2 cover subject matter in Your}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications, taken alone or in combination with Original Code.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.2 "Contributor" means any person or entity that creates or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 contributes to the creation of Modifications.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.3 "Covered Code" means the Original Code, Modificat\hich\af2\dbch\af11\loch\f2 ions, the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 combination of Original Code and any Modifications, and/or any}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 respective portions thereof.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.4 "Externally Deploy" means: (a) to sublicense, distribute or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 otherwise make Covered Code available, directly or indirectly, to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 anyone other than You; \hich\af2\dbch\af11\loch\f2 and/or (b) to use Covered Code, alone or as}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 part of a Larger Work, in any way to provide a service, including but}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 not limited to delivery of content, through electronic communication}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 with a client other than You.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.5 "Larger Work" means a work which combi\hich\af2\dbch\af11\loch\f2 nes Covered Code or portions}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 thereof with code not governed by the terms of this License.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 1.6 "Modifications" mean any addition to, deletion fr}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2 o}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 m, and/or change}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 to, the substance and/or structure of the Original Code, any previous}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Modifications, the combination of Original Code and any previous}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Modifications, and/or any respective portions thereof. When code is}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 released as a series of files, a Modification is: (a) any addition to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 or deletion from the contents of a file containing Co\hich\af2\dbch\af11\loch\f2 vered Code;}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and/or (b) any new file or other representation of computer program}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 statements that contains any part of Covered Code.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.7 "Original Code" means (a) the Source Code of a program or other}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 work as originally made available by Apple under this Li\hich\af2\dbch\af11\loch\f2 cense,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 including the Source Code of any updates or upgrades to such programs}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 or works made available by Apple under this License, and that has been}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 expressly identified by Apple as such in the header file(s) of such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 work; and (b) the object code compiled f\hich\af2\dbch\af11\loch\f2 rom such Source Code and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 originally made available by Apple under this License.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.8 "Source Code" means the human readable form of a program or other}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 work that is suitable for making modifications to it, including all}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 modules it contains, plus any associa\hich\af2\dbch\af11\loch\f2 ted interface definition files,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 scripts used to control compilation and installation of an executable}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 (object code).
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 1.9 "You" or "Your" means an individual or a legal entity exercising}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 rights under this License. For legal entities, "You" or "Your"}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 includ\hich\af2\dbch\af11\loch\f2 es any entity which controls, is controlled by, or is under}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 common control with, You, where "control" means (a) the power, direct}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 or indirect, to cause the direction or management of such entity,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 whether by contract or otherwise, or (b) ownership of fifty \hich\af2\dbch\af11\loch\f2 percent}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 (50%) or more of the outstanding shares or beneficial ownership of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 such entity.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 2. Permitted Uses; Conditions & Restrictions. Subject to the terms}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 and conditions of this License, Apple hereby grants You, effective on}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the date You accept this License and download the Original Code, a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 world-wide, royalty-free, non-exclusive license, to the extent of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Apple's Applicable Patent Rights and copyrights covering the Original}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Code, to do the following:
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 2.1 Unmodified Code. You \hich\af2\dbch\af11\loch\f2 may use, reproduce, display, perform,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 internally distribute within Your organization, and Externally Deploy}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 verbatim, unmodified copies of the Original Code, for commercial or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 non-commercial purposes, provided that in each instance:
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (a) You must retain an\hich\af2\dbch\af11\loch\f2 d reproduce in all copies of Original Code the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 copyright and other proprietary notices and disclaimers of Apple as}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 they appear in the Original Code, and keep intact all notices in the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Original Code that refer to this License; and
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (b) You must include a co\hich\af2\dbch\af11\loch\f2 py of this License with every copy of Source}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Code of Covered Code and documentation You distribute or Externally}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Deploy, and You may not offer or impose any terms on such Source Code}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 that alter or restrict this License or the recipients' rights}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 hereunder, \hich\af2\dbch\af11\loch\f2 except as permitted under Section 6.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 2.2 Modified Code. You may modify Covered Code and use, reproduce,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 display, perform, internally distribute within Your organization, and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Externally Deploy Your Modifications and Covered Code, for commercial}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 or non-commercial purposes, provided that in each instance You also}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 meet all of these conditions:
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (a) You must satisfy all the conditions of Section 2.1 with respect to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the Source Code of the Covered Code;
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (b) You must duplicate, to the extent it does no\hich\af2\dbch\af11\loch\f2 t already exist, the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 notice in Exhibit A in each file of the Source Code of all Your}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications, and cause the modified files to carry prominent notices}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 stating that You changed the files and the date of any change; and
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (c) If You Externally Deploy You\hich\af2\dbch\af11\loch\f2 r Modifications, You must make}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Source Code of all Your Externally Deployed Modifications either}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 available to those to whom You have Externally Deployed Your}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications, or publicly available. Source Code of Your Externally}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Deployed Modifications must be\hich\af2\dbch\af11\loch\f2  released under the terms set forth in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 this License, including the license grants set forth in Section 3}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 below, for as long as you Externally Deploy the Covered Code or twelve}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 (12) months from the date of initial External Deployment, whichever is}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 longer. Y\hich\af2\dbch\af11\loch\f2 ou should preferably distribute the Source Code of Your}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Externally Deployed Modifications electronically (e.g. download from a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 web site).
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 2.3 Distribution of Executable Versions. In addition, if You}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Externally Deploy Covered Code (Original Code and/or Mod\hich\af2\dbch\af11\loch\f2 ifications) in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 object code, executable form only, You must include a prominent}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 notice, in the code itself as well as in related documentation,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 stating that Source Code of the Covered Code is available under the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 terms of this License with information on how and where to obtain such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Source Code.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par \hich\af2\dbch\af11\loch\f2 2}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 .4 Third Party Rights. You expressly acknowledge and agree that}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 although Apple and each Contributor grants the licenses to their}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 respective portions of the Covered Code s\hich\af2\dbch\af11\loch\f2 et forth herein, no}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 assurances are provided by Apple or any Contributor that the Covered}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Code does not infringe the patent or other intellectual property}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rights of any other entity. Apple and each Contributor disclaim any}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 liability to You for claims brough\hich\af2\dbch\af11\loch\f2 t by any other entity based on}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 infringement of intellectual property rights or otherwise. As a}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 condition to exercising the rights and licenses granted hereunder, You}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 hereby assume sole responsibility to secure any other intellectual}{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 property rights needed,\hich\af2\dbch\af11\loch\f2  if any. For example, if a third party patent}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 license is required to allow You to distribute the Covered Code, it is}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Your responsibility to acquire that license before distributing the}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Covered Code.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 3. Your Grants. In consideration of, and as a condition \hich\af2\dbch\af11\loch\f2 to, the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 licenses granted to You under this License, You hereby grant to any}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 person or entity receiving or distributing Covered Code under this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 License a non-exclusive, royalty-free, perpetual, irrevocable license,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 under Your Applicable Patent Rights and ot\hich\af2\dbch\af11\loch\f2 her intellectual property}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rights (other than patent) owned or controlled by You, to use,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 reproduce, display, perform, modify, sublicense, distribute and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Externally Deploy Your Modifications of the same scope and extent as}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Apple's licenses under Sections 2.\hich\af2\dbch\af11\loch\f2 1 and 2.2 above.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 4. Larger Works. You may create a Larger Work by combining Covered}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Code with other code not governed by the terms of this License and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 distribute the Larger Work as a single product. In each such instance,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 You must make sure the requirements of this License are fulfilled for}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the Covered Code or any portion thereof.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 5. Limitations on Patent License. Except as expressly stated in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Section 2, no other patent rights, express or implied, are granted by}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Apple here\hich\af2\dbch\af11\loch\f2 in. Modifications and/or Larger Works may require additional}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 patent licenses from Apple which Apple may grant in its sole}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 discretion.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 6. Additional Terms. You may choose to offer, and to charge a fee for,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 warranty, support, indemnity or liability obligati\hich\af2\dbch\af11\loch\f2 ons and/or other}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rights consistent with the scope of the license granted herein}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 ("Additional Terms") to one or more recipients of Covered Code.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 However, You may do so only on Your own behalf and as Your sole}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 responsibility, and not on behalf of Apple or an\hich\af2\dbch\af11\loch\f2 y Contributor. You}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 must obtain the recipient's agreement that any such Additional Terms
+ \par \hich\af2\dbch\af11\loch\f2 are offered by You alone, and You hereby agree to indemnify, defend}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 and hold Apple and every Contributor harmless for any liability}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 incurred by or claims asserted again\hich\af2\dbch\af11\loch\f2 st Apple or such Contributor by}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 reason of any such Additional Terms.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 7. Versions of the License. Apple may publish revised and/or new}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 versions of this License from time to time. Each version will be given}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 a distinguishing version number. Once Original Cod\hich\af2\dbch\af11\loch\f2 e has been published}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 under a particular version of this License, You may continue to use it}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 under the terms of that version. You may also choose to use such}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Original Code under the terms of any subsequent version of this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 License published by Apple. No one other than Apple has the right to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 modify the terms applicable to Covered Code created under this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 License.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 8. NO WARRANTY OR SUPPORT. The Covered Code may contain in whole or in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 part pre-release, untested, or not fully te\hich\af2\dbch\af11\loch\f2 sted works. The Covered}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Code may contain errors that could cause failures or loss of data, and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  \hich\af2\dbch\af11\loch\f2 m}{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 ay be incomplete or contain inaccuracies. You expressly acknowledge}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and agree that use of the Covered Code, or any portion thereof, is at}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Your sole and entire r\hich\af2\dbch\af11\loch\f2 isk. THE COVERED CODE IS PROVIDED "AS IS" AND}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 WITHOUT WARRANTY, UPGRADES OR SUPPORT OF ANY KIND AND APPLE AND}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 APPLE'S LICENSOR(S) (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 PURPOSES OF SECTIONS 8 AND 9) AND ALL CONTRIBUTORS EXPRESSLY DISCLAIM}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 ALL WARRANT\hich\af2\dbch\af11\loch\f2 IES AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NONINFRINGEMENT OF THI\hich\af2\dbch\af11\loch\f2 RD}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 PARTY RIGHTS. APPLE AND EACH CONTRIBUTOR DOES NOT WARRANT AGAINST
+ \par \hich\af2\dbch\af11\loch\f2 INTERF}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2 E}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ RENCE WITH YOUR ENJOYMENT OF THE COVERED CODE, THAT THE}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ FUNCTIONS CONTAINED IN THE COVERED CODE WILL MEET YOUR REQUIREMENTS,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ THAT THE OPERATION OF THE COVERED CODE WILL BE UNINTERR\hich\af2\dbch\af11\loch\f2 UPTED OR}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 ERROR-FREE, OR THAT DEFECTS IN THE COVERED CODE WILL BE CORRECTED. NO}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE, AN APPLE}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 AUTHORIZED REPRESENTATIVE OR ANY CONTRIBUTOR SHALL CREATE A WARRANTY.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 You acknowledge that the Covered Code is not\hich\af2\dbch\af11\loch\f2  intended for use in the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 operation of nuclear facilities, aircraft navigation, communication}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 systems, or air traffic control machines in which case the failure of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the Covered Code could lead to death, personal injury, or severe
+ \par \hich\af2\dbch\af11\loch\f2 physical or environmental damage.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 9. LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 EVENT SHALL APPLE OR ANY CONTRIBUTOR BE LIABLE FOR ANY INCIDENTAL,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 TO THIS LICEN\hich\af2\dbch\af11\loch\f2 SE OR YOUR USE OR INABILITY TO USE THE COVERED CODE, OR}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 ANY PORTION THEREOF, WHETHER UNDER A THEORY OF CONTRACT, WARRANTY,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 TORT (INCLUDING NEGLIGENCE), PRODUCTS LIABILITY OR OTHERWISE, EVEN IF}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 APPLE OR SUCH CONTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY O\hich\af2\dbch\af11\loch\f2 F SUCH}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 REMEDY. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY OF}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 TO YOU. In no event shall Apple's total \hich\af2\dbch\af11\loch\f2 liability to You for all}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 damages (other than as may be required by applicable law) under this}{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 License exceed the amount of fifty dollars ($50.00).
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 10. Trademarks. This License does not grant any rights to use the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 trademarks or trade names "Apple", "Apple \hich\af2\dbch\af11\loch\f2 Computer", "Mac", "Mac OS",}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 "QuickTime", "QuickTime Streaming Server" or any other trademarks,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 service marks, logos or trade names belonging to Apple (collectively}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 "Apple Marks") or to any trademark, service mark, logo or trade name}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 belonging to any Contri\hich\af2\dbch\af11\loch\f2 butor. You agree not to use any Apple Marks in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 or as part of the name of products derived from the Original Code or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 to endorse or promote products derived from the Original Code other}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 than as expressly permitted by and in strict compliance at all times}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 with Apple's third party trademark usage guidelines which are posted}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 at}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 http://www.apple.com/legal/guidelinesfor3rdparties.html.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 11. Ownership. Subject to the licenses granted under this License,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 each Contributor retains all rights, title and interest in \hich\af2\dbch\af11\loch\f2 and to any}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications made by such Contributor. Apple retains all rights,
+ \par \hich\af2\dbch\af11\loch\f2 t\hich\af2\dbch\af11\loch\f2 itle and interest in and to the Original Code and any Modifications}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 made by or on behalf of Apple ("Apple Modifications"), and such Apple}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications will not be automatically \hich\af2\dbch\af11\loch\f2 subject to this License. Apple
+ \par \hich\af2\dbch\af11\loch\f2 m\hich\af2\dbch\af11\loch\f2 ay, at its sole discretion, choose to license such Apple}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications under this License, or on different terms from those}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 contained in this License or may choose not to license them at all.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 12. Termination.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 12.1 Terminat\hich\af2\dbch\af11\loch\f2 ion. This License and the rights granted hereunder will}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 terminate:
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (a) automatically without notice from Apple if You fail to comply with}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 any term(s) of this License and fail to cure such breach within 30}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 days of becoming aware of such breach;
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (b) immedi\hich\af2\dbch\af11\loch\f2 ately in the event of the circumstances described in Section}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 13.5(b); or
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 (c) automatically without notice from Apple if You, at any time during}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 the term of this License, commence an action for patent infringement}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 against Apple; provided that Apple did not\hich\af2\dbch\af11\loch\f2  first commence}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 an action for patent infringement against You in that instance.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 12.2 Effect of Termination. Upon termination, You agree to immediately}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 stop any further use, reproduction, modification, sublicensing and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 distribution of the Covered Code. All sublicenses to the Covered Code}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 which have been properly granted prior to termination shall survive}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 any termination of this License. Provisions which, by their nature,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 should remain in effect beyond the termination of \hich\af2\dbch\af11\loch\f2 this License shall}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 survive, including but not limited to Sections 3, 5, 8, 9, 10, 11,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 12.2 and 13. No party will be liable to any other for compensation,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 indemnity or damages of any sort solely as a result of terminating}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 this License in accordance with its\hich\af2\dbch\af11\loch\f2  terms, and termination of this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 License will be without prejudice to any other right or remedy of
+ \par \hich\af2\dbch\af11\loch\f2 any p}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2 a}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 rty.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13. Miscellaneous.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.1 Government End Users. The Covered Code is a "commercial item" as}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 defined in FAR 2.101. Government software and technical \hich\af2\dbch\af11\loch\f2 data rights in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the Covered Code include only those rights customarily provided to the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 public as defined in this License. This customary commercial license}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 in technical data and software is provided in accordance with FAR}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 12.211 (Technical Data) and 12.212 \hich\af2\dbch\af11\loch\f2 (Computer Software) and, for}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Department of Defense purchases, DFAR 252.227-7015 (Technical Data --}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Commercial Items) and 227.7202-3 (Rights in Commercial Computer}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Software or Computer Software Documentation). Accordingly, all U.S.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Government End Users acqu\hich\af2\dbch\af11\loch\f2 ire Covered Code with only those rights set}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 forth herein.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.2 Relationship of Parties. This License will not be construed as}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 creating an agency, partnership, joint venture or any other form of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 legal association between or among You, Apple or any Contributor, and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 You will not represent to the contrary, whether expressly, by}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 implication, appearance or otherwise.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.3 Independent Development. Nothing in this License will impair}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Apple's right to ac\hich\af2\dbch\af11\loch\f2 quire, license, develop, have others develop for}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 it, market and/or distribute technology or products that perform the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 same or similar functions as, or otherwise compete with,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Modifications, Larger Works, technology or products that You may}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 develop, produce\hich\af2\dbch\af11\loch\f2 , market or distribute.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.4 Waiver; Construction. Failure by Apple or any Contributor to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 enforce any provision of this License will not be deemed a waiver of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 future enforcement of that or any other provision. Any law or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 regulation which provides that the\hich\af2\dbch\af11\loch\f2  language of a contract shall be}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 construed against the drafter will not apply to this License.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.5 Severability. (a) If for any reason a court of competent}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 jurisdiction finds any provision of this License, or portion thereof,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 to be unenforceable, that pr\hich\af2\dbch\af11\loch\f2 ovision of the License will be enforced to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the maximum extent permissible so as to effect the economic benefits}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 and intent of the parties, and the remainder of this License will}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 continue in full force and effect. (b) Notwithstanding the foregoing,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 if appli\hich\af2\dbch\af11\loch\f2 cable law prohibits or restricts You from fully and/or}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 specifically complying with Sections 2 and/or 3 or prevents the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 
+ \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 enforceability of either of those Sections, this License will
+ \par \hich\af2\dbch\af11\loch\f2 immediately \hich\af2\dbch\af11\loch\f2 t\hich\af2\dbch\af11\loch\f2 erminate and You must immediately discontinue any use of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the Covered Code and destroy all copies of it that are in your}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 
+ \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 possession or control.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.6 Dispute Resolution. Any litigation or other dispute resolution}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 between You and Apple relating to this License shall take place in the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Northern District of Californi\hich\af2\dbch\af11\loch\f2 a, and You and Apple hereby consent to}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 the personal jurisdiction of, and venue in, the state and federal}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 courts within that District with respect to this License. The}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 application of the United Nations Convention on Contracts for the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 International Sale of G\hich\af2\dbch\af11\loch\f2 oods is expressly excluded.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 13.7 Entire Agreement; Governing Law. This License constitutes the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 entire agreement between the parties with respect to the subject}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 matter hereof. This License shall be governed by the laws of the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 United States and the State of\hich\af2\dbch\af11\loch\f2  California, except that body of}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 California law concerning conflicts of law.
+ \par \hich\af2\dbch\af11\loch\f2 Where You are located in the {\*\xmlopen\xmlns1{\factoidname PostalCode}}province{\*\xmlclose} of {\*\xmlopen\xmlns1{\factoidname PostalCode}}Quebec{\*\xmlclose}, {\*\xmlopen\xmlns1{\factoidname PostalCode}}
+ {\*\xmlopen\xmlns1{\factoidname PostalCode}}Canada{\*\xmlclose}{\*\xmlclose}, the following}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 clause applies: The parties hereby confirm that they have requested}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 that this License and all related docum\hich\af2\dbch\af11\loch\f2 ents be drafted in English. Les}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 parties ont exige que le present contrat et tous les documents}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 connexes soient rediges en anglais.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 EXHIBIT A.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 "Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Reserved.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 This file contains Original Code and/or Modifications of Original Code}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 as defined in and that are subject to the Apple Public Source License}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 Version 2.0 (the 'License'). You may not use this file except in}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 compliance with the License. Please obtain a copy \hich\af2\dbch\af11\loch\f2 of the License at}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 http://www.opensource.apple.com/apsl/ and read it before using this}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 
+ \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 file.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 The Original Code and all software distributed under the License are}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 E\hich\af2\dbch\af11\loch\f2 XPRESS OR IMPLIED, AND \hich\af2\dbch\af11\loch\f2 APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Please see the License for the specific language governing rights and}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 limita\hich\af2\dbch\af11\loch\f2 tions under the License."
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 Some portions of Rx are subject to the following license:
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Sun RPC is a product of Sun Microsystems, Inc. and is provided for}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 unrestricted use provided that this legend is included on all tape}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 media and as a part of th\hich\af2\dbch\af11\loch\f2 e software program in whole or part.  Users\hich\af2\dbch\af11\loch\f2 
+  may copy or modify Sun RPC without charge, but are not authorized\hich\af2\dbch\af11\loch\f2  to license or distribute it to anyone else except as part of a product or\hich\af2\dbch\af11\loch\f2 
+  program developed by the user or with the express written conse\hich\af2\dbch\af11\loch\f2 nt of\hich\af2\dbch\af11\loch\f2  Sun Microsystems, Inc.
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 
+ \hich\af2\dbch\af11\loch\f2 WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR\hich\af2\dbch\af11\loch\f2  PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Sun RPC is provided with no support and without any obligation on the}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 part of Sun Microsystems, Inc. to assist in its use, correction,}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{
+ \rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 modification or enhancement.}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 S}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 UN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 INFRING\hich\af2\dbch\af11\loch\f2 EMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC\hich\af2\dbch\af11\loch\f2 
+  OR ANY PART THEREOF.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 In no event will Sun Microsystems, Inc. be liable for any lost revenue\hich\af2\dbch\af11\loch\f2 
+  or profits or other special, indirect and consequential damages, even if}{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 
+ Sun has been ad\hich\af2\dbch\af11\loch\f2 vised of the possibility of such damages.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 
+ \par \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 \hich\af2\dbch\af11\loch\f2 Sun Microsystems, Inc.
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 {\*\xmlopen\xmlns1{\factoidname PostalCode}}{\*\xmlopen\xmlns1{\factoidname PostalCode}}
+ \hich\af2\dbch\af11\loch\f2 2550 Garcia Avenue{\*\xmlclose}{\*\xmlclose}
+ \par }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid5512945 \hich\af2\dbch\af11\loch\f2  }{\rtlch\fcs1 \af2\afs20 \ltrch\fcs0 \f2\fs20\insrsid16720314 {\*\xmlopen\xmlns1{\factoidname PostalCode}}{\*\xmlopen\xmlns1{\factoidname PostalCode}}
+ \hich\af2\dbch\af11\loch\f2 Mountain View{\*\xmlclose}, {\*\xmlopen\xmlns1{\factoidname PostalCode}}California{\*\xmlclose}  {\*\xmlopen\xmlns1{\factoidname PostalCode}}94043{\*\xmlclose}{\*\xmlclose}
+ \par 
+ \par \hich\af2\dbch\af11\loch\f2 src/afs/LINUX/osi_flush.s included code under IBM Public License with permission \hich\af2\dbch\af11\loch\f2 of the author, Paul MacKerras.
+ \par }}
\ No newline at end of file
Index: openafs/src/WINNT/install/wix/platform.wxi
diff -c openafs/src/WINNT/install/wix/platform.wxi:1.2 openafs/src/WINNT/install/wix/platform.wxi:1.2.2.1
*** openafs/src/WINNT/install/wix/platform.wxi:1.2	Mon Mar 20 12:20:01 2006
--- openafs/src/WINNT/install/wix/platform.wxi	Wed Sep  6 19:14:02 2006
***************
*** 98,103 ****
--- 98,104 ----
  	<?define cmf_afsserver_CPL_guid="7B0D1145-DB1B-47BA-A874-3AB26F86FFB6"?>
  	<?define cmp_Server_Program_Debug_guid="1EDCDA16-216B-434E-A06E-AD1A9D40F5A2"?>
          <?define rcm_binsonly_parm_guid="A4969933-E01B-476C-B923-4F2EFBA2B78C"?>
+         <?define clsid_afs_shl_ext="5F820CA1-3DDE-11DB-B2CE-001558092DB5"?>
  
  <?elseif $(var.Platform) = "Intel"?>
  	<?define PISystemFolder="SystemFolder"?>
***************
*** 196,201 ****
--- 197,203 ----
  	<?define cmf_afsserver_CPL_guid="E270281E-9DB2-40A8-A418-55B4EC4A3FE7"?>
  	<?define cmp_Server_Program_Debug_guid="5F7BA9F7-E9BD-4AC3-9232-5EFBF6B740F8"?>
          <?define rcm_binsonly_parm_guid="4DFE834A-F129-4FDD-91AD-8A31A849AF0B"?>
+         <?define clsid_afs_shl_ext="DC515C27-6CAC-11D1-BAE7-00C04FD140D2"?>
  
  <?else?>
  	<?error Unknown platform?>
Index: openafs/src/WINNT/install/wix/registry.wxi
diff -c openafs/src/WINNT/install/wix/registry.wxi:1.10.2.1 openafs/src/WINNT/install/wix/registry.wxi:1.10.2.2
*** openafs/src/WINNT/install/wix/registry.wxi:1.10.2.1	Mon Jun 26 01:48:31 2006
--- openafs/src/WINNT/install/wix/registry.wxi	Wed Sep  6 19:14:02 2006
***************
*** 64,70 ****
      <Component Id="rcm_Client" Guid="$(var.rcm_client_guid)" Win64="$(var.Win64)">
          <Registry Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" Id="reg_Client_NoUninstall2" />
          <Registry Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" Action="createKey" Id="reg_Client_NoUninstall" />
!         <Registry Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" Name="{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" Type="string" Value="$(loc.StrShlExtDesc)" Id="reg_Client_NoUninstall3" />
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client" />
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client" Id="reg_Client2" KeyPath="yes" />
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client\CurrentVersion" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client5" />
--- 64,77 ----
      <Component Id="rcm_Client" Guid="$(var.rcm_client_guid)" Win64="$(var.Win64)">
          <Registry Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" Id="reg_Client_NoUninstall2" />
          <Registry Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" Action="createKey" Id="reg_Client_NoUninstall" />
!         <Registry Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" Name="{$(var.clsid_afs_shl_ext)}" Type="string" Value="$(loc.StrShlExtDesc)" Id="reg_Client_NoUninstall3" />
!         <Registry Root="HKCR" Key="*\shellex\ContextMenuHandlers\AFS Client Shell Extension" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client19" />
!         <Registry Root="HKCR" Key="*\shellex\ContextMenuHandlers\AFS Client Shell Extension" Type="string" Value="{$(var.clsid_afs_shl_ext)}" Id="reg_Client20" />
!         <Registry Root="HKCR" Key="FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client45" />
!         <Registry Root="HKCR" Key="FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension" Type="string" Value="{$(var.clsid_afs_shl_ext)}" Id="reg_Client46" />
!         <Registry Root="HKCR" Key="DIRECTORY\shellex\ContextMenuHandlers\AFS Client Shell Extension" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client48" />
!         <Registry Root="HKCR" Key="DIRECTORY\shellex\ContextMenuHandlers\AFS Client Shell Extension" Type="string" Value="{$(var.clsid_afs_shl_ext)}" Id="reg_Client49" />
! 
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client" />
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client" Id="reg_Client2" KeyPath="yes" />
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client\CurrentVersion" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client5" />
***************
*** 84,91 ****
          <Registry Root="HKLM" Key="SOFTWARE\OpenAFS\Client\Submounts" Action="createKey" Id="reg_Client53" />
          <Registry Root="HKLM" Key="SOFTWARE\OpenAFS\Client" Name="AfscredsShortcutParams" Type="string" Value="[CREDSAUTOINIT] [CREDSRENEWDRMAP] [CREDSIPCHDET] [CREDSQUIET] [CREDSSHOW]" Id="reg_Client54" />
          <Registry Root="HKLM" Key="SOFTWARE\OpenAFS\Client" Name="ShowTrayIcon" Type="integer" Value="1" Id="reg_Client18" />
-         <Registry Root="HKCR" Key="*\shellex\ContextMenuHandlers\AFS Client Shell Extension" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client19" />
-         <Registry Root="HKCR" Key="*\shellex\ContextMenuHandlers\AFS Client Shell Extension" Type="string" Value="{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" Id="reg_Client20" />
          <Registry Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client21" />
          <Registry Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" Name="AuthentProviderPath" Type="expandable" Value="[SystemFolder]afslogon.dll" Id="reg_Client22" />
          <Registry Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\NetworkProvider" Id="reg_Client23" />
--- 91,96 ----
***************
*** 106,116 ****
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client\$(var.NumericVersion)" Name="VersionString" Type="string" Value="$(var.NumericVersion)" Id="reg_Client39" />
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client\$(var.NumericVersion)" Name="InstallDateString" Type="string" Value="$(var.InstallTimestamp)" Id="reg_Client42" />
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client\$(var.NumericVersion)" Name="Description" Type="string" Value="$(loc.StrAFSClientDesc)" Id="reg_Client43" />
-         <Registry Root="HKCR" Key="FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client45" />
-         <Registry Root="HKCR" Key="FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension" Type="string" Value="{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" Id="reg_Client46" />
          <Registry Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client47" />
-         <Registry Root="HKCR" Key="DIRECTORY\shellex\ContextMenuHandlers\AFS Client Shell Extension" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client48" />
-         <Registry Root="HKCR" Key="DIRECTORY\shellex\ContextMenuHandlers\AFS Client Shell Extension" Type="string" Value="{DC515C27-6CAC-11D1-BAE7-00C04FD140D2}" Id="reg_Client49" />
          <Registry Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Full_Client" />
          <Registry Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" Name="HideDotFiles" Type="integer" Value="[HIDEDOTFILES]" Id="reg_Full_Client2" />
          <Registry Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\TransarcAFSDaemon\Parameters" Id="reg_Full_Client3" />
--- 111,117 ----
***************
*** 205,211 ****
      <Component Id="rcm_Loopback" Guid="$(var.rcm_loopback_guid)" Win64="$(var.Win64)">
          <Registry Root="HKLM" Key="SOFTWARE\OpenAFS\Client" Name="LoopbackInstalled" Type="integer" Value="1" Id="reg_Loopback1" KeyPath="yes" />
      </Component>
! <?else?>
      <Component Id="rcm_BinsOnly_Parm" Guid="$(var.rcm_client_guid)" Win64="$(var.Win64)">
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client 32-Bit Binaries" KeyPath="yes" Id="reg_Client_Bins2" />
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client 32-Bit Binaries" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client_Bins" />
--- 206,212 ----
      <Component Id="rcm_Loopback" Guid="$(var.rcm_loopback_guid)" Win64="$(var.Win64)">
          <Registry Root="HKLM" Key="SOFTWARE\OpenAFS\Client" Name="LoopbackInstalled" Type="integer" Value="1" Id="reg_Loopback1" KeyPath="yes" />
      </Component>
! <?else?> <!-- bins only -->
      <Component Id="rcm_BinsOnly_Parm" Guid="$(var.rcm_client_guid)" Win64="$(var.Win64)">
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client 32-Bit Binaries" KeyPath="yes" Id="reg_Client_Bins2" />
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client 32-Bit Binaries" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client_Bins" />
***************
*** 231,236 ****
--- 232,246 ----
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client 32-Bit Binaries\$(var.NumericVersion)" Name="VersionString" Type="string" Value="$(var.NumericVersion)" Id="reg_Client_Bins24" />
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client 32-Bit Binaries\$(var.NumericVersion)" Name="InstallDateString" Type="string" Value="$(var.InstallTimestamp)" Id="reg_Client_Bins26" />
          <Registry Root="HKLM" Key="SOFTWARE\TransarcCorporation\AFS Client 32-Bit Binaries\$(var.NumericVersion)" Name="Description" Type="string" Value="$(loc.StrAFSCCDesc)" Id="reg_Client_Bins27" />
+         <Registry Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" Id="reg_Client_Bins28" />
+         <Registry Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" Action="createKey" Id="reg_Client_Bins29" />
+         <Registry Root="HKLM" Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" Name="{$(var.clsid_afs_shl_ext)}" Type="string" Value="$(loc.StrShlExtDesc)" Id="reg_Client_Bins30" />
+         <Registry Root="HKCR" Key="*\shellex\ContextMenuHandlers\AFS Client Shell Extension" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client_Bins31" />
+         <Registry Root="HKCR" Key="*\shellex\ContextMenuHandlers\AFS Client Shell Extension" Type="string" Value="{$(var.clsid_afs_shl_ext)}" Id="reg_Client_Bins32" />
+         <Registry Root="HKCR" Key="FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client_Bins33" />
+         <Registry Root="HKCR" Key="FOLDER\shellex\ContextMenuHandlers\AFS Client Shell Extension" Type="string" Value="{$(var.clsid_afs_shl_ext)}" Id="reg_Client_Bins34" />
+         <Registry Root="HKCR" Key="DIRECTORY\shellex\ContextMenuHandlers\AFS Client Shell Extension" Action="createKeyAndRemoveKeyOnUninstall" Id="reg_Client_Bins35" />
+         <Registry Root="HKCR" Key="DIRECTORY\shellex\ContextMenuHandlers\AFS Client Shell Extension" Type="string" Value="{$(var.clsid_afs_shl_ext)}" Id="reg_Client_Bins36" />
      </Component>
  <?endif?>
  </Include>
Index: openafs/src/WINNT/install/wix/lang/en_US/ui.wxi
diff -c openafs/src/WINNT/install/wix/lang/en_US/ui.wxi:1.10.4.1 openafs/src/WINNT/install/wix/lang/en_US/ui.wxi:1.10.4.2
*** openafs/src/WINNT/install/wix/lang/en_US/ui.wxi:1.10.4.1	Tue Jul 18 12:04:00 2006
--- openafs/src/WINNT/install/wix/lang/en_US/ui.wxi	Wed Sep  6 01:10:49 2006
***************
*** 440,446 ****
          </Control>
          <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="374" Height="44" FixedSize="yes" TabSkip="no" Text="[BannerBitmap]" />
          <Control Id="AgreementText" Type="ScrollableText" X="20" Y="60" Width="330" Height="120" Sunken="yes" TabSkip="no">
!           <Text>{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;} {\f23\froman\fcharset128\fprq1{\*\panose 00000000000000000000}MS Mincho{\*\falt MS ??};}{\f54\froman\fcharset128\fprq1{\*\panose 00000000000000000000}@MS Mincho;}{\f55\froman\fcharset238\fprq2 Times New Roman CE;} {\f56\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f58\froman\fcharset161\fprq2 Times New Roman Greek;}{\f59\froman\fcharset162\fprq2 Times New Roman Tur;}{\f60\froman\fcharset177\fprq2 Times New Roman (Hebrew);} {\f61\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f62\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f71\fmodern\fcharset238\fprq1 Courier New CE;}{\f72\fmodern\fcharset204\fprq1 Courier New Cyr;} {\f74\fmodern\fcharset161\fprq1 Courier New Greek;}{\f75\fmodern\fcharset162\fprq1 Courier New Tur;}{\f76\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f77\fmodern\fcharset178\fprq1 Courier New (Arabic);} {\f78\fmodern\fcharset186\fprq1 Courier New Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255; \red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{ \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{\*\cs10 \additive Default Paragraph Font;}{ \s15\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f2\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext15 Plain Text;}}{\info{\title Copyright 1998-2000 by the Massachusetts Institute of Technology} {\author Jamie Rasmussen}{\operator Jamie Rasmussen}{\creatim\yr2000\mo9\dy29\hr16\min17}{\revtim\yr2000\mo9\dy29\hr16\min17}{\version2}{\edmins0}{\nofpages1}{\nofwords0}{\nofchars0}{\*\company MIT Information Systems}{\nofcharsws0}{\vern8269}} \margl1319\margr1319 \widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1701\dgvorigin1984\dghshow1\dgvshow1 \jexpand\viewkind4\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule \fet0\sectd \linex0\endnhere\sectlinegrid360\sectdefaultcl {\*\pnseclvl1 \pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5 \pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s15\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \f2\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\dbch\af23  \hich\af2\dbch\af23\loch\f2 Copyright 1998-2000 by the Massachusetts Institute of Technology. \par \hich\af2\dbch\af23\loch\f2 All Rights Reserved. \par \hich\af2\dbch\af23\loch\f2  \par \hich\af2\dbch\af23\loch\f2 Export of this software from the United States of America may require a specific license from the United States Government. It is the responsibility of any person o\hich\af2\dbch\af23\loch\f2r organization contemplating export to obtain such a license before exporting.\par \hich\af2\dbch\af23\loch\f2  \par \hich\af2\dbch\af23\loch\f2 WITHIN THAT CONSTRAINT, permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that \hich\af2\dbch\af23\loch\f2 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 M.I.T. not be used in advertising or publicity pertaining to distribution of the softwa\hich\af2\dbch\af23\loch\f2 r\hich\af2\dbch\af23\loch\f2 e without specific, written prior permission.  M.I.T. makes no representations about the suitability of this software for any purpose.  It is provided "as is" without express or implied warranty. \par \par }}</Text>
          </Control>
          <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
            <Text>Please read the following license agreement carefully</Text>
--- 440,446 ----
          </Control>
          <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="374" Height="44" FixedSize="yes" TabSkip="no" Text="[BannerBitmap]" />
          <Control Id="AgreementText" Type="ScrollableText" X="20" Y="60" Width="330" Height="120" Sunken="yes" TabSkip="no">
!           <Text src="licenses.rtf"></Text>
          </Control>
          <Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes">
            <Text>Please read the following license agreement carefully</Text>
Index: openafs/src/WINNT/talocale/tal_main.cpp
diff -c openafs/src/WINNT/talocale/tal_main.cpp:1.4 openafs/src/WINNT/talocale/tal_main.cpp:1.4.4.1
*** openafs/src/WINNT/talocale/tal_main.cpp:1.4	Wed Jul  6 20:23:35 2005
--- openafs/src/WINNT/talocale/tal_main.cpp	Mon Aug 28 01:37:12 2006
***************
*** 640,647 ****
      int iTable = (ids / 16) + 1;           // 1 = first string table
      int iIndex = ids - ((iTable-1) * 16);  // 0 = first string in the table
  
!     HINSTANCE hInstance;
!     for (size_t iModule = 0; !pst && TaLocale_EnumModule (iModule, &hInstance); ++iModule)
      {
          HRSRC hr;
          if ((hr = FindResourceEx (hInstance, RT_STRING, MAKEINTRESOURCE( iTable ), lang)) == NULL)
--- 640,648 ----
      int iTable = (ids / 16) + 1;           // 1 = first string table
      int iIndex = ids - ((iTable-1) * 16);  // 0 = first string in the table
  
!     HINSTANCE hInstance = NULL;
! 	size_t iModule = 0;
!     for (; !pst && TaLocale_EnumModule (iModule, &hInstance); ++iModule)
      {
          HRSRC hr;
          if ((hr = FindResourceEx (hInstance, RT_STRING, MAKEINTRESOURCE( iTable ), lang)) == NULL)
Index: openafs/src/afs/afs_osi.h
diff -c openafs/src/afs/afs_osi.h:1.42 openafs/src/afs/afs_osi.h:1.42.4.3
*** openafs/src/afs/afs_osi.h:1.42	Fri Dec 23 20:07:43 2005
--- openafs/src/afs/afs_osi.h	Thu Aug 31 00:52:15 2006
***************
*** 220,226 ****
  
  #ifdef AFS_GLOBAL_SUNLOCK
  #define AFS_ASSERT_GLOCK() \
!     (ISAFS_GLOCK() || (osi_Panic("afs global lock not held at %s:%d\n", __FILE__, __LINE__), 0))
  #endif /* AFS_GLOBAL_SUNLOCK */
  
  #ifdef RX_ENABLE_LOCKS
--- 220,226 ----
  
  #ifdef AFS_GLOBAL_SUNLOCK
  #define AFS_ASSERT_GLOCK() \
!     do { if (!ISAFS_GLOCK()) osi_Panic("afs global lock not held at %s:%d\n", __FILE__, __LINE__); } while (0)
  #endif /* AFS_GLOBAL_SUNLOCK */
  
  #ifdef RX_ENABLE_LOCKS
***************
*** 397,403 ****
  #endif /* AFS_GLOBAL_SUNLOCK */
  
  #ifdef AFS_DARWIN80_ENV
! #define AFS_UIO_OFFSET(uio) (int)uio_offset(uio)
  #define AFS_UIO_RESID(uio) (int)uio_resid(uio)
  #define AFS_UIO_SETOFFSET(uio, off) uio_setoffset(uio, off)
  #define AFS_UIO_SETRESID(uio, val) uio_setresid(uio, val)
--- 397,403 ----
  #endif /* AFS_GLOBAL_SUNLOCK */
  
  #ifdef AFS_DARWIN80_ENV
! #define AFS_UIO_OFFSET(uio) uio_offset(uio)
  #define AFS_UIO_RESID(uio) (int)uio_resid(uio)
  #define AFS_UIO_SETOFFSET(uio, off) uio_setoffset(uio, off)
  #define AFS_UIO_SETRESID(uio, val) uio_setresid(uio, val)
Index: openafs/src/afs/sysincludes.h
diff -c openafs/src/afs/sysincludes.h:1.40.2.1 openafs/src/afs/sysincludes.h:1.40.2.2
*** openafs/src/afs/sysincludes.h:1.40.2.1	Fri Aug  4 11:57:54 2006
--- openafs/src/afs/sysincludes.h	Wed Sep  6 16:58:47 2006
***************
*** 73,78 ****
--- 73,81 ----
  #if defined(LINUX_KEYRING_SUPPORT)
  #include <linux/rwsem.h>
  #include <linux/key.h>
+ #ifndef KEY_ALLOC_IN_QUOTA
+ #define KEY_ALLOC_IN_QUOTA 1
+ #endif
  #endif
  #endif
  /* Avoid conflicts with coda overloading AFS type namespace. Must precede
Index: openafs/src/afs/DARWIN/osi_file.c
diff -c openafs/src/afs/DARWIN/osi_file.c:1.12 openafs/src/afs/DARWIN/osi_file.c:1.12.2.1
*** openafs/src/afs/DARWIN/osi_file.c:1.12	Mon Feb 20 23:45:07 2006
--- openafs/src/afs/DARWIN/osi_file.c	Sun Aug 20 18:15:16 2006
***************
*** 11,17 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/DARWIN/osi_file.c,v 1.12 2006/02/21 04:45:07 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
--- 11,17 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/DARWIN/osi_file.c,v 1.12.2.1 2006/08/20 22:15:16 shadow Exp $");
  
  #include "afs/sysincludes.h"	/* Standard vendor system headers */
  #include "afsincludes.h"	/* Afs-based standard headers */
***************
*** 292,298 ****
  	     afs_int32 asize)
  {
      struct AFS_UCRED *oldCred;
!     unsigned int resid;
      register afs_int32 code;
  #ifdef AFS_DARWIN80_ENV
      uio_t uio;
--- 292,298 ----
  	     afs_int32 asize)
  {
      struct AFS_UCRED *oldCred;
!     afs_size_t resid;
      register afs_int32 code;
  #ifdef AFS_DARWIN80_ENV
      uio_t uio;
***************
*** 343,349 ****
  	      afs_int32 asize)
  {
      struct AFS_UCRED *oldCred;
!     unsigned int resid;
      register afs_int32 code;
  #ifdef AFS_DARWIN80_ENV
      uio_t uio;
--- 343,349 ----
  	      afs_int32 asize)
  {
      struct AFS_UCRED *oldCred;
!     afs_size_t resid;
      register afs_int32 code;
  #ifdef AFS_DARWIN80_ENV
      uio_t uio;
Index: openafs/src/afs/LINUX/osi_groups.c
diff -c openafs/src/afs/LINUX/osi_groups.c:1.28.4.2 openafs/src/afs/LINUX/osi_groups.c:1.28.4.3
*** openafs/src/afs/LINUX/osi_groups.c:1.28.4.2	Thu Aug 17 09:57:29 2006
--- openafs/src/afs/LINUX/osi_groups.c	Wed Sep  6 16:58:48 2006
***************
*** 20,26 ****
  #endif
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.28.4.2 2006/08/17 13:57:29 shadow Exp $");
  
  #include "afs/sysincludes.h"
  #include "afsincludes.h"
--- 20,26 ----
  #endif
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_groups.c,v 1.28.4.3 2006/09/06 20:58:48 shadow Exp $");
  
  #include "afs/sysincludes.h"
  #include "afsincludes.h"
***************
*** 189,204 ****
  }
  
  #ifdef LINUX_KEYRING_SUPPORT
! #include <asm/unistd.h>
! #include <linux/keyctl.h>
  
! static int errno;
! static inline _syscall2(long, keyctl, int, option, void*, arg2);
! 
! static long
! __join_session_keyring(char *name)
  {
! 	return keyctl(KEYCTL_JOIN_SESSION_KEYRING, name);
  }
  #endif /* LINUX_KEYRING_SUPPORT */
  
--- 189,248 ----
  }
  
  #ifdef LINUX_KEYRING_SUPPORT
! static struct key_type *__key_type_keyring;
  
! static int
! install_session_keyring(struct task_struct *task, struct key *keyring)
  {
!     struct key *old;
!     char desc[20];
!     unsigned long not_in_quota;
!     int code = -EINVAL;
! 
!     if (!__key_type_keyring)
! 	return code;
! 
!     if (!keyring) {
! 
! 	/* create an empty session keyring */
! 	not_in_quota = KEY_ALLOC_IN_QUOTA;
! 	sprintf(desc, "_ses.%u", task->tgid);
! 
! #ifdef KEY_ALLOC_NEEDS_STRUCT_TASK
! 	keyring = key_alloc(__key_type_keyring, desc,
! 			    task->uid, task->gid, task,
! 			    (KEY_POS_ALL & ~KEY_POS_SETATTR) | KEY_USR_ALL,
! 			    not_in_quota);
! #else
! 	keyring = key_alloc(__key_type_keyring, desc,
! 			    task->uid, task->gid,
! 			    (KEY_POS_ALL & ~KEY_POS_SETATTR) | KEY_USR_ALL,
! 			    not_in_quota);
! #endif
! 	if (IS_ERR(keyring)) {
! 	    code = PTR_ERR(keyring);
! 	    goto out;
! 	}
!     }
! 
!     code = key_instantiate_and_link(keyring, NULL, 0, NULL, NULL);
!     if (code < 0) {
! 	key_put(keyring);
! 	goto out;
!     }
! 
!     /* install the keyring */
!     spin_lock_irq(&task->sighand->siglock);
!     old = task->signal->session_keyring;
!     smp_wmb();
!     task->signal->session_keyring = keyring;
!     spin_unlock_irq(&task->sighand->siglock);
! 
!     if (old)
! 	    key_put(old);
! 
! out:
!     return code;
  }
  #endif /* LINUX_KEYRING_SUPPORT */
  
***************
*** 255,261 ****
  #ifdef LINUX_KEYRING_SUPPORT
      if (code == 0) {
  
! 	(void) __join_session_keyring(NULL);
  
  	if (current->signal->session_keyring) {
  	    struct key *key;
--- 299,305 ----
  #ifdef LINUX_KEYRING_SUPPORT
      if (code == 0) {
  
! 	(void) install_session_keyring(current, NULL);
  
  	if (current->signal->session_keyring) {
  	    struct key *key;
***************
*** 520,525 ****
--- 564,575 ----
  
  void osi_keyring_init(void)
  {
+     struct task_struct *p;
+ 
+     p = find_task_by_pid(1);
+     if (p && p->user->session_keyring)
+ 	__key_type_keyring = p->user->session_keyring->type;
+ 
      register_key_type(&key_type_afs_pag);
  }
  
Index: openafs/src/afs/LINUX/osi_pag_module.c
diff -c openafs/src/afs/LINUX/osi_pag_module.c:1.1.2.4 openafs/src/afs/LINUX/osi_pag_module.c:1.1.2.5
*** openafs/src/afs/LINUX/osi_pag_module.c:1.1.2.4	Sun Aug 13 00:53:27 2006
--- openafs/src/afs/LINUX/osi_pag_module.c	Fri Aug 18 13:14:23 2006
***************
*** 15,21 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_pag_module.c,v 1.1.2.4 2006/08/13 04:53:27 shadow Exp $");
  
  #include <linux/module.h> /* early to avoid printf->printk mapping */
  #include "afs/sysincludes.h"
--- 15,21 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_pag_module.c,v 1.1.2.5 2006/08/18 17:14:23 shadow Exp $");
  
  #include <linux/module.h> /* early to avoid printf->printk mapping */
  #include "afs/sysincludes.h"
***************
*** 55,61 ****
--- 55,65 ----
  MODULE_PARM_DESC(this_cell, "Local cell name");
  
  #if defined(AFS_LINUX24_ENV)
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16)
+ DEFINE_MUTEX(afs_global_lock);
+ #else
  DECLARE_MUTEX(afs_global_lock);
+ #endif
  struct proc_dir_entry *openafs_procfs;
  #else
  struct semaphore afs_global_lock = MUTEX;
Index: openafs/src/afs/LINUX/osi_vfsops.c
diff -c openafs/src/afs/LINUX/osi_vfsops.c:1.42.4.7 openafs/src/afs/LINUX/osi_vfsops.c:1.42.4.8
*** openafs/src/afs/LINUX/osi_vfsops.c:1.42.4.7	Sun Aug 13 12:54:51 2006
--- openafs/src/afs/LINUX/osi_vfsops.c	Sun Aug 20 01:32:56 2006
***************
*** 16,22 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.42.4.7 2006/08/13 16:54:51 shadow Exp $");
  
  #define __NO_VERSION__		/* don't define kernel_version in module.h */
  #include <linux/module.h> /* early to avoid printf->printk mapping */
--- 16,22 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/afs/LINUX/osi_vfsops.c,v 1.42.4.8 2006/08/20 05:32:56 shadow Exp $");
  
  #define __NO_VERSION__		/* don't define kernel_version in module.h */
  #include <linux/module.h> /* early to avoid printf->printk mapping */
***************
*** 60,70 ****
   * 2) Mount call comes to us via do_mount -> read_super -> afs_read_super.
   *    We are expected to setup the super_block. See afs_read_super.
   */
- #if defined(AFS_LINUX26_ENV)
- struct backing_dev_info afs_backing_dev_info = {
- 	.ra_pages	= (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE,
- 	.state		= 0,
- };
  
  
  /* afs_read_super
--- 60,65 ----
***************
*** 108,113 ****
--- 103,113 ----
  };
  #endif
  
+ #if defined(AFS_LINUX26_ENV)
+ struct backing_dev_info afs_backing_dev_info = {
+ 	.ra_pages	= (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE,
+ 	.state		= 0,
+ };
  
  int
  afs_fill_super(struct super_block *sb, void *data, int silent)
Index: openafs/src/afsd/afsd.c
diff -c openafs/src/afsd/afsd.c:1.60.2.1 openafs/src/afsd/afsd.c:1.60.2.2
*** openafs/src/afsd/afsd.c:1.60.2.1	Thu Jun 15 11:53:00 2006
--- openafs/src/afsd/afsd.c	Mon Aug 21 16:41:13 2006
***************
*** 58,64 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/afsd/afsd.c,v 1.60.2.1 2006/06/15 15:53:00 shadow Exp $");
  
  #define VFS 1
  
--- 58,64 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/afsd/afsd.c,v 1.60.2.2 2006/08/21 20:41:13 shadow Exp $");
  
  #define VFS 1
  
***************
*** 1687,1698 ****
--- 1687,1705 ----
  	    if (afsd_verbose)
  		printf("%s: cacheFiles autotuned to %d\n", rn, cacheFiles);
  	}
+ #if 0
+        /* This actually needs to
+           1) use powers of 2
+           2) not second-guess when a chunksize comes from the command line
+           3) be less, um, small. 2^2?? 
+        */
  	/* Sanity check chunkSize */
  	i = max(cacheBlocks / 1000, cacheBlocks / cacheFiles);
  	chunkSize = min(chunkSize, i);
  	chunkSize = max(chunkSize, 2);
  	if (afsd_verbose)
  	    printf("%s: chunkSize autotuned to %d\n", rn, chunkSize);
+ #endif
  
  	if (!sawDCacheSize) {
  	    dCacheSize = cacheFiles / 2;
Index: openafs/src/aklog/aklog_main.c
diff -c openafs/src/aklog/aklog_main.c:1.12.2.1 openafs/src/aklog/aklog_main.c:1.12.2.2
*** openafs/src/aklog/aklog_main.c:1.12.2.1	Wed Aug  2 15:55:56 2006
--- openafs/src/aklog/aklog_main.c	Tue Aug 29 15:09:41 2006
***************
*** 1,5 ****
  /* 
!  * $Id: aklog_main.c,v 1.12.2.1 2006/08/02 19:55:56 shadow Exp $
   *
   * Copyright 1990,1991 by the Massachusetts Institute of Technology
   * For distribution and copying rights, see the file "mit-copyright.h"
--- 1,5 ----
  /* 
!  * $Id: aklog_main.c,v 1.12.2.2 2006/08/29 19:09:41 shadow Exp $
   *
   * Copyright 1990,1991 by the Massachusetts Institute of Technology
   * For distribution and copying rights, see the file "mit-copyright.h"
***************
*** 7,13 ****
  
  #if !defined(lint) && !defined(SABER)
  static char *rcsid =
! 	"$Id: aklog_main.c,v 1.12.2.1 2006/08/02 19:55:56 shadow Exp $";
  #endif /* lint || SABER */
  
  #include <afsconfig.h>
--- 7,13 ----
  
  #if !defined(lint) && !defined(SABER)
  static char *rcsid =
! 	"$Id: aklog_main.c,v 1.12.2.2 2006/08/29 19:09:41 shadow Exp $";
  #endif /* lint || SABER */
  
  #include <afsconfig.h>
***************
*** 570,576 ****
  	status = get_credv5(context, name, primary_instance, realm_of_cell,
  			    &v5cred);
  
! 	if (status == KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN) {
  	    if (try_secondary) {
  		if (dflag) {
  		    printf("Principal not found, trying alternate "
--- 570,576 ----
  	status = get_credv5(context, name, primary_instance, realm_of_cell,
  			    &v5cred);
  
! 	if (status == KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN || status == KRB5KRB_ERR_GENERIC) {
  	    if (try_secondary) {
  		if (dflag) {
  		    printf("Principal not found, trying alternate "
Index: openafs/src/cf/linux-test4.m4
diff -c openafs/src/cf/linux-test4.m4:1.29.2.5 openafs/src/cf/linux-test4.m4:1.29.2.8
*** openafs/src/cf/linux-test4.m4:1.29.2.5	Sun Aug 13 12:48:13 2006
--- openafs/src/cf/linux-test4.m4	Wed Sep  6 16:58:48 2006
***************
*** 614,626 ****
      AC_TRY_KBUILD(
  [#include <linux/rwsem.h>
  #include <linux/key.h>
! #include <linux/keyctl.h>
! #include <asm/unistd.h>
! static int errno;
! static inline _syscall2(long, keyctl, int, option, void*, arg2);],
  [#ifdef CONFIG_KEYS
- keyctl(KEYCTL_JOIN_SESSION_KEYRING, NULL);
  request_key(NULL, NULL, NULL);
  #else
  #error rebuild your kernel with CONFIG_KEYS
  #endif],
--- 614,625 ----
      AC_TRY_KBUILD(
  [#include <linux/rwsem.h>
  #include <linux/key.h>
! #include <linux/keyctl.h>],
  [#ifdef CONFIG_KEYS
  request_key(NULL, NULL, NULL);
+ #if !defined(KEY_POS_VIEW) || !defined(KEY_POS_SEARCH)
+ #error "Your linux/key.h does not contain KEY_POS_VIEW or KEY_POS_SEARCH"
+ #endif
  #else
  #error rebuild your kernel with CONFIG_KEYS
  #endif],
Index: openafs/src/config/NTMakefile.amd64_w2k
diff -c openafs/src/config/NTMakefile.amd64_w2k:1.24.2.5 openafs/src/config/NTMakefile.amd64_w2k:1.24.2.6
*** openafs/src/config/NTMakefile.amd64_w2k:1.24.2.5	Wed Aug  9 22:49:22 2006
--- openafs/src/config/NTMakefile.amd64_w2k	Sun Sep  3 12:59:13 2006
***************
*** 84,90 ****
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=5
! AFSPRODUCT_VER_PATCH=0600
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
--- 84,90 ----
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=5
! AFSPRODUCT_VER_PATCH=0800
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
Index: openafs/src/config/NTMakefile.i386_nt40
diff -c openafs/src/config/NTMakefile.i386_nt40:1.84.2.5 openafs/src/config/NTMakefile.i386_nt40:1.84.2.6
*** openafs/src/config/NTMakefile.i386_nt40:1.84.2.5	Wed Aug  9 22:49:22 2006
--- openafs/src/config/NTMakefile.i386_nt40	Sun Sep  3 12:59:13 2006
***************
*** 84,90 ****
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=5
! AFSPRODUCT_VER_PATCH=0600
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
--- 84,90 ----
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=5
! AFSPRODUCT_VER_PATCH=0800
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
Index: openafs/src/config/NTMakefile.i386_w2k
diff -c openafs/src/config/NTMakefile.i386_w2k:1.23.2.5 openafs/src/config/NTMakefile.i386_w2k:1.23.2.6
*** openafs/src/config/NTMakefile.i386_w2k:1.23.2.5	Wed Aug  9 22:49:22 2006
--- openafs/src/config/NTMakefile.i386_w2k	Sun Sep  3 12:59:13 2006
***************
*** 84,90 ****
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=5
! AFSPRODUCT_VER_PATCH=0600
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
--- 84,90 ----
  #define used in WinNT/2000 installation and program version display
  AFSPRODUCT_VER_MAJOR=1
  AFSPRODUCT_VER_MINOR=5
! AFSPRODUCT_VER_PATCH=0800
  AFSPRODUCT_VER_BUILD=0
  
  AFSPRODUCT_VERSION=$(AFSPRODUCT_VER_MAJOR).$(AFSPRODUCT_VER_MINOR).$(AFSPRODUCT_VER_PATCH)
Index: openafs/src/libafs/afs.ppc_darwin_70.plist.in
diff -c openafs/src/libafs/afs.ppc_darwin_70.plist.in:1.2.10.5 openafs/src/libafs/afs.ppc_darwin_70.plist.in:1.2.10.6
*** openafs/src/libafs/afs.ppc_darwin_70.plist.in:1.2.10.5	Thu Aug 17 09:21:24 2006
--- openafs/src/libafs/afs.ppc_darwin_70.plist.in	Wed Sep  6 17:15:18 2006
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.7</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.7</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kernel.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.8</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.8</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kernel.bsd</key>
Index: openafs/src/libafs/afs.ppc_darwin_80.plist.in
diff -c openafs/src/libafs/afs.ppc_darwin_80.plist.in:1.2.4.5 openafs/src/libafs/afs.ppc_darwin_80.plist.in:1.2.4.6
*** openafs/src/libafs/afs.ppc_darwin_80.plist.in:1.2.4.5	Thu Aug 17 09:21:24 2006
--- openafs/src/libafs/afs.ppc_darwin_80.plist.in	Wed Sep  6 17:15:18 2006
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.7</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.7</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.8</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.8</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
Index: openafs/src/libafs/afs.ppc_darwin_90.plist.in
diff -c openafs/src/libafs/afs.ppc_darwin_90.plist.in:1.1.6.5 openafs/src/libafs/afs.ppc_darwin_90.plist.in:1.1.6.6
*** openafs/src/libafs/afs.ppc_darwin_90.plist.in:1.1.6.5	Thu Aug 17 09:21:24 2006
--- openafs/src/libafs/afs.ppc_darwin_90.plist.in	Wed Sep  6 17:15:18 2006
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.7</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.7</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.8</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.8</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
Index: openafs/src/libafs/afs.x86_darwin_80.plist.in
diff -c openafs/src/libafs/afs.x86_darwin_80.plist.in:1.1.6.5 openafs/src/libafs/afs.x86_darwin_80.plist.in:1.1.6.6
*** openafs/src/libafs/afs.x86_darwin_80.plist.in:1.1.6.5	Thu Aug 17 09:21:24 2006
--- openafs/src/libafs/afs.x86_darwin_80.plist.in	Wed Sep  6 17:15:18 2006
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.7</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.7</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.8</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.8</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
Index: openafs/src/libafs/afs.x86_darwin_90.plist.in
diff -c openafs/src/libafs/afs.x86_darwin_90.plist.in:1.1.6.5 openafs/src/libafs/afs.x86_darwin_90.plist.in:1.1.6.6
*** openafs/src/libafs/afs.x86_darwin_90.plist.in:1.1.6.5	Thu Aug 17 09:21:24 2006
--- openafs/src/libafs/afs.x86_darwin_90.plist.in	Wed Sep  6 17:15:18 2006
***************
*** 15,25 ****
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.7</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.7</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
--- 15,25 ----
  	<key>CFBundlePackageType</key>
  	<string>KEXT</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.8</string>
  	<key>CFBundleSignature</key>
  	<string>????</string>
  	<key>CFBundleVersion</key>
! 	<string>1.5.8</string>
  	<key>OSBundleLibraries</key>
  	<dict>
  		<key>com.apple.kpi.bsd</key>
Index: openafs/src/packaging/MacOS/OpenAFS.Info.plist
diff -c openafs/src/packaging/MacOS/OpenAFS.Info.plist:1.2.10.6 openafs/src/packaging/MacOS/OpenAFS.Info.plist:1.2.10.7
*** openafs/src/packaging/MacOS/OpenAFS.Info.plist:1.2.10.6	Thu Aug 17 09:21:26 2006
--- openafs/src/packaging/MacOS/OpenAFS.Info.plist	Wed Sep  6 17:15:19 2006
***************
*** 3,15 ****
  <plist version="1.0">
  <dict>
  	<key>CFBundleGetInfoString</key>
! 	<string>OpenAFS 1.5.7</string>
  	<key>CFBundleIdentifier</key>
  	<string>org.openafs.OpenAFS.pkg</string>
  	<key>CFBundleName</key>
  	<string>OpenAFS</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.7</string>
  	<key>IFMajorVersion</key>
  	<integer>1</integer>
  	<key>IFMinorVersion</key>
--- 3,15 ----
  <plist version="1.0">
  <dict>
  	<key>CFBundleGetInfoString</key>
! 	<string>OpenAFS 1.5.8</string>
  	<key>CFBundleIdentifier</key>
  	<string>org.openafs.OpenAFS.pkg</string>
  	<key>CFBundleName</key>
  	<string>OpenAFS</string>
  	<key>CFBundleShortVersionString</key>
! 	<string>1.5.8</string>
  	<key>IFMajorVersion</key>
  	<integer>1</integer>
  	<key>IFMinorVersion</key>
Index: openafs/src/packaging/MacOS/OpenAFS.info
diff -c openafs/src/packaging/MacOS/OpenAFS.info:1.1.12.5 openafs/src/packaging/MacOS/OpenAFS.info:1.1.12.6
*** openafs/src/packaging/MacOS/OpenAFS.info:1.1.12.5	Thu Aug 17 09:21:26 2006
--- openafs/src/packaging/MacOS/OpenAFS.info	Wed Sep  6 17:15:19 2006
***************
*** 1,5 ****
  Title OpenAFS
! Version 1.5.7
  Description The OpenAFS distributed filesystem. This package installs an almost-ready-to-run client for OpenAFS. see http://www.openafs.org for more information.
  DefaultLocation /
  Diskname (null)
--- 1,5 ----
  Title OpenAFS
! Version 1.5.8
  Description The OpenAFS distributed filesystem. This package installs an almost-ready-to-run client for OpenAFS. see http://www.openafs.org for more information.
  DefaultLocation /
  Diskname (null)
Index: openafs/src/packaging/RedHat/afs-krb5-2.0-com_err.patch
diff -c /dev/null openafs/src/packaging/RedHat/afs-krb5-2.0-com_err.patch:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/afs-krb5-2.0-com_err.patch	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,24 ----
+ diff -uNr afs-krb5.orig/src/configure.in afs-krb5/src/configure.in
+ --- afs-krb5.orig/src/configure.in	2005-04-14 16:06:15.597138000 -0400
+ +++ afs-krb5/src/configure.in	2005-04-14 16:06:44.201789856 -0400
+ @@ -143,7 +143,19 @@
+  LIBS="$ac_save_LIBS"])
+  if test "x$afs_cv_func_getDirPath" = "xyes"; then
+  	AC_MSG_RESULT([Setting compilation parameters for AFS 3.5 and later])
+ -	AKLOG_EXTRA_OBJ=adderrtable.o
+ +	AC_MSG_CHECKING([for add_to_error_table])
+ +dnl
+ +dnl We may be using libcom_err from Kerberos (shared libraries), and
+ +dnl already have add_to_error_table
+ +dnl
+ +	AC_TRY_LINK_FUNC(add_to_error_table, have_adderr=yes, have_adderr=no)
+ +	if test $have_adderr != yes; then
+ +		AC_MSG_RESULT([no, adding adderrtable.o])
+ +		AKLOG_EXTRA_OBJ=adderrtable.o
+ +	else
+ +		AC_MSG_RESULT([yes])
+ +		AKLOG_EXTRA_OBJ=
+ +	fi
+  else
+  	AC_MSG_RESULT([Setting compilation parameters for pre-AFS 3.5])
+  	AC_DEFINE(PRE_AFS35)
Index: openafs/src/packaging/RedHat/afs-krb5-2.0-krb524.patch
diff -c /dev/null openafs/src/packaging/RedHat/afs-krb5-2.0-krb524.patch:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/afs-krb5-2.0-krb524.patch	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,31 ----
+ --- afs-krb5/src/configure.in-orig	2003-03-16 20:13:34.000000000 -0500
+ +++ afs-krb5/src/configure.in	2005-09-14 17:20:46.000000000 -0400
+ @@ -179,14 +197,20 @@
+  [	EXTRA_INC="$EXTRA_INC -I$with_krb5_obj/include -I$with_krb5_obj/include/krb5"
+  	KADM_LIBS=`echo $KADM_LIBS | sed -e "s#-ldb#$with_krb5_obj/lib/libdb.a#"`])
+  dnl
+ -dnl Sigh, why is this so complicated?  Right now, just assume that 
+ -dnl the 524 library is always called krb524 and will be picked up by the
+ -dnl Kerberos link line
+ -dnl
+ -dnl AC_CHECK_LIB(krb524, krb524_convert_princs, [KRB524LIB="-lkrb524"], [
+ -dnl	AC_MSG_ERROR([Cannot find 524 library, exiting])
+ -dnl ])
+ -KRB524LIB=-lkrb524
+ +dnl The krb524 functions may be included in libkrb5 itself, or else in a 
+ +dnl separate library named libkrb524
+ +dnl
+ +ac_save_LIBS="$LIBS"
+ +KRB524LIB=
+ +AC_MSG_CHECKING([for krb524 library])
+ +AC_CHECK_FUNC(krb524_init_ets, have_krb524=yes, have_krb524=no)
+ +
+ +if test "$have_krb524" = no; then
+ +	LIBS="$LIBS -lkrb524"
+ +	AC_CHECK_LIB(krb524, krb524_init_ets, [KRB524LIB="-lkrb524"],
+ +			     [AC_MSG_ERROR([Unable to find krb524 library])])
+ +fi
+ +LIBS="$ac_save_LIBS"
+  
+  dnl AC_CHECK_LIB(kdb5, krb5_db_fetch_mkey, [KD_LIBS="-lkdb5"],[
+  dnl 	AC_MSG_WARN([Cannot find Kerberos 5 DB library, will not be able to build DB utilities])
Index: openafs/src/packaging/RedHat/afs-krb5-2.0-libsocket.patch
diff -c /dev/null openafs/src/packaging/RedHat/afs-krb5-2.0-libsocket.patch:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/afs-krb5-2.0-libsocket.patch	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,39 ----
+ diff -uNr afs-krb5.orig/src/configure.in afs-krb5/src/configure.in
+ --- afs-krb5.orig/src/configure.in	2003-03-16 20:13:34.000000000 -0500
+ +++ afs-krb5/src/configure.in	2003-07-30 11:52:55.000000000 -0400
+ @@ -44,14 +44,6 @@
+  if test $retval -ne 0; then
+  	AC_MSG_ERROR($krb5_config failed with error code of $retval)
+  fi
+ -AC_MSG_RESULT([Adding $krb5_cflags to CFLAGS])
+ -AC_MSG_RESULT([Adding $krb5_libs to LIBS])
+ -AC_MSG_RESULT([Setting KADM_CFLAGS to $krb5_cflags_kadm])
+ -AC_MSG_RESULT([Setting KADM_LIBS to $krb5_libs_kadm])
+ -CFLAGS="$CFLAGS $krb5_cflags"
+ -LIBS="$LIBS $krb5_libs"
+ -KADM_CFLAGS="$krb5_cflags_kadm"
+ -KADM_LIBS="$krb5_libs_kadm"
+  dnl
+  dnl Check for various network libraries
+  dnl
+ @@ -105,6 +97,20 @@
+  	AC_MSG_ERROR([Unable to find res_search function])
+  fi
+  LIBS="$save_LIBS"
+ +
+ +dnl
+ +dnl Don't add these to LIBS until after we've already looked for 
+ +dnl libsocket, etc. Otherwise ka-forwarder won't build properly
+ +dnl
+ +AC_MSG_RESULT([Adding $krb5_cflags to CFLAGS])
+ +AC_MSG_RESULT([Adding $krb5_libs to LIBS])
+ +AC_MSG_RESULT([Setting KADM_CFLAGS to $krb5_cflags_kadm])
+ +AC_MSG_RESULT([Setting KADM_LIBS to $krb5_libs_kadm])
+ +CFLAGS="$CFLAGS $krb5_cflags"
+ +LIBS="$LIBS $krb5_libs"
+ +KADM_CFLAGS="$krb5_cflags_kadm"
+ +KADM_LIBS="$krb5_libs_kadm"
+ +
+  dnl
+  dnl Optional support for AFS
+  dnl
Index: openafs/src/packaging/RedHat/afs-krb5-2.0-openafs1.3.patch
diff -c /dev/null openafs/src/packaging/RedHat/afs-krb5-2.0-openafs1.3.patch:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/afs-krb5-2.0-openafs1.3.patch	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,12 ----
+ diff -uNr afs-krb5.orig/src/asetkey.c afs-krb5/src/asetkey.c
+ --- afs-krb5.orig/src/asetkey.c	2005-04-08 15:55:35.637620000 -0400
+ +++ afs-krb5/src/asetkey.c	2005-04-08 15:55:57.614279120 -0400
+ @@ -81,7 +81,7 @@
+  		exit(1);
+  	}
+  
+ -	code = afsconf_AddKey(tdir, kvno, key->contents);
+ +	code = afsconf_AddKey(tdir, kvno, key->contents, 1);
+  	if (code) {
+  	    printf("setkey: failed to set key, code %ld.\n", code);
+  	    exit(1);
Index: openafs/src/packaging/RedHat/afs-krb5-2.0-res_search.patch
diff -c /dev/null openafs/src/packaging/RedHat/afs-krb5-2.0-res_search.patch:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/afs-krb5-2.0-res_search.patch	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,14 ----
+ --- afs-krb5/src/configure.in.res_search	2005-09-30 12:53:38.000000000 -0400
+ +++ afs-krb5/src/configure.in	2005-09-30 14:40:38.000000000 -0400
+ @@ -89,7 +89,10 @@
+  		if test "$have_res_search" != yes; then
+  			AC_CHECK_LIB(${lib}, res_search,
+  				     [have_res_search=yes
+ -				      NETLIBS="$NETLIBS -l${lib}"])
+ +				      NETLIBS="$NETLIBS -l${lib}"],
+ +			             [AC_CHECK_LIB(${lib}, __res_search,
+ +				       [have_res_search=yes
+ +					NETLIBS="$NETLIBS -l${lib}"])])
+  		fi
+  	done
+  fi
Index: openafs/src/packaging/RedHat/afsmodname
diff -c openafs/src/packaging/RedHat/afsmodname:1.1 openafs/src/packaging/RedHat/afsmodname:removed
*** openafs/src/packaging/RedHat/afsmodname:1.1	Mon Aug 26 16:46:51 2002
--- openafs/src/packaging/RedHat/afsmodname	Wed Sep  6 21:51:14 2006
***************
*** 1,455 ****
- #!/usr/bin/perl
- # afsmodname - return the name of the AFS module to load
- # usage: afsmodname [path]
- # THIS SCRIPT IS UNDER SOURCE CONTROL!
- # The master copy is /afs/cs/misc/openafs/src/client-support/afsmodname
- 
- use Getopt::Std;
- 
- use strict;
- use vars qw($modbase $VERSION @TrySyms @AddSyms $Prefix);
- use vars qw($DEBUG $Mode $OutFile %SymCache);
- 
- $VERSION = '$Revision: 1.1 $';
- $VERSION =~ s/^\$[a-z]*:?\s*(\S*)\s*\$$/$1/i;
- $VERSION = 'testing' unless $VERSION;
- $modbase = '/usr/vice/etc/modload';
- @TrySyms = qw(__iget iget __iget4 iget4);
- @AddSyms = qw(sock_create);
- $Prefix = 'libafs';
- 
- 
- sub vcmp {
-   my (@a, @b, @aa, @bb);
-   my ($i, $ii);
- 
-   @a = split /-/, $a;
-   @b = split /-/, $b;
-   foreach $i (0 .. ((@a > @b) ? $#b : $#a)) {
-     @aa = split /\./, $a[$i];
-     @bb = split /\./, $b[$i];  
-     foreach $ii (0 .. ((@aa > @bb) ? $#bb : $#aa)) {
-       return $aa[$ii] <=> $bb[$ii] if $aa[$ii] <=> $bb[$ii]
-                                    && $aa[$ii] =~ /^\d+$/
-                                    && $bb[$ii] =~ /^\d+$/;
-       return $aa[$ii] cmp $bb[$ii] if $aa[$ii] cmp $bb[$ii];
-     }
-     return @aa <=> @bb if @aa <=> @bb;
-   }
-   return @a <=> @b;
- }
- 
- 
- sub parse_symbol ($) {
-   my($symbol) = @_;
- 
-   if ($symbol =~ /^(.*)_R((?:smp)?(?:2gig)?_?[0-9a-f]{8})$/) {
-     ($1, $2);
-   } else {
-     ($symbol, '--none--');
-   }
- }
- 
- 
- sub get_ksym ($) {
-   my($req_sym) = @_;
-   my($addr, $symbol, $module, $version, @answer);
- 
- 
-   if (exists($SymCache{$req_sym})) {
-     print STDERR "get_ksym($req_sym) [cached]\n" if $DEBUG > 1;
-     return $SymCache{$req_sym};
-   }
- 
-   print STDERR "get_ksym($req_sym)" if $DEBUG;
-   $SymCache{$req_sym} = undef;
-   open(KSYMS, '/proc/ksyms') or die "open /proc/ksyms: $!\n";
-   while (<KSYMS>) {
-     if (/^(\w+)\s+(\w+)\s+\[(.*)\]/) {
-       ($addr, $symbol, $module) = ($1, $2, $3)
-     } elsif (/^(\w+)\s+(\w+)/) {
-       ($addr, $symbol, $module) = ($1, $2, 'KERNEL')
-     } else { next }
- 
-     ($symbol, $version) = parse_symbol($symbol);
- 
-     if ($symbol eq $req_sym) {
-       $SymCache{$req_sym} = [$addr, $version, $module];
-       print STDERR " => [addr=$addr, vers=$version, mod=$module]\n" if $DEBUG;
-       last;
-     }
-   }
-   close(KSYMS);
- 
-   print STDERR " => not found\n" if $DEBUG && !defined($SymCache{$req_sym});
-   $SymCache{$req_sym};
- }
- 
- 
- sub get_modsyms ($) {
-   my($modpath) = @_;
-   my($symbol, $version, $V);
- 
-   $V = {};
-   open(NM, "nm $modpath|") or die "nm $modpath: $!\n";
-   while (<NM>) {
-     chomp;
-     next unless /^\s+U\s+/;
-     ($symbol, $version) = parse_symbol($');
-     $$V{$symbol} = $version unless $version eq '--none--';
-   }
-   close(NM);
-   $V;
- }
- 
- 
- sub get_hdrsyms ($) {
-   my($srcpath) = @_;
-   my($moddir, @hdrs, $h);
-   my($symbol, $version, $V);
- 
- 
-   $moddir = "$srcpath/include/linux/modules";
-   opendir(HDRS, $moddir) or die "$moddir: $!\n";
-   @hdrs = readdir(HDRS);
-   closedir(HDRS);
- 
-   $V = {};
-   foreach $h (@hdrs) {
-     next unless $h =~ /\.ver$/;
-     open(HDR, "$moddir/$h") or die "$moddir/$h: $!\n";
-     while (<HDR>) {
-       chomp;
-       next unless /#define __ver_(\S+)\s+(\S+)/;
-       $$V{$1} = $2;
-     }
-     close(HDR);
-   }
-   $V;
- }
- 
- 
- sub get_cputype () {
-   my($cputype, $family, $vendor, $model);
- 
-   open(CPUINFO, '/proc/cpuinfo') or die "open /proc/cpuinfo: $!\n";
-   while (<CPUINFO>) {
-     if    (/^cpu\s*\:\s*(\S+)/)       { $cputype = $1 }
-     elsif (/^cpu family\s*:\s*(\S+)/) { $family  = $1 }
-     elsif (/^vendor_id\s*:\s*(\S+)/)  { $vendor  = $1 }
-     elsif (/^model\s*:\s*(\S+)/)      { $model   = $1 }
-   }
-   close(CPUINFO);
-   if    ($vendor eq 'GenuineIntel') { $vendor = 'intel' }
-   elsif ($vendor eq 'AuthenticAMD') { $vendor = 'amd'   }
-   $cputype = "${family}86" if !defined($cputype);
-   [$cputype, $vendor, $model];
- }
- 
- 
- sub table_lookup ($@) {
-   my($cpu, @paths) = @_;
-   my($path, $symbol, $version, $mincpu, @mincpu, $module, $info, @supp);
-   my($prev_module);     # last module line we saw
-   my($match_module);    # last matching module
-   my($prev_match);      # true if last module matches so far
- 
-   foreach $path (@paths) {
-     next unless -f $path;
-     $prev_match = 0;
-     open(TABLE, $path) or die "open $path: $!\n";
-     while (<TABLE>) {
-       # Skip comments
-       next if (/^\#/ || /^\s*$/);
- 
-       # Check supplemental requirements
-       if (/^\s*\>/) {
-         @supp = split;
-         foreach (@supp) {
-           if (/([^=]*)=([^=]*)/) {
-             ($symbol, $version) = ($1, $2);
-             $info = get_ksym($symbol);
-             $prev_match = 0 if !$info || $version ne $$info[1];
-           }
-         }
-         next;
-       }
- 
-       # This is a new module, so all supplemental requirements for the
-       # previous module have been processed.  If they all passed, then
-       # the previous module is a matching module.
-       $match_module = $prev_module if $prev_match;
- 
-       # Parse the line and remember the module name
-       ($symbol, $version, $mincpu, $module) = split;
-       $prev_module = $module;
-       $prev_match  = 0;
-       if ($DEBUG) {
-         print STDERR "Try $module ($symbol=$version)",
-                      ($mincpu ne '-') ?  " mincpu = $mincpu" : "",
-                      "\n";
-       }
- 
-       # Check mincpu requirement
-       if ($mincpu ne '-') {
-         @mincpu = split(/\./, $mincpu);
-         if ($mincpu[0] ne '' && $mincpu[0] >  $$cpu[0]) {  # min family
-           print STDERR " mincpu failed: $mincpu[0] > $$cpu[0]\n" if $DEBUG;
-           next;
-         }
-         if ($mincpu[1] ne '' && $mincpu[1] ne $$cpu[1]) {  # exact vendor
-           print STDERR " mincpu failed: $mincpu[1] != $$cpu[1]\n" if $DEBUG;
-           next;
-         }
-         if ($mincpu[2] ne '' && $mincpu[2] >  $$cpu[2]) {  # min model
-           print STDERR " mincpu failed: $mincpu[2] > $$cpu[2]\n" if $DEBUG;
-           next;
-         }
-       }
- 
-       # Check primary symbol requirement
-       $info = get_ksym($symbol);
-       next unless $info;
-       next unless $version eq $$info[1];
- 
-       # OK; it's a match so far.  There may still be some supplemental
-       # requirements that we need to check.
-       $prev_match = 1;
-     }
-     close(TABLE);
-     $match_module = $prev_module if $prev_match;
-   }
-   $match_module;
- }
- 
- 
- sub dump_versions ($) {
-   my($cpu) = @_;
-   my($version);
- 
-   print STDERR "CPU Type:       ", join('.', @$cpu), "\n";
- 
-   chomp($version = `uname -rv`);
-   print STDERR "Linux version:  $version\n";
- 
-   if (open(RHR, "/etc/redhat-release")) {
-     chomp($version = <RHR>);
-      print STDERR "RedHat release: $version\n";
-   }
- }
- 
- 
- sub dump_syms (@) {
-   my(@syms) = @_;
-   my($sym, $info);
- 
-   print STDERR "Symbol versions:\n";
-   foreach $sym (@syms) {
-     $info = get_ksym($sym);
-     printf STDERR "  %-10s %s\n", $sym, $$info[1] if $info;
-   }
- }
- 
- 
- sub gen_table (@) {
-   my(@modules) = @_;
-   my($module, $modname, $V, $sym, $count, @add);
- 
-   print <<'EOF';
- # This file describes the available AFS kernel modules and what kernel
- # versions they work with.  Each line matches against some kernel symbol
- # version, and specifies a module which may be used with kernels containing
- # that version of the specified symbol.  Only lines which match the
- # currently-running kernel are considered.
- #
- # In addition, each line may specify a minimum CPU model on which the module
- # will work.  If this value is present, the actual CPU model must be greater
- # than or equal to the version specified; otherwise, the module is assumed
- # to work on any CPU.
- #
- # The last match found will be used.
- #
- # Symbol  Version       MinCPU  Module
- #=======  ============  ======  ====================
- EOF
-   foreach $module (sort vcmp @modules) {
-     ($modname = $module) =~ s/.*\///;
-     $modname =~ s/^$Prefix[-.](.*)\.o$/$1/;
-     $V = get_modsyms($module);
-     $count = 0;
-     foreach $sym (@TrySyms) {
-       next unless exists $$V{$sym};
-       $count++;
-       printf "%-8s  %-12s  %-6s  %s\n", $sym, $$V{$sym}, '-', $modname;
-       last;
-     }
-     if (!$count) {
-       print STDERR "Unable to find a suitable symbol reference in $modname!\n";
-       next;
-     }
-     @add = ();
-     foreach $sym (@AddSyms) {
-       next unless exists $$V{$sym};
-       push(@add, "$sym=$$V{$sym}");
-     }
-     print "> ", join(' ', @add), "\n" if @add;
-   }
- }
- 
- 
- sub scan_kernels (@) {
-   my(@kernels) = @_;
-   my($kernel, $kpath, $kname, $V);
- 
- eval <<"EOF";
- format =
- @<<<<<<<<<<<<<<<<<<<<<<<< @{[' @<<<<<<<<<<<' x scalar(@TrySyms)]}
- \$kname, @{[join(',', map(q/$$V{'/ . $_ . q/'}/, @TrySyms))]}
- .
- EOF
- 
-   $kname = 'Kernel';
-   $V = { map(($_ => $_), @TrySyms) };
-   write;
- 
-   $kname = '=========================';
-   $V = { map(($_ => '============'), @TrySyms) };
-   write;
- 
-   foreach $kernel (@kernels) {
-     if    (-d "$kernel/src/include/linux/modules") { $kpath = "$kernel/src" }
-     elsif (-d "$kernel/include/linux/modules")     { $kpath = $kernel       }
-     else { next }
-     ($kname = $kpath) =~ s#/src$##;
-     $kname =~ s/.*\///;
- 
-     $V = get_hdrsyms($kpath);
-     write;
-   }
- }
- 
- 
- sub symcompare ($$) {
-   my($module, $kernel) = @_;
-   my($ksyms, $msyms, $sym, $kvers, $mvers, $info);
- 
- eval <<'EOF';
- format =
- @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<  @<<<<<<<<<<<  @<<<<<<<<<<<
- $sym, $kvers, $mvers
- .
- EOF
- 
-   if (defined($kernel)) { $ksyms = get_hdrsyms($kernel) }
-   $msyms = get_modsyms($module);
- 
-   print "Symbol                          Kernel        Module\n";
-   print "==============================  ============  ============\n";
-   foreach (keys %$msyms) {
-     $sym = $_;
-     $mvers = $$msyms{$sym};
-     if (defined($kernel)) {
-       $kvers = $$ksyms{$sym};
-     } else {
-       $info = get_ksym($sym);
-       $kvers = $$info[1];
-     }
-     next if $kvers eq $mvers;
-     write;
-   }
- }
- 
- 
- sub usage (;@) {
- 
-   print STDERR "$00: ", @_, "\n" if @_;
-   print STDERR <<"EOF";
- usage: $00 [opts] [modbase]                      (find module)
-        $00 [opts] -g modules ...                 (make table)
-        $00 [opts] -k kernels ...                 (scan kernels)
-        $00 [opts] -c module [kernel]             (check module)
-        $00 -h                                    (print help)
-        $00 -v                                    (print version)
- 
- options:
-   -d          enable debugging output
-   -f outfile  set output file (default stdout)
-   -P prefix   set module name prefix (default $Prefix)
-   -S syms...  symbols to try for -x, -k (default @TrySyms)
-   -A syms...  additional symbols to check for -x (default @AddSyms)
- 
-   Module lists for -S and -A may be space- or comma-separated.
-   For backward-compatibility, -g is a synonym for -x.
- EOF
-     exit(0);
- }
- 
- sub parse_opts () {
-   my(%opts);
- 
-   ($00 = $0) =~ s/.*\///;
-   getopts('dckgxf:hvP:S:A:', \%opts) or usage('invalid option(s)');
-   usage() if $opts{'h'};
- 
-   if ($opts{'v'}) {
-     print "afsmodname $VERSION\n";
-     exit(0);
-   }
- 
-   $opts{'g'} = 1 if $opts{'x'};
-   if ($opts{'g'} + $opts{'k'} + $opts{'c'} > 1) {
-     usage("At most one of -g, -k, -c can be used\n");
-   }
- 
-   $DEBUG++                              if exists $opts{'d'};
-   $Mode = 'g'                           if exists $opts{'g'};
-   $Mode = 'k'                           if exists $opts{'k'};
-   $Mode = 'c'                           if exists $opts{'c'};
- 
-   usage("Too many arguments")   if !$Mode && @ARGV > 1;
-   usage("Too many arguments")   if $Mode eq 'c' && @ARGV > 2;
-   usage("Module name required") if $Mode eq 'c' && !@ARGV;
- 
-   $OutFile = $opts{'f'}                 if exists $opts{'f'};
-   $Prefix  = $opts{'p'}                 if exists $opts{'P'};
-   @TrySyms = split(/[, ]+/, $opts{'S'}) if exists $opts{'S'};
-   @AddSyms = split(/[, ]+/, $opts{'A'}) if exists $opts{'A'};
- }
- 
- 
- ## MAIN PROGRAM
- 
- my($cpu, $module);
- 
- parse_opts();
- if ($Mode) {
-   if ($OutFile) {
-     open(STDOUT, ">$OutFile") or die "$OutFile: $!\n";
-   }
-   if ($Mode eq 'g') { gen_table(@ARGV)               }
-   if ($Mode eq 'k') { scan_kernels(@ARGV)            }
-   if ($Mode eq 'c') { symcompare($ARGV[0], $ARGV[1]) }
-   exit(0);
- }
- 
- $modbase = $ARGV[0] if @ARGV;
- 
- $cpu = get_cputype();
- 
- $module = table_lookup($cpu, "$modbase/SymTable", "$modbase/SymTable.local");
- 
- if ($module) {
-   print "$Prefix-$module.o";
-   exit(0);
- }
- 
- print STDERR <<'EOF';
- Hmm...  I can't seem to find an AFS kernel module suitable for your Linux
- kernel.  That means you will need to build or obtain a suitable module.
- The following information may be of some use in obtaining assistance:
- EOF
- 
- dump_versions($cpu);
- dump_syms(sort (@TrySyms, keys %SymCache));
- 
- exit(1);
--- 0 ----
Index: openafs/src/packaging/RedHat/openafs-1.2.6-rc.patch
diff -c openafs/src/packaging/RedHat/openafs-1.2.6-rc.patch:1.1 openafs/src/packaging/RedHat/openafs-1.2.6-rc.patch:removed
*** openafs/src/packaging/RedHat/openafs-1.2.6-rc.patch:1.1	Mon Aug 26 16:46:51 2002
--- openafs/src/packaging/RedHat/openafs-1.2.6-rc.patch	Wed Sep  6 21:51:14 2006
***************
*** 1,27 ****
- Index: src/afsd/afs.rc.linux
- ===================================================================
- RCS file: /cvs/openafs/src/afsd/afs.rc.linux,v
- retrieving revision 1.4
- diff -u -r1.4 afs.rc.linux
- --- src/afsd/afs.rc.linux	2001/10/10 03:16:54	1.4
- +++ src/afsd/afs.rc.linux	2001/10/13 14:42:31
- @@ -92,6 +92,19 @@
-  # LIBAFS manually.
-  choose_client() {
-  
- +        # Use the associated script to determine the module name
- +	if test -f /usr/vice/etc/afsmodname && \
- +	    test -f /usr/vice/etc/modload/SymTable ; then
- +	    
- +            LIBAFS=`/usr/vice/etc/afsmodname`
- +	    if test "x$LIBAFS" = "x" ; then
- +		echo Did not find matching module in SymTable
- +	    else
- +		echo Found $LIBAFS from SymTable... Loading...
- +		return 0
- +	    fi
- +	fi
- +
-  	# Use the second field of the uname -v output instead of just
-  	# doing a match on the whole thing to protect against matching
-  	# a timezone named SMP -- I don't know of one, but let's be
--- 0 ----
Index: openafs/src/packaging/RedHat/openafs-1.2.6.spec
diff -c openafs/src/packaging/RedHat/openafs-1.2.6.spec:1.1 openafs/src/packaging/RedHat/openafs-1.2.6.spec:removed
*** openafs/src/packaging/RedHat/openafs-1.2.6.spec:1.1	Mon Aug 26 16:46:51 2002
--- openafs/src/packaging/RedHat/openafs-1.2.6.spec	Wed Sep  6 21:51:14 2006
***************
*** 1,762 ****
- %define afsvers 1.2.6
- %define pkgrel 1
- 
- # Define your particular Red Hat and kernel versions:
- #	For Linux 2.2:  22
- #	For Linux 2.4:	24
- #
- %define osvers rh7.1
- %define kernvers 24
- 
- # This is where to look for kernel-build includes files.
- # Most likely you don't want to change this, but
- # depending on your situation you may want:
- # 	Linux 2.2:
- #		kbase = /usr/src/linux-
- #		kend = ""
- #	Linux 2.4:
- #		kbase = /lib/modules/
- #		kend = /build
- #
- %define kbase /usr/src/linux-
- %define kend ""
- 
- # Set 'debugspec' to 1 if you want to debug the spec file.  This will
- # not remove the installed tree as part of the %clean operation
- %define debugspec 0
- 
- # Set 'enterprisekernelsupport' to 1 if you want to build the
- # kernel module for the enterprise kernel
- # Note: This will only work for kernvers == 24 on i686
- %define enterprisekernelsupport 1
- 
- # Set 'bigmemkernelsupport' to 1 if you want to build the
- # kernel module for the bigmem kernel
- # Note: This will only work for kernvers == 24 on i686
- %define bigmemkernelsupport 1
- 
- # Set 'krb5support' to 1 if you want to build the openafs-krb5 package
- # to distribute aklog and asetkey
- %define krb5support 1
- 
- # OpenAFS configuration options
- %define enable_bitmap_later 0
- %define enable_bos_restricted_mode 0
- %define enable_fast_restart 0
- 
- #######################################################################
- # You probably don't need to change anything beyond this line
- # NOTE: If you do, please email me!!!
- 
- Summary: OpenAFS distributed filesystem
- Name: openafs
- Version: %{afsvers}
- Release: %{osvers}.%{pkgrel}
- Copyright: IPL
- BuildRoot: %{_tmppath}/%{name}-%{version}-root
- Packager: Derek Atkins <warlord@MIT.EDU>
- Group: Networking/Filesystems
- BuildRequires: kernel-source
- %if "%{osvers}" != "rh6.2"
- # Newer versions of Red Hat require pam-devel in order to build
- BuildRequires: pam-devel
- %endif
- 
- Source0: http://www.openafs.org/dl/openafs/${afsvers}/openafs-%{afsvers}-src.tar.gz
- Source1: http://www.openafs.org/dl/openafs/${afsvers}/openafs-%{afsvers}-doc.tar.gz
- Source2: openafs-ThisCell
- # http://grand.central.org/dl/cellservdb/CellServDB
- Source3: openafs-CellServDB
- Source4: openafs-SuidCells
- Source5: openafs-cacheinfo
- Source6: openafs-afsmodname
- Source7: openafs-LICENSE.Sun
- Source8: openafs-README
- Source10: http://www.openafs.org/dl/openafs/${afsvers}/RELNOTES-%{afsvers}
- Source11: http://www.openafs.org/dl/openafs/${afsvers}/ChangeLog
- 
- Source20: openafs-krb5-1.3.tar.gz
- 
- Patch0: openafs-%{afsvers}-rc.patch
- 
- Patch20: openafs-krb5-1.3-1.2.1.diff.gz
- Patch21: openafs-krb5-1.3-configure.patch
- 
- %description
- The AFS distributed filesystem.  AFS is a distributed filesystem
- allowing cross-platform sharing of files among multiple computers.
- Facilities are provided for access control, authentication, backup and
- administrative management.
- 
- This package provides common files shared across all the various
- OpenAFS packages but are not necessarily tied to a client or server.
- 
- %package client
- Requires: binutils, openafs-kernel, openafs = %{PACKAGE_VERSION}
- Summary: OpenAFS Filesystem Client
- Group: Networking/Filesystem
- 
- %description client
- The AFS distributed filesystem.  AFS is a distributed filesystem
- allowing cross-platform sharing of files among multiple computers.
- Facilities are provided for access control, authentication, backup and
- administrative management.
- 
- This package provides basic client support to mount and manipulate
- AFS.
- 
- %package server
- Requires: openafs-kernel, openafs = %{PACKAGE_VERSION}
- Summary: OpenAFS Filesystem Server
- Group: Networking/Filesystems
- 
- %description server
- The AFS distributed filesystem.  AFS is a distributed filesystem
- allowing cross-platform sharing of files among multiple computers.
- Facilities are provided for access control, authentication, backup and
- administrative management.
- 
- This package provides basic server support to host files in an AFS
- Cell.
- 
- %package devel
- Summary: OpenAFS Development Libraries and Headers
- Group: Development/Filesystems
- 
- %description devel
- The AFS distributed filesystem.  AFS is a distributed filesystem
- allowing cross-platform sharing of files among multiple computers.
- Facilities are provided for access control, authentication, backup and
- administrative management.
- 
- This package provides static development libraries and headers needed
- to compile AFS applications.  Note: AFS currently does not provide
- shared libraries.
- 
- %package kernel
- Summary: OpenAFS Kernel Module(s)
- Requires: openafs = %{PACKAGE_VERSION}
- Group: Networking/Filesystems
- 
- %description kernel
- The AFS distributed filesystem.  AFS is a distributed filesystem
- allowing cross-platform sharing of files among multiple computers.
- Facilities are provided for access control, authentication, backup and
- administrative management.
- 
- This package provides precompiled AFS kernel modules for various
- kernels.
- 
- %package kernel-source
- Summary: OpenAFS Kernel Module source tree
- Group: Networking/Filesystems
- 
- %description kernel-source
- The AFS distributed filesystem.  AFS is a distributed filesystem
- allowing cross-platform sharing of files among multiple computers.
- Facilities are provided for access control, authentication, backup and
- administrative management.
- 
- This package provides the source code to build your own AFS kernel
- module.
- 
- %package compat
- Summary: OpenAFS client compatibility symlinks
- Requires: openafs = %{PACKAGE_VERSION}, openafs-client = %{PACKAGE_VERSION}
- Group: Networking/Filesystems
- Obsoletes: openafs-client-compat
- 
- %description compat
- The AFS distributed filesystem.  AFS is a distributed filesystem
- allowing cross-platform sharing of files among multiple computers.
- Facilities are provided for access control, authentication, backup and
- administrative management.
- 
- This package provides compatibility symlinks in /usr/afsws.  It is
- completely optional, and is only necessary to support legacy
- applications and scripts that hard-code the location of AFS client
- programs.
- 
- %package kpasswd
- Summary: OpenAFS KA kpasswd support
- Requires: openafs
- Group: Networking/Filesystems
- 
- %description kpasswd
- The AFS distributed filesystem.  AFS is a distributed filesystem
- allowing cross-platform sharing of files among multiple computers.
- Facilities are provided for access control, authentication, backup and
- administrative management.
- 
- This package provides the compatibility symlink for kpasswd, in case
- you are using KAserver instead of Krb5.
- 
- %if %{krb5support}
- %package krb5
- Summary: OpenAFS programs to use with krb5
- Requires: openafs = %{PACKAGE_VERSION}
- Group: Networking/Filesystems
- BuildRequires: krb5-devel
- 
- %description krb5
- The AFS distributed filesystem.  AFS is a distributed filesystem
- allowing cross-platform sharing of files among multiple computers.
- Facilities are provided for access control, authentication, backup and
- administrative management.
- 
- This package provides compatibility programs so you can use krb5
- to authenticate to AFS services, instead of using AFS's homegrown
- krb4 lookalike services.
- %endif
- 
- #
- # PREP
- #
- 
- %prep
- %setup -q -b 1
- %setup -q -T -D -a 20
- 
- %patch0 -p0
- %patch20 -p0
- %patch21 -p0
- 
- ###
- ### build
- ###
- %build
- 
- %ifarch i386 i486 i586 i686 athlon
- sysbase=i386
- sysname=${sysbase}_linux%{kernvers}
- %else
- sysbase=%{_arch}
- sysname=${sysbase}_linux%{kernvers}
- %endif
- 
- if [ %{kernvers} = 22 ]; then
-    kv='2\.2\.'
- elif [ %{kernvers} = 24 ]; then
-    kv='2\.4\.'
- else
-    echo "I don't know how to build $sysname"
-    exit 1
- fi
- 
- %ifarch i386 i486 i586 i686 athlon
- archlist="i386 i586 i686 athlon"
- %else
- archlist=${sysbase}
- %endif
- 
- #
- # PrintDefine var value statements file
- #
- PrintDefine() {
-     case $3 in
-     *ifn*)
- 	echo "#ifndef $1" >> $4
- 	;;
-     esac
-     case $3 in
-     *und*)
- 	echo "#undef $1" >> $4
- 	;;
-     esac
-     case $3 in
-     *def*)
- 	echo "#define $1 $2" >> $4
- 	;;
-     esac
-     case $3 in
-     *end*)
- 	echo "#endif" >> $4
- 	;;
-     esac
-     case $3 in
-     *inc*)
- 	echo "#include $1" >> $4
- 	;;
-     esac
- 
- 
-     case $3 in
-     *nl*)
- 	echo "" >> $4
- 	;;
-     esac
- }
- 
- # PrintRedhatKernelFix arch mp file
- PrintRedhatKernelFix() {
-     arch="$1"
-     up=0
-     smp=0
-     ent=0
-     bm=0
-     if [ "$2" = "MP" ]; then
- 	smp=1
-     elif [ "$2" = "EP" ]; then
- 	ent=1
-     elif [ "$2" = "BM" ]; then
- 	bm=1
-     else
- 	up=1
-     fi
-     file="$3"
- 
-     # deal with the various boot kernels
-     boot=0
-     bootsmp=0
- 
-     # arch of 'BOOT' == 386
-     if [ "$arch" = "BOOT" ]; then
- 	if [ "$up" = 1 ]; then
- 	    boot=1
- 	    up=0
- 	elif [ "$smp" = 1 ]; then
- 	    bootsmp=1
- 	    smp=0
- 	fi
- 	arch=i386
-     fi
- 
-     rm -f $file
-     touch $file
- 
-     PrintDefine "REDHAT_FIX_H" "" ifn,def,nl $file
- 
-     PrintDefine "__BOOT_KERNEL_ENTERPRISE" $ent und,def,nl $file
-     PrintDefine "__BOOT_KERNEL_BIGMEM" $bm und,def,nl $file
-     PrintDefine "__BOOT_KERNEL_SMP" $smp und,def,nl $file
-     PrintDefine "__BOOT_KERNEL_UP" $up und,def,nl $file
-     PrintDefine "__BOOT_KERNEL_BOOT" $boot und,def,nl $file
-     PrintDefine "__BOOT_KERNEL_BOOTSMP" $bootsmp und,def,nl $file
- 
-     PrintDefine \"/boot/kernel.h\" "" inc,nl $file	# include file
- 
-     for ar in $archlist ; do
- 	if [ "$ar" = "$arch" ]; then
- 	    PrintDefine "__MODULE_KERNEL_$ar" "1" ifn,def,end $file
- 	else
- 	    PrintDefine "__MODULE_KERNEL_$ar" "" und $file	# undef
-         fi
-     done
-     echo "" >> $file
- 
-     PrintDefine "" "" end $file
- 
-     if [ %{debugspec} = 1 ] ; then
- 	echo "Kernel Configuration File for Red Hat kernels:"
- 	cat $file
-     fi
- }
- 
- # Pick up all the 'appropriate' kernels
- kvers=`ls -d %{kbase}* | sed 's^%{kbase}^^g' | grep $kv`
- 
- # Choose the last one for now.. It doesn't really matter, really.
- hdrdir=`ls -d %{kbase}*%{kend} | grep $kv | tail -1`
- 
- config_opts="--enable-redhat-buildsys \
- %if %{enable_bitmap_later}
- 	--enable-bitmap-later \
- %endif
- %if %{enable_bos_restricted_mode}
- 	--enable-bos-restricted-mode \
- %endif
- %if %{enable_fast_restart}
- 	--enable-fast-restart \
- %endif
- 	--enable-transarc-paths"
- 
- # Configure AFS
- ./configure --with-afs-sysname=${sysname} \
- 	--with-linux-kernel-headers=$hdrdir $config_opts
- 
- # Build the user-space AFS stuff
- make dest_nolibafs
- 
- # Build the libafs tree
- make only_libafs_tree
- 
- # Now build all the kernel modules
- for vers in $kvers ; do
- 
-   # Reconfigure sources for this kernel version, to catch various
-   # kernel params in the configure script.  Yes. this takes more time,
-   # but it's worth it in the long run..  But first remove config.cache
-   # to be sure we get a clean configuration.
-   rm -f config.cache
-   ./configure --with-afs-sysname=${sysname} \
- 	--with-linux-kernel-headers=%{kbase}$vers%{kend} \
- 	$config_opts
- 
-   KTL="SP MP"
- %if %{enterprisekernelsupport}
-   # See if we should build EP support
-   if grep -q -r __BOOT_KERNEL_ENTERPRISE %{kbase}$vers%{kend}/include
-   then
-     KTL="${KTL} EP"
-   fi
- %endif
- %if %{bigmemkernelsupport}
-   # See if we should build BM support
-   if grep -q -r __BOOT_KERNEL_BIGMEM %{kbase}$vers%{kend}/include
-   then
-     KTL="${KTL} BM"
-   fi
- %endif
-  
-   for mp in $KTL; do
-     # ... for all appropriate 'architectures'...
-     if [ %{kernvers} = 22 ]; then
- 	# For 2.2 kernels, just do MP and SP kernels; force EP into i686
- 
-         arch=${sysbase}
-         if [ $mp = EP -a ${sysbase} = i386 ]; then
- 	    arch=i686
- 	fi
- 
- 	PrintRedhatKernelFix $arch $mp src/config/redhat-fix.h
- 	make dest_only_libafs LOCAL_SMP_DEF=-DREDHAT_FIX MPS=$mp
- 
-     elif [ %{kernvers} = 24 ]; then
- 	# For 2.4 kernels, need to build modules for each architecture!
- 
- 	for arch in $archlist ; do
- 
- 	    # build SP and MP on all architectures.
- 	    # build EP and BM only on i686
-             if [ $mp = SP -o $mp = MP -o \
- 		 \( $mp = EP -a $arch = i686 \) -o \
- 		 \( $mp = BM -a $arch = i686 \) ]; then
- 		PrintRedhatKernelFix $arch $mp src/config/redhat-fix.h
- 		make dest_only_libafs LOCAL_SMP_DEF=-DREDHAT_FIX \
- 		    LINUX_MODULE_NAME="-$arch" MPS=$mp
- 	    fi
- 	done
- 
-     else	    
- 	echo "I don't know how to build $sysname"
- 	exit 1
-     fi
-   done
- done
- 
- rm -f src/config/redhat-fix.h
- 
- %if %{krb5support}
- # Now build aklog/asetkey
- (cd openafs-krb5-1.3/src &&
- 	autoconf &&
- 	./configure --prefix=/usr --with-krb5=/usr/kerberos \
- 		--with-afs=`pwd`/../../${sysname}/dest/ && \
- 	make all && \
- 	make install DESTDIR=`pwd`/../../${sysname}/dest/ INSTALL_BIN=/bin \
- 		INSTALL_SBIN=/etc)
- %endif
- 
- ###
- ### install
- ###
- %install
- [ $RPM_BUILD_ROOT != / ] && rm -rf $RPM_BUILD_ROOT
- 
- %ifarch i386 i486 i586 i686 athlon
- sysbase=i386
- sysname=${sysbase}_linux%{kernvers}
- %else
- sysbase=%{_arch}
- sysname=${sysbase}_linux%{kernvers}
- %endif
- 
- # Build install tree
- mkdir -p $RPM_BUILD_ROOT/usr/sbin
- mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
- mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
- mkdir -p $RPM_BUILD_ROOT/etc/openafs
- mkdir -p $RPM_BUILD_ROOT/lib/security
- mkdir -p $RPM_BUILD_ROOT/usr/afs/logs
- mkdir -p $RPM_BUILD_ROOT/usr/vice/etc
- mkdir -p $RPM_BUILD_ROOT/usr/vice/cache
- chmod 700 $RPM_BUILD_ROOT/usr/vice/cache
- 
- # Copy files from dest to the appropriate places in BuildRoot
- tar cf - -C ${sysname}/dest bin include lib | tar xf - -C $RPM_BUILD_ROOT/usr
- tar cf - -C ${sysname}/dest/etc . | tar xf - -C $RPM_BUILD_ROOT/usr/sbin
- tar cf - -C ${sysname}/dest/root.server/usr/afs bin | tar xf - -C $RPM_BUILD_ROOT/usr/afs
- tar cf - -C ${sysname}/dest/root.client/usr/vice/etc afsd modload | tar xf - -C $RPM_BUILD_ROOT/usr/vice/etc
- 
- # Link kpasswd to kapasswd
- ln -f $RPM_BUILD_ROOT/usr/bin/kpasswd $RPM_BUILD_ROOT/usr/bin/kapasswd
- 
- # Copy root.client config files
- install -m 755 ${sysname}/dest/root.client/usr/vice/etc/afs.conf $RPM_BUILD_ROOT/etc/sysconfig/afs
- install -m 755 ${sysname}/dest/root.client/usr/vice/etc/afs.rc $RPM_BUILD_ROOT/etc/rc.d/init.d/afs
- 
- # Copy PAM modules
- install -m 755 ${sysname}/dest/lib/pam* $RPM_BUILD_ROOT/lib/security
- 
- # PAM symlinks
- ln -sf pam_afs.so.1 $RPM_BUILD_ROOT/lib/security/pam_afs.so
- ln -sf pam_afs.krb.so.1 $RPM_BUILD_ROOT/lib/security/pam_afs.krb.so
- 
- # Populate /usr/vice/etc
- uve=$RPM_BUILD_ROOT/usr/vice/etc
- install -p -m 644 $RPM_SOURCE_DIR/openafs-CellServDB $uve/CellServDB
- install -p -m 644 $RPM_SOURCE_DIR/openafs-SuidCells $uve/SuidCells
- install -p -m 644 $RPM_SOURCE_DIR/openafs-ThisCell $uve/ThisCell
- install -p -m 644 $RPM_SOURCE_DIR/openafs-cacheinfo $uve/cacheinfo
- install -p -m 755 $RPM_SOURCE_DIR/openafs-afsmodname $uve/afsmodname
- 
- #
- # Build the SymTable
- symtable=$RPM_BUILD_ROOT/usr/vice/etc/modload/SymTable
- rm -f $symtable
- echo "# SymTable, automatically generated" > $symtable
- echo "# symbol	version	cpu	module" >> $symtable
- echo "" >> $symtable
- 
- $RPM_BUILD_ROOT/usr/vice/etc/afsmodname -x -f $symtable \
- 	$RPM_BUILD_ROOT/usr/vice/etc/modload/libafs*.o
- 
- #
- # install kernel-source
- #
- 
- # Install the kernel module source tree
- mkdir -p $RPM_BUILD_ROOT/usr/src/openafs-kernel-%{afsvers}/src
- tar cf - -C libafs_tree . | \
- 	tar xf - -C $RPM_BUILD_ROOT/usr/src/openafs-kernel-%{afsvers}/src
- 
- # Next, copy the LICENSE Files, README
- install -m 644 src/LICENSE $RPM_BUILD_ROOT/usr/src/openafs-kernel-%{afsvers}/LICENSE.IBM
- install -m 644 $RPM_SOURCE_DIR/openafs-LICENSE.Sun $RPM_BUILD_ROOT/usr/src/openafs-kernel-%{afsvers}/LICENSE.Sun
- install -m 644 $RPM_SOURCE_DIR/openafs-README $RPM_BUILD_ROOT/usr/src/openafs-kernel-%{afsvers}/README
- 
- #
- # Install DOCUMENTATION
- #
- 
- # Build the DOC directory
- mkdir -p $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
- tar cf - -C doc LICENSE html pdf | \
-     tar xf - -C $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
- install -m 644 $RPM_SOURCE_DIR/RELNOTES-%{afsvers} $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
- install -m 644 $RPM_SOURCE_DIR/ChangeLog $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
- 
- #
- # create filelist
- #
- grep -v "^#" >openafs-file-list <<EOF-openafs-file-list
- /usr/bin/afsmonitor
- /usr/bin/bos
- /usr/bin/fs
- /usr/bin/kapasswd
- /usr/bin/kpasswd
- /usr/bin/klog
- /usr/bin/klog.krb
- /usr/bin/pagsh
- /usr/bin/pagsh.krb
- /usr/bin/pts
- /usr/bin/scout
- /usr/bin/sys
- /usr/bin/tokens
- /usr/bin/tokens.krb
- /usr/bin/translate_et
- /usr/bin/udebug
- /usr/bin/unlog
- /usr/sbin/backup
- /usr/sbin/butc
- /usr/sbin/fms
- /usr/sbin/fstrace
- /usr/sbin/kas
- /usr/sbin/read_tape
- /usr/sbin/restorevol
- /usr/sbin/rxdebug
- /usr/sbin/uss
- /usr/sbin/vos
- EOF-openafs-file-list
- 
- #
- # Install compatiblity links
- #
- for d in bin:bin etc:sbin; do
-   olddir=`echo $d | sed 's/:.*$//'`
-   newdir=`echo $d | sed 's/^.*://'`
-   mkdir -p $RPM_BUILD_ROOT/usr/afsws/$olddir
-   for f in `cat openafs-file-list`; do
-     if echo $f | grep -q /$newdir/; then
-       fb=`basename $f`
-       ln -sf /usr/$newdir/$fb $RPM_BUILD_ROOT/usr/afsws/$olddir/$fb
-     fi
-   done
- done
- 
- 
- ###
- ### clean
- ###
- %clean
- rm -f openafs-file-list
- [ "$RPM_BUILD_ROOT" != "/" -a "x%{debugspec}" != "x1" ] && \
- 	rm -fr $RPM_BUILD_ROOT
- 
- 
- ###
- ### scripts
- ###
- %pre compat
- if [ -e /usr/afsws ]; then
-         /bin/rm -fr /usr/afsws
- fi
- 
- %post
- chkconfig --add afs
- 
- %post client
- if [ ! -d /afs ]; then
- 	mkdir /afs
- 	chown root.root /afs
- 	chmod 0755 /afs
- fi
- 
- echo
- echo The AFS cache is configured for 100 MB. Edit the 
- echo /usr/vice/etc/cacheinfo file to change this before
- echo running AFS for the first time. You should also
- echo set your home cell in /usr/vice/etc/ThisCell.
- echo
- echo Also, you may want to edit /etc/pam.d/login and 
- echo possibly others there to get an AFS token on login.
- echo Put the line:
- echo 
- echo    auth	   sufficient   /lib/security/pam_afs.so try_first_pass ignore_root
- echo
- echo before the one for pwdb.
- echo
- 
- %post server
- if [ -f /etc/sysconfig/afs ] ; then
- 	srv=`grep ^AFS_SERVER /etc/sysconfig/afs | sed 's/^AFS_SERVER[\s]*=[\s]*//'`
- 	if [ "x$srv" = "xon" ] ; then
- 		exit 0
- 	fi
- fi
- 
- echo
- echo Be sure to edit /etc/sysconfig/afs and turn AFS_SERVER on
- echo
- 
- %preun
- if [ $1 = 0 ] ; then
-         /etc/rc.d/init.d/afs stop
-         chkconfig --del afs
- 	[ -d /afs ] && rmdir /afs
- fi
- 
- ###
- ### file lists
- ###
- %files -f openafs-file-list
- %defattr(-,root,root)
- %config /etc/sysconfig/afs
- %doc %{_docdir}/openafs-%{afsvers}
- /etc/rc.d/init.d/afs
- 
- %files client
- %defattr(-,root,root)
- %dir /usr/vice
- %dir /usr/vice/cache
- %dir /usr/vice/etc
- %dir /usr/vice/etc/modload
- %config /usr/vice/etc/CellServDB
- %config /usr/vice/etc/SuidCells
- %config /usr/vice/etc/ThisCell
- %config /usr/vice/etc/cacheinfo
- /usr/bin/cmdebug
- /usr/bin/up
- /usr/vice/etc/afsd
- /usr/vice/etc/afsmodname
- /lib/security/pam_afs.krb.so.1
- /lib/security/pam_afs.krb.so
- /lib/security/pam_afs.so.1
- /lib/security/pam_afs.so
- 
- %files server
- %defattr(-,root,root)
- %dir /usr/afs
- %dir /usr/afs/bin
- %dir /usr/afs/logs
- /usr/afs/bin/bosserver
- /usr/afs/bin/buserver
- /usr/afs/bin/fileserver
- # Should we support KAServer?
- /usr/afs/bin/kaserver
- /usr/afs/bin/kpwvalid
- /usr/afs/bin/pt_util
- /usr/afs/bin/ptserver
- /usr/afs/bin/salvager
- /usr/afs/bin/upclient
- /usr/afs/bin/upserver
- /usr/afs/bin/vlserver
- /usr/afs/bin/volinfo
- /usr/afs/bin/volserver
- /usr/sbin/prdb_check
- /usr/sbin/vldb_check
- /usr/sbin/vldb_convert
- 
- %files devel
- %defattr(-,root,root)
- /usr/bin/rxgen
- /usr/include/afs
- /usr/include/des.h
- /usr/include/des_conf.h
- /usr/include/des_odd.h
- /usr/include/lock.h
- /usr/include/lwp.h
- /usr/include/mit-cpyright.h
- /usr/include/potpourri.h
- /usr/include/preempt.h
- /usr/include/rx
- /usr/include/timer.h
- /usr/include/ubik.h
- /usr/include/ubik_int.h
- /usr/lib/afs
- /usr/lib/libafsauthent.a
- /usr/lib/libafsrpc.a
- /usr/lib/libdes.a
- /usr/lib/liblwp.a
- /usr/lib/librx.a
- /usr/lib/librxkad.a
- /usr/lib/librxstat.a
- /usr/lib/libubik.a
- 
- %files kernel
- %defattr(-,root,root)
- /usr/vice/etc/modload/libafs*.o
- /usr/vice/etc/modload/SymTable
- 
- %files kernel-source
- %defattr(-,root,root)
- /usr/src/openafs-kernel-%{afsvers}/LICENSE.IBM
- /usr/src/openafs-kernel-%{afsvers}/LICENSE.Sun
- /usr/src/openafs-kernel-%{afsvers}/README
- /usr/src/openafs-kernel-%{afsvers}/src
- 
- %files compat
- %defattr(-,root,root)
- /usr/afsws
- 
- %files kpasswd
- %defattr(-,root,root)
- /usr/bin/kpasswd
- /usr/bin/kpwvalid
- 
- %if %{krb5support}
- %files krb5
- %defattr(-,root,root)
- /usr/bin/aklog
- /usr/sbin/asetkey
- %endif
--- 0 ----
Index: openafs/src/packaging/RedHat/openafs-LICENSE.Sun
diff -c /dev/null openafs/src/packaging/RedHat/openafs-LICENSE.Sun:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/openafs-LICENSE.Sun	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,9 ----
+ Sun Microsystems' ONC RPC license
+ 
+ Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ unrestricted use provided that this legend is included on all tape
+ media and as a part of the software program in whole or part.  Users
+ may copy or modify Sun RPC without charge, but are not authorized to
+ license or distribute it to anyone else except as part of a product or
+ program developed by the user.
+ 
Index: openafs/src/packaging/RedHat/openafs-buildall.sh
diff -c /dev/null openafs/src/packaging/RedHat/openafs-buildall.sh:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/openafs-buildall.sh	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,95 ----
+ #!/bin/sh
+ #
+ # build all of openafs for all the various kernels installed on this system.
+ #
+ # Written by:  Derek Atkins <warlord@MIT.EDU>
+ #
+ # $Revision: 1.2.2.2 $
+ #
+ 
+ # Define where the Specfile is located.
+ specdir=/usr/src/redhat/SPECS
+ 
+ # Define the rpmbuild options you want to supply.
+ buildopts=
+ 
+ ############################################################################
+ #  Figure out the release version
+ rhrel=`cat /etc/redhat-release`
+ if [ `echo $rhrel | grep -c 'Fedora Core'` = 1 ] ; then
+   ostype='fc'
+ elif [ `echo $rhrel | grep -c 'Red Hat Enterprise Linux'` = 1 ] ; then
+   ostype='rhel'
+   excludearch=i586
+ elif [ `echo $rhrel | grep -c 'Red Hat Linux'` = 1 ] ; then
+   ostype='rh'
+ else
+   echo "Unknown Linux Release: $rhrel"
+   exit 1
+ fi
+ osrel=`echo $rhrel | sed -e 's/^.*release \([^ ]*\).*$/\1/' -e 's/\.//g'`
+ osvers="$ostype$osrel"
+ 
+ ############################################################################
+ # Now figure out the kernel version.  We assume that the running
+ # kernel version is "close enough" to tell us whether it's a
+ # 2.4 or 2.6 kernel.
+ kvers=`uname -r`
+ case $kvers in
+   2.4.*)
+     kbase=/usr/src/linux-
+     kv=2.4.
+     ;;
+   2.6.*)
+     kbase=/usr/src/kernels/
+     kv=2.6.
+     ;;
+   *)
+     echo "I don't know how to build for kernel $kvers"
+     exit 1
+     ;;
+ esac
+ 
+ ############################################################################
+ # Now build the packages and all the kernel modules
+ 
+ echo "Building OpenAFS for $osvers"
+ rpmbuild -ba $buildopts --define "osvers $osvers" $specdir/openafs.spec || \
+   exit 1
+ 
+ kernels=`ls -d ${kbase}${kv}*`
+ 
+ for kerndir in $kernels ; do
+   # Ignore symlinks
+   if [ ! -h $kerndir ] ; then
+     vers=`echo $kerndir | sed -e "s^${kbase}^^g" -e 's/-smp/smp/g' \
+           -e 's/-hugemem/hugemem/g' -e 's/-largesmp/largesmp/g'`
+     if [ $kv = "2.4." ] ; then
+       kvers=$vers
+       case `uname -m` in
+ 	  i386|i486|i586|i686|athlon) archlist="i586 i686 athlon" ;;
+           *) archlist=`uname -m` ;;
+       esac
+       for a in $excludearch ; do
+         archlist=`echo $archlist | sed -e s/$a//`
+       done
+       kend="''"
+     else
+       karch=`echo $vers | sed 's/.*-//'`
+       kvers=`echo $vers | sed s/-$karch//`
+       archlist=$karch
+       kend=-$karch
+     fi
+ 
+     for arch in $archlist ; do
+       echo "Building for $kerndir, $kvers, $arch"
+         rpmbuild -bb $buildopts \
+ 	  --define "osvers $osvers" \
+ 	  --define "kernvers $kvers" \
+ 	  --define "ksrcdir $kerndir" \
+ 	  --define "build_modules 1" \
+ 	  --target=$arch \
+ 	  $specdir/openafs.spec || exit 1
+     done
+   fi
+ done
Index: openafs/src/packaging/RedHat/openafs-client.init
diff -c /dev/null openafs/src/packaging/RedHat/openafs-client.init:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/openafs-client.init	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,83 ----
+ #!/bin/bash
+ #
+ # openafs-client	Start/Stop the OpenAFS Client
+ #
+ # chkconfig: 2345 50 50
+ # description: OpenAFS is a distributed filesystem.
+ #
+ # $Revision: 1.2.2.2 $
+ 
+ . /etc/init.d/functions
+ [ -f /etc/sysconfig/openafs ] && . /etc/sysconfig/openafs
+ 
+ 
+ start() {
+ 	echo -n $"Starting openafs-client: "
+ 	if [ -e /var/lock/subsys/openafs-client ] ; then
+ 		echo -n $"cannot start openafs-client: already running"
+ 		failure $"cannot start openafs-client: already running"
+ 		echo
+ 		return 1
+ 	fi
+ 	modprobe openafs
+ 	RETVAL=$?
+ 	if [ $RETVAL -ne 0 ] ; then
+ 		echo -n $"failed to load openafs kernel module."
+ 		failure $"failed to load openafs kernel module."
+ 		echo
+ 		return $RETVAL
+ 	fi
+ 	/usr/vice/etc/afsd $AFSD_ARGS
+ 	RETVAL=$?
+ 	echo
+ 	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/openafs-client
+ 	return $RETVAL
+ }
+ 
+ stop() {
+ 	echo -n $"Stopping openafs-client: "
+ 	if [ ! -e /var/lock/subsys/openafs-client ] ; then
+ 		echo -n $"cannot stop openafs-client: not running"
+ 		failure $"cannot stop openafs-client: not running"
+ 		echo
+ 		return 1
+ 	fi
+ 	umount /afs
+ 	RETVAL=$?
+ 	echo
+ 	if [ $RETVAL -eq 0 ] ; then
+ 		rm -f /var/lock/subsys/openafs-client
+ 		rmmod openafs
+ 	fi
+ 	return $RETVAL
+ }
+ 
+ rhstatus() {
+ 	status afsd
+ }
+ 
+ restart() {
+ 	stop || exit
+ 	start
+ }
+ 
+ case "$1" in
+   start)
+         start
+         ;;
+   stop)
+         stop
+         ;;
+   restart)
+         restart
+         ;;
+   status)
+         rhstatus
+         ;;
+   condrestart)
+         [ -f /var/lock/subsys/openafs-client ] && restart || :
+         ;;
+   *)
+         echo $"Usage: $0 {start|stop|status|restart|condrestart}"
+         exit 1
+ esac
Index: openafs/src/packaging/RedHat/openafs-kernel-version.sh
diff -c /dev/null openafs/src/packaging/RedHat/openafs-kernel-version.sh:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/openafs-kernel-version.sh	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,49 ----
+ #!/bin/sh
+ #
+ # investigate the name of the kernel
+ #
+ # $Revision: 1.2.2.2 $
+ 
+ if [ "x$1" = "x" ] ; then
+     kernvers=`uname -r`
+     if [ ! -d /lib/modules/$kernvers/build/include ] ; then
+         kernvers=`/bin/ls /lib/modules/*/build/include/linux/version.h | \
+         cut -d/ -f4 | \
+         sort -u | \
+         tail -1`
+     fi
+ else
+     kernvers=$1
+ fi
+ 
+ if [ -z "$kernvers" ]; then echo "unable to determine kernel version" >&2; exit 1; fi
+ 
+ # strip "kernel-" off of the front
+ if expr "$kernvers" : "kernel-" >&/dev/null
+ then
+     kernvers=`expr "$kernvers" : 'kernel-\(.*\)'`
+ fi
+ 
+ # Strip kernel config mnemonic off 2.4 kernels.
+ case $kernvers in
+   2.4.*)
+     # strip kernel config mnemonic off of the tail
+     case "$kernvers" in
+       *smp)
+          kernvers=`expr "$kernvers" : '\(.*\)smp'`
+          ;;
+       *bigmem)
+          kernvers=`expr "$kernvers" : '\(.*\)bigmem'`
+          ;;
+       *hugemem)
+          kernvers=`expr "$kernvers" : '\(.*\)hugemem'`
+          ;;
+       *enterprise)
+          kernvers=`expr "$kernvers" : '\(.*\)enterprise'`
+          ;;
+     esac
+     ;;
+ esac
+ 
+ echo $kernvers
+ exit 0
Index: openafs/src/packaging/RedHat/openafs-krb5-2.0.tar.gz
Index: openafs/src/packaging/RedHat/openafs-kvers-is.sh
diff -c /dev/null openafs/src/packaging/RedHat/openafs-kvers-is.sh:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/openafs-kvers-is.sh	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,43 ----
+ #!/bin/sh
+ # Small helper script for parsing kernel versions and types
+ # $Revision: 1.2.2.2 $
+ 
+ if [ "$1" = "parsev" ] ; then
+   #logger "parsing version from $2"
+   echo "$2" | /bin/sed -e 's/^\([0-9]*\.[0-9]*\)\..*/\1/'
+   exit 0
+ fi
+ 
+ if [ "$1" = "parset" ] ; then
+   #logger "parsing type from $2"
+   echo "$2" | /bin/sed -e 's/^.*[0-9L]\([^0-9L]*\)/\1/'
+   exit 0
+ fi
+ 
+ if [ "$1" = "kvers" ] ; then
+   #logger "parsing type from $2"
+   echo "$2" | /bin/sed -e 's/^\(.*[0-9L]\)[^0-9L]*$/\1/'
+   exit 0
+ fi
+ 
+ if [ "$1" = "find" ] ; then
+   f=`find "$2"/configs -name \*-"$3"-"$4".config`
+   if [ -n "$f" ] ; then
+     echo 1
+     exit 1
+   else
+     echo 0
+     exit 0
+   fi
+ fi
+ 
+ #logger "comparing $1 to $2"
+ if [ "$1" = "$2" ] ; then
+   #logger "yes"
+   echo 1
+   exit 1
+ else
+   #logger "no"
+   echo 0
+   exit 0
+ fi
Index: openafs/src/packaging/RedHat/openafs-makesrc.sh
diff -c /dev/null openafs/src/packaging/RedHat/openafs-makesrc.sh:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/openafs-makesrc.sh	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,34 ----
+ #!/bin/sh
+ #
+ # openafs-makesrc -- convert a 2.6 'kernel' package into something
+ #   you can install into /usr/src/kernels
+ #
+ # Written by:  Derek Atkins <warlord@MIT.EDU>
+ #
+ # $Revision: 1.2.2.2 $
+ 
+ kerndir=/usr/src/kernels
+ 
+ [ -d $kerndir ] || mkdir -p -m 0755 $kerndir
+ umask 022
+ while [ -n "$1" ] ; do
+   rpm=$1
+   name=`rpm -qp $rpm`
+   vers=`echo $name | sed -e 's/kernel-[^0-9]*\([0-9].*\)$/\1/'`
+   smp=`echo $name | sed -e 's/kernel-\([^0-9]*\)[0-9].*$/\1/' -e s/-//`
+   arch=`echo $rpm | sed 's/.*\.\([^\.]*\)\.rpm$/\1/'`
+ 
+   kd=$kerndir/$vers$smp-$arch
+   if [ ! -d $kd ] ; then
+     echo "converting `basename $rpm` to $kd"
+     rpm2cpio $rpm | ( cd $kerndir ; cpio --quiet -imd \*lib/modules/\*/build/\* )
+     mv $kerndir/lib/modules/*/build $kd
+     chmod 755 $kd
+     rmdir $kerndir/lib/modules/*
+     rmdir $kerndir/lib/modules
+     rmdir $kerndir/lib
+   else
+     echo "$kd already exists.  Ignoring."
+   fi
+   shift
+ done
Index: openafs/src/packaging/RedHat/openafs-server.init
diff -c /dev/null openafs/src/packaging/RedHat/openafs-server.init:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/openafs-server.init	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,80 ----
+ #!/bin/bash
+ #
+ # openafs-server	Start/Stop the OpenAFS Server
+ #
+ # chkconfig: 2345 49 51
+ # description: OpenAFS is a distributed filesystem.
+ #
+ # $Revision: 1.2.2.2 $
+ 
+ . /etc/init.d/functions
+ [ -f /etc/sysconfig/openafs ] && . /etc/sysconfig/openafs
+ 
+ 
+ start() {
+ 	echo -n $"Starting openafs-server: "
+ 	if [ -e /var/lock/subsys/openafs-server ] ; then
+ 		echo -n $"cannot start openafs-server: already running"
+ 		failure $"cannot start openafs-server: already running"
+ 		echo
+ 		return 1
+ 	fi
+ 	/usr/afs/bin/bosserver $BOSSERVER_ARGS
+ 	RETVAL=$?
+ 	echo
+ 	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/openafs-server
+ 	return $RETVAL
+ }
+ 
+ stop() {
+ 	echo -n $"Stopping openafs-server: "
+ 	if [ ! -e /var/lock/subsys/openafs-server ] ; then
+ 		echo -n $"cannot stop openafs-server: not running"
+ 		failure $"cannot stop openafs-server: not running"
+ 		echo
+ 		return 1
+ 	fi
+ 	/usr/bin/bos shutdown localhost -wait -localauth
+ 	RETVAL=$?
+ 	if [ $RETVAL -ne 0 ] ; then
+ 		echo -n $"failed to shutdown OpenAFS"
+ 		failure $"failed to shutdown OpenAFS"
+ 		echo
+ 		return $RETVAL
+ 	fi
+ 	killproc bosserver
+ 	RETVAL=$?
+ 	echo
+ 	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/openafs-server
+ 	return $RETVAL
+ }
+ 
+ rhstatus() {
+ 	status bosserver
+ }
+ 
+ restart() {
+ 	stop || exit
+ 	start
+ }
+ 
+ case "$1" in
+   start)
+         start
+         ;;
+   stop)
+         stop
+         ;;
+   restart)
+         restart
+         ;;
+   status)
+         rhstatus
+         ;;
+   condrestart)
+         [ -f /var/lock/subsys/openafs-server ] && restart || :
+         ;;
+   *)
+         echo $"Usage: $0 {start|stop|status|restart|condrestart}"
+         exit 1
+ esac
Index: openafs/src/packaging/RedHat/openafs.spec.in
diff -c /dev/null openafs/src/packaging/RedHat/openafs.spec.in:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/openafs.spec.in	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,1491 ----
+ # Openafs Spec $Revision: 1.2.2.2 $
+ 
+ %define afsvers 1.4.2
+ %define pkgvers 1.4.2
+ %define pkgrel 1
+ 
+ %if %{?osvers:0}%{!?osvers:1}
+ %define osvers 1
+ %endif
+ 
+ # Determine presence of rpmbuild command line --define arguments used for
+ # option specification
+ %define kernvers_on_cmdline %{?kernvers:1}%{!?kernvers:0}
+ %define build_userspace_on_cmdline %{?build_userspace:1}%{!?build_userspace:0}
+ %define build_modules_on_cmdline %{?build_modules:1}%{!?build_modules:0}
+ 
+ # Determine the version of the kernel to build against
+ # - automatically select the latest kernel with sources from /lib/modules
+ # - note that this can be overridden on the command line
+ #
+ %if !%{kernvers_on_cmdline}
+ %define kernvers %(%{_sourcedir}/openafs-kernel-version.sh)
+ %endif
+ %define kversis %{_sourcedir}/openafs-kvers-is.sh
+ %define kvers %(%{kversis} parsev %{kernvers})
+ %define kvers_is_24 %(%{kversis} %{kvers} "2.4")
+ %define kvers_is_26 %(%{kversis} %{kvers} "2.6")
+ %define ktype %(%{kversis} parset %{kernvers})
+ %define kversion %(%{kversis} kvers %{kernvers})
+ 
+ # This is where to look for kernel build include files.  Default
+ # is /lib/modules/<kvers>/build, but you can define kbase and
+ # kend on the commandline to change that.
+ #
+ %if %{?kbase:0}%{!?kbase:1}
+ %define kbase /lib/modules/
+ %endif
+ %if %{?kend:0}%{!?kend:1}
+ %define kend /build
+ %endif
+ # Let the buildscript define the ksrcdir directly -- needed for RHEL4
+ %if %{?ksrcdir:0}%{!?ksrcdir:1}
+ %define ksrcdir %{kbase}%{kernvers}%{kend}
+ %endif
+ 
+ %if %{?kmoddir:0}%{!?kmoddir:1}
+ %define kmoddir /lib/modules
+ %endif
+ %define kxmoddir %{kmoddir}/%{kernvers}
+ 
+ # Set 'debugspec' to 1 if you want to debug the spec file.  This will
+ # not remove the installed tree as part of the %clean operation
+ %if %{?debugspec:0}%{!?debugspec:1}
+ %define debugspec 0
+ %endif
+ 
+ # Set 'krb5support' to 1 if you want to build the openafs-krb5 package
+ # to distribute aklog and asetkey
+ %define krb5support %{?_without_krb5:0}%{!?_without_krb5:1}
+ 
+ # Set 'bootkernelsupport' to 1 if you want to build the
+ # kernel module for Red Hat BOOT Kernels on x86.
+ %define bootkernelsupport %{?_with_bootkernel:1}%{!?_with_bootkernel:0}
+ 
+ # Define the location of your init.d directory
+ %define initdir /etc/init.d
+ 
+ # Define the location of the PAM security module directory
+ %define pamdir /%{_lib}/security
+ 
+ # Define the set of kernel module variations to be built:
+ # For 2.4 kernels we just build everything at once for a particular
+ # kernel.   So we build up, smp, and bigmem all at once.
+ # For 2.6 kernels we have to build against the specific kernel headers
+ # for a particular kernel variation.  AFS will handle the specific smp or
+ # non-smp determination.  So just always build as if it's "up" -- the kernel
+ # version will have the 'variation' type already in the version #.
+ 
+ %define up_package 0
+ %define smp_package 0
+ %define bigmem_package 0
+ %define hugemem_package 0
+ %define largesmp_package 0
+ 
+ #######################################################################
+ # 2.4
+ %if %{kvers_is_24}
+ %define kdepend kernel-source
+ %define up_package 1
+ %define smp_package 1
+ %define largesmp_package 1
+ %define smp_ext smp
+ %define largesmp_ext largesmp
+ 
+ %define bigmem_package %(%{kversis} find %{ksrcdir} %{_target_cpu} bigmem) 
+ %if %{bigmem_package}
+ %define bigmem_ext bigmem
+ %endif
+ 
+ %define hugemem_package %(%{kversis} find %{ksrcdir} %{_target_cpu} hugemem) 
+ %if %{hugemem_package}
+ %define hugemem_ext hugemem
+ %endif
+ 
+ %define kvariations up smp largesmp %{?bigmem_ext:%{bigmem_ext}} %{?hugemem_ext:%{hugemem_ext}}
+ 
+ #######################################################################
+ # 2.6
+ %else
+ %if %{kvers_is_26}
+ %define kvariations up
+ %define up_package %(%{kversis} "%{ktype}" "")
+ %define smp_package %(%{kversis} "%{ktype}" "smp")
+ %define largesmp_package %(%{kversis} "%{ktype}" "largesmp")
+ %define hugemem_package %(%{kversis} "%{ktype}" "hugemem")
+ 
+ %if !%{up_package} && !%{smp_package} && !%{hugemem_package} && !%{largesmp_package}
+ %error "unknown kernel type: %{ktype}"
+ %endif
+ 
+ %if !%{kernvers_on_cmdline}
+ %define kdepend %{ksrcdir}/include/linux/version.h
+ %endif
+ 
+ #######################################################################
+ # other kernels?
+ %else
+ %error "unknown kernel version: ${kvers} (parsed from %{kernvers})"
+ %endif
+ %endif
+ 
+ #######################################################################
+ # You probably don't need to change anything beyond this line
+ # NOTE: If you do, please email me!!!
+ 
+ # Determine which elements of OpenAFS to build.  For non-x86 arches
+ # (subject to the ExclusiveArch setting, below), we build both userspace
+ # and modules.  For most x86 arches, we build just the kernel modules.  For
+ # i386, we build just the userspace.  If you're running an i386 kernel,
+ # you'll need to tweak that last bit.
+ %if !%{build_userspace_on_cmdline} && !%{build_modules_on_cmdline}
+ 
+ %ifarch x86_64 ia64
+ %define build_userspace 1
+ %define build_modules 1
+ %endif
+ 
+ %ifarch %{ix86}
+ %define build_userspace 0
+ %define build_modules 1
+ %endif
+ 
+ %ifarch i386
+ %define build_userspace 1
+ %define build_modules 0
+ %endif
+ 
+ %endif
+ 
+ # deal with cmdline specification
+ %if %{build_userspace_on_cmdline} || %{build_modules_on_cmdline}
+ %if !%{build_userspace_on_cmdline}
+ %define build_userspace 0
+ %endif
+ %if !%{build_modules_on_cmdline}
+ %define build_modules 0
+ %endif
+ %endif
+ 
+ # Make sure RPM doesn't complain about installed but non-packaged files.
+ #define __check_files  %{nil}
+ 
+ Summary: OpenAFS distributed filesystem
+ Name: openafs
+ Version: %{pkgvers}
+ Release: %{osvers}.%{pkgrel}
+ License: IBM Public License
+ URL: http://www.openafs.org
+ BuildRoot: %{_tmppath}/%{name}-%{version}-root
+ Packager: Derek Atkins <warlord@MIT.EDU>
+ Group: Networking/Filesystems
+ BuildRequires: %{?kdepend:%{kdepend}, } pam-devel
+ ExclusiveArch: %{ix86} x86_64 ia64
+ 
+ #    http://dl.openafs.org/dl/openafs/candidate/%{afsvers}/...
+ Source0: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-src.tar.bz2
+ Source1: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-doc.tar.bz2
+ %define srcdir openafs-%{afsvers}
+ 
+ Source2: openafs-ThisCell
+ # http://grand.central.org/dl/cellservdb/CellServDB
+ Source3: openafs-CellServDB
+ Source4: openafs-SuidCells
+ Source5: openafs-cacheinfo
+ # Source6: openafs-afsmodname
+ Source7: openafs-LICENSE.Sun
+ Source8: openafs-README
+ Source10: http://www.openafs.org/dl/openafs/%{afsvers}/RELNOTES-%{afsvers}
+ Source11: http://www.openafs.org/dl/openafs/%{afsvers}/ChangeLog
+ 
+ Source15: openafs.sysconfig
+ Source16: openafs-client.init
+ Source17: openafs-server.init
+ 
+ #  from ftp://ftp.cmf.nrl.navy.mil/pub/kerberos5/afs-krb5-2.0.tar.gz
+ Source20: openafs-krb5-2.0.tar.gz
+ 
+ Source30: openafs-kernel-version.sh
+ Source31: openafs-buildall.sh
+ Source32: openafs-makesrc.sh
+ Source33: openafs-kvers-is.sh
+ 
+ Patch0:  openafs-1.4.0-kmodule26.patch
+ #Patch1:  openafs-1.4.1-moduleparam.patch
+ 
+ Patch10: afs-krb5-2.0-krb524.patch
+ Patch11: afs-krb5-2.0-libsocket.patch
+ Patch12: afs-krb5-2.0-com_err.patch
+ Patch13: afs-krb5-2.0-openafs1.3.patch
+ Patch14: afs-krb5-2.0-res_search.patch
+ 
+ %description
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides common files shared across all the various
+ OpenAFS packages but are not necessarily tied to a client or server.
+ 
+ The OpenAFS SRPM can be rebuilt with the following options to control
+ what gets built:
+ 
+  --define "kernvers 2.4.20-1.1376_FC3" Specify the specific kernel version 
+                                   to build modules against. The default is
+                                   to build against the currently-running
+                                   kernel.
+  --define "kbase /lib/modules/"   The base location to look for kernel headers
+  --define "kend /build"           The 'end' location to look for kernels
+                                   The build will define ksrvdir as
+                                   %%{kbase}<kernvers>%%{kend}
+ 
+  --without krb5                   Disable krb5 support (default: with krb5)
+  --with bitmap-later              Enable "bitmap later" support
+  --with bos-restricted            Enable "bos restricted" mode
+  --with fast-restart              Enable "fast restart" mode
+  --with largefiles                Enable "largefile fileserver" mode
+  --with supergroups               Enable "supergroups"
+ 
+  --target=i386                    The target architecture to build for.
+                                   When building for a non-default target
+                                   the build may choose whether to build
+                                   userspace or kernel modules automatically.
+                                   The defaults are probably what you want.
+ 
+  --define "build_userspace 1"     Request building of userspace tools
+  --define "build_modules 1"       Request building of kernel modules
+                                   You probably never need to specify these.
+ 
+  --define "kmoddir /lib/modules"  This is the base location where modules
+                                   will be installed.  You probably don't
+                                   need to change this ever.
+ 
+ To a kernel module for your running kernel, just run:
+   rpmbuild --rebuild --target=`uname -m` openafs-%{pkgvers}-%{osvers}.%{pkgrel}.src.rpm
+ 
+ ##############################################################################
+ #
+ # build the userspace side of things if so requested
+ #
+ ##############################################################################
+ %if %{build_userspace}
+ 
+ %package client
+ Requires: binutils, openafs-kernel, openafs = %{PACKAGE_VERSION}
+ Summary: OpenAFS Filesystem Client
+ Group: Networking/Filesystem
+ 
+ %description client
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides basic client support to mount and manipulate
+ AFS.
+ 
+ %package server
+ Requires: openafs = %{PACKAGE_VERSION}
+ Summary: OpenAFS Filesystem Server
+ Group: Networking/Filesystems
+ 
+ %description server
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides basic server support to host files in an AFS
+ Cell.
+ 
+ %package authlibs
+ Summary: OpenAFS authentication shared libraries
+ Group: Networking/Filesystems
+ 
+ %description authlibs
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides a shared version of libafsrpc and libafsauthent. 
+ None of the programs included with OpenAFS currently use these shared 
+ libraries; however, third-party software that wishes to perform AFS 
+ authentication may link against them.
+ 
+ %package authlibs-devel
+ Requires: openafs-authlibs = %{PACKAGE_VERSION}
+ Requires: openafs-devel = %{PACKAGE_VERSION}
+ Summary: OpenAFS shared library development
+ Group: Development/Filesystems
+ 
+ %description authlibs-devel
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package includes the static versions of libafsrpc and 
+ libafsauthent, and symlinks required for building against the dynamic 
+ libraries.
+ 
+ %package devel
+ Summary: OpenAFS Development Libraries and Headers
+ Group: Development/Filesystems
+ 
+ %description devel
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides static development libraries and headers needed
+ to compile AFS applications.  Note: AFS currently does not provide
+ shared libraries.
+ 
+ %package docs
+ Summary: OpenAFS user and administrator documentation
+ Requires: openafs = %{PACKAGE_VERSION}
+ Group: Networking/Filesystems
+ 
+ %description docs
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides HTML documentation for OpenAFS users and system
+ administrators.
+ 
+ %package kernel-source
+ Summary: OpenAFS Kernel Module source tree
+ Group: Networking/Filesystems
+ Provides: openafs-kernel = %{PACKAGE_VERSION}
+ 
+ %description kernel-source
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides the source code to build your own AFS kernel
+ module.
+ 
+ %package compat
+ Summary: OpenAFS client compatibility symlinks
+ Requires: openafs = %{PACKAGE_VERSION}, openafs-client = %{PACKAGE_VERSION}
+ Group: Networking/Filesystems
+ Obsoletes: openafs-client-compat
+ 
+ %description compat
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides compatibility symlinks in /usr/afsws.  It is
+ completely optional, and is only necessary to support legacy
+ applications and scripts that hard-code the location of AFS client
+ programs.
+ 
+ %package kpasswd
+ Summary: OpenAFS KA kpasswd support
+ Requires: openafs
+ Group: Networking/Filesystems
+ 
+ %description kpasswd
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides the compatibility symlink for kpasswd, in case
+ you are using KAserver instead of Krb5.
+ 
+ %if %{krb5support}
+ %package krb5
+ Summary: OpenAFS programs to use with krb5
+ Requires: openafs = %{PACKAGE_VERSION}
+ Group: Networking/Filesystems
+ BuildRequires: krb5-devel
+ 
+ %description krb5
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides compatibility programs so you can use krb5
+ to authenticate to AFS services, instead of using AFS's homegrown
+ krb4 lookalike services.
+ %endif
+ 
+ %endif
+ 
+ ##############################################################################
+ #
+ # build the kernel modules if so requested
+ #
+ ##############################################################################
+ %if %{build_modules}
+ 
+ %define modkversion %(echo %{kernvers} | cut -d- -f1)
+ %define modkrelease %(echo %{kernvers} | cut -d- -f2)
+ %define modpkgrel %{modkversion}_%{modkrelease}_%{pkgrel}
+ 
+ %if %{up_package}
+ %package kernel
+ Summary: OpenAFS Kernel Module (compiled for UP)
+ Release: %{modpkgrel}
+ Provides: openafs-kernel = %{PACKAGE_VERSION}
+ Requires: kernel = %{kversion}
+ Group: Networking/Filesystems
+ 
+ %description kernel
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides a precompiled AFS kernel module for %{kernvers}.
+ %endif
+ 
+ %if %{smp_package}
+ %package kernel-smp
+ Summary: OpenAFS Kernel Module (compiled for SMP)
+ Release: %{modpkgrel}
+ Provides: openafs-kernel = %{PACKAGE_VERSION}
+ Requires: kernel-smp = %{kversion}
+ Group: Networking/Filesystems
+ 
+ %description kernel-smp
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides a precompiled AFS kernel module for %{kernvers}.
+ %endif
+ 
+ %if %{largesmp_package}
+ %package kernel-largesmp
+ Summary: OpenAFS Kernel Module (compiled for LARGESMP)
+ Release: %{modpkgrel}
+ Provides: openafs-kernel = %{PACKAGE_VERSION}
+ Requires: kernel-largesmp = %{kversion}
+ Group: Networking/Filesystems
+ 
+ %description kernel-largesmp
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides a precompiled AFS kernel module for %{kernvers}.
+ %endif
+  
+ %if %{bigmem_package}
+ %package kernel-bigmem
+ Summary: OpenAFS Kernel Module (compiled for SMP & big memory support)
+ Release: %{modpkgrel}
+ Provides: openafs-kernel = %{PACKAGE_VERSION}
+ Requires: kernel-bigmem = %{kversion}
+ Group: Networking/Filesystems
+ 
+ %description kernel-bigmem
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides a precompiled AFS kernel module for %{kernvers}.
+ %endif
+ 
+ %if %{hugemem_package}
+ %package kernel-hugemem
+ Summary: OpenAFS Kernel Module (compiled for SMP & huge memory support)
+ Release: %{modpkgrel}
+ Provides: openafs-kernel = %{PACKAGE_VERSION}
+ Requires: kernel-hugemem = %{kversion}
+ Group: Networking/Filesystems
+ 
+ %description kernel-hugemem
+ The AFS distributed filesystem.  AFS is a distributed filesystem
+ allowing cross-platform sharing of files among multiple computers.
+ Facilities are provided for access control, authentication, backup and
+ administrative management.
+ 
+ This package provides a precompiled AFS kernel module for %{kernvers}.
+ %endif
+ 
+ %endif
+ 
+ ##############################################################################
+ #
+ # PREP
+ #
+ ##############################################################################
+ 
+ %prep
+ 
+ : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ : @@@
+ : @@@ kernel version:     %{kernvers}
+ : @@@ base kernel version:%{kversion}
+ : @@@ kernel modules dir: %{kxmoddir}
+ : @@@ kernel source dir:  %{ksrcdir}
+ %if %{kvers_is_24}
+ : @@@ kernel variations:  %{kvariations}
+ %else
+ %if %{up_package}
+ : @@@ kernel type:        up
+ %else
+ : @@@ kernel type:        %{ktype}
+ %endif
+ %endif
+ : @@@ PAM modules dir:    %{pamdir}
+ : @@@ build userspace:    %{build_userspace}
+ : @@@ build modules:      %{build_modules}
+ : @@@ arch:               %{_arch}
+ : @@@ target cpu:         %{_target_cpu}
+ : @@@
+ : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ 
+ # Install OpenAFS src and doc
+ #%setup -q -n %{srcdir}
+ %setup -q -b 1 -n %{srcdir}
+ 
+ # Patch openafs to build a kernel module named "openafs" instead of "libafs"
+ %patch0 -p1 -b .kmod26
+ 
+ # Patch to work around the Linux 2.6.9 module_param function
+ #%patch1 -p0 -b .modparam
+ 
+ %if %{build_userspace}
+ # Save some time -- install these if we're building userspace
+ 
+ # Install the Krb5 Migration Kit
+ %setup -q -T -D -a 20 -n %{srcdir}
+ 
+ #
+ # patch afs-krb5 migration kit to work with openafs-1.3 and krb5-1.3;
+ # add some features and fix bugs
+ #
+ 
+ # krb524 is no longer in a separate library as of krb5-1.3; handle this
+ %patch10 -p0 -b .krb524
+ 
+ # make sure NETLIBS gets added to the proper programs (seems to be 
+ # needed only for Solaris)
+ %patch11 -p0 -b .libsocket
+ 
+ # find an existing libcom_err and use that
+ %patch12 -p0 -b .com_err
+ 
+ # make afs-krb5 work with recent OpenAFS; includes and prototypes
+ %patch13 -p0 -b .openafs13
+ 
+ # nothing in afs-krb5 actually uses res_search
+ %patch14 -p0 -b .res_search
+ 
+ (cd afs-krb5/src && autoreconf) || exit 1
+ 
+ %endif
+ 
+ 
+ ##############################################################################
+ #
+ # building
+ #
+ ##############################################################################
+ %build
+ 
+ case %{kernvers} in
+    2.4.*)
+        kv='24'
+        ;;
+    2.6.*)
+        kv='26'
+        ;;
+    *)
+        echo "I don't know how to build linux-`expr ${kernvers} : \(^[0-9]*[.][0-9]*\)`"
+        exit 1
+        ;;
+ esac
+ 
+ case %{_arch} in
+        x86_64)                         sysname=amd64_linux${kv}        ;;
+        alpha*)                         sysname=alpha_linux_${kv}       ;;
+        i386|i486|i586|i686|athlon)     sysname=i386_linux${kv}         ;;
+        *)                              sysname=%{_arch}_linux${kv}     ;;
+ esac
+ 
+ %ifarch %{ix86}
+ archlist="i386 i586 i686 athlon"
+ %if %{bootkernelsupport}
+   archlist="${archlist} BOOT"
+ %endif
+ %else
+ archlist=%{_arch}
+ %endif
+ 
+ #
+ # PrintDefine var value statements file
+ #
+ PrintDefine() {
+     case $3 in
+     *ifn*)
+ 	echo "#ifndef $1" >> $4
+ 	;;
+     esac
+     case $3 in
+     *und*)
+ 	echo "#undef $1" >> $4
+ 	;;
+     esac
+     case $3 in
+     *def*)
+ 	echo "#define $1 $2" >> $4
+ 	;;
+     esac
+     case $3 in
+     *end*)
+ 	echo "#endif" >> $4
+ 	;;
+     esac
+     case $3 in
+     *inc*)
+ 	echo "#include $1" >> $4
+ 	;;
+     esac
+     case $3 in
+     *nl*)
+ 	echo "" >> $4
+ 	;;
+     esac
+ }
+ 
+ # PrintRedhatKernelFix arch mp file
+ PrintRedhatKernelFix() {
+     arch="$1"
+     up=0
+     smp=0
+     largesmp=0
+     ent=0
+     bigmem=0
+     hugemem=0
+     boot=0
+     bootsmp=0
+ 
+     case "$2" in
+        up)     up=1;;
+        smp)    smp=1;;
+        largesmp) largesmp=1;;
+        bigmem) bigmem=1;;
+        hugemem) hugemem=1;;
+        *)
+                echo "$2 not supported"
+                exit 2;;
+     esac
+ 
+     file="$3"
+ 
+     rm -f $file
+     touch $file
+ 
+     PrintDefine "REDHAT_FIX_H" "" ifn,def,nl $file
+ 
+     PrintDefine __BOOT_KERNEL_ENTERPRISE $ent     und,def,nl $file
+     PrintDefine __BOOT_KERNEL_BIGMEM     $bigmem  und,def,nl $file
+     PrintDefine __BOOT_KERNEL_HUGEMEM    $hugemem und,def,nl $file
+     PrintDefine __BOOT_KERNEL_SMP        $smp     und,def,nl $file
+     PrintDefine __BOOT_KERNEL_LARGESMP   $largesmp und,def,nl $file
+     PrintDefine __BOOT_KERNEL_UP         $up      und,def,nl $file
+     PrintDefine __BOOT_KERNEL_BOOT       $boot    und,def,nl $file
+     PrintDefine __BOOT_KERNEL_BOOTSMP    $bootsmp und,def,nl $file
+ 
+     PrintDefine '"/boot/kernel.h"' "" inc,nl $file	# include file
+ 
+     for ar in $archlist ; do
+ 	if [ "$ar" = "$arch" ]; then
+ 	    PrintDefine "__MODULE_KERNEL_$ar" "1" ifn,def,end $file
+ 	else
+ 	    PrintDefine "__MODULE_KERNEL_$ar" "" und $file	# undef
+         fi
+     done
+     echo "" >> $file
+ 
+     PrintDefine "" "" end $file
+ 
+     if [ %{debugspec} = 1 ] ; then
+ 	echo "Kernel Configuration File for Red Hat kernels:"
+ 	cat $file
+     fi
+ }
+ 
+ config_opts="--enable-redhat-buildsys \
+ 	%{?_with_bitmap_later:--enable-bitmap-later} \
+ 	%{?_with_bos_restricted:--enable-bos-restricted-mode} \
+ 	%{?_with_fast_restart:--enable-fast-restart} \
+ 	%{?_with_largefiles:--enable-largefile-fileserver} \
+ 	%{?_with_supergroups:--enable-supergroups} \
+ 	--enable-transarc-paths"
+ 
+ # Configure AFS
+ 
+ CFLAGS="$RPM_OPT_FLAGS"; export CFLAGS
+ 
+ ./configure --with-afs-sysname=${sysname} \
+        --prefix=%{_prefix} \
+        --libdir=%{_libdir} \
+        --bindir=%{_bindir} \
+        --sbindir=%{_sbindir} \
+        --with-linux-kernel-headers=%{ksrcdir} \
+ %if %{krb5support}
+ 	--with-krb5-conf \
+ %endif
+        $config_opts \
+        || exit 1
+ 
+ %if %{build_userspace}
+ # Build the user-space AFS stuff
+ make dest_nolibafs || exit 1
+ 
+ # Build the libafs tree
+ make only_libafs_tree || exit 1
+ 
+ %if %{krb5support}
+ # Now build ka-forwarder
+ (cd afs-krb5/src &&
+ 	./configure --prefix=%{_prefix} --with-krb5=%{_prefix}/kerberos \
+                --libdir=%{_libdir} \
+                --bindir=%{_bindir} \
+                --sbindir=%{_sbindir} \
+                --with-afs=`pwd`/../../${sysname}/dest/ && \
+ 	make all PROGS="ka-forwarder" && \
+ 	install -c -s ka-forwarder `pwd`/../../${sysname}/dest/etc ) \
+ 	|| exit 1
+ %endif
+ 
+ %endif
+ 
+ %if %{build_modules}
+ %if %{kvers_is_24}
+ # Build all the kernel modules for linux 2.4.x
+ for variation in %{kvariations}
+ do
+     if [ ${variation} = up ]
+     then
+        local_smp_def=-DREDHAT_FIX
+        suffix=
+     else
+        local_smp_def="-DAFS_SMP -DREDHAT_FIX"
+        suffix=${variation}
+     fi
+ 
+     PrintRedhatKernelFix %{_target_cpu} $variation src/config/redhat-fix.h
+     make dest_only_libafs LOCAL_SMP_DEF="${local_smp_def}" \
+ 	LINUX_MODULE_NAME="${suffix}" MPS=SP
+ 
+ done
+ rm -f src/config/redhat-fix.h
+ 
+ %elseif %{kvers_is_26}
+ # Build the kernel module for this version of linux 2.6.x
+ # Notice how much easier this is than 2.4.  On the other hand,
+ # we require much more external support to build multiple modules.
+ 
+   # the MPS=SP just means that we don't add a '.mp' to the name.
+   make dest_only_libafs MPS=SP
+ 
+ %endif
+ %endif
+ 
+ 
+ ##############################################################################
+ #
+ # installation
+ #
+ ##############################################################################
+ %install
+ 
+ export DONT_GPRINTIFY=1
+ 
+ [ $RPM_BUILD_ROOT != / ] && rm -rf $RPM_BUILD_ROOT
+ 
+ case %{kernvers} in
+    2.4.*)
+        kv='24'
+        kmodend=.o
+        ;;
+    2.6.*)
+        kv='26'
+        kmodend=.ko
+        ;;
+    *)
+        echo "I don't know how to build linux-`expr ${kernvers} : \(^[0-9]*[.][0-9]*\)`"
+        exit 1
+        ;;
+ esac
+ 
+ case %{_arch} in
+        x86_64)                         sysname=amd64_linux${kv}        ;;
+        alpha*)                         sysname=alpha_linux_${kv}       ;;
+        i386|i486|i586|i686|athlon)     sysname=i386_linux${kv}         ;;
+        *)                              sysname=%{_arch}_linux${kv}     ;;
+ esac
+ 
+ # Build install tree
+ %if %{build_userspace}
+ mkdir -p $RPM_BUILD_ROOT%{_sbindir}
+ mkdir -p $RPM_BUILD_ROOT%{_libdir}
+ mkdir -p $RPM_BUILD_ROOT/etc/sysconfig
+ mkdir -p $RPM_BUILD_ROOT%{initdir}
+ mkdir -p $RPM_BUILD_ROOT/etc/openafs
+ mkdir -p $RPM_BUILD_ROOT%{pamdir}
+ mkdir -p $RPM_BUILD_ROOT%{_prefix}/afs/etc
+ mkdir -p $RPM_BUILD_ROOT%{_prefix}/afs/logs
+ mkdir -p $RPM_BUILD_ROOT%{_prefix}/vice/etc
+ mkdir -p $RPM_BUILD_ROOT%{_prefix}/vice/cache
+ chmod 700 $RPM_BUILD_ROOT%{_prefix}/vice/cache
+ mkdir -p $RPM_BUILD_ROOT%{_mandir}
+ 
+ # Copy files from dest to the appropriate places in BuildRoot
+ tar cf - -C ${sysname}/dest bin include | tar xf - -C $RPM_BUILD_ROOT%{_prefix}
+ tar cf - -C ${sysname}/dest/lib . | tar xf - -C $RPM_BUILD_ROOT%{_libdir}
+ tar cf - -C ${sysname}/dest/etc . | tar xf - -C $RPM_BUILD_ROOT%{_sbindir}
+ tar cf - -C ${sysname}/dest/root.server%{_prefix}/afs bin | tar xf - -C $RPM_BUILD_ROOT%{_prefix}/afs
+ tar cf - -C ${sysname}/dest/root.client%{_prefix}/vice/etc afsd | tar xf - -C $RPM_BUILD_ROOT%{_prefix}/vice/etc
+ 
+ # Link kpasswd to kapasswd
+ ln -f $RPM_BUILD_ROOT%{_bindir}/kpasswd $RPM_BUILD_ROOT%{_bindir}/kapasswd
+ 
+ # Copy root.client config files
+ install -m 755 %{SOURCE15} $RPM_BUILD_ROOT/etc/sysconfig/openafs
+ install -m 755 %{SOURCE16} $RPM_BUILD_ROOT%{initdir}/openafs-client
+ install -m 755 %{SOURCE17} $RPM_BUILD_ROOT%{initdir}/openafs-server
+ 
+ # Copy PAM modules
+ install -m 755 ${sysname}/dest/lib/pam* $RPM_BUILD_ROOT%{pamdir}
+ 
+ # PAM symlinks
+ ln -sf pam_afs.so.1 $RPM_BUILD_ROOT%{pamdir}/pam_afs.so
+ ln -sf pam_afs.krb.so.1 $RPM_BUILD_ROOT%{pamdir}/pam_afs.krb.so
+ 
+ # Populate /usr/vice/etc
+ uve=$RPM_BUILD_ROOT%{_prefix}/vice/etc
+ install -p -m 644 %{SOURCE2} $uve/ThisCell
+ install -p -m 644 %{SOURCE3} $uve/CellServDB
+ install -p -m 644 %{SOURCE4} $uve/SuidCells
+ install -p -m 644 %{SOURCE5} $uve/cacheinfo
+ 
+ #
+ # install kernel-source
+ #
+ 
+ # Install the kernel module source tree
+ mkdir -p $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/src
+ tar cf - -C libafs_tree . | \
+ 	tar xf - -C $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/src
+ 
+ # Next, copy the LICENSE Files, README
+ install -m 644 src/LICENSE $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.IBM
+ install -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.Sun
+ install -m 644 %{SOURCE8} $RPM_BUILD_ROOT%{_prefix}/src/openafs-kernel-%{afsvers}/README
+ 
+ #
+ # Install DOCUMENTATION
+ #
+ 
+ # Build the DOC directory
+ mkdir -p $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
+ tar cf - -C doc LICENSE html pdf | \
+     tar xf - -C $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
+ install -m 644 %{SOURCE10} $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
+ install -m 644 %{SOURCE11} $RPM_BUILD_ROOT/$RPM_DOC_DIR/openafs-%{afsvers}
+ 
+ #
+ # man pages
+ #
+ tar cf - -C doc/man-pages man1 man5 man8 | \
+     tar xf - -C $RPM_BUILD_ROOT%{_mandir}
+ 
+ # Copy the uninstalled krb5 files (or delete the unused krb5 files)
+ %if %{krb5support}
+ mv $RPM_BUILD_ROOT%{_prefix}/afs/bin/asetkey $RPM_BUILD_ROOT%{_sbindir}/asetkey
+ %else
+ rm -f $RPM_BUILD_ROOT%{_mandir}/man8/asetkey.*
+ %endif
+ 
+ # remove unused man pages
+ for x in afs_ftpd afs_inetd afs_login afs_rcp afs_rlogind afs_rsh \
+     dkload knfs package runntp; do
+ 	rm -f $RPM_BUILD_ROOT%{_mandir}/man1/${x}.1
+ done
+ 
+ # rename kpasswd to kapasswd
+ mv $RPM_BUILD_ROOT%{_mandir}/man1/kpasswd.1 $RPM_BUILD_ROOT%{_mandir}/man1/kapasswd.1
+ 
+ # gzip man pages
+ gzip -9 $RPM_BUILD_ROOT%{_mandir}/man*/*
+ 
+ # create list of man pages that go in the 'openafs' package
+ /bin/ls $RPM_BUILD_ROOT%{_mandir}/man1 \
+ 	|egrep '^afs|^fs|^kas|^klog|kapasswd|pagsh|^pts|^rxdebug|scout|^sys|tokens|translate|udebug|unlog|^uss|^vos' \
+ 	>openafs-man1files
+ 
+ /bin/ls $RPM_BUILD_ROOT%{_mandir}/man5 \
+ 	|egrep 'CellServDB|ThisCell|afsmonitor|^butc|^uss' \
+ 	>openafs-man5files
+ 
+ /bin/ls $RPM_BUILD_ROOT%{_mandir}/man8 \
+ 	|egrep '^backup|^bos|^butc|^fms|^fstrace|^kas|^uss' \
+ 	>openafs-man8files
+ 
+ #
+ # create filelist
+ #
+ grep -v "^#" >openafs-file-list <<EOF-openafs-file-list
+ %{_bindir}/afsmonitor
+ %{_bindir}/bos
+ %{_bindir}/fs
+ %{_bindir}/kapasswd
+ %{_bindir}/kpasswd
+ %{_bindir}/klog
+ %{_bindir}/klog.krb
+ %{_bindir}/pagsh
+ %{_bindir}/pagsh.krb
+ %{_bindir}/pts
+ %{_bindir}/scout
+ %{_bindir}/sys
+ %{_bindir}/tokens
+ %{_bindir}/tokens.krb
+ %{_bindir}/translate_et
+ %{_bindir}/udebug
+ %{_bindir}/unlog
+ %{_sbindir}/backup
+ %{_sbindir}/butc
+ %{_sbindir}/copyauth
+ %{_sbindir}/fms
+ %{_sbindir}/fstrace
+ %{_sbindir}/kas
+ %{_sbindir}/kseal
+ %{_sbindir}/read_tape
+ %{_sbindir}/restorevol
+ %{_sbindir}/rxdebug
+ %{_sbindir}/uss
+ %{_sbindir}/vos
+ %{_sbindir}/vsys
+ EOF-openafs-file-list
+ 
+ # add man pages to the list
+ cat openafs-man1files \
+ 	| ( while read x; do echo "%{_mandir}/man1/$x"; done ) \
+ 	>>openafs-file-list
+ cat openafs-man5files \
+ 	| ( while read x; do echo "%{_mandir}/man5/$x"; done ) \
+ 	>>openafs-file-list
+ cat openafs-man8files \
+ 	| ( while read x; do echo "%{_mandir}/man8/$x"; done ) \
+ 	>>openafs-file-list
+ 
+ #
+ # Install compatiblity links
+ #
+ for d in bin:bin etc:sbin; do
+   olddir=`echo $d | sed 's/:.*$//'`
+   newdir=`echo $d | sed 's/^.*://'`
+   mkdir -p $RPM_BUILD_ROOT%{_prefix}/afsws/$olddir
+   for f in `cat openafs-file-list`; do
+     if echo $f | grep -q /$newdir/; then
+       fb=`basename $f`
+       ln -sf %{_prefix}/$newdir/$fb $RPM_BUILD_ROOT%{_prefix}/afsws/$olddir/$fb
+     fi
+   done
+ done
+ 
+ #
+ # Remove files we're not installing
+ #
+ 
+ # remove duplicated files from /usr/afs/bin
+ for f in bos fs kas klog klog.krb kpwvalid pts tokens tokens.krb udebug vos ; do
+   rm -f $RPM_BUILD_ROOT%{_prefix}/afs/bin/$f
+ done
+ 
+ # compile_et is duplicated in e2fsprogs
+ # the rest are not needed.
+ for f in compile_et dlog dpass install knfs livesys xstat_cm_test xstat_fs_test ; do
+   rm -f $RPM_BUILD_ROOT%{_bindir}/$f
+ done
+ 
+ # not supported on Linux or duplicated
+ for f in kdb rmtsysd kpwvalid ; do
+   rm -f $RPM_BUILD_ROOT%{_sbindir}/$f
+ done
+ rm -f $RPM_BUILD_ROOT%{_sbindir}/kdump*
+ 
+ # remove man pages from programs deleted above
+ for f in 1/dlog 1/dpass 1/livesys 1/xstat_cm_test 1/xstat_fs_test 8/kdb 8/kpwvalid 8/xfs_size_check 1/package_test 5/package 8/package ; do
+   rm -f $RPM_BUILD_ROOT%{_mandir}/man$f.*
+ done
+ 
+ # PAM modules are doubly-installed  Remove the version we don't need
+ for f in pam_afs.krb.so.1 pam_afs.so.1 ; do
+   rm -f $RPM_BUILD_ROOT%{_libdir}/$f
+ done
+ 
+ # Remove empty files from the krb5 migration
+ for f in afs2k5db fakeka ; do
+   rm -f $RPM_BUILD_ROOT%{_sbindir}/$f
+ done
+ 
+ %endif
+ 
+ %if %{build_modules}
+ # Install the kernel modules
+ for variation in %{kvariations}
+ do
+     if [ ${variation} = up ]
+     then
+        kvar=%{kxmoddir}
+        modname=libafs-%{kernvers}${kmodend}
+     else
+        kvar=%{kxmoddir}${variation}
+        modname=libafs-%{kernvers}${variation}${kmodend}
+     fi
+ 
+     srcdir=${sysname}/dest/root.client%{_prefix}/vice/etc/modload
+     dstdir=$RPM_BUILD_ROOT${kvar}/kernel/fs/openafs
+ 
+     mkdir -p ${dstdir}
+ 
+     # Mark kernel modules as executable; otherwise they won't get stripped 
+     # by /usr/lib/rpm/brp-strip
+     install -m 744 ${srcdir}/${modname} ${dstdir}/openafs${kmodend}
+ done
+ %endif
+ 
+ ##############################################################################
+ ###
+ ### clean
+ ###
+ ##############################################################################
+ %clean
+ rm -f openafs-file-list
+ [ "$RPM_BUILD_ROOT" != "/" -a "x%{debugspec}" != "x1" ] && \
+ 	rm -fr $RPM_BUILD_ROOT
+ 
+ 
+ ##############################################################################
+ ###
+ ### scripts
+ ###
+ ##############################################################################
+ %if %{build_userspace}
+ 
+ %pre compat
+ if [ -e %{_prefix}/afsws ]; then
+         /bin/rm -fr %{_prefix}/afsws
+ fi
+ 
+ %post client
+ chkconfig --add openafs-client
+ if [ ! -d /afs ]; then
+ 	mkdir /afs
+ 	chown root.root /afs
+ 	chmod 0755 /afs
+ fi
+ 
+ echo
+ echo The AFS cache is configured for 100 MB. Edit the
+ echo /usr/vice/etc/cacheinfo file to change this before
+ echo running AFS for the first time. You should also
+ echo set your home cell in /usr/vice/etc/ThisCell.
+ echo
+ echo Also, you may want to edit /etc/pam.d/login and
+ echo possibly others there to get an AFS token on login.
+ echo Put the line:
+ echo 
+ echo    auth	   sufficient   %{pamdir}/pam_afs.so try_first_pass ignore_root
+ echo
+ echo before the one for pwdb.
+ echo
+ 
+ %post server
+ chkconfig --add openafs-server
+ %{initdir}/openafs-server condrestart
+ 
+ %post authlibs
+ /sbin/ldconfig
+ 
+ %postun authlibs
+ /sbin/ldconfig
+ 
+ %preun
+ if [ $1 = 0 ] ; then
+ 	[ -d /afs ] && rmdir /afs
+ fi
+ 
+ %preun client
+ if [ $1 = 0 ] ; then
+         %{initdir}/openafs-client stop
+         chkconfig --del openafs-client
+ fi
+ 
+ %preun server
+ if [ $1 = 0 ] ; then
+         %{initdir}/openafs-server stop
+         chkconfig --del openafs-server
+ fi
+ 
+ %endif
+ 
+ %if %{build_modules}
+ 
+ %if %{up_package}
+ %post kernel
+ /sbin/depmod -ae %{kernvers}
+ 
+ %postun kernel
+ /sbin/depmod -ae %{kernvers}
+ 
+ %endif
+ 
+ %if %{smp_package}
+ %post kernel-smp
+ /sbin/depmod -ae %{kernvers}%{?smp_ext:%{smp_ext}}
+ 
+ %postun kernel-smp
+ /sbin/depmod -ae %{kernvers}%{?smp_ext:%{smp_ext}}
+ %endif
+ 
+ %if %{largesmp_package}
+ %post kernel-largesmp
+ /sbin/depmod -ae %{kernvers}%{?largesmp_ext:%{largesmp_ext}}
+ 
+ %postun kernel-largesmp
+ /sbin/depmod -ae %{kernvers}%{?largesmp_ext:%{largesmp_ext}}
+ %endif
+  
+ %if %{bigmem_package}
+ %post kernel-bigmem
+ /sbin/depmod -ae %{kernvers}%{?bigmem_ext:%{bigmem_ext}}
+ 
+ %postun kernel-bigmem
+ /sbin/depmod -ae %{kernvers}%{?bigmem_ext:%{bigmem_ext}}
+ %endif
+ 
+ %if %{hugemem_package}
+ %post kernel-hugemem
+ /sbin/depmod -ae %{kernvers}%{?hugemem_ext:%{hugemem_ext}}
+ 
+ %postun kernel-hugemem
+ /sbin/depmod -ae %{kernvers}%{?hugemem_ext:%{hugemem_ext}}
+ %endif
+ 
+ %endif
+ 
+ 
+ ##############################################################################
+ ###
+ ### file lists
+ ###
+ ##############################################################################
+ %if %{build_userspace}
+ 
+ %files -f openafs-file-list
+ %defattr(-,root,root)
+ %config /etc/sysconfig/openafs
+ %doc %{_docdir}/openafs-%{afsvers}/LICENSE
+ 
+ %files docs
+ %defattr(-,root,root)
+ %doc %{_docdir}/openafs-%{afsvers}
+ 
+ %files client
+ %defattr(-,root,root)
+ %dir %{_prefix}/vice
+ %dir %{_prefix}/vice/cache
+ %dir %{_prefix}/vice/etc
+ %config %{_prefix}/vice/etc/CellServDB
+ %config %{_prefix}/vice/etc/SuidCells
+ %config %{_prefix}/vice/etc/ThisCell
+ %config %{_prefix}/vice/etc/cacheinfo
+ %{_bindir}/cmdebug
+ %{_bindir}/up
+ %{_prefix}/vice/etc/afsd
+ %{pamdir}/pam_afs.krb.so.1
+ %{pamdir}/pam_afs.krb.so
+ %{pamdir}/pam_afs.so.1
+ %{pamdir}/pam_afs.so
+ %{initdir}/openafs-client
+ %{_mandir}/man1/cmdebug.*
+ %{_mandir}/man1/up.*
+ %{_mandir}/man5/afs*
+ %{_mandir}/man5/cacheinfo.*
+ %{_mandir}/man8/afsd.*
+ 
+ %files server
+ %defattr(-,root,root)
+ %dir %{_prefix}/afs
+ %dir %{_prefix}/afs/bin
+ %dir %{_prefix}/afs/etc
+ %dir %{_prefix}/afs/logs
+ %{_prefix}/afs/bin/bosserver
+ %{_prefix}/afs/bin/bos_util
+ %{_prefix}/afs/bin/buserver
+ %{_prefix}/afs/bin/fileserver
+ # Should we support KAServer?
+ %{_prefix}/afs/bin/kaserver
+ %{_prefix}/afs/bin/pt_util
+ %{_prefix}/afs/bin/ptserver
+ %{_prefix}/afs/bin/salvager
+ %{_prefix}/afs/bin/upclient
+ %{_prefix}/afs/bin/upserver
+ %{_prefix}/afs/bin/vlserver
+ %{_prefix}/afs/bin/volinfo
+ %{_prefix}/afs/bin/volserver
+ %{_sbindir}/kadb_check
+ %{_sbindir}/prdb_check
+ %{_sbindir}/vldb_check
+ %{_sbindir}/vldb_convert
+ %{_sbindir}/voldump
+ %{initdir}/openafs-server
+ %{_mandir}/man5/AuthLog.*
+ %{_mandir}/man5/BackupLog.*
+ %{_mandir}/man5/BosConfig.*
+ %{_mandir}/man5/BosLog.*
+ %{_mandir}/man5/FORCESALVAGE.*
+ %{_mandir}/man5/FileLog.*
+ %{_mandir}/man5/KeyFile.*
+ %{_mandir}/man5/NetInfo.*
+ %{_mandir}/man5/NetRestrict.*
+ %{_mandir}/man5/NoAuth.*
+ %{_mandir}/man5/SALVAGE.fs.*
+ %{_mandir}/man5/SalvageLog.*
+ %{_mandir}/man5/sysid.*
+ %{_mandir}/man5/UserList.*
+ %{_mandir}/man5/VLLog.*
+ %{_mandir}/man5/VolserLog.*
+ %{_mandir}/man5/bdb.DB0.*
+ %{_mandir}/man5/fms.log.*
+ %{_mandir}/man5/kaserver.DB0.*
+ %{_mandir}/man5/kaserverauxdb.*
+ %{_mandir}/man5/prdb.DB0.*
+ %{_mandir}/man5/salvage.lock.*
+ %{_mandir}/man5/tapeconfig.*
+ %{_mandir}/man5/vldb.DB0.*
+ %{_mandir}/man8/buserver.*
+ %{_mandir}/man8/fileserver.*
+ %{_mandir}/man8/kadb_check.*
+ %{_mandir}/man8/prdb_check.*
+ %{_mandir}/man8/ptserver.*
+ %{_mandir}/man8/salvager.*
+ %{_mandir}/man8/upclient.*
+ %{_mandir}/man8/upserver.*
+ %{_mandir}/man8/vldb_check.*
+ %{_mandir}/man8/vlserver.*
+ %{_mandir}/man8/voldump.*
+ %{_mandir}/man8/volinfo.*
+ %{_mandir}/man8/volserver.*
+ #%{_mandir}/man8/vldb_convert.*
+ 
+ %files authlibs
+ %defattr(-,root,root)
+ %{_libdir}/libafsauthent.so.*
+ %{_libdir}/libafsrpc.so.*
+ 
+ %files authlibs-devel
+ %defattr(-,root,root)
+ %{_libdir}/libafsauthent.a
+ %{_libdir}/libafsauthent.so
+ %{_libdir}/libafsrpc.a
+ %{_libdir}/libafsrpc.so
+ 
+ %files devel
+ %defattr(-,root,root)
+ %{_bindir}/rxgen
+ %{_includedir}/afs
+ %{_includedir}/des.h
+ %{_includedir}/des_conf.h
+ %{_includedir}/des_odd.h
+ %{_includedir}/des_prototypes.h
+ %{_includedir}/lock.h
+ %{_includedir}/lwp.h
+ %{_includedir}/mit-cpyright.h
+ %{_includedir}/potpourri.h
+ %{_includedir}/preempt.h
+ %{_includedir}/rx
+ %{_includedir}/timer.h
+ %{_includedir}/ubik.h
+ %{_includedir}/ubik_int.h
+ %{_libdir}/afs
+ %{_libdir}/libdes.a
+ %{_libdir}/liblwp.a
+ %{_libdir}/librx.a
+ %{_libdir}/librxkad.a
+ %{_libdir}/librxstat.a
+ %{_libdir}/libubik.a
+ %{_mandir}/man1/rxgen.*
+ 
+ %files kernel-source
+ %defattr(-,root,root)
+ %{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.IBM
+ %{_prefix}/src/openafs-kernel-%{afsvers}/LICENSE.Sun
+ %{_prefix}/src/openafs-kernel-%{afsvers}/README
+ %{_prefix}/src/openafs-kernel-%{afsvers}/src
+ 
+ %files compat
+ %defattr(-,root,root)
+ %{_prefix}/afsws
+ 
+ %files kpasswd
+ %defattr(-,root,root)
+ %{_bindir}/kpasswd
+ %{_bindir}/kpwvalid
+ 
+ %if %{krb5support}
+ %files krb5
+ %defattr(-,root,root)
+ %{_bindir}/aklog
+ %{_sbindir}/asetkey
+ %{_sbindir}/ka-forwarder
+ %{_mandir}/man1/aklog.*
+ %{_mandir}/man8/asetkey.*
+ %endif
+ 
+ %endif
+ 
+ %if %{build_modules}
+ 
+ %if %{up_package}
+ %files kernel
+ %defattr(-,root,root)
+ %{kxmoddir}/kernel/fs/openafs/openafs.*
+ %endif
+ 
+ %if %{smp_package}
+ %files kernel-smp
+ %defattr(-,root,root)
+ %{kxmoddir}%{?smp_ext:%{smp_ext}}/kernel/fs/openafs/openafs.*
+ %endif
+ 
+ %if %{largesmp_package}
+ %files kernel-largesmp
+ %defattr(-,root,root)
+ %{kxmoddir}%{?largesmp_ext:%{largesmp_ext}}/kernel/fs/openafs/openafs.*
+ %endif
+  
+ %if %{bigmem_package}
+ %files kernel-bigmem
+ %defattr(-,root,root)
+ %{kxmoddir}%{?bigmem_ext:%{bigmem_ext}}/kernel/fs/openafs/openafs.*
+ %endif
+ 
+ %if %{hugemem_package}
+ %files kernel-hugemem
+ %defattr(-,root,root)
+ %{kxmoddir}%{?hugemem_ext:%{hugemem_ext}}/kernel/fs/openafs/openafs.*
+ %endif
+ 
+ %endif
+ 
+ ##############################################################################
+ ###
+ ### openafs.spec change log
+ ###
+ ##############################################################################
+ %changelog
+ * Sun Aug 20 2006  Derrick Brashear <shadow@dementia.org> 1.4.2-1
+ - update to 1.4.2
+ - use installed aklog manpage.
+ - moduleparam patch obsoleted.
+ 
+ * Tue Apr 18 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-2
+ - fix the module_param_array macro for Linux 2.6.9.
+ 
+ * Sat Apr 15 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1-1
+ - update to 1.4.1 release.
+ - distribute asetkey from openafs instead of krb5-migration kit
+ - don't need to apply the FC5 patches because they are part of the distro.
+ - install asetkey into the "proper" place
+ - dont list a manpage twice.
+ - package asetkey man page.  delete it when not needed.
+ 
+ * Thu Apr  6 2006  Derek Atkins <warlord@MIT.EDU>
+ - turn authlibs back on, because RT #18767 was applied to CVS.
+ 
+ * Wed Mar 29 2006  Derek Atkins <warlord@MIT.EDU> 1.4.1rc10-1
+ - update to 1.4.1rc10, build on FC5
+ - fix the man pages (distribute into various packages)
+ - include patches for FC5, RT #29112 and #29122
+ 
+ * Mon Dec 19 2005  Derek Atkins <warlord@MIT.EDU>
+ - openafs-server shouldn't depend on the kernel module.
+ 
+ * Thu Nov 17 2005  Derek Atkins <warlord@MIT.EDU>
+ - patch from Mike Polek <mike at pictage.com> to run depmod for
+   the target kernel and not the running kernel.
+ 
+ * Tue Nov  8 2005  Derek Atkins <warlord@MIT.EDU>
+ - build aklog from the openafs sources, not from the krb5 migration kit.
+ 
+ * Fri Nov  4 2005  Derek Atkins <warlord@MIT.EDU>
+ - set openafs-kernel-source to Provide openafs-kernel
+ 
+ * Thu Oct 20 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0-1
+ - update afs-krb5 res_search patch: look for res_search and __res_search
+ - update to 1.4.0 final
+ 
+ * Mon Oct 10 2005  Derek Atkins <warlord@MIT.EDU>
+ - remove all kdump builds.
+ 
+ * Thu Oct  6 2005  Derek Atkins <warlord@MIT.EDU>
+ - fix openafs-kernel-version.sh so it will build an RPM for the
+   currently-running kernel even if it's smp on 2.6.
+ 
+ * Tue Sep 27 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc5-1
+ - upgrade to 1.4.0rc5
+ - turn off authlibs packages
+ 
+ * Fri Sep 23 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc4-2
+ - add kmodule26 patch: fix the kernel module name on 2.6 kernels so
+   it's called "openafs" and not "libafs".  This fixes the shutdown
+   problem.
+ 
+ * Thu Sep 22 2005  Derek Atkins <warlord@MIT.EDU>
+ - update kversis script, add 'kvers' operation
+ - fix bug that 2.6 smp/hugemem kernels don't provide
+   kernel-foo = %{kernvers} with 'smp', 'hugemem', etc.
+ - add patch to remove res_search from the afs-krb5 configure
+ 
+ * Thu Sep 15 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc4-1
+ - Update to 1.4.0rc4
+ - Update the afs-krb5 krb524 patch so it actually works on
+   some older systems like RHEL3 that still need -lkrb524.
+ - Update the buildall script so choose better architecture support,
+   e.g. don't build i586 on RHEL.
+ - Update the rebuild information in the SPEC file.
+ - Add support for finding .EL kernels in openafs-kvers-is.sh
+ - Add additional error messages when kernel version/type parsing fails.
+ - Update the buildall script to use the kernel srcdir directly.
+ 
+ * Wed Sep 14 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc3-2
+ - Add "hugemem" to 2.4 configs
+ - Add checks to support scripts to determine whether to build
+   the bigmem and/or hugemem kernels for 2.4.
+ 
+ * Mon Sep 12 2005  Derek Atkins <warlord@MIT.EDU> 1.4.0rc3-1
+ - Added some afs-krb5 patches to get the migration kit to build
+   on modern AFS and modern Kerberos.
+ - Added authlibs and authlibs-devel packages as per UMich changes.
+ 
+ * Sun Sep 11 2005  Derek Atkins <warlord@MIT.EDU>
+ - Merged in some of the 2.6 changes from wingc@engin.umich.edu
+ 
+ * Sat Sep 10 2005  Derek Atkins <warlord@MIT.EDU>
+ - Merged in lots of changes from David Howells and Nalin Dahyabhai
+   from Red Hat.   Initial attempt at a release of 1.4.  Still need
+   to work in a 2.6 build system.
Index: openafs/src/packaging/RedHat/openafs.sysconfig
diff -c /dev/null openafs/src/packaging/RedHat/openafs.sysconfig:1.2.2.2
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/packaging/RedHat/openafs.sysconfig	Mon Aug 21 16:11:40 2006
***************
*** 0 ****
--- 1,5 ----
+ # OpenAFS Client Configuration
+ AFSD_ARGS="-dynroot -fakestat"
+ 
+ # OpenAFS Server Configuration
+ BOSSERVER_ARGS=
Index: openafs/src/rx/rx_kcommon.c
diff -c openafs/src/rx/rx_kcommon.c:1.56.2.1 openafs/src/rx/rx_kcommon.c:1.56.2.2
*** openafs/src/rx/rx_kcommon.c:1.56.2.1	Mon Jul 31 11:09:09 2006
--- openafs/src/rx/rx_kcommon.c	Thu Aug 31 00:52:16 2006
***************
*** 15,21 ****
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/rx_kcommon.c,v 1.56.2.1 2006/07/31 15:09:09 shadow Exp $");
  
  #include "rx/rx_kcommon.h"
  
--- 15,21 ----
  #include "afs/param.h"
  
  RCSID
!     ("$Header: /cvs/openafs/src/rx/rx_kcommon.c,v 1.56.2.2 2006/08/31 04:52:16 shadow Exp $");
  
  #include "rx/rx_kcommon.h"
  
***************
*** 124,129 ****
--- 124,130 ----
      return rxi_GetHostUDPSocket(htonl(INADDR_ANY), port);
  }
  
+ #if !defined(AFS_LINUX26_ENV)
  void
  osi_Panic(msg, a1, a2, a3)
       char *msg;
***************
*** 132,138 ****
  	msg = "Unknown AFS panic";
  
      printf(msg, a1, a2, a3);
! #ifdef AFS_LINUX24_ENV
      * ((char *) 0) = 0; 
  #else
      panic(msg);
--- 133,139 ----
  	msg = "Unknown AFS panic";
  
      printf(msg, a1, a2, a3);
! #ifdef AFS_LINUX20_ENV
      * ((char *) 0) = 0; 
  #else
      panic(msg);
***************
*** 261,266 ****
--- 262,274 ----
  
      osi_Panic(buf);
  }
+ #else
+ void
+ osi_AssertFailK(const char *expr, const char *file, int line)
+ {
+     printk(KERN_CRIT "assertion failed: %s, file: %s, line: %d\n", expr, file, line);
+ }
+ #endif
  
  #ifndef UKERNEL
  /* This is the server process request loop. Kernel server
Index: openafs/src/rx/rx_prototypes.h
diff -c openafs/src/rx/rx_prototypes.h:1.29.4.1 openafs/src/rx/rx_prototypes.h:1.29.4.3
*** openafs/src/rx/rx_prototypes.h:1.29.4.1	Mon Jun 12 17:56:23 2006
--- openafs/src/rx/rx_prototypes.h	Thu Aug 31 00:52:16 2006
***************
*** 337,343 ****
  extern void rxk_shutdownPorts(void);
  extern osi_socket rxi_GetUDPSocket(u_short port);
  extern osi_socket rxi_GetHostUDPSocket(u_int host, u_short port);
! extern void osi_Panic();
  extern int osi_utoa(char *buf, size_t len, unsigned long val);
  extern void rxi_InitPeerParams(register struct rx_peer *pp);
  extern void shutdown_rxkernel(void);
--- 337,350 ----
  extern void rxk_shutdownPorts(void);
  extern osi_socket rxi_GetUDPSocket(u_short port);
  extern osi_socket rxi_GetHostUDPSocket(u_int host, u_short port);
! #if defined(KERNEL) && defined(AFS_LINUX26_ENV)
! #define osi_Panic(msg...) do { printk(KERN_CRIT "openafs: " msg); BUG(); } while (0)
! #undef osi_Assert
! #define osi_Assert(expr) \
!     do { if (!(expr)) { osi_AssertFailK(#expr, __FILE__, __LINE__); BUG(); } } while (0)
! #else
! extern void osi_Panic();       /* leave without args till stdarg rewrite */
! #endif
  extern int osi_utoa(char *buf, size_t len, unsigned long val);
  extern void rxi_InitPeerParams(register struct rx_peer *pp);
  extern void shutdown_rxkernel(void);
***************
*** 568,574 ****
  extern osi_socket rxi_GetUDPSocket(u_short port);
  extern void osi_AssertFailU(const char *expr, const char *file, int line);
  extern int rx_getAllAddr(afs_int32 * buffer, int maxSize);
- extern void osi_Panic();	/* leave without args till stdarg rewrite */
  extern void rxi_InitPeerParams(struct rx_peer *pp);
  
  #if defined(AFS_AIX32_ENV) && !defined(KERNEL)
--- 575,580 ----
Index: openafs/src/rxgen/rpc_main.c
diff -c openafs/src/rxgen/rpc_main.c:1.23.4.1 openafs/src/rxgen/rpc_main.c:1.23.4.2
*** openafs/src/rxgen/rpc_main.c:1.23.4.1	Mon Jul  3 15:07:15 2006
--- openafs/src/rxgen/rpc_main.c	Thu Aug 24 11:55:20 2006
***************
*** 37,43 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/rxgen/rpc_main.c,v 1.23.4.1 2006/07/03 19:07:15 shadow Exp $");
  
  #include <limits.h>
  #include <stdio.h>
--- 37,43 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/rxgen/rpc_main.c,v 1.23.4.2 2006/08/24 15:55:20 shadow Exp $");
  
  #include <limits.h>
  #include <stdio.h>
***************
*** 478,483 ****
--- 478,484 ----
      f_print(fout, "#ifndef	SOCK_DGRAM  /* XXXXX */\n");
      f_print(fout, "#include \"h/socket.h\"\n");
      f_print(fout, "#endif\n");
+     f_print(fout, "struct ubik_client;\n");
      f_print(fout, "#ifndef	DTYPE_SOCKET  /* XXXXX */\n");
      f_print(fout, "#ifndef AFS_LINUX22_ENV\n");
      f_print(fout, "#include \"h/file.h\"\n");
Index: openafs/src/shlibafsauthent/Makefile.in
diff -c openafs/src/shlibafsauthent/Makefile.in:1.15 openafs/src/shlibafsauthent/Makefile.in:1.15.4.1
*** openafs/src/shlibafsauthent/Makefile.in:1.15	Sat Dec 10 13:28:03 2005
--- openafs/src/shlibafsauthent/Makefile.in	Sun Aug 20 16:17:09 2006
***************
*** 274,280 ****
  ${DESTDIR}${libdir}/${LIBAFSAUTHENT}: ${LIBAFSAUTHENT}
  	${INSTALL} ${LIBAFSAUTHENT} ${DESTDIR}${libdir}/${LIBAFSAUTHENT}
  	-ln -f -s ${LIBAFSAUTHENT} ${DESTDIR}${libdir}/libafsauthent.${SHLIB_SUFFIX}
! 	-ln -f -s ${LIBAFSAUTHENT} ${DESTDIR}${libdir}/libafsauthent.${SHLIB_SUFFIX}.${LIBFASAUTHENTMAJOR}
  
  ${TOP_LIBDIR}/${LIBAFSAUTHENT}: ${LIBAFSAUTHENT}
  	${INSTALL} ${LIBAFSAUTHENT} ${TOP_LIBDIR}/${LIBAFSAUTHENT}
--- 274,280 ----
  ${DESTDIR}${libdir}/${LIBAFSAUTHENT}: ${LIBAFSAUTHENT}
  	${INSTALL} ${LIBAFSAUTHENT} ${DESTDIR}${libdir}/${LIBAFSAUTHENT}
  	-ln -f -s ${LIBAFSAUTHENT} ${DESTDIR}${libdir}/libafsauthent.${SHLIB_SUFFIX}
! 	-ln -f -s ${LIBAFSAUTHENT} ${DESTDIR}${libdir}/libafsauthent.${SHLIB_SUFFIX}.${LIBAFSAUTHENTMAJOR}
  
  ${TOP_LIBDIR}/${LIBAFSAUTHENT}: ${LIBAFSAUTHENT}
  	${INSTALL} ${LIBAFSAUTHENT} ${TOP_LIBDIR}/${LIBAFSAUTHENT}
Index: openafs/src/shlibafsrpc/Makefile.in
diff -c openafs/src/shlibafsrpc/Makefile.in:1.22.4.2 openafs/src/shlibafsrpc/Makefile.in:1.22.4.3
*** openafs/src/shlibafsrpc/Makefile.in:1.22.4.2	Wed Jul  5 14:36:14 2006
--- openafs/src/shlibafsrpc/Makefile.in	Sun Aug 20 18:23:06 2006
***************
*** 149,154 ****
--- 149,156 ----
  		${SHLIB_LINKER} -o ${LIBAFSRPC} ${LIBOBJS} -bE:${srcdir}/afsrpc.exp ${MT_LIBS};; \
  	sun*_5*) \
  		${SHLIB_LINKER} -h libafsrpc.${SHLIB_SUFFIX}.${LIBAFSRPCMAJOR} -o ${LIBAFSRPC} ${LIBOBJS} ${MT_LIBS};; \
+ 	amd64_linux*) \
+ 		${SHLIB_LINKER} -Wl,-h,libafsrpc.${SHLIB_SUFFIX}.${LIBAFSRPCMAJOR} -Wl,--version-script=${srcdir}/mapfile.afs_xdr -o ${LIBAFSRPC} ${LIBOBJS} ${MT_LIBS};; \
  	*_linux*) \
  		${SHLIB_LINKER} -Wl,-h,libafsrpc.${SHLIB_SUFFIX}.${LIBAFSRPCMAJOR} -Wl,--version-script=${srcdir}/mapfile -o ${LIBAFSRPC} ${LIBOBJS} ${MT_LIBS};; \
  	*) \
***************
*** 282,288 ****
  #
  #   $ what /opt/langtools/bin/pxdb32
  #   /opt/langtools/bin/pxdb32:
! #           HP92453-02 A.10.0A HP-UX SYMBOLIC DEBUGGER (PXDB) $Revision: 1.22.4.2 $
  #
  # The problem occurs when -g and -O are both used when compiling des.c.
  # The simplest way to work around the problem is to leave out either -g or -O.
--- 284,290 ----
  #
  #   $ what /opt/langtools/bin/pxdb32
  #   /opt/langtools/bin/pxdb32:
! #           HP92453-02 A.10.0A HP-UX SYMBOLIC DEBUGGER (PXDB) $Revision: 1.22.4.3 $
  #
  # The problem occurs when -g and -O are both used when compiling des.c.
  # The simplest way to work around the problem is to leave out either -g or -O.
Index: openafs/src/shlibafsrpc/mapfile.afs_xdr
diff -c /dev/null openafs/src/shlibafsrpc/mapfile.afs_xdr:1.1.2.1
*** /dev/null	Wed Sep  6 21:51:14 2006
--- openafs/src/shlibafsrpc/mapfile.afs_xdr	Sun Aug 20 18:23:06 2006
***************
*** 0 ****
--- 1,144 ----
+ # 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
+ 
+ {
+     global:
+ 	des_check_key_parity;
+ 	des_fixup_key_parity;
+ 	des_init_random_number_generator;
+ 	des_is_weak_key;
+ 	des_key_sched;
+ 	des_random_key;
+ 	des_string_to_key;
+ 	des_cbc_cksum;
+ 	des_ecb_encrypt;
+ 	des_pcbc_encrypt;
+ 	ktohl;
+ 	life_to_time;
+ 	rx_DestroyConnection;
+ 	rx_EndCall;
+ 	rx_Finalize;
+ 	rx_GetCachedConnection;
+ 	rx_GetCall;
+ 	rx_GetIFInfo;
+ 	rx_GetSpecific;
+ 	rx_Init;
+ 	rx_KeyCreate;
+ 	rx_NewCall;
+ 	rx_NewConnection;
+ 	rx_NewService;
+ 	rx_PrintPeerStats;
+ 	rx_PrintStats;
+ 	rx_PrintTheseStats;
+ 	rx_ReadProc;
+ 	rx_ReleaseCachedConnection;
+ 	rx_ServerProc;
+ 	rx_SetSpecific;
+ 	rx_StartServer;
+ 	rx_WriteProc;
+ 	rxevent_Init;
+ 	rxevent_Post;
+ 	rxkad_GetServerInfo;
+ 	rxkad_NewClientSecurityObject;
+ 	rxkad_NewServerSecurityObject;
+ 	rxnull_NewClientSecurityObject;
+ 	rxnull_NewServerSecurityObject;
+ 	rxs_Release;
+ 	time_to_life;
+ 	tkt_CheckTimes;
+ 	tkt_DecodeTicket;
+ 	tkt_MakeTicket;
+ 	xdrrx_create;
+ 	hton_syserr_conv;
+ 	rxkad_global_stats;
+ 	rxkad_global_stats_lock;
+ 	rxkad_stats_key;
+ 	com_err;
+ 	error_message;
+ 	rx_socket;
+ 	rxevent_debugFile;
+ 	rx_debugFile;
+ 	rx_connDeadTime;
+ 	rx_maxReceiveSize;
+ 	rx_UdpBufSize;
+ 	rx_extraQuota;
+ 	rx_extraPackets;
+ 	rx_tranquil;
+ 	rx_getAllAddr;
+ 	rx_nWaiting;
+ 	rx_stats;
+ 	rx_SetNoJumbo;
+ 	rx_SetConnDeadTime;
+ 	rx_FlushWrite;
+ 	rx_thread_id_key;
+ 	multi_Finalize;
+ 	multi_Select;
+ 	multi_Init;
+ 	multi_Finalize_Ignore;
+ 	add_to_error_table;
+         afs_xdr_opaque;
+         afs_xdr_string;
+         afs_xdr_short;
+         afs_xdr_bytes;
+         afs_xdr_vector;
+         afs_xdr_int;
+         afs_xdr_void;
+         afs_xdr_long;
+         afs_xdr_u_long;
+         afs_xdr_u_short;
+         afs_xdr_u_int;
+         afs_xdr_char;
+         afs_xdr_u_char;
+         afs_xdr_bool;
+         afs_xdr_enum;
+         afs_xdr_array;
+         afs_xdr_arrayN;
+         afs_xdr_union;
+         afs_xdr_float;
+         afs_xdr_double;
+         afs_xdr_reference;
+         afs_xdr_wrapstring;
+         afs_xdr_pointer;
+ 	xdr_afsUUID;
+ 	xdr_afs_int32;
+ 	xdr_afs_uint32;
+ 	xdr_afs_int64;
+ 	xdr_afs_uint64;
+ 	rx_IncrementTimeAndCount;
+ 	rx_enable_stats;
+ 	rx_GetServerDebug;
+ 	rx_GetServerStats;
+ 	rx_GetServerVersion;
+ 	rx_GetServerConnections;
+ 	rx_stats_mutex;
+ 	rx_GetServerPeers;
+ 	rx_RetrieveProcessRPCStats;
+ 	rx_RetrievePeerRPCStats;
+ 	rx_FreeRPCStats;
+ 	rx_queryProcessRPCStats;
+ 	rx_queryPeerRPCStats;
+ 	rx_enableProcessRPCStats;
+ 	rx_enablePeerRPCStats;
+ 	rx_disableProcessRPCStats;
+ 	rx_disablePeerRPCStats;
+ 	RXSTATS_ExecuteRequest;
+ 	RXSTATS_RetrieveProcessRPCStats;
+ 	RXSTATS_RetrievePeerRPCStats;
+ 	RXSTATS_QueryProcessRPCStats;
+ 	RXSTATS_QueryPeerRPCStats;
+ 	RXSTATS_EnableProcessRPCStats;
+ 	RXSTATS_EnablePeerRPCStats;
+ 	RXSTATS_DisableProcessRPCStats;
+ 	RXSTATS_DisablePeerRPCStats;
+ 	RXSTATS_QueryRPCStatsVersion;
+ 	RXSTATS_ClearProcessRPCStats;
+ 	RXSTATS_ClearPeerRPCStats;
+ 	TM_GetTimeOfDay;
+ 
+     local:
+ 	*;
+ };
Index: openafs/src/sys/pioctl_nt.c
diff -c openafs/src/sys/pioctl_nt.c:1.34.4.2 openafs/src/sys/pioctl_nt.c:1.34.4.3
*** openafs/src/sys/pioctl_nt.c:1.34.4.2	Thu Jul 20 17:46:21 2006
--- openafs/src/sys/pioctl_nt.c	Mon Aug 28 13:18:36 2006
***************
*** 35,41 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/sys/pioctl_nt.c,v 1.34.4.2 2006/07/20 21:46:21 jaltman Exp $");
  
  #include <afs/stds.h>
  #include <windows.h>
--- 35,41 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/sys/pioctl_nt.c,v 1.34.4.3 2006/08/28 17:18:36 jaltman Exp $");
  
  #include <afs/stds.h>
  #include <windows.h>
***************
*** 154,159 ****
--- 154,214 ----
      return debug;
  }
  
+ static DWORD 
+ GetServiceStatus(
+     LPSTR lpszMachineName, 
+     LPSTR lpszServiceName,
+     DWORD *lpdwCurrentState) 
+ { 
+     DWORD           hr               = NOERROR; 
+     SC_HANDLE       schSCManager     = NULL; 
+     SC_HANDLE       schService       = NULL; 
+     DWORD           fdwDesiredAccess = 0; 
+     SERVICE_STATUS  ssServiceStatus  = {0}; 
+     BOOL            fRet             = FALSE; 
+ 
+     *lpdwCurrentState = 0; 
+  
+     fdwDesiredAccess = GENERIC_READ; 
+  
+     schSCManager = OpenSCManager(lpszMachineName,  
+                                  NULL,
+                                  fdwDesiredAccess); 
+  
+     if(schSCManager == NULL) 
+     { 
+         hr = GetLastError();
+         goto cleanup; 
+     } 
+  
+     schService = OpenService(schSCManager,
+                              lpszServiceName,
+                              fdwDesiredAccess); 
+  
+     if(schService == NULL) 
+     { 
+         hr = GetLastError();
+         goto cleanup; 
+     } 
+  
+     fRet = QueryServiceStatus(schService,
+                               &ssServiceStatus); 
+  
+     if(fRet == FALSE) 
+     { 
+         hr = GetLastError(); 
+         goto cleanup; 
+     } 
+  
+     *lpdwCurrentState = ssServiceStatus.dwCurrentState; 
+  
+ cleanup: 
+  
+     CloseServiceHandle(schService); 
+     CloseServiceHandle(schSCManager); 
+  
+     return(hr); 
+ } 
  
  // krb5 functions
  DECL_FUNC_PTR(krb5_cc_default_name);
***************
*** 335,340 ****
--- 390,397 ----
  #ifndef AFSIFS
      char *drivep;
      char netbiosName[MAX_NB_NAME_LENGTH];
+     DWORD CurrentState = 0;
+     char  HostName[64] = "";
  #endif
      char tbuffer[256]="";
      HANDLE fh;
***************
*** 349,354 ****
--- 406,417 ----
      DWORD dwSize = sizeof(szUser);
  
  #ifndef AFSIFS
+     memset(HostName, '\0', sizeof(HostName));
+     gethostname(HostName, sizeof(HostName));
+     if (GetServiceStatus(HostName, TEXT("TransarcAFSDaemon"), &CurrentState) == NOERROR &&
+ 	CurrentState != SERVICE_RUNNING)
+ 	return -1;
+ 
      if (fileNamep) {
          drivep = strchr(fileNamep, ':');
          if (drivep && (drivep - fileNamep) >= 1) {
Index: openafs/src/util/winsock_nt.c
diff -c openafs/src/util/winsock_nt.c:1.6.4.1 openafs/src/util/winsock_nt.c:1.6.4.2
*** openafs/src/util/winsock_nt.c:1.6.4.1	Sun Jul  2 21:06:45 2006
--- openafs/src/util/winsock_nt.c	Tue Aug 29 21:44:21 2006
***************
*** 13,19 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/util/winsock_nt.c,v 1.6.4.1 2006/07/03 01:06:45 jaltman Exp $");
  
  #ifdef AFS_NT40_ENV
  #include <winsock2.h>
--- 13,19 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/util/winsock_nt.c,v 1.6.4.2 2006/08/30 01:44:21 jaltman Exp $");
  
  #ifdef AFS_NT40_ENV
  #include <winsock2.h>
***************
*** 25,42 ****
   * 
   * Returns 0 on success, -1 on error.
   */
- static int once = 1;
- 
  int
  afs_winsockInit(void)
  {
-     if (once) {
  	int code;
  	WSADATA data;
  	WORD sockVersion;
  
- 	once = 0;
- 
  	sockVersion = 2;
  	code = WSAStartup(sockVersion, &data);
  	if (code)
--- 25,37 ----
***************
*** 44,50 ****
  
  	if (data.wVersion != 2)
  	    return -1;
-     }
      return 0;
  }
  
--- 39,44 ----
***************
*** 52,58 ****
  afs_winsockCleanup(void)
  {
      WSACleanup();
-     once = 0;
  }
  
  /* This function will begin to fail in the year 2038 */
--- 46,51 ----
Index: openafs/src/viced/afsfileprocs.c
diff -c openafs/src/viced/afsfileprocs.c:1.113.2.7 openafs/src/viced/afsfileprocs.c:1.113.2.9
*** openafs/src/viced/afsfileprocs.c:1.113.2.7	Wed Aug  2 14:21:16 2006
--- openafs/src/viced/afsfileprocs.c	Tue Sep  5 12:33:25 2006
***************
*** 29,35 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.113.2.7 2006/08/02 18:21:16 jaltman Exp $");
  
  #include <stdio.h>
  #include <stdlib.h>
--- 29,35 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/afsfileprocs.c,v 1.113.2.9 2006/09/05 16:33:25 shadow Exp $");
  
  #include <stdio.h>
  #include <stdlib.h>
***************
*** 311,316 ****
--- 311,318 ----
      char hoststr[16], hoststr2[16];
      struct ubik_client *uclient;
  
+     *ahostp = NULL;
+ 
      if (!tconn) {
  	ViceLog(0, ("CallPreamble: unexpected null tconn!\n"));
  	return -1;
***************
*** 430,443 ****
      held = h_Held_r(thost);
      if (held)
  	h_Release_r(thost);
!     if (ahost != thost) {
  	char hoststr[16], hoststr2[16];	
  	ViceLog(0, ("CallPostamble: ahost %s:%d (%x) != thost %s:%d (%x)\n",
! 		afs_inet_ntoa_r(thost->host, hoststr), ntohs(thost->port),
  		ahost, 
  		afs_inet_ntoa_r(thost->host, hoststr2), ntohs(thost->port),
  		thost));
  	h_Release_r(ahost);
      }
      H_UNLOCK;
      return (translate ? sys_error_to_et(ret) : ret);
--- 432,450 ----
      held = h_Held_r(thost);
      if (held)
  	h_Release_r(thost);
!     if (ahost && ahost != thost) {
  	char hoststr[16], hoststr2[16];	
  	ViceLog(0, ("CallPostamble: ahost %s:%d (%x) != thost %s:%d (%x)\n",
! 		afs_inet_ntoa_r(ahost->host, hoststr), ntohs(ahost->port),
  		ahost, 
  		afs_inet_ntoa_r(thost->host, hoststr2), ntohs(thost->port),
  		thost));
  	h_Release_r(ahost);
+     } else if (!ahost) {
+ 	char hoststr[16];	
+ 	ViceLog(0, ("CallPostamble: null ahost for thost %s:%d (%x)\n",
+ 		afs_inet_ntoa_r(thost->host, hoststr), ntohs(thost->port),
+ 		thost));
      }
      H_UNLOCK;
      return (translate ? sys_error_to_et(ret) : ret);
Index: openafs/src/viced/host.c
diff -c openafs/src/viced/host.c:1.93.2.10 openafs/src/viced/host.c:1.93.2.12
*** openafs/src/viced/host.c:1.93.2.10	Mon Jul  3 23:51:30 2006
--- openafs/src/viced/host.c	Tue Sep  5 18:05:11 2006
***************
*** 13,19 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/host.c,v 1.93.2.10 2006/07/04 03:51:30 shadow Exp $");
  
  #include <stdio.h>
  #include <errno.h>
--- 13,19 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/host.c,v 1.93.2.12 2006/09/05 22:05:11 shadow Exp $");
  
  #include <stdio.h>
  #include <errno.h>
***************
*** 286,316 ****
  
      tdir = afsconf_Open(AFSDIR_SERVER_ETC_DIRPATH);
      if (!tdir) {
! 	fprintf(stderr,
! 		"libprot: Could not open configuration directory: %s.\n",
! 		AFSDIR_SERVER_ETC_DIRPATH);
!       return -1;
      }
      
      code = afsconf_GetLocalCell(tdir, cellstr, sizeof(cellstr));
      if (code) {
! 	fprintf(stderr,
! 		"libprot: Could not get local cell. [%d]\n", code);
  	return code;
      }
      
      code = afsconf_GetCellInfo(tdir, cellstr, "afsprot", &info);
      if (code) {
! 	fprintf(stderr, "libprot: Could not locate cell %s in %s/%s\n",
! 		cellstr, confDir, AFSDIR_CELLSERVDB_FILE);
  	return code;
      }
      
-     afsconf_Close(tdir);
-     
      code = rx_Init(0);
      if (code) {
!         fprintf(stderr, "libprot:  Could not initialize rx.\n");
          return code;
      }
      
--- 286,313 ----
  
      tdir = afsconf_Open(AFSDIR_SERVER_ETC_DIRPATH);
      if (!tdir) {
! 	ViceLog(0, ("hpr_Initialize: Could not open configuration directory: %s", AFSDIR_SERVER_ETC_DIRPATH));
! 	return -1;
      }
      
      code = afsconf_GetLocalCell(tdir, cellstr, sizeof(cellstr));
      if (code) {
! 	ViceLog(0, ("hpr_Initialize: Could not get local cell. [%d]", code));
! 	afsconf_Close(tdir);
  	return code;
      }
      
      code = afsconf_GetCellInfo(tdir, cellstr, "afsprot", &info);
      if (code) {
! 	ViceLog(0, ("hpr_Initialize: Could not locate cell %s in %s/%s", cellstr, confDir, AFSDIR_CELLSERVDB_FILE));
! 	afsconf_Close(tdir);
  	return code;
      }
      
      code = rx_Init(0);
      if (code) {
! 	ViceLog(0, ("hpr_Initialize: Could not initialize rx."));
! 	afsconf_Close(tdir);
          return code;
      }
      
***************
*** 324,332 ****
      if ((afsconf_GetLatestKey(tdir, 0, 0) == 0)) {
          code = afsconf_ClientAuthSecure(tdir, &sc[2], &scIndex);
          if (code)
!             fprintf(stderr,
!                     "libprot: clientauthsecure returns %d %s"
!                     " (so trying noauth)\n", code, error_message(code));
          if (code)
              scIndex = 0;        /* use noauth */
          if (scIndex != 2)
--- 321,327 ----
      if ((afsconf_GetLatestKey(tdir, 0, 0) == 0)) {
          code = afsconf_ClientAuthSecure(tdir, &sc[2], &scIndex);
          if (code)
! 	    ViceLog(0, ("hpr_Initialize: clientauthsecure returns %d %s (so trying noauth)", code, error_message(code)));
          if (code)
              scIndex = 0;        /* use noauth */
          if (scIndex != 2)
***************
*** 345,353 ****
                  /* this is a kerberos ticket, set scIndex accordingly */
                  scIndex = 2;
              else {
!                 fprintf(stderr,
!                         "libprot: funny kvno (%d) in ticket, proceeding\n",
!                         ttoken.kvno);
                  scIndex = 2;
              }
              sc[2] =
--- 340,346 ----
                  /* this is a kerberos ticket, set scIndex accordingly */
                  scIndex = 2;
              else {
!                 ViceLog(0, ("hpr_Initialize: funny kvno (%d) in ticket, proceeding", ttoken.kvno));
                  scIndex = 2;
              }
              sc[2] =
***************
*** 359,366 ****
      if ((scIndex == 0) && (sc[0] == 0))
          sc[0] = rxnull_NewClientSecurityObject();
      if ((scIndex == 0))
!         com_err("fileserver", code,
!                 "Could not get afs tokens, running unauthenticated.");
      
      memset(serverconns, 0, sizeof(serverconns));        /* terminate list!!! */
      for (i = 0; i < info.numServers; i++) {
--- 352,358 ----
      if ((scIndex == 0) && (sc[0] == 0))
          sc[0] = rxnull_NewClientSecurityObject();
      if ((scIndex == 0))
! 	ViceLog(0, ("hpr_Initialize: Could not get afs tokens, running unauthenticated. [%d]", code));
      
      memset(serverconns, 0, sizeof(serverconns));        /* terminate list!!! */
      for (i = 0; i < info.numServers; i++) {
***************
*** 372,380 ****
  
      code = ubik_ClientInit(serverconns, uclient);
      if (code) {
!         com_err("fileserver", code, "ubik client init failed.");
      }
! 
      code = rxs_Release(sc[scIndex]);
      return code;
  }
--- 364,372 ----
  
      code = ubik_ClientInit(serverconns, uclient);
      if (code) {
! 	ViceLog(0, ("hpr_Initialize: ubik client init failed. [%d]", code));
      }
!     afsconf_Close(tdir);
      code = rxs_Release(sc[scIndex]);
      return code;
  }
Index: openafs/src/viced/viced.c
diff -c openafs/src/viced/viced.c:1.75.2.5 openafs/src/viced/viced.c:1.75.2.7
*** openafs/src/viced/viced.c:1.75.2.5	Wed Aug  2 14:21:16 2006
--- openafs/src/viced/viced.c	Sun Sep  3 01:53:14 2006
***************
*** 22,28 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/viced.c,v 1.75.2.5 2006/08/02 18:21:16 jaltman Exp $");
  
  #include <stdio.h>
  #include <stdlib.h>
--- 22,28 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/viced/viced.c,v 1.75.2.7 2006/09/03 05:53:14 shadow Exp $");
  
  #include <stdio.h>
  #include <stdlib.h>
***************
*** 155,162 ****
  
  int restartMode = RESTART_ORDINARY;
  
- int Testing = 0;		/* for ListViceInodes */
- 
  /*
   * Home for the performance statistics.
   */
--- 155,160 ----
***************
*** 208,221 ****
  pthread_key_t viced_uclient_key;
  #endif
  
- #ifdef AFS_PTHREAD_ENV
- pthread_key_t viced_uclient_key;
- #endif
- 
- #ifdef AFS_PTHREAD_ENV
- pthread_key_t viced_uclient_key;
- #endif
- 
  /*
   * FileServer's name and IP address, both network byte order and
   * host byte order.
--- 206,211 ----
Index: openafs/src/vol/listinodes.c
diff -c openafs/src/vol/listinodes.c:1.16 openafs/src/vol/listinodes.c:1.16.4.1
*** openafs/src/vol/listinodes.c:1.16	Tue Nov  1 11:42:47 2005
--- openafs/src/vol/listinodes.c	Sun Sep  3 01:53:15 2006
***************
*** 21,27 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/listinodes.c,v 1.16 2005/11/01 16:42:47 shadow Exp $");
  
  #ifndef AFS_NAMEI_ENV
  #if defined(AFS_LINUX20_ENV) || defined(AFS_SUN4_ENV)
--- 21,27 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/listinodes.c,v 1.16.4.1 2006/09/03 05:53:15 shadow Exp $");
  
  #ifndef AFS_NAMEI_ENV
  #if defined(AFS_LINUX20_ENV) || defined(AFS_SUN4_ENV)
***************
*** 135,141 ****
  
  #define	ROOTINODE	2
  static char *partition;
! extern int Testing;
  int pfd;
  
  #ifdef	AFS_AIX32_ENV
--- 135,141 ----
  
  #define	ROOTINODE	2
  static char *partition;
! int Testing=0;
  int pfd;
  
  #ifdef	AFS_AIX32_ENV
Index: openafs/src/vol/namei_ops.c
diff -c openafs/src/vol/namei_ops.c:1.28.2.2 openafs/src/vol/namei_ops.c:1.28.2.4
*** openafs/src/vol/namei_ops.c:1.28.2.2	Mon Jul 31 11:19:36 2006
--- openafs/src/vol/namei_ops.c	Tue Sep  5 11:02:29 2006
***************
*** 13,19 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/namei_ops.c,v 1.28.2.2 2006/07/31 15:19:36 shadow Exp $");
  
  #ifdef AFS_NAMEI_ENV
  #include <stdio.h>
--- 13,19 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/namei_ops.c,v 1.28.2.4 2006/09/05 15:02:29 shadow Exp $");
  
  #ifdef AFS_NAMEI_ENV
  #include <stdio.h>
***************
*** 70,75 ****
--- 70,77 ----
  /*@printflike@*/ extern void Log(const char *format, ...);
  
  extern char *volutil_PartitionName_r(int volid, char *buf, int buflen);
+ int Testing=0;
+ 
  
  afs_sfsize_t
  namei_iread(IHandle_t * h, afs_foff_t offset, char *buf, afs_fsize_t size)
***************
*** 149,155 ****
      int ogm_mode;
  } namei_ogm_t;
  
! int namei_SetLinkCount(FdHandle_t * h, Inode ino, int count, int locked);
  static int GetFreeTag(IHandle_t * ih, int vno);
  
  /* namei_HandleToInodeDir
--- 151,158 ----
      int ogm_mode;
  } namei_ogm_t;
  
! static int namei_GetLinkCount2(FdHandle_t * h, Inode ino, int lockit, int fixup, int nowrite);
! 
  static int GetFreeTag(IHandle_t * ih, int vno);
  
  /* namei_HandleToInodeDir
***************
*** 860,872 ****
   * If lockit is set, lock the file and leave it locked upon a successful
   * return.
   */
! int
! namei_GetLinkCount(FdHandle_t * h, Inode ino, int lockit)
  {
      unsigned short row = 0;
      afs_foff_t offset;
      int index;
  
      namei_GetLCOffsetAndIndexFromIno(ino, &offset, &index);
  
      if (lockit) {
--- 863,880 ----
   * If lockit is set, lock the file and leave it locked upon a successful
   * return.
   */
! static int
! namei_GetLinkCount2(FdHandle_t * h, Inode ino, int lockit, int fixup, int nowrite)
  {
      unsigned short row = 0;
      afs_foff_t offset;
+     ssize_t rc;
      int index;
  
+     if (!VALID_INO(ino)) return 0;
+     /* there's no linktable yet. the salvager will create one later */
+     if (h->fd_fd == -1 && fixup)
+        return 1;
      namei_GetLCOffsetAndIndexFromIno(ino, &offset, &index);
  
      if (lockit) {
***************
*** 881,890 ****
      if (afs_lseek(h->fd_fd, offset, SEEK_SET) == -1)
  	goto bad_getLinkByte;
  
!     if (read(h->fd_fd, (char *)&row, sizeof(row)) != sizeof(row)) {
  	goto bad_getLinkByte;
      }
  
      return (int)((row >> index) & NAMEI_TAGMASK);
  
    bad_getLinkByte:
--- 889,918 ----
      if (afs_lseek(h->fd_fd, offset, SEEK_SET) == -1)
  	goto bad_getLinkByte;
  
!     rc = read(h->fd_fd, (char *)&row, sizeof(row));
!     if ((rc == 0 || !((row >> index) & NAMEI_TAGMASK)) && fixup && nowrite)
!         return 1;
!     if (rc == 0 && fixup) {
!         struct stat st;
!         if (fstat(h->fd_fd, &st) || st.st_size >= offset+sizeof(row))
! 	   goto bad_getLinkByte;
!         FDH_TRUNC(h, offset+sizeof(row));
!         row = 1 << index;
!         rc = write(h->fd_fd, (char *)&row, sizeof(row));
!     }
!     if (rc != sizeof(row)) {
  	goto bad_getLinkByte;
      }
  
+     if (fixup && !((row >> index) & NAMEI_TAGMASK)) {
+         row |= 1<<index;
+         if (afs_lseek(h->fd_fd, offset, SEEK_SET) == -1)
+ 	    goto bad_getLinkByte;
+         rc = write(h->fd_fd, (char *)&row, sizeof(row));
+         if (rc != sizeof(row))
+ 	    goto bad_getLinkByte;
+     }
+  
      return (int)((row >> index) & NAMEI_TAGMASK);
  
    bad_getLinkByte:
***************
*** 897,902 ****
--- 925,936 ----
      return -1;
  }
  
+ int
+ namei_GetLinkCount(FdHandle_t * h, Inode ino, int lockit) 
+ {
+     return namei_GetLinkCount2(h, ino, lockit, 0, 1);
+ }
+ 
  /* Return a free column index for this vnode. */
  static int
  GetFreeTag(IHandle_t * ih, int vno)
***************
*** 1291,1299 ****
  		/* Open this handle */
  		(void)afs_snprintf(path2, sizeof path2, "%s/%s", path1,
  				   dp1->d_name);
! 		linkHandle.fd_fd = afs_open(path2, O_RDONLY, 0666);
  		info.linkCount =
! 		    namei_GetLinkCount(&linkHandle, (Inode) 0, 0);
  	    }
  	    if (judgeFun && !(*judgeFun) (&info, singleVolumeNumber, rock))
  		continue;
--- 1325,1333 ----
  		/* Open this handle */
  		(void)afs_snprintf(path2, sizeof path2, "%s/%s", path1,
  				   dp1->d_name);
! 		linkHandle.fd_fd = afs_open(path2, Testing ? O_RDONLY : O_RDWR, 0666);
  		info.linkCount =
! 		    namei_GetLinkCount2(&linkHandle, (Inode) 0, 1, 1, Testing);
  	    }
  	    if (judgeFun && !(*judgeFun) (&info, singleVolumeNumber, rock))
  		continue;
***************
*** 1344,1351 ****
  				(path3, dp3->d_name, &info, myIH.ih_vid) < 0)
  				continue;
  			    info.linkCount =
! 				namei_GetLinkCount(&linkHandle,
! 						   info.inodeNumber, 0);
  			    if (info.linkCount == 0) {
  #ifdef DELETE_ZLC
  				Log("Found 0 link count file %s/%s, deleting it.\n", path3, dp3->d_name);
--- 1378,1385 ----
  				(path3, dp3->d_name, &info, myIH.ih_vid) < 0)
  				continue;
  			    info.linkCount =
! 				namei_GetLinkCount2(&linkHandle,
! 						   info.inodeNumber, 1, 1, Testing);
  			    if (info.linkCount == 0) {
  #ifdef DELETE_ZLC
  				Log("Found 0 link count file %s/%s, deleting it.\n", path3, dp3->d_name);
Index: openafs/src/vol/namei_ops.h
diff -c openafs/src/vol/namei_ops.h:1.8 openafs/src/vol/namei_ops.h:1.8.8.2
*** openafs/src/vol/namei_ops.h:1.8	Tue Sep 28 01:07:15 2004
--- openafs/src/vol/namei_ops.h	Tue Sep  5 11:02:29 2006
***************
*** 42,47 ****
--- 42,48 ----
  extern int namei_dec(IHandle_t * h, Inode ino, int p1);
  extern int namei_inc(IHandle_t * h, Inode ino, int p1);
  extern int namei_GetLinkCount(FdHandle_t * h, Inode ino, int lockit);
+ extern int namei_SetLinkCount(FdHandle_t * h, Inode ino, int count, int locked);
  extern int namei_ViceREADME(char *partition);
  #include "nfs.h"
  #include "viceinode.h"
Index: openafs/src/vol/ntops.c
diff -c openafs/src/vol/ntops.c:1.10 openafs/src/vol/ntops.c:1.10.8.1
*** openafs/src/vol/ntops.c:1.10	Tue Sep 28 01:07:15 2004
--- openafs/src/vol/ntops.c	Tue Sep  5 10:52:23 2006
***************
*** 13,19 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/ntops.c,v 1.10 2004/09/28 05:07:15 shadow Exp $");
  
  #ifdef AFS_NT40_ENV
  #include <stdio.h>
--- 13,19 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/ntops.c,v 1.10.8.1 2006/09/05 14:52:23 shadow Exp $");
  
  #ifdef AFS_NT40_ENV
  #include <stdio.h>
***************
*** 41,46 ****
--- 41,48 ----
  
  #define BASEFILEATTRIBUTE FILE_ATTRIBUTE_NORMAL
  
+ int Testing = 0;
+ 
  static void AddToZLCDeleteList(char dir, char *name);
  
  /* nt_unlink - unlink a case sensitive name.
***************
*** 837,849 ****
   * If lockit is set, lock the file and leave it locked upon a successful
   * return.
   */
! int
! nt_GetLinkCount(FdHandle_t * h, Inode ino, int lockit)
  {
      unsigned short row = 0;
!     int junk;
      int offset, index;
  
      nt_GetLCOffsetAndIndexFromIno(ino, &offset, &index);
  
      if (lockit) {
--- 839,855 ----
   * If lockit is set, lock the file and leave it locked upon a successful
   * return.
   */
! static int
! nt_GetLinkCountInternal(FdHandle_t * h, Inode ino, int lockit, int fixup)
  {
      unsigned short row = 0;
!     DWORD bytesRead, bytesWritten;
      int offset, index;
  
+     /* there's no linktable yet. the salvager will create one later */
+     if (h->fd_fd == INVALID_HANDLE_VALUE && fixup)
+        return 1;
+ 
      nt_GetLCOffsetAndIndexFromIno(ino, &offset, &index);
  
      if (lockit) {
***************
*** 854,863 ****
      if (!SetFilePointer(h->fd_fd, (LONG) offset, NULL, FILE_BEGIN))
  	goto bad_getLinkByte;
  
!     if (!ReadFile(h->fd_fd, (void *)&row, 2, &junk, NULL)) {
  	goto bad_getLinkByte;
      }
! 
      return (int)((row >> index) & NT_TAGMASK);
  
    bad_getLinkByte:
--- 860,884 ----
      if (!SetFilePointer(h->fd_fd, (LONG) offset, NULL, FILE_BEGIN))
  	goto bad_getLinkByte;
  
!     if (!ReadFile(h->fd_fd, (void *)&row, 2, &bytesRead, NULL)) 
  	goto bad_getLinkByte;
+     
+     if (bytesRead == 0 && fixup) { 
+ 	LARGE_INTEGER size;
+ 
+ 	if (!GetFileSizeEx(h->fd_fd, &size) || size.QuadPart >= offset+sizeof(row))
+ 	    goto bad_getLinkByte;
+ 	FDH_TRUNC(h, offset+sizeof(row));
+ 	row = 1 << index;
+       rewrite:
+ 	WriteFile(h->fd_fd, (char *)&row, sizeof(row), &bytesWritten, NULL);
+     }
+ 
+     if (fixup && !((row >> index) & NT_TAGMASK)) {
+         row |= 1<<index;
+         goto rewrite;
      }
!  
      return (int)((row >> index) & NT_TAGMASK);
  
    bad_getLinkByte:
***************
*** 866,872 ****
--- 887,903 ----
      return -1;
  }
  
+ int
+ nt_GetLinkCount(FdHandle_t * h, Inode ino, int lockit)
+ {
+     return nt_GetLinkCountInternal(h, ino, lockit, 0);
+ }
  
+ void
+ nt_SetNonZLC(FdHandle_t * h, Inode ino) 
+ {
+     (void)nt_GetLinkCountInternal(h, ino, 0, 1);
+ }
  
  
  /* nt_SetLinkCount
***************
*** 878,884 ****
  {
      int offset, index;
      unsigned short row;
!     int junk;
      int code = -1;
  
      nt_GetLCOffsetAndIndexFromIno(ino, &offset, &index);
--- 909,915 ----
  {
      int offset, index;
      unsigned short row;
!     DWORD bytesRead, bytesWritten;
      int code = -1;
  
      nt_GetLCOffsetAndIndexFromIno(ino, &offset, &index);
***************
*** 896,911 ****
      }
  
  
!     if (!ReadFile(h->fd_fd, (void *)&row, 2, &junk, NULL)) {
  	errno = nterr_nt2unix(GetLastError(), EBADF);
  	goto bad_SetLinkCount;
      }
!     if (junk == 0)
  	row = 0;
  
!     junk = 7 << index;
      count <<= index;
!     row &= (unsigned short)~junk;
      row |= (unsigned short)count;
  
      if (!SetFilePointer(h->fd_fd, (LONG) offset, NULL, FILE_BEGIN)) {
--- 927,942 ----
      }
  
  
!     if (!ReadFile(h->fd_fd, (void *)&row, 2, &bytesRead, NULL)) {
  	errno = nterr_nt2unix(GetLastError(), EBADF);
  	goto bad_SetLinkCount;
      }
!     if (bytesRead == 0)
  	row = 0;
  
!     bytesRead = 7 << index;
      count <<= index;
!     row &= (unsigned short)~bytesRead;
      row |= (unsigned short)count;
  
      if (!SetFilePointer(h->fd_fd, (LONG) offset, NULL, FILE_BEGIN)) {
***************
*** 913,919 ****
  	goto bad_SetLinkCount;
      }
  
!     if (!WriteFile(h->fd_fd, (void *)&row, 2, &junk, NULL)) {
  	errno = nterr_nt2unix(GetLastError(), EBADF);
  	goto bad_SetLinkCount;
      }
--- 944,950 ----
  	goto bad_SetLinkCount;
      }
  
!     if (!WriteFile(h->fd_fd, (void *)&row, 2, &bytesWritten, NULL)) {
  	errno = nterr_nt2unix(GetLastError(), EBADF);
  	goto bad_SetLinkCount;
      }
Index: openafs/src/vol/ntops.h
diff -c openafs/src/vol/ntops.h:1.5 openafs/src/vol/ntops.h:1.5.8.1
*** openafs/src/vol/ntops.h:1.5	Tue Sep 28 01:07:15 2004
--- openafs/src/vol/ntops.h	Tue Sep  5 10:52:23 2006
***************
*** 60,63 ****
--- 60,65 ----
  int nt_HandleToName(char *name, IHandle_t * h);
  char *nt_HandleToVolDir(char *name, IHandle_t * h);
  
+ extern int Testing;
+ 
  #endif /* _NTOPS_H_ */
Index: openafs/src/vol/nuke.c
diff -c openafs/src/vol/nuke.c:1.17 openafs/src/vol/nuke.c:1.17.2.1
*** openafs/src/vol/nuke.c:1.17	Fri Mar 17 14:54:51 2006
--- openafs/src/vol/nuke.c	Sun Sep  3 01:33:41 2006
***************
*** 11,17 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/nuke.c,v 1.17 2006/03/17 19:54:51 shadow Exp $");
  
  #include <rx/xdr.h>
  #include <afs/afsint.h>
--- 11,17 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/nuke.c,v 1.17.2.1 2006/09/03 05:33:41 shadow Exp $");
  
  #include <rx/xdr.h>
  #include <afs/afsint.h>
***************
*** 73,79 ****
   * Note that ainfo->u.param[0] is always the volume ID, for any vice inode.
   */
  static int
! NukeProc(struct ViceInodeInfo *ainfo, afs_int32 avolid, struct ilist *allInodes)
  {
      struct ilist *ti;
      register afs_int32 i;
--- 73,79 ----
   * Note that ainfo->u.param[0] is always the volume ID, for any vice inode.
   */
  static int
! NukeProc(struct ViceInodeInfo *ainfo, afs_int32 avolid, struct ilist **allInodes)
  {
      struct ilist *ti;
      register afs_int32 i;
***************
*** 86,98 ****
      if (ainfo->u.param[0] != avolid)
  	return 0;		/* don't want this one */
      /* record the info */
!     if (!allInodes || allInodes->freePtr >= MAXATONCE) {
  	ti = (struct ilist *)malloc(sizeof(struct ilist));
  	memset(ti, 0, sizeof(*ti));
! 	ti->next = allInodes;
! 	allInodes = ti;
      } else
! 	ti = allInodes;		/* use the one with space */
      i = ti->freePtr++;		/* find our slot in this mess */
      ti->inode[i] = ainfo->inodeNumber;
      ti->count[i] = ainfo->linkCount;
--- 86,98 ----
      if (ainfo->u.param[0] != avolid)
  	return 0;		/* don't want this one */
      /* record the info */
!     if (!*allInodes || (*allInodes)->freePtr >= MAXATONCE) {
  	ti = (struct ilist *)malloc(sizeof(struct ilist));
  	memset(ti, 0, sizeof(*ti));
! 	ti->next = *allInodes;
! 	*allInodes = ti;
      } else
! 	ti = *allInodes;		/* use the one with space */
      i = ti->freePtr++;		/* find our slot in this mess */
      ti->inode[i] = ainfo->inodeNumber;
      ti->count[i] = ainfo->linkCount;
***************
*** 171,181 ****
  #ifdef AFS_NAMEI_ENV
      code =
  	ListViceInodes(lastDevComp, aname, NULL, NukeProc, avolid, &forceSal,
! 		       0, wpath, allInodes);
  #else
      code =
  	ListViceInodes(lastDevComp, aname, "/tmp/vNukeXX", NukeProc, avolid,
! 		       &forceSal, 0, wpath, allInodes);
      unlink("/tmp/vNukeXX");	/* clean it up now */
  #endif
      if (code == 0) {
--- 171,181 ----
  #ifdef AFS_NAMEI_ENV
      code =
  	ListViceInodes(lastDevComp, aname, NULL, NukeProc, avolid, &forceSal,
! 		       0, wpath, &allInodes);
  #else
      code =
  	ListViceInodes(lastDevComp, aname, "/tmp/vNukeXX", NukeProc, avolid,
! 		       &forceSal, 0, wpath, &allInodes);
      unlink("/tmp/vNukeXX");	/* clean it up now */
  #endif
      if (code == 0) {
Index: openafs/src/vol/vol-salvage.c
diff -c openafs/src/vol/vol-salvage.c:1.51.2.2 openafs/src/vol/vol-salvage.c:1.51.2.6
*** openafs/src/vol/vol-salvage.c:1.51.2.2	Fri Jun 30 10:00:45 2006
--- openafs/src/vol/vol-salvage.c	Tue Sep  5 19:50:18 2006
***************
*** 87,93 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/vol-salvage.c,v 1.51.2.2 2006/06/30 14:00:45 shadow Exp $");
  
  #ifndef AFS_NT40_ENV
  #include <sys/param.h>
--- 87,93 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/vol-salvage.c,v 1.51.2.6 2006/09/05 23:50:18 jaltman Exp $");
  
  #ifndef AFS_NT40_ENV
  #include <sys/param.h>
***************
*** 222,228 ****
  
  
  int debug;			/* -d flag */
! int Testing = 0;		/* -n flag */
  int ListInodeOption;		/* -i flag */
  int ShowRootFiles;		/* -r flag */
  int RebuildDirs;		/* -sal flag */
--- 222,228 ----
  
  
  int debug;			/* -d flag */
! extern int Testing;		/* -n flag */
  int ListInodeOption;		/* -i flag */
  int ShowRootFiles;		/* -r flag */
  int RebuildDirs;		/* -sal flag */
***************
*** 1330,1336 ****
  	Abort("Can't open link table for volume %u (error = %d)\n",
  	      isp->RWvolumeId, errno);
  
!     if (FDH_TRUNC(fdP, 0) < 0)
  	Abort("Can't truncate link table for volume %u (error = %d)\n",
  	      isp->RWvolumeId, errno);
  
--- 1330,1336 ----
  	Abort("Can't open link table for volume %u (error = %d)\n",
  	      isp->RWvolumeId, errno);
  
!     if (FDH_TRUNC(fdP, sizeof(version) + sizeof(short)) < 0)
  	Abort("Can't truncate link table for volume %u (error = %d)\n",
  	      isp->RWvolumeId, errno);
  
***************
*** 1452,1458 ****
--- 1452,1474 ----
  	if (Testing) {
  	    IH_INIT(VGLinkH, fileSysDevice, -1, -1);
  	} else {
+             int i, j;
+             struct ViceInodeInfo *ip;
  	    CreateLinkTable(isp, ino);
+ 	    fdP = IH_OPEN(VGLinkH);
+             /* Sync fake 1 link counts to the link table, now that it exists */
+             if (fdP) {
+             	for (i = 0; i < nVols; i++) {
+             		ip = allInodes + isp[i].index;
+ 		         for (j = isp[i].nSpecialInodes; j < isp[i].nInodes; j++) {
+ #ifdef AFS_NT40_ENV
+ 			         nt_SetLinkCount(fdP, ip[j].inodeNumber, 1, 1);
+ #else
+ 				 namei_SetLinkCount(fdP, ip[j].inodeNumber, 1, 1);
+ #endif
+ 		    }
+             	}
+ 	    }
  	}
      }
      if (fdP)
Index: openafs/src/vol/volume.c
diff -c openafs/src/vol/volume.c:1.43 openafs/src/vol/volume.c:1.43.2.4
*** openafs/src/vol/volume.c:1.43	Mon Mar 20 12:29:57 2006
--- openafs/src/vol/volume.c	Wed Sep  6 21:09:30 2006
***************
*** 22,28 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/volume.c,v 1.43 2006/03/20 17:29:57 jaltman Exp $");
  
  #include <rx/xdr.h>
  #include <afs/afsint.h>
--- 22,28 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/vol/volume.c,v 1.43.2.4 2006/09/07 01:09:30 shadow Exp $");
  
  #include <rx/xdr.h>
  #include <afs/afsint.h>
***************
*** 207,213 ****
  				 * defined when not linked with vice, XXXX */
  ProgramType programType;	/* The type of program using the package */
  
- 
  /* extended volume package statistics */
  VolPkgStats VStats;
  
--- 207,212 ----
***************
*** 3368,3376 ****
  	VUpdateVolume_r(&error, vp, 0);
  	VCloseVolumeHandles_r(vp);
  
- 	/* invalidate the volume header cache entry */
- 	FreeVolumeHeader(vp);
- 
  	if (LogLevel) {
  	    Log("VOffline: Volume %u (%s) is now offline", V_id(vp),
  		V_name(vp));
--- 3367,3372 ----
***************
*** 3379,3390 ****
--- 3375,3390 ----
  	    Log("\n");
  	}
  
+ 	/* invalidate the volume header cache entry */
+ 	FreeVolumeHeader(vp);
+ 
  	/* if nothing changed state to error or salvaging,
  	 * drop state to unattached */
  	if (!IsErrorState(V_attachState(vp))) {
  	    VChangeState_r(vp, VOL_STATE_UNATTACHED);
  	}
  	VCancelReservation_r(vp);
+ 	/* no usage of vp is safe beyond this point */
      }
      return ret;
  }
***************
*** 3404,3410 ****
  	V_inUse(vp) = 0;
  	VUpdateVolume_r(&error, vp, 0);
  	VCloseVolumeHandles_r(vp);
- 	FreeVolumeHeader(vp);
  	if (LogLevel) {
  	    Log("VOffline: Volume %u (%s) is now offline", V_id(vp),
  		V_name(vp));
--- 3404,3409 ----
***************
*** 3412,3417 ****
--- 3411,3417 ----
  		Log(" (%s)", V_offlineMessage(vp));
  	    Log("\n");
  	}
+ 	FreeVolumeHeader(vp);
  #ifdef AFS_PTHREAD_ENV
  	assert(pthread_cond_broadcast(&vol_put_volume_cond) == 0);
  #else /* AFS_PTHREAD_ENV */
Index: openafs/src/volser/volmain.c
diff -c openafs/src/volser/volmain.c:1.22.2.2 openafs/src/volser/volmain.c:1.22.2.4
*** openafs/src/volser/volmain.c:1.22.2.2	Tue Jun 20 16:37:12 2006
--- openafs/src/volser/volmain.c	Sun Sep  3 01:53:15 2006
***************
*** 11,17 ****
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/volser/volmain.c,v 1.22.2.2 2006/06/20 20:37:12 jaltman Exp $");
  
  #include <sys/types.h>
  #ifdef AFS_NT40_ENV
--- 11,17 ----
  #include <afs/param.h>
  
  RCSID
!     ("$Header: /cvs/openafs/src/volser/volmain.c,v 1.22.2.4 2006/09/03 05:53:15 shadow Exp $");
  
  #include <sys/types.h>
  #ifdef AFS_NT40_ENV
***************
*** 73,78 ****
--- 73,79 ----
  #define VolserVersion "2.0"
  #define N_SECURITY_OBJECTS 3
  
+ extern struct Lock localLock;
  extern struct volser_trans *TransList();
  #ifndef AFS_PTHREAD_ENV
  extern int (*vol_PollProc) ();
***************
*** 94,100 ****
  int lwps = 9;
  int udpBufSize = 0;		/* UDP buffer size for receive */
  
- int Testing = 0;		/* for ListViceInodes */
  int rxBind = 0;
  
  #define ADDRSPERSITE 16         /* Same global is in rx/rx_user.c */
--- 95,100 ----
***************
*** 423,428 ****
--- 423,430 ----
      }
  #endif
      VInitVolumePackage(volumeUtility, 0, 0, CONNECT_FS, 0);
+     /* For nuke() */
+     Lock_Init(&localLock);
      DInit(40);
  #ifndef AFS_PTHREAD_ENV
      vol_PollProc = IOMGR_Poll;	/* tell vol pkg to poll io system periodically */
