rburridge@Sun.COM (Rich Burridge) (07/03/90)
Posting-number: Volume 13, Issue 74 Submitted-by: rburridge@Sun.COM (Rich Burridge) Archive-name: faces-1.4.5/part05 ------CUT HERE------faces.part5------CUT HERE------ #! /bin/sh # this is a shell archive, meaning: # 1. Remove everything above the #! /bin/sh line # 2. Save the resulting text in a file. # 3. Execute the file with /bin/sh to create the files: # faces.1 # face_update.1 # faces_cps.cps # face_update # noface.icon # nomail.icon # noprint.icon # nopaper.icon # nousers.icon # This archive created: Fri Jun 29 10:45:15 EST 1990 # # export PATH; PATH=/bin:$PATH # if [ -f faces.1 ] then echo shar: will not over-write existing file faces.1 else echo shar: extracting 'faces.1', 11202 characters cat > faces.1 <<'Funky_Stuff' .\" @(#)faces.1 1.12 90/06/26 .\" tbl faces.1 | nroff -man .TH FACES 1 "26 June 1990" .SH NAME faces \- visual mail, user and print face server. .SH SYNOPSIS .B "faces [ .B \-H .I hostname ] [ .B \-MH ] [ .B \-P .I printer ] [ .B \-U ] [ .B \-a ] [ .B \-b .I background ] [ .B \-c .I columns ] [ .B \-d .I display ] [ .B \-e .I program ] [ .B \-f .I facedir ] [ .B \-g .I geometry ] [ .B \-h .I height ] [ .B \-i ] [ .B \-n ] [ .B \-p .I period ] [ .B \-s .I spoolfile ] [ .B \-t ] [ .B \-u ] [ .B \-v ] [ .B \-w .I width ] [ .B \-Wi ] [ .B \-Wp .I x y ] [ .B \-WP .I x y ] .SH DESCRIPTION .B faces is a window based tool for visual monitoring lists. Typically it is used to monitor mail, print queues or users on a system.. It contains graphical interfaces for NeWS, SunView, XView and X11. It has five different modes of operation: .LP The default (no .BR -a , .BR -H , .BR -P or .B -e arguments) will monitor for new mail. By default, only the last ten messages are displayed. Using the left mouse button it is possible to toggle the text in the faces window. This will either be the username or the time the mail message arrived. You can clear this area to the background pattern by hitting the Delete key. The icon shows the image of the last message to arrive. .LP The second choice .RB ( -a ) is to monitor the whole of a mail file. The open window will automatically adjust it's size to correctly show the face icons. The open window options are the username or the timestamp and number of message from that user. The icon will display the image of the last message, and a count of the total number of messages in the spool file or mail folder. .LP The third option .RB ( -P ) allows this program to monitor a given print queue. This will generate a single face icon showing the job at the top of the print queue, and the text message will display the printer name plus the number of jobs to be printed. Opening the window will show images of all the jobs in the queue. The text on each image can be toggled, choices being the owners' name and the size of the job in bytes. .LP With the fourth mode .RB ( -H ), you can monitor who is logged in a machine. For each user, a face image is displayed. Text can be either the username or the time they logged on. The iconic form displays the total number of users. .LP Finally you can specify a program or shell script to run .RB ( -e ). The standard output from this program will be read by the faces program, and the appropriate faces displayed using the information provided. The format of this face information is given in the faces manual page. .LP There are special displays for no mail, no faces found, no print jobs, no paper in the printer, and no users logged into a machine. .SH OPTIONS .TP 12 .BI \-H " hostname" Name of the machine to monitor. Faces will be displayed for each user logged in. .TP .B \-MH Used when the user is using MH to read mail. MH can shrink the mail spoolfile and the default mail monitoring facility within .I faces adjusts accordingly. .TP .BI \-P " printer" Printer name to monitor. If this and a mail spool file are given with the -s option, .B faces will monitor the print queue. .TP .B \-U Automatically send mail to a special mail alias, to update the .I faces database when a new X-Face: record is read. By default this special alias is .I facemaker. This should be aliased (see .IR aliases(7) ) to: .br facemaker: "|/usr/local/bin/face_update" .br By default the .I face_update shell script will not overwriting existing ikons in the faces database. Overwriting will take place if the -w option is specified. You should also note that the installation of this mail alias is not done automatically, as this might be considered a security risk on some systems. .TP .B \-a Monitor the whole of the specified mail file. The icon and open window display the appropriate faces, and dynamically change size as a new check is made and if the mail file has altered size. .TP .BI \-b " background" Sun icon file containing an alternate background pattern. The default is root grey. .TP .BI \-c " columns" Number of columns of face images in each row. By default this is 10. .TP .BI \-d " display" Used with the X11 variant of faces to give a display type. .TP .BI \-e " program" Name of the user program to run. This program or shell script will generate lines which the faces program will read, and then display the appropriate face images. The format of these input records is described in a previous section. .TP .BI \-f " facedir" If specified, then this directory is searched first for face images. If they are not found, then the default face directory will be searched. The default face directory is .BR /usr/local/faces . .TP .BI \-g " geometry" Used with the X11 variant of faces to give geometry information. .TP .BI \-h " height" The height of each face image in pixels. Note that this is the height of the area allocated to each image, and not necessarily the height of the displayed image inside. .TP .B \-i Invert the faces images before displaying them. For use by people who started SunView with the .B \-i option. .TP .B \-n Do not display the number of messages from this person. The default is to display, and a count is shown at the bottom right corner of the face for this person. .TP .BI \-p " period" The period in seconds before the mail spool file or the print queue is scanned again for new mail. The default is 60 seconds. .TP .BI \-s " spoolfile" Use an alternate mail spool file to monitor. The default is .BI /var/spool/mail/ username where .I username is the name of the user currently logged in. .TP .B \-t Do not display a timestamp of the last message from this person. The default is to display, and a timestamp is shown at the bottom left corner of the face for this person. .TP .B \-u Do not display the username on the face icon. The default is to display, and the username will appear over the face icon, when the window is opened. .TP .B \-v Print the version number of this release of the .B faces program. .TP .BI \-w " width" The width of each face image in pixels. Note that this is the width of the area allocated to each image, and not necessarily the width of the displayed image inside. .TP .B \-Wi Start the .B faces program up in iconic form. SunView automatically uses this flag, but the NeWS version will also. .TP .BI \-Wp " x y" Start the open window position at .I x y .TP .BI \-WP " x y" Start the icon position at .I x y .SH "FACE FORMATS" There is a special faces directory containing a fixed three-level hierarchy, which by default is .IR /usr/local/faces . The first level is a machine name, the second level a user name, and the third level is the actual face image, which can be stored in four formats. If the file is named .I 48x48x1 then it is a Blit ikon, if it is called .I sun.icon then the image is stored in Sun icon format, if the file is named .I face.xbm then it is an X11 xbm formatted image, and if the file is called .I face.ps then it contains executable NeWS code. Multiple formats can be stored in the same username directory, and the one used will depend upon which graphics interface is currently being used. If the .I username level is a plain file (not a directory) it is assumed to be a Blit icon. .LP To access the face for the mail name .I machine!uid take the result of the first successful open from the following list of files: .RS 6 /usr/local/faces/machine/uid/iconname .br /usr/local/faces/misc./uid/iconname .br /usr/local/faces/machine/unknown/iconname .br /usr/local/faces/misc./unknown/iconname .RE If the .B -f argument is specified the given directory is searched before .IR /usr/local/faces . The iconname above, consists of the following choices, in the given order: .TS r1 c1 l1 l1 l1 l1 . NeWS - face.ps, sun.icon, 48x48x1, face.xbm SunView - sun.icon, 48x48x1, face.xbm X11 - face.xbm, sun.icon, 48x48x1 .TE Domain names are now fully supported. For example, if mail arrives from .I foo@a.b.c then .I faces will use the directories .IR a.b.c , .I b.c and .I c .RE for the machine name: The directory .I misc. hold faces for generic users such as .I root and .I uucp. If the faces directory hierarchy is not found, then a blank face image will be used. .LP Faces information is administered by a pair of ASCII files in the faces directory that associate related machines and faces. The machine table .I machine.tab attaches machines to communities; the line .RS 6 stard=sunaus .RE puts the machine .I stard in community .I sunaus. The people table associates a community/alias pair, with a real username. .RS 6 sunaus/rburridge=richb .RE causes the alias .I rburridge to be translated into the real username .I richb for the community .I sunaus .LP Note that you still need to use .I mailtool or some other mail reading utility to actually read the mail that this program monitors; .I faces simply displays who the mail is from. .LP When new mail arrives, .B faces will beep and flash appropriately, depending upon the set parameters in the users .I .mailrc file. .LP If you are using the NeWS version and creating face images of the .I face.ps form, then the following points should be noted: All graphics operations should be performed on the unit square; and the final image will be translated to a 64 x 64 square image at the appropriate position in the faces display. .LP If you are using the .B \-e option, then the user program or shell script should firstly generate a single record with the following fixed format, beginning at column 1: .RS 6 Cols=mm Rows=nn .RE where mm is the size in columns for the faces window and icon, and nn is the size in rows. A window will be generated with these dimensions. .LP This record is followed by the face information records, which are again in fixed format. As well as providing the username and hostname, there are four other fields which can be filled in, which denote what is displayed on the left or the right sides of the bottom area of the window and icon displays. The format for these records is: .TS center, box; l c c l n n . Description Start column Number of columns. _ username 1 20 hostname 21 20 window left 41 10 window right 51 10 icon left 61 10 icon right 71 10 .TE .LP Any of these fields may be left blank. There are also four special usernames, which will display the appropriate standard icons. These are .B "NOMAIL, NOPAPER, NOPRINT " and .B "NOUSERS." .SH "SEE ALSO" mail(1), elm(1), mush(1), aliases(7). .SH FILES .TP 30 .B /var/spool/mail directory for system mailboxes .TP .B /.face the users compressed face image .TP .B /.mailrc mail startup file .TP .B /usr/local/faces main directory containing the face icons. .TP .B /usr/local/faces/people.tab people/file equivalences .TP .B /usr/local/faces/machine.tab machine/community equivalences .SH HISTORY .I faces is based on the Bell Labs Edition 8 program .IR vismon(9) . This program is not derived from .I vismon source. .SH BUGS The machine and people table lookup is hopelessly inefficient and will need to be improved as the faces database gets larger. .SH AUTHOR .TS l r1 l . Rich Burridge, Internet: richb@Aus.Sun.COM PHONE: +61 2 413 2666 ACSnet: richb@sunaus.sun.oz.au .TE Funky_Stuff len=`wc -c < faces.1` if [ $len != 11202 ] ; then echo error: faces.1 was $len bytes long, should have been 11202 fi fi # end of overwriting check if [ -f face_update.1 ] then echo shar: will not over-write existing file face_update.1 else echo shar: extracting 'face_update.1', 1775 characters cat > face_update.1 <<'Funky_Stuff' .\" @(#)face_update.1 1.2 90/06/26 .TH FACE_UPDATE 1L "25 June 1990" .SH NAME faces \- automatic faces database update script. .SH SYNOPSIS .B "face_update [ .B \-o ] [ .B \-w ] .SH DESCRIPTION .B face_update is a shell script for automatically updating the .B faces database with "on-the-fly" faces. When .B faces is run with the -U option, every time that a new "on-the-fly" face is found, it is mailed to a special mail alias which by default is .I facemaker. There would be a special entry in the .I /etc/aliases file for .I facemaker. Something like: .LP "|/usr/local/bin/face_update" .LP This mail message has a certain format. The Subject line contains the file in the database to be updated. The body of the mail message is 48 lines in Blit ikon (48x48x1) format. Depending upon command line options, this new faces is included in the .I faces database. .B face_update will also perform various tests on the mail message to ensure it is a valid update. .LP An entry will be written in the .I /var/log/facelog log file upon completion. This entry will consist of a timestamp, the name of the user who sent the update, the ikon that was updated, and the status of the update (whether it was successful or not). .LP Note that the log file ( .I /var/log/facelog) needs to be created and owned by .I daemon with permissions of 0644. .SH OPTIONS .TP .B \-o This is to allow ikons to be stored in the "old" style format, where the username was the ikon, and not a directory where the icons were kept. .TP .B \-w If the given ikon is already present in the database, this option will allow it to be overwritten. By default this doesn't happen. .SH FILES .TP .B /var/log/facelog log file for all ikon updates. .SH SEE ALSO faces(1) .SH AUTHOR Hal Stern Sun Microsystems Inc. Funky_Stuff len=`wc -c < face_update.1` if [ $len != 1775 ] ; then echo error: face_update.1 was $len bytes long, should have been 1775 fi fi # end of overwriting check if [ -f faces_cps.cps ] then echo shar: will not over-write existing file faces_cps.cps else echo shar: extracting 'faces_cps.cps', 5301 characters cat > faces_cps.cps <<'Funky_Stuff' % These are NeWS dependent graphics routines used by faces. % % @(#)faces_cps.cps 1.1 90/06/24 % % Copyright (c) Rich Burridge - Sun Microsystems Australia. % All rights reserved. % % Date Vers Who What % =========================================================================== % 90Jun23 1.8.2 PMLashley Converted to a cps file % % % Modifications to MakeFrame and ShowDisplay by Neil Crellin and % Mark Andrews {neilc,marka}@natmlab.dms.oz.au to fix the (0,0) % redraw bug. % % Permission is given to distribute these sources, as long as the % copyright messages are not removed, and no monies are exchanged. % % No responsibility is taken for any errors or inaccuracies inherent % either to the comments or the code of this program, but if reported % to me, then an attempt will be made to fix them. cdef ps_clearbox(int x, int y, int width, int height, postscript cv) cv setcanvas x y width height rectpath 0 setgray fill cdef ps_dopixrects(int width, int height, postscript cv) cv setcanvas 0 0 width height rectpath cv reshapecanvas cdef ps_execfile(string psfile, int width, int height, int x, int y) /Iconic? Frame send { /IconCanvas Frame send setcanvas } { /ClientCanvas Frame send setcanvas } ifelse x y translate width height scale psfile (r) file cvx exec cdef ps_initfont() /Font /Courier findfont 7 scalefont def cdef ps_makeframe(int FrameX, int FrameY, int FrameWidth, int FrameHeight, int IconX, int IconY, int IsIcon) /DIED 100 def /PAINTED 101 def /LEFTDOWN 102 def /ClientHeight FrameHeight 10 sub def /ClientWidth FrameWidth 10 sub def /IconHeight FrameHeight def /IconWidth FrameWidth def /PR framebuffer /new ClassCanvas send def { /Transparent false promote /Mapped false promote /Retained true promote } PR send /MPR framebuffer /new ClassCanvas send def { /Transparent false promote /Mapped false promote /Retained true promote } MPR send /Frame framebuffer /new DefaultWindow send def { /IconX IconX def /IconY IconY def /FrameX FrameX def /FrameY FrameY def /BorderTop 5 def /BorderLeft 5 def /BorderBottom 5 def /BorderRight 5 def /ControlSize 0 def /ForkPaintClient? false def /destroy { DIED typedprint DestroyFrame DestroyClient } installmethod /flipiconic { PAINTED typedprint /unmap self send /Iconic? Iconic? not def IconX null eq { FrameX FrameY FrameHeight add IconHeight sub /move self send } if ZoomProc /map self send } installmethod /PaintClient { gsave 1 fillcanvas ClientWidth ClientHeight scale 0 setgray Invert PR imagemaskcanvas grestore } installmethod /PaintIcon { gsave clippath pathbbox pop pop translate 1 fillcanvas IconWidth IconHeight scale 0 setgray Invert MPR imagemaskcanvas grestore } installmethod /ShapeIconCanvas { gsave ParentCanvas setcanvas IconX null eq IconY null eq or { 0 0 } { IconX IconY } ifelse IconWidth IconHeight IconPath IconCanvas reshapecanvas grestore } installmethod /ForkFrameEventMgr { ClientMenu null ne { FrameInterests /ClientMenuEvent MenuButton { /showat ClientMenu send } /DownTransition ClientCanvas eventmgrinterest put } if FrameInterests /CheckTheMailDrooper PointButton { LEFTDOWN typedprint } /DownTransition ClientCanvas eventmgrinterest put /FrameEventMgr FrameInterests forkeventmgr def } installmethod /ShowDisplay { % cw ch iw ih => - /IconHeight exch promote /IconWidth exch promote /ClientHeight exch promote /ClientWidth exch promote FrameX FrameY ClientWidth 10 add ClientWidth 10 add reshape ShapeIconCanvas painticon ShapeClientCanvas paintclient map } installmethod } Frame send IsIcon 1 eq { /flipiconic Frame send } if cdef ps_maketext(string str, int x, int y, postscript cv) cv setcanvas Font setfont 1 setgray x y moveto str show cdef ps_moveimage(postscript src, int width, int height, int x, int y, postscript dest) dest setcanvas gsave x y translate width height scale src imagecanvas grestore cdef ps_shiftimage(int dx, int width, int height, postscript cv) cv setcanvas 0 0 width height rectpath dx 0 copyarea cdef ps_showdisplay(int cw, int ch, int iw, int ih) cw ch iw ih /ShowDisplay Frame send cdef ps_buildicon(string name, int width, int height, cstring data) name cvlit width height 1 {} { data } buildimage def Funky_Stuff len=`wc -c < faces_cps.cps` if [ $len != 5301 ] ; then echo error: faces_cps.cps was $len bytes long, should have been 5301 fi fi # end of overwriting check if [ -f face_update ] then echo shar: will not over-write existing file face_update else echo shar: extracting 'face_update', 3905 characters cat > face_update <<'Funky_Stuff' #! /bin/sh # # Script to automatically update the faces database with a new X-Face: image. # # Usage: face_update [-o] [-w] # # -o - use "old" updating method of saving the ikon as the username. # # -w - will allow the face_update script to automaticaly overwrite # existing ikon files. # # Copyright (c) Hal Stern - Sun Microsystems Inc - June 1990. # # Permission is given to distribute these sources, as long as the # copyright messages are not removed, and no monies are exchanged. # # No responsibility is taken for any errors inherent either # to the comments or the code of this program, but if reported # to me then an attempt will be made to fix them. # #----------------------------------------------------------------------------- # # face_update 1.3 6/26/90 15:41:26 # # failure() # shell routine to handle various failures # and send a note back to the sender explaining # what happened failure() { ( echo "" echo "The Face Update server was not able to process" echo "your request because " echo $reason echo "" ) | fmt | Mail -s "Face update failed" $sender rm -f /tmp/facereply.$$ /tmp/face.$$ /tmp/facebits.$$ if [ ! -z "$LOGFILE" ] then echo `date` $sender ' ' update failed for $facefile >> $LOGFILE fi exit 0 } # # name of the logfile, if you don't want to log # changes, make this an empty string, ie # LOGFILE="" # LOGFILE=/var/log/facelog # save the incoming message in a tmp file for # parsing later cat - > /tmp/face.$$ # parse command line arguments overwrite="" oldstyle="" while [ $# != 0 ] do case $1 in -w) overwrite=yes ;; -o) oldstyle=yes ;; *) ;; esac shift done # find out who sent this request, and the file name # where the face is to be deposited sender=`fgrep 'From ' /tmp/face.$$ | awk -F' ' '{print $2}'` if [ -z "$sender" ] then sender=root fi facefile=`fgrep 'Subject:' /tmp/face.$$ | awk -F':' '{print $2}' | sed -e 's@ @@g'` if [ -z "$facefile" ] then reason="it is missing a Subject line" failure fi # overwriting check if [ -f $facefile ] && [ -z "$overwrite" ] then reason="it cannot overwrite existing file $facefile" failure fi # extract the "interesting" part of the file. # i'm assuming here that almost all RFC822 headers have # colons in them, so it will speed up the egrep by removing # obvious mail headers first fgrep -v ':' /tmp/face.$$ | egrep '0x[0-9A-F]*,0x[0-9A-F]*,0x[0-9A-F]*' > /tmp/facebits.$$ # count the number of lines that are in 48x48x1 format linecnt=`wc -l /tmp/facebits.$$ | awk '{print $1}' | sed -e 's@ @@g'` # if this file doesn't contain a good image, complain if [ "$linecnt" != "48" ] then reason="the submitted icon did not contain a 48x48x1 file" failure fi # get the various directory names for the user, machine and # top-level face archive userdir=`dirname $facefile` username=`basename $userdir` hostdir=`dirname $userdir` hostname=`basename $hostdir` facedir=`dirname $hostdir` if [ ! -d $facedir ] then reason="the face directory $facedir does not exist" failure fi # if any of these don't exist, create them if we can # this allows on-the-fly face addition for new hosers or # machines for d in $hostdir $userdir do if [ -f $d ] then break fi if [ ! -d $d ] then if [ $d = $userdir ] && [ ! -z "$oldstyle" ] then : else mkdir $d 2>/dev/null if [ $? != 0 ] then reason="the server could not create directory $d" failure fi fi fi done if [ -f "$userdir" ] then facefile=$userdir fi # if we're overwriting, at least save the old file if [ -f $facefile ] then mv $facefile ${facefile}- fi # tuck the new file in place, clean up the mess, and # send an acknowledgement cp /tmp/facebits.$$ $facefile rm -f /tmp/face.$$ /tmp/facebits.$$ #Mail -s "Face update succeeded" $sender if [ ! -z "$LOGFILE" ] then echo `date` $sender ' ' face update succeeded for $facefile >> $LOGFILE fi exit 0 Funky_Stuff len=`wc -c < face_update` if [ $len != 3905 ] ; then echo error: face_update was $len bytes long, should have been 3905 fi fi # end of overwriting check if [ -f noface.icon ] then echo shar: will not over-write existing file noface.icon else echo shar: extracting 'noface.icon', 1933 characters cat > noface.icon <<'Funky_Stuff' /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000,0x1FA0,0x0000,0x0000,0x0000,0x7FFC,0x0000,0x0000, 0x0000,0xFEFF,0x0000,0x0000,0x0001,0xBFBF,0xC000,0x0000, 0x0001,0xEFFA,0xE000,0x0000,0x0002,0x00FF,0xF800,0x0000, 0x0002,0x007F,0xFF80,0x0000,0x0000,0x001F,0x7E00,0x0000, 0x000C,0x001F,0xFFC0,0x0000,0x0000,0x0015,0xFFC0,0x0000, 0x0030,0x001F,0xFFF0,0x0000,0x0070,0x000F,0xFEB0,0x0000, 0x00C0,0x0007,0xFFF8,0x0000,0x00E0,0x0007,0xFFE8,0x0000, 0x01E0,0x0003,0xFFF8,0x0000,0x03C0,0x0001,0xFFF8,0x0000, 0x03E0,0x0001,0xFFF8,0x0000,0x07C0,0x0000,0xFFF0,0x0000, 0x0FF8,0x0000,0xBFF8,0x0000,0x0FE0,0x0000,0xFFF8,0x0000, 0x1FF0,0x0000,0x7FF8,0x0000,0x1FF0,0x0000,0xFFF8,0x0000, 0x1FF0,0x0000,0xFFF8,0x0000,0x1FD0,0x0000,0xFFF0,0x0000, 0x0FE0,0x0001,0xFFF0,0x0000,0x1FA0,0x0000,0x3FF0,0x0000, 0x0320,0x0000,0x1FE0,0x0000,0x0B80,0x0000,0x1F80,0x0000, 0x0180,0x0000,0x1780,0x0000,0x0080,0x0000,0x1F00,0x0000, 0x0000,0x0000,0x1F00,0x0000,0x0180,0x0000,0x0E00,0x0000, 0x0380,0x0000,0x1E00,0x0000,0x0180,0x0000,0x0FC0,0x0000, 0x0080,0x0000,0x1F80,0x0000,0x01C0,0x0000,0x0F80,0x0000, 0x00C0,0x0000,0x7F80,0x0000,0x0040,0x0000,0x7F00,0x0000, 0x0060,0x0000,0xCE00,0x0000,0x0004,0x0001,0x6000,0x0000, 0x0000,0x0003,0xF800,0x0000,0x0002,0x0001,0xA000,0x0000, 0x0000,0x0007,0xC000,0x0000,0x0002,0x000F,0x4000,0x0000, 0x0000,0x804B,0xC000,0x0000,0x0002,0xBBFE,0x8000,0x0000, 0x0000,0x8FFB,0xC000,0x0000,0x0001,0x7ABF,0xC000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 Funky_Stuff len=`wc -c < noface.icon` if [ $len != 1933 ] ; then echo error: noface.icon was $len bytes long, should have been 1933 fi fi # end of overwriting check if [ -f nomail.icon ] then echo shar: will not over-write existing file nomail.icon else echo shar: extracting 'nomail.icon', 1933 characters cat > nomail.icon <<'Funky_Stuff' /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0001,0xFFFF,0xFFC0,0x0000,0x0002,0xB000,0x0030,0x0000, 0x0003,0x5800,0x0008,0x0000,0x0006,0xADFF,0xFFC8,0x0000, 0x0005,0x54FF,0xFFE4,0x0000,0x000A,0xAAFF,0xFFF2,0x0000, 0x000D,0x567F,0xFFF2,0x0000,0x000A,0xAA7F,0xFFFA,0x0000, 0x000D,0x557F,0xFFF9,0x0000,0x000A,0xAB7F,0xFFF9,0x0000, 0x000D,0x557F,0xFFF9,0x0000,0x000A,0xAB3F,0xFFF1,0x0000, 0x000D,0x5500,0x0001,0x0000,0x000A,0xAB00,0x0001,0x0000, 0x000D,0x5500,0xFE01,0x0000,0x000A,0xAB03,0xFF81,0x0000, 0x000D,0x5507,0xFFC1,0x0000,0x000A,0xAB0F,0xFFE1,0x0000, 0x000D,0x551F,0xFFF1,0x0000,0x000A,0xAB1F,0xFFF1,0x0000, 0x000D,0x553F,0xFFF9,0x0000,0x000A,0xAB3F,0xFFF9,0x0000, 0x000D,0x553F,0xFFF9,0x0000,0x000A,0xAB3F,0xFFF9,0x0000, 0x0FFD,0x553F,0xFFF9,0x0000,0x3FFA,0xAB3F,0xFFF9,0x0000, 0x7FFD,0x553F,0xFFF9,0x0000,0xFFFA,0xAB3F,0xFFF9,0x0000, 0xFFFD,0x551F,0xFFF1,0x0000,0xFFFA,0xAB1F,0xFFF1,0x0000, 0xFFFD,0x550F,0xFFE1,0x0000,0xFFFA,0xAB07,0xFFC1,0x0000, 0xFFFD,0xD503,0xFF81,0x0000,0xFFFB,0xEB00,0xFE01,0x0000, 0x3FFD,0xF500,0x0001,0x0000,0x3FFB,0xFB00,0x0001,0x0000, 0x0FFD,0xFD0F,0xFFE1,0x0000,0x0FFB,0xFB1F,0xFFD1,0x0000, 0x03FD,0xFD3F,0xF7C9,0x0000,0x00FF,0xFF7F,0xF8C5,0x0000, 0x003F,0xFD7F,0xFC45,0x0000,0x001F,0xFF7F,0xFE05,0x0000, 0x0007,0xF560,0x3F85,0x0000,0x0003,0xF760,0x0FE5,0x0000, 0x0000,0xFD40,0x01F5,0x0000,0x0000,0x3F40,0x00FD,0x0000, 0x0000,0x0760,0x003D,0x0000,0x0000,0x03E0,0x000F,0x0000, 0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFF80, 0x00FF,0xFFFF,0xFFFF,0xFF80,0x00BB,0xFFFF,0xFFFD,0xF180, 0x009B,0xFFFF,0xFFFF,0xFD80,0x009B,0x8FFC,0xBC71,0xFD80, 0x00AB,0x77FD,0x5BBD,0xFD80,0x00AB,0x77FD,0x5FBD,0xFD80, 0x00B3,0x77FD,0x5C3D,0xFD80,0x00B3,0x77FD,0x5BBD,0xFD80, 0x00BB,0x77FD,0x5BBD,0xFD80,0x00BB,0x8FFD,0x5C3D,0xFD80, 0x00FF,0xFFFF,0xFFFF,0xFF80,0x00FF,0xFFFF,0xFFFF,0xFF80, 0x00FF,0xFFFF,0xFFFF,0xFF80,0x0000,0x0000,0x0000,0x0000 Funky_Stuff len=`wc -c < nomail.icon` if [ $len != 1933 ] ; then echo error: nomail.icon was $len bytes long, should have been 1933 fi fi # end of overwriting check if [ -f noprint.icon ] then echo shar: will not over-write existing file noprint.icon else echo shar: extracting 'noprint.icon', 1997 characters cat > noprint.icon <<'Funky_Stuff' /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000,0x0000,0x4008,0x0000, 0x0000,0x0000,0x0008,0x0000, 0x0058,0x7001,0xC38B,0x0E00, 0x0064,0x8800,0x444C,0x9100, 0x0044,0x8800,0x4448,0x9000, 0x0044,0x8800,0x4448,0x8E00, 0x0044,0x8800,0x4448,0x8100, 0x0044,0x8800,0x444C,0x9100, 0x0044,0x7000,0x438B,0x0E00, 0x0000,0x0000,0x4000,0x0000, 0x0000,0x0002,0x4000,0x0000, 0x0000,0x0001,0x8000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x00FF,0xFFFF,0xFFFF,0xFFE0, 0x0080,0x0000,0x0000,0x0010, 0x0080,0x0000,0x0000,0x0010, 0x0080,0x0000,0x0000,0x0010, 0x0080,0x0000,0x0000,0x0010, 0x0080,0x0000,0x0000,0x0010, 0x0080,0x0000,0x0000,0x0010, 0x0080,0x0000,0x0000,0x0010, 0x0080,0x0000,0x0000,0x0010, 0x00FF,0xFFFF,0xFFFF,0xFFF0, 0x0090,0x0400,0x0000,0x8010, 0x0091,0xE400,0x0000,0x8010, 0x0092,0x1400,0x1FF8,0x8010, 0x0092,0x1400,0x1008,0x8010, 0x0092,0x1400,0x1008,0x8010, 0x0093,0xF400,0x1FF8,0x8010, 0x0092,0xD400,0x1008,0x8010, 0x0092,0x1400,0x1FF8,0x8010, 0x0091,0xE400,0x0000,0x8020, 0x0090,0x0400,0x0000,0x8040, 0x00FF,0xFFFF,0xFFFF,0xC080, 0x3FFF,0xFFFF,0xFFFF,0xE100, 0x3880,0x0000,0x0000,0x7E00, 0x3880,0x0000,0x0000,0x1FFC, 0x3880,0x0000,0x0000,0x1FFC, 0x3F80,0x0FEF,0xEFCF,0xE100, 0x0080,0x0000,0x0000,0x01FC, 0x0080,0x0FEF,0xEFCF,0xE100, 0x0F80,0x0000,0x0000,0x0100, 0x0880,0x0FEF,0xEFCF,0xE100, 0x0F80,0x0000,0x0000,0x0100, 0x0080,0x0000,0x0000,0x0100, 0x00FF,0xFFFF,0xFFFF,0xFF00, 0x0040,0x0000,0x0000,0x0200, 0x0040,0x0000,0x0000,0x0200, 0x003F,0xFFFF,0xFFFF,0xFC00, 0x001C,0x0000,0x0001,0xC000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000 Funky_Stuff len=`wc -c < noprint.icon` if [ $len != 1997 ] ; then echo error: noprint.icon was $len bytes long, should have been 1997 fi fi # end of overwriting check if [ -f nopaper.icon ] then echo shar: will not over-write existing file nopaper.icon else echo shar: extracting 'nopaper.icon', 1973 characters cat > nopaper.icon <<'Funky_Stuff' /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0xC000,0x0000,0x0000,0x0003,0xE000,0x0000,0x0000,0x0007, 0x7000,0x0000,0x0000,0x000E,0x3800,0x0000,0x0000,0x001C, 0x1C00,0x0000,0x0000,0x0038,0x0E00,0x0000,0x0000,0x0070, 0x0700,0x0000,0x0000,0x00E0,0x0380,0x0000,0x0000,0x01C0, 0x01C0,0x0000,0x0000,0x0380,0x00E0,0x0000,0x0000,0x0700, 0x0070,0x0000,0x0000,0x0E00,0x0038,0x0000,0x0000,0x1C00, 0x001C,0x0000,0x0000,0x3800,0x000E,0x0000,0x0000,0x7000, 0x0007,0x0000,0x0000,0xE000,0x0003,0x8000,0x0001,0xC000, 0x0001,0xC000,0x0003,0x8000,0x0000,0xE000,0x0007,0x0000, 0x0000,0x7000,0x000E,0x0000,0x0000,0x7FFF,0xFFFF,0xC000, 0x0000,0xBC00,0x0038,0x2000,0x0001,0x1E00,0x0070,0x1000, 0x0002,0x0F00,0x00E0,0x0800,0x0004,0x0780,0x01C0,0x0400, 0x0004,0x05C0,0x0380,0x0400,0x0008,0x42E0,0x0700,0x0200, 0x0008,0xE270,0x0E00,0x0200,0x0009,0xF238,0x1C00,0x0200, 0x0009,0xF21C,0x3800,0x0200,0x0009,0xF20E,0x7000,0x0200, 0x0009,0xF207,0xE000,0x0200,0x0009,0xF203,0xC000,0x0200, 0x0008,0xE203,0xC000,0x0200,0x0008,0x4207,0xE000,0x0200, 0x0004,0x040E,0x7000,0x0400,0x0004,0x041C,0x3800,0x0400, 0x0006,0x0838,0x1C00,0x0800,0x0007,0x1070,0x0E00,0x1000, 0x0002,0xA0E0,0x0700,0x2000,0x0002,0x7FFF,0xFFFF,0xC000, 0x0002,0x0380,0x01C2,0x0000,0x0002,0x0700,0x00E1,0x0000, 0x0003,0x0E00,0x0071,0x0000,0x0001,0x1C00,0x0039,0x0000, 0x0001,0x3800,0x001C,0x8000,0x0000,0xF000,0x000E,0x8000, 0x0000,0xE000,0x0007,0x8000,0x0001,0xC000,0x0003,0x8000, 0x0003,0x8000,0x0001,0xC000,0x0007,0x8000,0x0000,0xE000, 0x000E,0x4030,0x0000,0x7000,0x001C,0x41FC,0x0000,0x7800, 0x0038,0x4F02,0x003C,0x5C00,0x0070,0x5401,0xC1C2,0x2E00, 0x00E0,0x6000,0x3F01,0xC700,0x01C0,0x0000,0x0000,0x0380, 0x0380,0x0000,0x0000,0x01C0,0x0700,0x0000,0x0000,0x00E0, 0x0E00,0x0000,0x0000,0x0070,0x1C00,0x0000,0x0000,0x0038, 0x3800,0x0000,0x0000,0x001C,0x7000,0x0000,0x0000,0x000E, 0xE000,0x0000,0x0000,0x0007,0xC000,0x0000,0x0000,0x0003 Funky_Stuff len=`wc -c < nopaper.icon` if [ $len != 1973 ] ; then echo error: nopaper.icon was $len bytes long, should have been 1973 fi fi # end of overwriting check if [ -f nousers.icon ] then echo shar: will not over-write existing file nousers.icon else echo shar: extracting 'nousers.icon', 1933 characters cat > nousers.icon <<'Funky_Stuff' /* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x001F,0xFC00,0x0000, 0x0000,0x01FF,0xFFC0,0x0000,0x0000,0x0FFF,0xFFF8,0x0000, 0x0000,0x3FFF,0xFFFE,0x0000,0x0000,0xFFFF,0xFFFF,0x8000, 0x0001,0xFFFF,0xFFFF,0xC000,0x0007,0xFFFF,0xFFFF,0xF000, 0x000F,0xFFFF,0xFFFF,0xF800,0x001F,0xFFF0,0x07FF,0xFC00, 0x003F,0xFF00,0x007F,0xFE00,0x007F,0xFC00,0x001F,0xFF00, 0x00FF,0xF000,0x0007,0xFF80,0x01FF,0xF800,0x0003,0xFFC0, 0x01FF,0xFC00,0x0000,0xFFC0,0x03FF,0xFE00,0x0000,0x7FE0, 0x07FE,0x3F00,0x0000,0x1FF0,0x07E0,0x9F80,0x0000,0x51F0, 0x0FE8,0xC1C0,0x0000,0xC5F8,0x0F8F,0x54E0,0x000A,0xBC78, 0x1F35,0xE6F0,0x0019,0xEB3C,0x1F56,0xBA78,0x0017,0x5ABC, 0x1C66,0xDF3C,0x003E,0xD98C,0x3DBA,0xF998,0x0067,0xD76E, 0x3CBB,0xAEC3,0xE05D,0x774E,0x38EF,0xF7EC,0x1AFB,0xFDC6, 0x3B7F,0x7D70,0x06AF,0xBFB6,0x795D,0xDDE0,0x03EE,0xEEA7, 0x7C6F,0x77C0,0x017B,0xBD8F,0x7DBF,0xBE80,0x00DF,0x7F6F, 0x7CAE,0xEB1E,0x3C75,0xDD4F,0x7E3B,0xFD33,0x666F,0xF71F, 0x7EDF,0x5F21,0x427E,0xBEDF,0x7E51,0xEE2D,0x5A35,0xE29F, 0x7F06,0xAE2D,0xDA35,0x583F,0x7F82,0x8223,0xE220,0x50FF, 0x7F80,0x023F,0xFE20,0x00FF,0x7F80,0x0207,0xF028,0x01FF, 0x3FC0,0x0207,0xF02C,0x01FE,0x3FC0,0x0203,0xE02E,0x01FE, 0x3FC0,0x0231,0xC62F,0x01FE,0x3FE0,0x0178,0x0F4F,0x83FE, 0x1FE0,0x016C,0x1B5F,0xC3FC,0x1FF0,0x0133,0xE65F,0xE7FC, 0x1FF0,0x0098,0x0C9F,0xF7FC,0x0FF8,0x004F,0xF93F,0xFFF8, 0x0FFC,0x0060,0x037F,0xFFF8,0x07FC,0x0030,0x067F,0xFFF0, 0x07FE,0x000C,0x18FF,0xFFF0,0x03FF,0x0003,0xE03F,0xFFE0, 0x01FF,0x8000,0x001F,0xFFC0,0x01FF,0xE000,0x000F,0xFFC0, 0x00FF,0xF000,0x0007,0xFF80,0x0FFF,0xFFFF,0xFFFF,0xFFF0, 0x0FFF,0xFFFF,0xFFFF,0xFFF0,0x0A78,0xFFDD,0xC78E,0x9E30, 0x09B7,0x7FDD,0xBB76,0x6DD0,0x0BB7,0x7FDD,0xBF76,0xFDF0, 0x0BB7,0x7FDD,0xC706,0xFE30,0x0BB7,0x7FDD,0xFB7E,0xFFD0, 0x0BB7,0x7FD9,0xBB76,0xFDD0,0x0BB8,0xFFE5,0xC78E,0xFE30, 0x0FFF,0xFFFF,0xFFFF,0xFFF0,0x0FFF,0xFFFF,0xFFFF,0xFFF0 Funky_Stuff len=`wc -c < nousers.icon` if [ $len != 1933 ] ; then echo error: nousers.icon was $len bytes long, should have been 1933 fi fi # end of overwriting check