Comparar commits

..

1 Commits

Autor SHA1 Mensagem Data
msweet c917c72ba6 Import cups.org releases
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-1.0b6a@4306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 18:56:23 +00:00
126 arquivos alterados com 4839 adições e 5606 exclusões
-1
Ver Arquivo
@@ -37,7 +37,6 @@ DSO = @DSO@
HTMLDOC = @HTMLDOC@
LN = /bin/ln -sf
MKDIR = @MKDIR@ -p
MV = @MV@
NROFF = @NROFF@
PACK = @PACK@
RANLIB = @RANLIB@
+11 -10
Ver Arquivo
@@ -1,5 +1,5 @@
README - CUPS v1.0b10 - 09/27/1999
----------------------------------
README - CUPS v1.0b6 - 07/30/1999
---------------------------------
BETA SOFTWARE BETA SOFTWARE BETA SOFTWARE BETA SOFTWARE BETA SOFTWARE
@@ -20,8 +20,9 @@ and users. CUPS provides the System V and Berkeley command-line
interfaces.
CUPS uses the Internet Printing Protocol (IETF-IPP) as the basis for
managing print jobs and queues. The Line Printer Daemon (LPD, RFC1179)
and AppSocket protocols are also supported with reduced functionality.
managing print jobs and queues. The Line Printer Daemon (LPD,
RFC1179), Server Message Block (SMB), and AppSocket protocols are also
supported with reduced functionality.
CUPS adds network printer browsing and PostScript Printer Description
("PPD")-based printing options to support real world applications under
@@ -56,7 +57,7 @@ the binary distributions from Easy Software Products:
- Digital UNIX (aka OSF1 aka Compaq Tru64 UNIX) 4.0 or higher
- HP-UX 10.20 or higher
- IRIX 5.3 or higher
- Linux 2.0 with glibc2 or higher (tested with RedHat 5.2)
- Linux 2.0.36 with glibc2 or higher (tested with RedHat 5.2)
- Solaris 2.5 or higher (SPARC or Intel)
@@ -123,11 +124,6 @@ Similarly, for the sample LaserJet driver you can use "LaserJet" and
For other printers and interfaces see the CUPS System Administator's
Manual included with this software.
If you're interested in a complete, commercial printing solution for
UNIX, check out our ESP Print Pro software at:
http://www.easysw.com/printpro
PRINTING FILES
@@ -192,3 +188,8 @@ licensing information, please contact:
Voice: +1.301.373.9603
Email: cups-info@cups.org
WWW: http://www.cups.org
If you're interested in a complete, commercial printing solution for
UNIX, check out our ESP Print Pro software at:
http://www.easysw.com/printpro
+14 -1
Ver Arquivo
@@ -24,7 +24,7 @@
include ../Makedefs
TARGETS = ipp lpd parallel serial socket
TARGETS = ipp lpd parallel serial smb socket
OBJS = ipp.o lpd.o parallel.o serial.o socket.o
#
@@ -91,6 +91,19 @@ serial: serial.o ../cups/$(LIBCUPS)
serial.o: ../cups/cups.h ../Makedefs
#
# smb
#
# Note: reading through these commands is a good way to get a headache... :)
#
smb: smb.sh ../Makedefs
echo Generating $@...
$(RM) smb
sedcmd="1,\$$s/^SMBCLIENT=.\*/SMBCLIENT=`echo $(SMBCLIENT) | sed -e '1,$$s/\\//\\\\\\//g'`/" ;\
$(SED) -e "$$sedcmd" <smb.sh >smb
$(CHMOD) +x smb
#
# socket
#
+7 -13
Ver Arquivo
@@ -294,12 +294,12 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
*/
if (httpPost(http, resource))
{
fputs("INFO: Unable to POST print request; retrying...\n", stderr);
sleep(10);
httpReconnect(http);
continue;
}
if (httpPost(http, resource))
{
fputs("INFO: Unable to POST print request; retrying...\n", stderr);
sleep(10);
continue;
}
fputs("INFO: POST successful, sending IPP request...\n", stderr);
@@ -336,13 +336,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
}
}
/*
* If we are chunking the output from stdin, make sure we end up with
* a 0-length chunk at the end...
*/
if (fp == stdin)
httpWrite(http, buffer, 0);
httpWrite(http, buffer, 0);
fputs("INFO: Print file sent; checking status...\n", stderr);
+1 -1
Ver Arquivo
@@ -107,7 +107,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
int bytes; /* Number of bytes read */
if ((fp = fopen(cupsTempFile(filename, sizeof(filename)), "w")) == NULL)
if ((fp = fopen(tmpnam(filename), "w")) == NULL)
{
perror("ERROR: unable to create temporary file");
return (1);
Arquivo executável
+88
Ver Arquivo
@@ -0,0 +1,88 @@
#!/bin/sh
#
# "$Id$"
#
# SMB printing script for the Common UNIX Printing System (CUPS).
#
# Copyright 1993-1999 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44145 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
#
SMBCLIENT=/usr/local/samba/bin/smbclient
#
# Usage:
#
# printer job user title copies options [filename]
#
if [ $# -lt 5 -o $# -gt 6 ]; then
# Too few or too many arguments
echo 'Usage: smb job-id user title copies options [file]' >&2
exit 1
fi
#
# If "filename" is not on the command-line, then we read the print
# data from stdin and write it to a temporary file.
#
if [ $# = 5 ]; then
# Collect all print data and put it in a temporary file...
if [ "$TMPDIR" = "" ]; then
TMPDIR=/var/tmp
fi
filename="$TMPDIR/$$.smb"
cat >$filename
else
# Use the file on the command-line...
filename="$6"
fi
#
# Take apart the URI in $0...
#
uri="$0"
host=`echo $uri | awk -F/ '{print substr($3, index($3, "@") + 1)}'`
user=`echo $uri | awk -F/ '{print substr($3, 0, index($3, "@") - 1)}'`
if [ "$user" != "" ]; then
user="-U $user"
fi
printer=`echo $uri | awk -F/ '{print $4}'`
#
# Send the file to the remote system...
#
$SMBCLIENT //$host/$printer $user -P -N <<EOF
print $filename
EOF
#
# Lastly, remove the temporary file as needed...
#
if [ $# = 5 ]; then
rm -f $filename
fi
#
# End of "$Id$".
#
-8
Ver Arquivo
@@ -433,15 +433,7 @@ show_status(http_t *http, /* I - HTTP connection to server */
if (strncmp(device, "file:", 5) == 0)
printf("\tprinter is on device \'%s\' speed -1\n", device + 5);
else
{
/*
* Just show the method...
*/
*strchr(device, ':') = '\0';
printf("\tprinter is on device \'%s\' speed -1\n", device);
}
printf("\tqueuing is %sabled\n", accepting ? "en" : "dis");
printf("\tprinting is %sabled\n",
pstate == IPP_PRINTER_STOPPED ? "dis" : "en");
+1 -3
Ver Arquivo
@@ -209,7 +209,7 @@ main(int argc, /* I - Number of command-line arguments */
return (1);
}
temp = fopen(cupsTempFile(tempfile, sizeof(tempfile)), "w");
temp = fopen(tmpnam(tempfile), "w");
if (temp == NULL)
{
@@ -234,8 +234,6 @@ main(int argc, /* I - Number of command-line arguments */
else
job_id = cupsPrintFile(dest, tempfile, "(stdin)", num_options, options);
unlink(tempfile);
if (job_id < 1)
{
fputs("lpr: unable to print standard input.\n", stderr);
+1 -11
Ver Arquivo
@@ -38,7 +38,6 @@
#include <cups/cups.h>
#include <cups/language.h>
#include <cups/debug.h>
#include <config.h>
/*
@@ -100,24 +99,15 @@ main(int argc, /* I - Number of command-line arguments */
puts("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"10\">");
else
puts("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"30\">");
printf("<TITLE>%s on %s - " CUPS_SVERSION "</TITLE>\n",
printf("<TITLE>%s on %s - Common UNIX Printing System</TITLE>\n",
name == NULL ? "Classes" : name, getenv("SERVER_NAME"));
puts("<LINK REL=STYLESHEET TYPE=\"text/css\" HREF=\"/cups.css\">");
puts("<MAP NAME=\"navbar\">");
#ifdef ESPPRINTPRO
puts("<AREA SHAPE=\"RECT\" COORDS=\"10,10,76,30\" HREF=\"printers\" ALT=\"Current Printer Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"88,10,158,30\" HREF=\"classes\" ALT=\"Current Printer Classes Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"170,10,210,30\" HREF=\"jobs\" ALT=\"Current Jobs Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"222,10,354,30\" HREF=\"documentation.html\" ALT=\"Read CUPS Documentation On-Line\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"366,10,442,30\" HREF=\"http://www.easysw.com/printpro/software.html\" ALT=\"Download the Current ESP Print Pro Software\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"454,10,530,30\" HREF=\"http://www.easysw.com/printpro/support.html\" ALT=\"Get Tech Support for Current ESP Print Pro\">");
#else
puts("<AREA SHAPE=\"RECT\" COORDS=\"10,10,85,30\" HREF=\"/printers\" ALT=\"Current Printer Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"95,10,175,30\" HREF=\"/classes\" ALT=\"Current Printer Classes Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"185,10,235,30\" HREF=\"/jobs\" ALT=\"Current Jobs Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"245,10,395,30\" HREF=\"/documentation.html\" ALT=\"Read CUPS Documentation On-Line\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"405,10,490,30\" HREF=\"http://www.cups.org\" ALT=\"Download the Current CUPS Software\">");
#endif /* ESPPRINTPRO */
puts("</MAP>");
puts("</HEAD>");
puts("<BODY>");
+3 -11
Ver Arquivo
@@ -38,7 +38,6 @@
#include <cups/cups.h>
#include <cups/language.h>
#include <cups/debug.h>
#include <config.h>
/*
@@ -63,6 +62,8 @@ main(int argc, /* I - Number of command-line arguments */
http_t *http; /* Connection to the server */
setbuf(stdout, NULL);
/*
* Get the request language...
*/
@@ -100,24 +101,15 @@ main(int argc, /* I - Number of command-line arguments */
puts("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"10\">");
else
puts("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"30\">");
printf("<TITLE>%s on %s - " CUPS_SVERSION "</TITLE>\n",
printf("<TITLE>%s on %s - Common UNIX Printing System</TITLE>\n",
job == NULL ? "Jobs" : job, getenv("SERVER_NAME"));
puts("<LINK REL=STYLESHEET TYPE=\"text/css\" HREF=\"/cups.css\">");
puts("<MAP NAME=\"navbar\">");
#ifdef ESPPRINTPRO
puts("<AREA SHAPE=\"RECT\" COORDS=\"10,10,76,30\" HREF=\"printers\" ALT=\"Current Printer Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"88,10,158,30\" HREF=\"classes\" ALT=\"Current Printer Classes Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"170,10,210,30\" HREF=\"jobs\" ALT=\"Current Jobs Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"222,10,354,30\" HREF=\"documentation.html\" ALT=\"Read CUPS Documentation On-Line\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"366,10,442,30\" HREF=\"http://www.easysw.com/printpro/software.html\" ALT=\"Download the Current ESP Print Pro Software\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"454,10,530,30\" HREF=\"http://www.easysw.com/printpro/support.html\" ALT=\"Get Tech Support for Current ESP Print Pro\">");
#else
puts("<AREA SHAPE=\"RECT\" COORDS=\"10,10,85,30\" HREF=\"/printers\" ALT=\"Current Printer Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"95,10,175,30\" HREF=\"/classes\" ALT=\"Current Printer Classes Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"185,10,235,30\" HREF=\"/jobs\" ALT=\"Current Jobs Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"245,10,395,30\" HREF=\"/documentation.html\" ALT=\"Read CUPS Documentation On-Line\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"405,10,490,30\" HREF=\"http://www.cups.org\" ALT=\"Download the Current CUPS Software\">");
#endif /* ESPPRINTPRO */
puts("</MAP>");
puts("</HEAD>");
puts("<BODY>");
+1 -11
Ver Arquivo
@@ -38,7 +38,6 @@
#include <cups/cups.h>
#include <cups/language.h>
#include <cups/debug.h>
#include <config.h>
/*
@@ -100,24 +99,15 @@ main(int argc, /* I - Number of command-line arguments */
puts("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"10\">");
else
puts("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"30\">");
printf("<TITLE>%s on %s - " CUPS_SVERSION "</TITLE>\n",
printf("<TITLE>%s on %s - Common UNIX Printing System</TITLE>\n",
printer == NULL ? "Printers" : printer, getenv("SERVER_NAME"));
puts("<LINK REL=STYLESHEET TYPE=\"text/css\" HREF=\"/cups.css\">");
puts("<MAP NAME=\"navbar\">");
#ifdef ESPPRINTPRO
puts("<AREA SHAPE=\"RECT\" COORDS=\"10,10,76,30\" HREF=\"printers\" ALT=\"Current Printer Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"88,10,158,30\" HREF=\"classes\" ALT=\"Current Printer Classes Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"170,10,210,30\" HREF=\"jobs\" ALT=\"Current Jobs Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"222,10,354,30\" HREF=\"documentation.html\" ALT=\"Read CUPS Documentation On-Line\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"366,10,442,30\" HREF=\"http://www.easysw.com/printpro/software.html\" ALT=\"Download the Current ESP Print Pro Software\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"454,10,530,30\" HREF=\"http://www.easysw.com/printpro/support.html\" ALT=\"Get Tech Support for Current ESP Print Pro\">");
#else
puts("<AREA SHAPE=\"RECT\" COORDS=\"10,10,85,30\" HREF=\"/printers\" ALT=\"Current Printer Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"95,10,175,30\" HREF=\"/classes\" ALT=\"Current Printer Classes Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"185,10,235,30\" HREF=\"/jobs\" ALT=\"Current Jobs Status\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"245,10,395,30\" HREF=\"/documentation.html\" ALT=\"Read CUPS Documentation On-Line\">");
puts("<AREA SHAPE=\"RECT\" COORDS=\"405,10,490,30\" HREF=\"http://www.cups.org\" ALT=\"Download the Current CUPS Software\">");
#endif /* ESPPRINTPRO */
puts("</MAP>");
puts("</HEAD>");
puts("<BODY>");
+2 -9
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: classes.conf 678 1999-09-22 18:10:55Z mike $"
# "$Id: classes.conf 333 1999-05-17 18:03:40Z mike $"
#
# Sample class configuration file for the Common UNIX Printing System
# (CUPS) scheduler.
@@ -59,13 +59,6 @@
#Location Room 101 in the activities building
#
# Accepting: is the class accepting jobs?
#
#Accepting Yes
#Accepting No
#
#
# Printer: adds a printer to the class.
#
@@ -75,5 +68,5 @@
#</Class>
#
# End of "$Id: classes.conf 678 1999-09-22 18:10:55Z mike $".
# End of "$Id: classes.conf 333 1999-05-17 18:03:40Z mike $".
#
+8 -30
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: cupsd.conf 628 1999-08-23 15:24:48Z mike $"
# "$Id: cupsd.conf 510 1999-07-09 14:20:15Z mike $"
#
# Sample configuration file for the Common UNIX Printing System (CUPS)
# scheduler.
@@ -70,25 +70,20 @@ Port 631
# program is run...
#
#User lp
#Group sys
User lp
Group sys
#
# SystemGroup: the group name for "System" (printer administration)
# access. The default varies depending on the operating system, but
# will be "sys", "system", or "root" (checked for in that order.)
# access.
#
#SystemGroup sys
SystemGroup sys
#
# ServerName: the hostname of your server, as advertised to the world.
# By default CUPS will use the hostname of the system.
#
# This is also the name used by clients when connecting to the local
# server, so you can use this to configure a client machine without
# a local server running.
#
#ServerName myhost.domain.com
@@ -310,23 +305,6 @@ LogLevel info
# Deny: denies access from the specified hostname, domain, IP address, or
# network.
#
# Both "Allow" and "Deny" accept the following notations for addresses:
#
# All
# None
# *.domain.com
# .domain.com
# host.domain.com
# nnn.*
# nnn.nnn.*
# nnn.nnn.nnn.*
# nnn.nnn.nnn.nnn
# nnn.nnn.nnn.nnn/mm
# nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
#
# The host and domain address require that you enable hostname lookups
# with "HostNameLookups On" above.
#
<Location />
</Location>
@@ -351,8 +329,8 @@ LogLevel info
#
# You definitely will want to limit access to the administration tools.
# The default configuration requires a local connection from a user who
# is a member of the system group to do any admin tasks. You can change
# the group name using the SystemGroup directive.
# is a member of group "sys" to do any admin tasks. You can change the
# group name using the SystemGroup directive.
#
AuthType Basic
@@ -365,5 +343,5 @@ Allow From 127.0.0.1
</Location>
#
# End of "$Id: cupsd.conf 628 1999-08-23 15:24:48Z mike $".
# End of "$Id: cupsd.conf 510 1999-07-09 14:20:15Z mike $".
#
-2
Ver Arquivo
@@ -1,2 +0,0 @@
# This is a dummy printcap file that is automatically generated by the
# CUPS software for old applications that rely on it.
+3 -10
Ver Arquivo
@@ -1,5 +1,5 @@
#
# "$Id: printers.conf 678 1999-09-22 18:10:55Z mike $"
# "$Id: printers.conf 334 1999-05-17 18:11:26Z mike $"
#
# Sample printer configuration file for the Common UNIX Printing System
# (CUPS) scheduler.
@@ -77,20 +77,13 @@
# State: sets the initial state of the printer. Can be one of the
# following:
#
# Idle - Printer is available to print new jobs.
# Idle - Printer is available to accept new jobs.
# Stopped - Printer is disabled but accepting new jobs.
#
#State Idle
#
# Accepting: is the printer accepting jobs?
#
#Accepting Yes
#Accepting No
#</Printer>
#
# End of "$Id: printers.conf 678 1999-09-22 18:10:55Z mike $".
# End of "$Id: printers.conf 334 1999-05-17 18:11:26Z mike $".
#
+1 -1
Ver Arquivo
@@ -28,7 +28,7 @@
* Version of software...
*/
#define CUPS_SVERSION "CUPS v1.0b9"
#define CUPS_SVERSION "CUPS v1.0"
/*
* Where are files stored?
+11 -13
Ver Arquivo
@@ -46,7 +46,12 @@ AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],
OPTIM="-g "
fi])
AC_ARG_ENABLE(shared, [ --disable-shared turn off shared libraries [default=no]])
if test "$disable_shared" != "yes"; then
if eval "test x$disable_shared = xyes"; then
PICFLAG=0
LIBCUPS="libcups.a"
LIBCUPSIMAGE="libcupsimage.a"
DSO=":"
else
case "$uname" in
SunOS* | UNIX_S*)
LIBCUPS="libcups.so.1"
@@ -58,7 +63,7 @@ if test "$disable_shared" != "yes"; then
LIBCUPSIMAGE="libcupsimage.sl.1"
DSO="ld -b -z +h \$@ -o"
;;
OSF1* | Linux* | FreeBSD*)
OSF1* | Linux*)
LIBCUPS="libcups.so.1"
LIBCUPSIMAGE="libcupsimage.so.1"
DSO="\$(CC) -Wl,-soname,\$@ -shared \$(OPTIM) -o"
@@ -76,11 +81,6 @@ if test "$disable_shared" != "yes"; then
DSO="\$(CC) -Wl,-soname,\$@ -shared \$(OPTIM) -o"
;;
esac
else
PICFLAG=0
LIBCUPS="libcups.a"
LIBCUPSIMAGE="libcupsimage.a"
DSO=":"
fi
dnl Checks for programs...
@@ -91,14 +91,13 @@ AC_PROG_RANLIB
AC_PATH_PROG(AR,ar)
AC_PATH_PROG(CHMOD,chmod)
AC_PATH_PROG(CP,cp)
AC_PATH_PROG(MV,mv)
AC_PATH_PROG(NROFF,nroff)
if test "$NROFF" = ""; then
AC_PATH_PROG(GROFF,groff)
if test "$GROFF" = ""; then
AC_PATH_PROG(NROFF,groff)
if test "$NROFF" = ""; then
NROFF="echo"
else
NROFF="$GROFF -T ascii"
NROFF="$NROFF -T ascii"
fi
fi
AC_PATH_PROG(HTMLDOC,htmldoc)
@@ -213,7 +212,6 @@ else
if test -z "$OPTIM"; then
OPTIM="+O2"
fi
OPTIM="-Ae $OPTIM"
;;
SunOS*)
# Solaris
@@ -273,7 +271,7 @@ if test "$prefix" = "NONE"; then
fi
dnl Fix "libdir" variable for IRIX 6.x...
if test "$uname" = "IRIX" -a $uversion -ge 65; then
if test "$uname" = "IRIX" -a $uversion -ge 62; then
libdir="/usr/lib32"
fi
-309
Ver Arquivo
@@ -1,309 +0,0 @@
#
# "$Id: cups.spec 695 1999-09-27 18:24:36Z mike $"
#
# RPM "spec" file for the Common UNIX Printing System (CUPS).
#
# Original version by Jason McMullan <jmcc@ontv.com>.
#
# Copyright 1999 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# copyright law. Distribution and use rights are outlined in the file
# "LICENSE.txt" which should have been included with this file. If this
# file is missing or damaged please contact Easy Software Products
# at:
#
# Attn: CUPS Licensing Information
# Easy Software Products
# 44141 Airport View Drive, Suite 204
# Hollywood, Maryland 20636-3111 USA
#
# Voice: (301) 373-9603
# EMail: cups-info@cups.org
# WWW: http://www.cups.org
#
Summary: Common Unix Printing System
Name: cups
Version: 1.0b10
Release: 0
Copyright: GPL
Group: System Environment/Daemons
Source: ftp://ftp.easysw.com/pub/cups/beta/cups-1.0b10-source.tar.gz
Url: http://www.cups.org
Packager: Michael Sweet <mike@easysw.com>
Vendor: Easy Software Products
# use buildroot so as not to disturb the version already installed
BuildRoot: /tmp/rpmbuild
Conflicts: lpr
%package devel
Summary: Common Unix Printing System - development environment
Group: Development/Libraries
%description
The Common UNIX Printing System provides a portable printing layer for
UNIX® operating systems. It has been developed by Easy Software Products
to promote a standard printing solution for all UNIX vendors and users.
CUPS provides the System V and Berkeley command-line interfaces.
%description devel
The Common UNIX Printing System provides a portable printing layer for
UNIX® operating systems. This is the development package for creating
additional printer drivers, and other CUPS services.
%prep
%setup
%build
./configure
# If we got this far, all prerequisite libraries must be here.
make
%install
# these lines just make sure the directory structure in the
# RPM_BUILD_ROOT exists
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/etc
mkdir -p $RPM_BUILD_ROOT/etc/rc.d
mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
mkdir -p $RPM_BUILD_ROOT/usr
mkdir -p $RPM_BUILD_ROOT/usr/bin
mkdir -p $RPM_BUILD_ROOT/usr/lib
mkdir -p $RPM_BUILD_ROOT/usr/man
mkdir -p $RPM_BUILD_ROOT/usr/man/man1
mkdir -p $RPM_BUILD_ROOT/usr/man/man5
mkdir -p $RPM_BUILD_ROOT/usr/man/man8
mkdir -p $RPM_BUILD_ROOT/usr/share/locale
mkdir -p $RPM_BUILD_ROOT/var/cups
mkdir -p $RPM_BUILD_ROOT/var/cups/conf
mkdir -p $RPM_BUILD_ROOT/var/cups/logs
mkdir -p $RPM_BUILD_ROOT/var/logs
ln -sf /var/cups/logs $RPM_BUILD_ROOT/var/logs/cups
ln -sf /var/cups/conf $RPM_BUILD_ROOT/etc/cups
make prefix=$RPM_BUILD_ROOT/usr DATADIR=$RPM_BUILD_ROOT/usr/share/cups LOCALEDIR=$RPM_BUILD_ROOT/usr/share/locale SERVERROOT=$RPM_BUILD_ROOT/var/cups install
$RPM_BUILD_ROOT/etc/rc.d/init.d/cups
install -m 755 -o root -g root cups.sh $RPM_BUILD_ROOT/etc/rc.d/init.d/cups
%post
/sbin/chkconfig --add cups
%preun
/sbin/chkconfig --del cups
%clean
rm -rf $RPM_BUILD_ROOT
%files
/etc/rc.d/init.d/cups
%config /var/cups/conf/classes.conf
%config /var/cups/conf/cupsd.conf
%config /var/cups/conf/mime.convs
%config /var/cups/conf/mime.types
%config /var/cups/conf/printers.conf
/usr/bin/lpr
/usr/bin/lprm
/usr/bin/disable
/usr/bin/enable
/usr/bin/cancel
/usr/bin/lp
/usr/bin/lpstat
/usr/lib/accept
/usr/lib/libcups.so.1
/usr/lib/libcupsimage.so.1
/usr/lib/lpadmin
/usr/lib/reject
/usr/man/man1/backend.1
/usr/man/man1/filter.1
/usr/man/man1/lprm.1
/usr/man/man1/lpr.1
/usr/man/man1/lpstat.1
/usr/man/man1/lp.1
/usr/man/man1/cancel.1
/usr/man/man5/classes.conf.5
/usr/man/man5/cupsd.conf.5
/usr/man/man5/mime.convs.5
/usr/man/man5/mime.types.5
/usr/man/man5/printers.conf.5
/usr/man/man8/accept.8
/usr/man/man8/cupsd.8
/usr/man/man8/enable.8
/usr/man/man8/lpadmin.8
/usr/man/man8/lpc.8
/usr/man/man8/reject.8
/usr/man/man8/disable.8
/usr/sbin/accept
/usr/sbin/cupsd
/usr/sbin/lpadmin
/usr/sbin/lpc
/usr/sbin/reject
%dir /usr/share/cups
/usr/share/cups/data/8859-1
/usr/share/cups/data/8859-14
/usr/share/cups/data/8859-15
/usr/share/cups/data/8859-2
/usr/share/cups/data/8859-3
/usr/share/cups/data/8859-4
/usr/share/cups/data/8859-5
/usr/share/cups/data/8859-6
/usr/share/cups/data/8859-7
/usr/share/cups/data/8859-8
/usr/share/cups/data/8859-9
/usr/share/cups/data/HPGLprolog
/usr/share/cups/data/psglyphs
/usr/share/cups/doc/cmp.html
/usr/share/cups/doc/cmp.pdf
/usr/share/cups/doc/cups.css
/usr/share/cups/doc/cupsdoc.css
/usr/share/cups/doc/documentation.html
/usr/share/cups/doc/idd.html
/usr/share/cups/doc/idd.pdf
/usr/share/cups/doc/images/classes.gif
/usr/share/cups/doc/images/cups-block-diagram.gif
/usr/share/cups/doc/images/cups-large.gif
/usr/share/cups/doc/images/cups-medium.gif
/usr/share/cups/doc/images/cups-small.gif
/usr/share/cups/doc/images/logo.gif
/usr/share/cups/doc/images/navbar.gif
/usr/share/cups/doc/images/printer-idle.gif
/usr/share/cups/doc/images/printer-processing.gif
/usr/share/cups/doc/images/printer-stopped.gif
/usr/share/cups/doc/index.html
/usr/share/cups/doc/overview.html
/usr/share/cups/doc/overview.pdf
/usr/share/cups/doc/sam.html
/usr/share/cups/doc/sam.pdf
/usr/share/cups/doc/sdd.html
/usr/share/cups/doc/sdd.pdf
/usr/share/cups/doc/ssr.html
/usr/share/cups/doc/ssr.pdf
/usr/share/cups/doc/stp.html
/usr/share/cups/doc/stp.pdf
/usr/share/cups/doc/sum.html
/usr/share/cups/doc/sum.pdf
/usr/share/cups/doc/svd.html
/usr/share/cups/doc/svd.pdf
/usr/share/cups/fonts/AvantGarde-Book
/usr/share/cups/fonts/AvantGarde-BookOblique
/usr/share/cups/fonts/AvantGarde-Demi
/usr/share/cups/fonts/AvantGarde-DemiOblique
/usr/share/cups/fonts/Bookman-Demi
/usr/share/cups/fonts/Bookman-DemiItalic
/usr/share/cups/fonts/Bookman-Light
/usr/share/cups/fonts/Bookman-LightItalic
/usr/share/cups/fonts/Courier
/usr/share/cups/fonts/Courier-Bold
/usr/share/cups/fonts/Courier-BoldOblique
/usr/share/cups/fonts/Courier-Oblique
/usr/share/cups/fonts/Helvetica
/usr/share/cups/fonts/Helvetica-Bold
/usr/share/cups/fonts/Helvetica-BoldOblique
/usr/share/cups/fonts/Helvetica-Narrow
/usr/share/cups/fonts/Helvetica-Narrow-Bold
/usr/share/cups/fonts/Helvetica-Narrow-BoldOblique
/usr/share/cups/fonts/Helvetica-Narrow-Oblique
/usr/share/cups/fonts/Helvetica-Oblique
/usr/share/cups/fonts/NewCenturySchlbk-Bold
/usr/share/cups/fonts/NewCenturySchlbk-BoldItalic
/usr/share/cups/fonts/NewCenturySchlbk-Italic
/usr/share/cups/fonts/NewCenturySchlbk-Roman
/usr/share/cups/fonts/Palatino-Bold
/usr/share/cups/fonts/Palatino-BoldItalic
/usr/share/cups/fonts/Palatino-Italic
/usr/share/cups/fonts/Palatino-Roman
/usr/share/cups/fonts/Symbol
/usr/share/cups/fonts/Times-Bold
/usr/share/cups/fonts/Times-BoldItalic
/usr/share/cups/fonts/Times-Italic
/usr/share/cups/fonts/Times-Roman
/usr/share/cups/fonts/Utopia-Bold
/usr/share/cups/fonts/Utopia-BoldItalic
/usr/share/cups/fonts/Utopia-Italic
/usr/share/cups/fonts/Utopia-Regular
/usr/share/cups/fonts/ZapfChancery-MediumItalic
/usr/share/cups/fonts/ZapfDingbats
/usr/share/cups/model/deskjet.ppd
/usr/share/cups/model/laserjet.ppd
/usr/share/cups/pstoraster/Fontmap
/usr/share/cups/pstoraster/gs_btokn.ps
/usr/share/cups/pstoraster/gs_ccfnt.ps
/usr/share/cups/pstoraster/gs_cidfn.ps
/usr/share/cups/pstoraster/gs_cmap.ps
/usr/share/cups/pstoraster/gs_cmdl.ps
/usr/share/cups/pstoraster/gs_dbt_e.ps
/usr/share/cups/pstoraster/gs_diskf.ps
/usr/share/cups/pstoraster/gs_dps1.ps
/usr/share/cups/pstoraster/gs_fform.ps
/usr/share/cups/pstoraster/gs_fonts.ps
/usr/share/cups/pstoraster/gs_init.ps
/usr/share/cups/pstoraster/gs_iso_e.ps
/usr/share/cups/pstoraster/gs_kanji.ps
/usr/share/cups/pstoraster/gs_ksb_e.ps
/usr/share/cups/pstoraster/gs_l2img.ps
/usr/share/cups/pstoraster/gs_lev2.ps
/usr/share/cups/pstoraster/gs_mex_e.ps
/usr/share/cups/pstoraster/gs_mro_e.ps
/usr/share/cups/pstoraster/gs_pdf.ps
/usr/share/cups/pstoraster/gs_pdf_e.ps
/usr/share/cups/pstoraster/gs_pdfwr.ps
/usr/share/cups/pstoraster/gs_pfile.ps
/usr/share/cups/pstoraster/gs_res.ps
/usr/share/cups/pstoraster/gs_setpd.ps
/usr/share/cups/pstoraster/gs_statd.ps
/usr/share/cups/pstoraster/gs_std_e.ps
/usr/share/cups/pstoraster/gs_sym_e.ps
/usr/share/cups/pstoraster/gs_ttf.ps
/usr/share/cups/pstoraster/gs_typ42.ps
/usr/share/cups/pstoraster/gs_type1.ps
/usr/share/cups/pstoraster/gs_wan_e.ps
/usr/share/cups/pstoraster/gs_wl1_e.ps
/usr/share/cups/pstoraster/gs_wl2_e.ps
/usr/share/cups/pstoraster/gs_wl5_e.ps
/usr/share/cups/pstoraster/pdf_2ps.ps
/usr/share/cups/pstoraster/pdf_base.ps
/usr/share/cups/pstoraster/pdf_draw.ps
/usr/share/cups/pstoraster/pdf_font.ps
/usr/share/cups/pstoraster/pdf_main.ps
/usr/share/cups/pstoraster/pdf_sec.ps
/usr/share/cups/pstoraster/pfbtogs.ps
%dir /var/cups
/var/cups/backend/http
/var/cups/backend/ipp
/var/cups/backend/lpd
/var/cups/backend/parallel
/var/cups/backend/serial
/var/cups/backend/socket
/var/cups/cgi-bin/classes.cgi
/var/cups/cgi-bin/jobs.cgi
/var/cups/cgi-bin/printers.cgi
/var/cups/conf
/var/cups/filter/hpgltops
/var/cups/filter/imagetops
/var/cups/filter/imagetoraster
/var/cups/filter/pstops
/var/cups/filter/pstoraster
/var/cups/filter/rastertohp
/var/cups/filter/texttops
%dir /var/cups/interfaces
%dir /var/cups/logs
%dir /var/cups/ppd
%dir /var/cups/requests
%files devel
%dir /usr/include/cups
/usr/include/cups/cups.h
/usr/include/cups/http.h
/usr/include/cups/ipp.h
/usr/include/cups/language.h
/usr/include/cups/mime.h
/usr/include/cups/ppd.h
/usr/include/cups/raster.h
#
# End of "$Id: cups.spec 695 1999-09-27 18:24:36Z mike $".
#
+1 -1
Ver Arquivo
@@ -117,7 +117,7 @@ extern int cupsGetPrinters(char ***printers);
extern int cupsPrintFile(const char *printer, const char *filename,
const char *title, int num_options,
cups_option_t *options);
extern char *cupsTempFile(char *filename, int len);
extern int cupsAddOption(const char *name, const char *value,
int num_options, cups_option_t **options);
extern void cupsFreeOptions(int num_options, cups_option_t *options);
+1 -1
Ver Arquivo
@@ -107,7 +107,7 @@ ppdEmit(ppd_file_t *ppd, /* I - PPD file record */
*/
fputs("pop pop pop\n", fp);
fputs("<</PageSize[5 -2 roll]/ImagingBBox null>>setpagedevice\n", fp);
fputs("<</PageSize[7 -2 roll]/ImagingBBox null>>setpagedevice\n", fp);
}
}
+35 -135
Ver Arquivo
@@ -25,8 +25,6 @@
*
* httpInitialize() - Initialize the HTTP interface library and set the
* default HTTP proxy (if any).
* httpCheck() - Check to see if there is a pending response from
* the server.
* httpClose() - Close an HTTP connection...
* httpConnect() - Connect to a HTTP server.
* httpReconnect() - Reconnect to a HTTP server...
@@ -192,41 +190,6 @@ httpInitialize(void)
}
/*
* 'httpCheck()' - Check to see if there is a pending response from the server.
*/
int /* O - 0 = no data, 1 = data available */
httpCheck(http_t *http) /* I - HTTP connection */
{
fd_set input; /* Input set for select() */
struct timeval timeout; /* Timeout */
/*
* First see if there is data in the buffer...
*/
if (http == NULL)
return (0);
if (http->used)
return (1);
/*
* Then try doing a select() to poll the socket...
*/
FD_ZERO(&input);
FD_SET(http->fd, &input);
timeout.tv_sec = 0;
timeout.tv_usec = 0;
return (select(http->fd + 1, &input, NULL, NULL, &timeout) > 0);
}
/*
* 'httpClose()' - Close an HTTP connection...
*/
@@ -329,11 +292,7 @@ httpReconnect(http_t *http) /* I - HTTP data */
*/
if ((http->fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{
http->error = errno;
http->status = HTTP_ERROR;
return (-1);
}
#ifdef FD_CLOEXEC
fcntl(http->fd, F_SETFD, FD_CLOEXEC); /* Close this socket when starting *
@@ -355,9 +314,6 @@ httpReconnect(http_t *http) /* I - HTTP data */
if (connect(http->fd, (struct sockaddr *)&(http->hostaddr),
sizeof(http->hostaddr)) < 0)
{
http->error = errno;
http->status = HTTP_ERROR;
#ifdef WIN32
closesocket(http->fd);
#else
@@ -367,9 +323,6 @@ httpReconnect(http_t *http) /* I - HTTP data */
return (-1);
}
http->error = 0;
http->status = HTTP_CONTINUE;
return (0);
}
@@ -695,11 +648,6 @@ httpRead(http_t *http, /* I - HTTP data */
* data, go idle...
*/
if (http->data_encoding == HTTP_ENCODE_CHUNKED &&
(http->state == HTTP_GET_SEND || http->state == HTTP_POST_RECV ||
http->state == HTTP_POST_SEND || http->state == HTTP_PUT_RECV))
httpGets(len, sizeof(len), http);
if (http->state == HTTP_POST_RECV)
http->state ++;
else
@@ -734,23 +682,13 @@ httpRead(http_t *http, /* I - HTTP data */
if (bytes > 0)
http->data_remaining -= bytes;
else if (bytes < 0)
http->error = errno;
if (http->data_remaining == 0)
if (http->data_remaining == 0 && http->data_encoding != HTTP_ENCODE_CHUNKED)
{
if (http->data_encoding == HTTP_ENCODE_CHUNKED &&
(http->state == HTTP_GET_SEND || http->state == HTTP_POST_RECV ||
http->state == HTTP_POST_SEND || http->state == HTTP_PUT_RECV))
httpGets(len, sizeof(len), http);
if (http->data_encoding != HTTP_ENCODE_CHUNKED)
{
if (http->state == HTTP_POST_RECV)
http->state ++;
else
http->state = HTTP_WAITING;
}
if (http->state == HTTP_POST_RECV)
http->state ++;
else
http->state = HTTP_WAITING;
}
return (bytes);
@@ -779,8 +717,11 @@ httpWrite(http_t *http, /* I - HTTP data */
if (http->data_encoding == HTTP_ENCODE_CHUNKED &&
(http->state == HTTP_GET_SEND || http->state == HTTP_POST_RECV ||
http->state == HTTP_POST_SEND || http->state == HTTP_PUT_RECV))
if (httpPrintf(http, "%x\r\n", length) < 0)
{
sprintf(len, "%x\r\n", length);
if (send(http->fd, len, strlen(len), 0) < 3)
return (-1);
}
if (length == 0)
{
@@ -805,7 +746,6 @@ httpWrite(http_t *http, /* I - HTTP data */
if (bytes < 0)
{
DEBUG_puts("httpWrite: error writing data...\n");
return (-1);
}
@@ -816,12 +756,6 @@ httpWrite(http_t *http, /* I - HTTP data */
http->data_remaining -= bytes;
}
if (http->data_encoding == HTTP_ENCODE_CHUNKED &&
(http->state == HTTP_GET_SEND || http->state == HTTP_POST_RECV ||
http->state == HTTP_POST_SEND || http->state == HTTP_PUT_RECV))
if (httpPrintf(http, "\r\n") < 0)
return (-1);
if (http->data_remaining == 0 && http->data_encoding == HTTP_ENCODE_LENGTH)
{
/*
@@ -864,8 +798,6 @@ httpGets(char *line, /* I - Line to read into */
* Pre-scan the buffer and see if there is a newline in there...
*/
errno = 0;
do
{
bufptr = http->buffer;
@@ -883,36 +815,23 @@ httpGets(char *line, /* I - Line to read into */
* No newline; see if there is more data to be read...
*/
if ((bytes = recv(http->fd, bufend, HTTP_MAX_BUFFER - http->used, 0)) < 0)
if ((bytes = recv(http->fd, bufend, HTTP_MAX_BUFFER - http->used, 0)) < 1)
{
/*
* Nope, can't get a line this time...
*/
if (errno != http->error)
{
http->error = errno;
continue;
}
DEBUG_printf(("httpGets(): recv() error %d!\n", errno));
return (NULL);
}
else if (bytes == 0)
else
{
if (http->blocking)
http->error = EPIPE;
/*
* Yup, update the amount used and the end pointer...
*/
return (NULL);
http->used += bytes;
bufend += bytes;
}
/*
* Yup, update the amount used and the end pointer...
*/
http->used += bytes;
bufend += bytes;
}
}
while (bufptr >= bufend);
@@ -940,7 +859,6 @@ httpGets(char *line, /* I - Line to read into */
if (http->used > 0)
memcpy(http->buffer, bufptr, http->used);
DEBUG_printf(("httpGets(): Returning \"%s\"\n", line));
return (line);
}
else if (*bufptr == 0x0d)
@@ -949,8 +867,6 @@ httpGets(char *line, /* I - Line to read into */
*lineptr++ = *bufptr++;
}
DEBUG_puts("httpGets(): No new line available!");
return (NULL);
}
@@ -964,11 +880,8 @@ httpPrintf(http_t *http, /* I - HTTP data */
const char *format, /* I - printf-style format string */
...) /* I - Additional args as needed */
{
int bytes, /* Number of bytes to write */
nbytes, /* Number of bytes written */
tbytes; /* Number of bytes all together */
char buf[HTTP_MAX_BUFFER], /* Buffer for formatted string */
*bufptr; /* Pointer into buffer */
int bytes; /* Number of bytes to write */
char buf[HTTP_MAX_BUFFER]; /* Buffer for formatted string */
va_list ap; /* Variable argument pointer */
@@ -978,11 +891,7 @@ httpPrintf(http_t *http, /* I - HTTP data */
DEBUG_printf(("httpPrintf: %s", buf));
for (tbytes = 0, bufptr = buf; tbytes < bytes; tbytes += nbytes, bufptr += nbytes)
if ((nbytes = send(http->fd, bufptr, bytes - tbytes, 0)) < 0)
return (-1);
return (bytes);
return (send(http->fd, buf, bytes, 0));
}
@@ -1181,21 +1090,15 @@ httpUpdate(http_t *http) /* I - HTTP data */
httpSetField(http, field, value);
}
else
{
http->status = HTTP_ERROR;
return (HTTP_ERROR);
}
}
/*
* See if there was an error...
*/
if (http->error)
{
http->status = HTTP_ERROR;
if (errno)
return (HTTP_ERROR);
}
/*
* If we haven't already returned, then there is nothing new...
@@ -1431,13 +1334,6 @@ http_send(http_t *http, /* I - HTTP data */
*ptr = '\0';
/*
* See if we had an error the last time around; if so, reconnect...
*/
if (http->status == HTTP_ERROR || http->status >= HTTP_BAD_REQUEST)
httpReconnect(http);
/*
* Send the request header...
*/
@@ -1446,12 +1342,22 @@ http_send(http_t *http, /* I - HTTP data */
if (request == HTTP_POST || request == HTTP_PUT)
http->state ++;
http->status = HTTP_CONTINUE;
if (httpPrintf(http, "%s %s HTTP/1.1\r\n", codes[request], buf) < 1)
{
http->status = HTTP_ERROR;
return (-1);
/*
* Might have lost connection; try to reconnect...
*/
if (httpReconnect(http))
return (-1);
/*
* OK, we've reconnected, send the request again...
*/
if (httpPrintf(http, "%s %s HTTP/%d.%d\r\n", codes[request], buf,
http->version / 100, http->version % 100) < 1)
return (-1);
}
for (i = 0; i < HTTP_FIELD_MAX; i ++)
@@ -1460,17 +1366,11 @@ http_send(http_t *http, /* I - HTTP data */
DEBUG_printf(("%s: %s\n", http_fields[i], http->fields[i]));
if (httpPrintf(http, "%s: %s\r\n", http_fields[i], http->fields[i]) < 1)
{
http->status = HTTP_ERROR;
return (-1);
}
return (-1);
}
if (httpPrintf(http, "\r\n") < 1)
{
http->status = HTTP_ERROR;
return (-1);
}
httpClearFields(http);
-3
Ver Arquivo
@@ -221,7 +221,6 @@ typedef struct
{
int fd; /* File descriptor for this socket */
int blocking; /* To block or not to block */
int error; /* Last error on read */
time_t activity; /* Time since last read/write */
http_state_t state; /* State of client */
http_status_t status; /* Status of last request */
@@ -246,13 +245,11 @@ typedef struct
*/
# define httpBlocking(http,b) (http)->blocking = (b)
extern int httpCheck(http_t *http);
# define httpClearFields(http) memset((http)->fields, 0, sizeof((http)->fields)),\
httpSetField((http), HTTP_FIELD_HOST, (http)->hostname)
extern void httpClose(http_t *http);
extern http_t *httpConnect(const char *host, int port);
extern int httpDelete(http_t *http, const char *uri);
# define httpError(http) ((http)->error)
extern void httpFlush(http_t *http);
extern int httpGet(http_t *http, const char *uri);
extern char *httpGets(char *line, int length, http_t *http);
+17 -17
Ver Arquivo
@@ -65,7 +65,7 @@
*/
static ipp_attribute_t *add_attr(ipp_t *ipp, int num_values);
static int ipp_read(http_t *http, unsigned char *buffer, int length);
static int ipp_read(http_t *http, char *buffer, int length);
/*
@@ -725,7 +725,7 @@ ippRead(http_t *http, /* I - HTTP data */
ipp_t *ipp) /* I - IPP data */
{
int n; /* Length of data */
unsigned char buffer[8192]; /* Data buffer */
char buffer[8192]; /* Data buffer */
ipp_attribute_t *attr; /* Current attribute */
ipp_tag_t tag; /* Current tag */
@@ -867,7 +867,7 @@ ippRead(http_t *http, /* I - HTTP data */
attr->group_tag = ipp->curtag;
attr->value_tag = tag;
attr->name = strdup((char *)buffer);
attr->name = strdup(buffer);
attr->num_values = 0;
}
@@ -913,7 +913,7 @@ ippRead(http_t *http, /* I - HTTP data */
buffer[n] = '\0';
DEBUG_printf(("ippRead: value = \'%s\'\n", buffer));
attr->values[attr->num_values].string.text = strdup((char *)buffer);
attr->values[attr->num_values].string.text = strdup(buffer);
break;
case IPP_TAG_DATE :
if (ipp_read(http, buffer, 11) < 11)
@@ -952,7 +952,7 @@ ippRead(http_t *http, /* I - HTTP data */
buffer[n] = '\0';
attr->values[attr->num_values].string.charset = strdup((char *)buffer);
attr->values[attr->num_values].string.charset = strdup(buffer);
if (ipp_read(http, buffer, 2) < 2)
return (IPP_ERROR);
@@ -964,7 +964,7 @@ ippRead(http_t *http, /* I - HTTP data */
buffer[n] = '\0';
attr->values[attr->num_values].string.text = strdup((char *)buffer);
attr->values[attr->num_values].string.text = strdup(buffer);
break;
}
@@ -1044,7 +1044,7 @@ ippWrite(http_t *http, /* I - HTTP data */
{
int i; /* Looping var */
int n; /* Length of data */
unsigned char buffer[8192], /* Data buffer */
char buffer[8192], /* Data buffer */
*bufptr; /* Pointer into buffer */
ipp_attribute_t *attr; /* Current attribute */
@@ -1073,7 +1073,7 @@ ippWrite(http_t *http, /* I - HTTP data */
*bufptr++ = ipp->request.any.request_id >> 8;
*bufptr++ = ipp->request.any.request_id;
if (httpWrite(http, (char *)buffer, bufptr - buffer) < 0)
if (httpWrite(http, buffer, bufptr - buffer) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP header...");
return (IPP_ERROR);
@@ -1329,7 +1329,7 @@ ippWrite(http_t *http, /* I - HTTP data */
* Write the data out...
*/
if (httpWrite(http, (char *)buffer, bufptr - buffer) < 0)
if (httpWrite(http, buffer, bufptr - buffer) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP attribute...");
return (IPP_ERROR);
@@ -1352,7 +1352,7 @@ ippWrite(http_t *http, /* I - HTTP data */
*/
buffer[0] = IPP_TAG_END;
if (httpWrite(http, (char *)buffer, 1) < 0)
if (httpWrite(http, buffer, 1) < 0)
{
DEBUG_puts("ippWrite: Could not write IPP end-tag...");
return (IPP_ERROR);
@@ -1429,13 +1429,13 @@ add_attr(ipp_t *ipp, /* I - IPP request */
* 'ipp_read()' - Semi-blocking read on a HTTP connection...
*/
static int /* O - Number of bytes read */
ipp_read(http_t *http, /* I - Client connection */
unsigned char *buffer, /* O - Buffer for data */
int length) /* I - Total length */
static int /* O - Number of bytes read */
ipp_read(http_t *http, /* I - Client connection */
char *buffer,/* O - Buffer for data */
int length) /* I - Total length */
{
int tbytes, /* Total bytes read */
bytes; /* Bytes read this pass */
int tbytes, /* Total bytes read */
bytes; /* Bytes read this pass */
/*
@@ -1443,7 +1443,7 @@ ipp_read(http_t *http, /* I - Client connection */
*/
for (tbytes = 0; tbytes < length; tbytes += bytes, buffer += bytes)
if ((bytes = httpRead(http, (char *)buffer, length - tbytes)) <= 0)
if ((bytes = httpRead(http, buffer, length - tbytes)) <= 0)
break;
/*
+1 -2
Ver Arquivo
@@ -149,8 +149,7 @@ cupsLangGet(const char *language) /* I - Language or locale */
* operating systems.
*/
if (language == NULL || language[0] == '\0' ||
strcmp(language, "POSIX") == 0)
if (language == NULL || language[0] == '\0')
strcpy(langname, "C");
else
strcpy(langname, language);
+1 -6
Ver Arquivo
@@ -177,12 +177,7 @@ typedef struct cups_lang_str /**** Language Cache Structure ****/
* Prototypes...
*/
# ifdef WIN32
# define cupsLangDefault() cupsLangGet(setlocale(LC_ALL, ""))
# else /* This fix works around bugs in the Linux and HP-UX setlocale() */
# define cupsLangDefault() cupsLangGet(getenv("LANG"))
# endif /* WIN32 */
# define cupsLangDefault() cupsLangGet(setlocale(LC_ALL, ""))
extern char *cupsLangEncoding(cups_lang_t *lang);
extern void cupsLangFlush(void);
extern void cupsLangFree(cups_lang_t *lang);
+40 -12
Ver Arquivo
@@ -33,6 +33,7 @@
* ppdMarkDefaults() - Mark all default options in the PPD file.
* ppdMarkOption() - Mark an option in a PPD file.
* ppd_defaults() - Set the defaults for this group and all sub-groups.
* ppd_default() - Set the default choice for an option.
*/
/*
@@ -47,7 +48,8 @@
* Local functions...
*/
static void ppd_defaults(ppd_file_t *ppd, ppd_group_t *g);
static void ppd_defaults(ppd_group_t *g);
static void ppd_default(ppd_option_t *o);
/*
@@ -294,7 +296,12 @@ ppdMarkDefaults(ppd_file_t *ppd)/* I - PPD file record */
return;
for (i = ppd->num_groups, g = ppd->groups; i > 0; i --, g ++)
ppd_defaults(ppd, g);
ppd_defaults(g);
o = ppdFindOption(ppd, "PageSize");
for (i = 0; i < ppd->num_sizes; i ++)
ppd->sizes[i].marked = strcmp(ppd->sizes[i].name, o->defchoice) == 0;
}
@@ -365,15 +372,15 @@ ppdMarkOption(ppd_file_t *ppd, /* I - PPD file record */
if (strcmp(option, "PageSize") == 0)
{
if ((o = ppdFindOption(ppd, "PageRegion")) != NULL)
for (i = 0; i < o->num_choices; i ++)
o->choices[i].marked = 0;
o = ppdFindOption(ppd, "PageRegion");
for (i = 0; i < o->num_choices; i ++)
o->choices[i].marked = 0;
}
else
{
if ((o = ppdFindOption(ppd, "PageSize")) != NULL)
for (i = 0; i < o->num_choices; i ++)
o->choices[i].marked = 0;
o = ppdFindOption(ppd, "PageSize");
for (i = 0; i < o->num_choices; i ++)
o->choices[i].marked = 0;
}
}
}
@@ -387,8 +394,7 @@ ppdMarkOption(ppd_file_t *ppd, /* I - PPD file record */
*/
static void
ppd_defaults(ppd_file_t *ppd, /* I - PPD file */
ppd_group_t *g) /* I - Group to default */
ppd_defaults(ppd_group_t *g) /* I - Group to default */
{
int i; /* Looping var */
ppd_option_t *o; /* Current option */
@@ -400,10 +406,32 @@ ppd_defaults(ppd_file_t *ppd, /* I - PPD file */
for (i = g->num_options, o = g->options; i > 0; i --, o ++)
if (strcmp(o->keyword, "PageRegion") != 0)
ppdMarkOption(ppd, o->keyword, o->defchoice);
ppd_default(o);
for (i = g->num_subgroups, sg = g->subgroups; i > 0; i --, sg ++)
ppd_defaults(ppd, sg);
ppd_defaults(sg);
}
/*
* 'ppd_default()' - Set the default choice for an option.
*/
static void
ppd_default(ppd_option_t *o) /* I - Option to default */
{
int i; /* Looping var */
ppd_choice_t *c; /* Current choice */
if (o == NULL)
return;
for (i = o->num_choices, c = o->choices; i > 0; i --, c ++)
if (strcmp(c->choice, o->defchoice) == 0)
c->marked = 1;
else
c->marked = 0;
}
+3 -48
Ver Arquivo
@@ -456,8 +456,6 @@ ppdOpen(FILE *fp) /* I - File to read from */
return (NULL);
}
DEBUG_printf(("ppdOpen: keyword = %s, string = %08x\n", keyword, string));
safe_free(string);
/*
@@ -630,8 +628,7 @@ ppdOpen(FILE *fp) /* I - File to read from */
string = NULL;
}
else if (strcmp(keyword, "VariablePaperSize") == 0 &&
strcmp(string, "True") == 0 &&
!ppd->variable_sizes)
strcmp(string, "True") == 0)
{
ppd->variable_sizes = 1;
@@ -691,51 +688,9 @@ ppdOpen(FILE *fp) /* I - File to read from */
ppd->custom_margins + 1, ppd->custom_margins + 2,
ppd->custom_margins + 3);
else if (strcmp(keyword, "CustomPageSize") == 0 &&
strcmp(name, "True") == 0)
strcmp(name, "True") == 0 &&
ppd->variable_sizes)
{
if (!ppd->variable_sizes)
{
ppd->variable_sizes = 1;
/*
* Add a "Custom" page size entry...
*/
ppd_add_size(ppd, "Custom");
/*
* Add a "Custom" page size option...
*/
if ((group = ppd_get_group(ppd,
cupsLangString(language,
CUPS_MSG_GENERAL))) == NULL)
{
ppdClose(ppd);
safe_free(string);
return (NULL);
}
if ((option = ppd_get_option(group, "PageSize")) == NULL)
{
ppdClose(ppd);
safe_free(string);
return (NULL);
}
if ((choice = ppd_add_choice(option, "Custom")) == NULL)
{
ppdClose(ppd);
safe_free(string);
return (NULL);
}
strncpy(choice->text, cupsLangString(language, CUPS_MSG_VARIABLE),
sizeof(choice->text) - 1);
group = NULL;
option = NULL;
}
if ((option = ppdFindOption(ppd, "PageSize")) == NULL)
{
ppdClose(ppd);
+14 -64
Ver Arquivo
@@ -217,7 +217,8 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
DEBUG_puts("cupsDoFileRequest: post...");
if (httpPost(http, resource))
continue;
if (httpPost(http, resource))
break;
/*
* Send the IPP data and wait for the response...
@@ -277,14 +278,8 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */
else
break;
}
else if (status == HTTP_ERROR)
{
if (http->error != ENETDOWN && http->error != ENETUNREACH)
continue;
else
break;
}
else if (status != HTTP_OK)
if (status != HTTP_OK)
{
DEBUG_printf(("cupsDoFileRequest: error %d...\n", status));
@@ -505,6 +500,7 @@ cupsGetPPD(const char *name) /* I - Printer name */
resource[HTTP_MAX_URI]; /* Resource name */
static char filename[HTTP_MAX_URI]; /* Local filename */
char *tempdir; /* Temporary file directory */
struct stat fileinfo; /* File information */
/*
@@ -520,29 +516,33 @@ cupsGetPPD(const char *name) /* I - Printer name */
#if defined(WIN32) || defined(__EMX__)
tempdir = "C:/WINDOWS/TEMP";
sprintf(filename, "%s/%s.ppd", tempdir, printer);
#else
if ((tempdir = getenv("TMPDIR")) == NULL)
tempdir = "/tmp";
sprintf(filename, "%s/%d.%s.ppd", tempdir, getuid(), printer);
#endif /* WIN32 || __EMX__ */
sprintf(filename, "%s/%s.ppd", tempdir, printer);
if (stat(filename, &fileinfo))
memset(&fileinfo, 0, sizeof(fileinfo));
/*
* And send a request to the HTTP server...
* And send a request to the HTTP server using "if-modified-since"...
*/
sprintf(resource, "/printers/%s.ppd", printer);
httpClearFields(cups_server);
httpSetField(cups_server, HTTP_FIELD_HOST, hostname);
httpSetField(cups_server, HTTP_FIELD_IF_MODIFIED_SINCE,
httpGetDateString(fileinfo.st_mtime));
httpGet(cups_server, resource);
switch (httpUpdate(cups_server))
{
case HTTP_OK : /* New file - get it! */
break;
case HTTP_NOT_MODIFIED : /* File hasn't been modified; use the current copy */
return (filename);
default :
return (NULL);
}
@@ -888,56 +888,6 @@ cupsPrintFile(const char *name, /* I - Printer or class name */
}
/*
* 'cupsTempFile()' - Generate a temporary filename.
*/
char * /* O - Filename */
cupsTempFile(char *filename, /* I - Pointer to buffer */
int len) /* I - Size of buffer */
{
char *tmpdir; /* TMPDIR environment var */
static char buf[1024] = ""; /* Buffer if you pass in NULL and 0 */
/*
* See if a filename was specified...
*/
if (filename == NULL)
{
filename = buf;
len = sizeof(buf);
}
/*
* See if TMPDIR is defined...
*/
if ((tmpdir = getenv("TMPDIR")) == NULL)
tmpdir = "/var/tmp";
if ((strlen(tmpdir) + 8) > len)
{
/*
* The specified directory exceeds the size of the buffer; default it...
*/
strcpy(buf, "/var/tmp/XXXXXX");
return (mktemp(buf));
}
else
{
/*
* Make the temporary name using the specified directory...
*/
sprintf(filename, "%s/XXXXXX", tmpdir);
return (mktemp(filename));
}
}
/*
* 'cups_connect()' - Connect to the specified host...
*/
+2 -2
Ver Arquivo
@@ -42,7 +42,7 @@ include ../Makedefs
#
DOCUMENTS = cmp.shtml idd.shtml sam.shtml sdd.shtml ssr.shtml \
stp.shtml sum.shtml
stp.shtml sum.shtml svd.shtml
DOCIMAGES = images/cups-block-diagram.gif images/cups-large.gif \
images/cups-medium.gif images/cups-small.gif
WEBPAGES = cups.css cupsdoc.css index.html documentation.html
@@ -86,7 +86,7 @@ install:
overview.pdf: overview.html
echo Formatting $@...
htmldoc --duplex --compression=9 --jpeg --webpage -f overview.pdf overview.html
htmldoc --duplex --compression=9 --jpeg --webpage -f $@ $<
sam.html: sam.shtml
echo Formatting $@...
+3 -3
Ver Arquivo
@@ -152,10 +152,10 @@ sections:
<UL>
<LI>IEEE 1387.4, System Administration: Printing (draft) </LI>
<LI>IPP/1.0: Additional Optional Operations - Set 1 </LI>
<LI>IPP/1.0: Encoding and Transport </LI>
<LI>IPP/1.0: Implementers Guide </LI>
<LI>IPP/1.0: Model and Semantics </LI>
<LI>RFC 1179, Line Printer Daemon Protocol </LI>
<LI>RFC 2565, IPP/1.0: Encoding and Transport </LI>
<LI>RFC 2566, IPP/1.0: Model and Semantics </LI>
<LI>RFC 2639, IPP/1.0: Implementers Guide </LI>
</UL>
<H1><A NAME=3>3 File Management</A></H1>
<H2><A NAME=3_1>3.1 Directory Structure</A></H2>
+121 -118
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990922200456Z)/Title(CUPS Configuration Management Plan)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990521210307Z)/Title(CUPS Configuration Management Plan)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/BaseEncoding/WinAnsiEncoding>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Times-Roman/Encoding 2 0 R>>endobj
@@ -400,10 +400,13 @@ endobj
endobj
198 0 obj<</Type/Page/Parent 191 0 R/Contents 199 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>>>endobj
199 0 obj<</Length 200 0 R/Filter/FlateDecode>>stream
xÚ•UMo"9½ó+J9%ÒЛB`oC¾„4™aŒöÀŸ«Á·«c»Aì¯ß²» E‹¢Hi»ªÞ{õÊ•·V
xÚ•UMo"9½ó+J9%ÒЛB`oC¾„4™aŒöÀŸ«Á·«c»Aì¯ß²» E‹¢Hi»ªÞ{õÊ•·V
×ü“Âmº}Ek4oýñ8„tóœoú·=˜g—)Ì$•x5ÿUßÞ$ƒú¾}3Hêˆ$…q†Æ«\Iá™:¸iÚ„vúuè|­H2¹ZU6†B!ŒXaÁéPja #YÕ_–6*C~°ªøO­ æd!Ã
j*cœ0QÆó¯0ò€Ï¨i7éÔPàŽŠ‚Ñ^¾ÿ†‰åheV0Û9,./î^&³‹ÅüDë«4¹G¹ß
‹É íÝá^{g_åÇíFáöñŸÓx, $ëÅR#Ÿ51ZìÐFí!wѹé»zÈ—.p Œ=¬…;’¿D4ûŽaË<·ƒY#yPVIϦÀ¡ LÁyn¬°Ù#]EË ¡u­bƒ&#ë‚
G¸•ãf&Zû»™ÞŸÑºÚWÔ¸ã±(x²vpm.$º¤©ºïb,Ç¥ëRãšÉj<IÒìêøaþØO&쫨שz‚âØ…ø(~Ñ2J€·
+6ëHηÀ+°÷ƒ‹Ëo“û/0}¼KÓÛáâê Ìxøþ㱆‘&ùÊa³çQ¸
‹É íÝá^{g_åÇíFáöñŸÓx, $ëÅR#Ÿ51ZìÐFí!wѹé»zÈ—.p Œ=¬…;’¿D4ûŽaË<·ƒY#yPVIϦÀ¡ LÁyn¬°Ù#]EË ¡u­bƒ&#ë‚
_ËrƇ'<Red¶AhGG®*Ã$°i[å×`‘}â¼22!´ò»“ýYæ€Û²%ûZ+dNKK[$r~&­*ýAºx ¢°‹Éäž_D›[††€â}˜•Ó\™¤ÐÀ¸:Q–ºÙ*“a=¼§³zv]êª~²rž
õcoš7I9<}§õúâRVÖòÐ;¨‰Rþߨ^rÝ]\ñ
Màu£Š`S®ø­MÇáAòùÃeáMì•mkÚê>_]¸ß/´ÿ± >ÛŽï‹‘ƒÈ®„‰ÍaG;'­iß)ÆépÖ@²ê Xø;Ö¢Ó¿…ß™ðªo\öòÀpß´SY\¦˜#ÛÀÏõ¬Ô.§>†Ö?¿Ë<+¿ÇùsKUØ”SŒ&ñógaÌϪt¤ïâ”÷ÓyZ¾r…'Müìíî¬Ä'ÞQœ›â[¥lìC>h¢Úµ{éà:9þ¯Üã³!ƒ„Óðý0oýÕú‰ßksendstream
endobj
@@ -839,122 +842,122 @@ xref
0000014295 00000 n
0000014401 00000 n
0000014635 00000 n
0000015402 00000 n
0000015451 00000 n
0000015500 00000 n
0000015549 00000 n
0000015598 00000 n
0000015647 00000 n
0000015696 00000 n
0000015745 00000 n
0000015794 00000 n
0000015843 00000 n
0000015892 00000 n
0000015941 00000 n
0000015990 00000 n
0000016039 00000 n
0000016088 00000 n
0000016137 00000 n
0000016186 00000 n
0000016235 00000 n
0000016284 00000 n
0000016333 00000 n
0000016382 00000 n
0000016431 00000 n
0000016480 00000 n
0000016529 00000 n
0000016578 00000 n
0000016627 00000 n
0000016676 00000 n
0000016725 00000 n
0000016774 00000 n
0000016823 00000 n
0000016872 00000 n
0000016921 00000 n
0000016970 00000 n
0000017019 00000 n
0000017068 00000 n
0000017117 00000 n
0000017166 00000 n
0000017215 00000 n
0000017264 00000 n
0000017313 00000 n
0000017362 00000 n
0000017411 00000 n
0000017460 00000 n
0000017509 00000 n
0000017558 00000 n
0000017607 00000 n
0000017656 00000 n
0000017705 00000 n
0000017754 00000 n
0000017803 00000 n
0000017852 00000 n
0000017901 00000 n
0000017950 00000 n
0000017999 00000 n
0000018260 00000 n
0000018412 00000 n
0000024803 00000 n
0000024825 00000 n
0000024938 00000 n
0000025040 00000 n
0000025060 00000 n
0000025200 00000 n
0000026140 00000 n
0000026161 00000 n
0000026274 00000 n
0000026462 00000 n
0000026483 00000 n
0000026623 00000 n
0000027230 00000 n
0000027251 00000 n
0000027364 00000 n
0000027557 00000 n
0000027578 00000 n
0000027709 00000 n
0000028322 00000 n
0000028343 00000 n
0000028456 00000 n
0000028645 00000 n
0000028666 00000 n
0000028797 00000 n
0000029741 00000 n
0000029762 00000 n
0000029893 00000 n
0000030180 00000 n
0000030201 00000 n
0000030341 00000 n
0000031257 00000 n
0000031278 00000 n
0000031409 00000 n
0000031767 00000 n
0000031788 00000 n
0000031928 00000 n
0000032424 00000 n
0000032445 00000 n
0000032576 00000 n
0000033028 00000 n
0000033049 00000 n
0000033189 00000 n
0000034329 00000 n
0000034351 00000 n
0000034491 00000 n
0000035397 00000 n
0000035418 00000 n
0000035558 00000 n
0000036484 00000 n
0000036505 00000 n
0000036645 00000 n
0000037291 00000 n
0000037312 00000 n
0000037452 00000 n
0000038272 00000 n
0000038293 00000 n
0000038433 00000 n
0000039360 00000 n
0000014669 00000 n
0000014703 00000 n
0000015402 00000 n
0000015451 00000 n
0000015500 00000 n
0000015549 00000 n
0000015598 00000 n
0000015647 00000 n
0000015696 00000 n
0000015745 00000 n
0000015794 00000 n
0000015843 00000 n
0000015892 00000 n
0000015941 00000 n
0000015990 00000 n
0000016039 00000 n
0000016088 00000 n
0000016137 00000 n
0000016186 00000 n
0000016235 00000 n
0000016284 00000 n
0000016333 00000 n
0000016382 00000 n
0000016431 00000 n
0000016480 00000 n
0000016529 00000 n
0000016578 00000 n
0000016627 00000 n
0000016676 00000 n
0000016725 00000 n
0000016774 00000 n
0000016823 00000 n
0000016872 00000 n
0000016921 00000 n
0000016970 00000 n
0000017019 00000 n
0000017068 00000 n
0000017117 00000 n
0000017166 00000 n
0000017215 00000 n
0000017264 00000 n
0000017313 00000 n
0000017362 00000 n
0000017411 00000 n
0000017460 00000 n
0000017509 00000 n
0000017558 00000 n
0000017607 00000 n
0000017656 00000 n
0000017705 00000 n
0000017754 00000 n
0000017803 00000 n
0000017852 00000 n
0000017901 00000 n
0000017950 00000 n
0000017999 00000 n
0000018260 00000 n
0000018412 00000 n
0000024803 00000 n
0000024825 00000 n
0000024938 00000 n
0000025040 00000 n
0000025060 00000 n
0000025200 00000 n
0000026140 00000 n
0000026161 00000 n
0000026274 00000 n
0000026462 00000 n
0000026483 00000 n
0000026623 00000 n
0000027216 00000 n
0000027237 00000 n
0000027350 00000 n
0000027543 00000 n
0000027564 00000 n
0000027695 00000 n
0000028308 00000 n
0000028329 00000 n
0000028442 00000 n
0000028631 00000 n
0000028652 00000 n
0000028783 00000 n
0000029727 00000 n
0000029748 00000 n
0000029879 00000 n
0000030166 00000 n
0000030187 00000 n
0000030327 00000 n
0000031243 00000 n
0000031264 00000 n
0000031395 00000 n
0000031753 00000 n
0000031774 00000 n
0000031914 00000 n
0000032410 00000 n
0000032431 00000 n
0000032562 00000 n
0000033014 00000 n
0000033035 00000 n
0000033175 00000 n
0000034315 00000 n
0000034337 00000 n
0000034477 00000 n
0000035383 00000 n
0000035404 00000 n
0000035544 00000 n
0000036470 00000 n
0000036491 00000 n
0000036631 00000 n
0000037277 00000 n
0000037298 00000 n
0000037438 00000 n
0000038258 00000 n
0000038279 00000 n
0000038419 00000 n
0000039346 00000 n
0000039367 00000 n
0000039946 00000 n
0000039507 00000 n
0000039911 00000 n
+7 -7
Ver Arquivo
@@ -75,10 +75,10 @@ The following non-CUPS documents are referenced by this document:
<UL>
<LI>IEEE 1387.4, System Administration: Printing (draft)
<LI>IPP/1.0: Additional Optional Operations - Set 1
<LI>IPP/1.0: Encoding and Transport
<LI>IPP/1.0: Implementers Guide
<LI>IPP/1.0: Model and Semantics
<LI>RFC 1179, Line Printer Daemon Protocol
<LI>RFC 2565, IPP/1.0: Encoding and Transport
<LI>RFC 2566, IPP/1.0: Model and Semantics
<LI>RFC 2639, IPP/1.0: Implementers Guide
</UL>
<H1>File Management</H1>
@@ -334,12 +334,12 @@ extension of ".h".
The top of each source file shall contain a header giving the name of the
file, the purpose or nature of the source file, the copyright and licensing
notice, and the functions contained in the file. The file name and revision
information is provided by the CVS "$Id: cmp.shtml 679 1999-09-22 20:06:27Z mike $" tag:
information is provided by the CVS "$Id: cmp.shtml 351 1999-05-21 20:54:09Z mike $" tag:
<UL>
<PRE>
/*
* "$Id: cmp.shtml 679 1999-09-22 20:06:27Z mike $"
* "$Id: cmp.shtml 351 1999-05-21 20:54:09Z mike $"
*
* Description of file contents.
*
@@ -372,14 +372,14 @@ information is provided by the CVS "$Id: cmp.shtml 679 1999-09-22 20:06:27Z mike
</UL>
The bottom of each source file shall contain a trailer giving the name
of the file using the CVS "$Id: cmp.shtml 679 1999-09-22 20:06:27Z mike $" tag. The primary purpose of this is to
of the file using the CVS "$Id: cmp.shtml 351 1999-05-21 20:54:09Z mike $" tag. The primary purpose of this is to
mark the end of a source file; if the trailer is missing it is possible
that code has been lost near the end of the file:
<UL>
<PRE>
/*
* End of "$Id: cmp.shtml 679 1999-09-22 20:06:27Z mike $".
* End of "$Id: cmp.shtml 351 1999-05-21 20:54:09Z mike $".
*/
</PRE>
</UL>
+2
Ver Arquivo
@@ -55,6 +55,8 @@ The following documentation for CUPS is available on this server:
<A HREF="ssr.html">HTML</A> |
<A HREF="ssr.pdf">PDF</A> )
<LI>Software Test Plan (Not Yet Available)
</UL>
<HR>
+93 -146
Ver Arquivo
@@ -1,13 +1,13 @@
<HTML>
<HEAD>
<TITLE>CUPS Interface Design Description</TITLE>
<TITLE>DRAFT - CUPS Interface Design Description</TITLE>
<META NAME="AUTHOR" CONTENT="Easy Software Products">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-IDD-1.0">
</HEAD>
<BODY>
<CENTER><A HREF=#contents><IMG SRC="images/cups-large.gif" BORDER=0><BR>
<H1>CUPS Interface Design Description</H1></A><BR>
<H1>DRAFT - CUPS Interface Design Description</H1></A><BR>
CUPS-IDD-1.0<BR>
Easy Software Products<BR>
Copyright 1997-1999, All Rights Reserved<BR>
@@ -53,24 +53,26 @@ Copyright 1997-1999, All Rights Reserved<BR>
<LI><A HREF=#4_3>4.3 CUPS PostScript File</A></LI>
<LI><A HREF=#4_4>4.4 CUPS Raster File</A></LI>
<LI><A HREF=#4_5>4.5 CUPS Raw Files</A></LI>
<LI><A HREF=#4_6>4.6 Internet Printing Protocol</A></LI>
<LI><A HREF=#4_6>4.6 File Transfer Protocol</A></LI>
<LI><A HREF=#4_7>4.7 Internet Printing Protocol</A></LI>
<UL>
<LI><A HREF=#4_6_1>4.6.1 Get Default Destination (CUPS_GET_DEFAULT =
<LI><A HREF=#4_7_1>4.7.1 Get Default Destination (CUPS_GET_DEFAULT =
0x4001)</A></LI>
<LI><A HREF=#4_6_2>4.6.2 Get Printers (CUPS_GET_PRINTERS = 0x4002)</A></LI>
<LI><A HREF=#4_6_3>4.6.3 Add Printer (CUPS_ADD_PRINTER = 0x4003)</A></LI>
<LI><A HREF=#4_6_4>4.6.4 Delete Printer (CUPS_DELETE_PRINTER = 0x4004)</A>
<LI><A HREF=#4_7_2>4.7.2 Get Printers (CUPS_GET_PRINTERS = 0x4002)</A></LI>
<LI><A HREF=#4_7_3>4.7.3 Add Printer (CUPS_ADD_PRINTER = 0x4003)</A></LI>
<LI><A HREF=#4_7_4>4.7.4 Delete Printer (CUPS_DELETE_PRINTER = 0x4004)</A>
</LI>
<LI><A HREF=#4_6_5>4.6.5 Get Classes (CUPS_GET_CLASSES = 0x4005)</A></LI>
<LI><A HREF=#4_6_6>4.6.6 Add Class (CUPS_ADD_CLASS = 0x4006)</A></LI>
<LI><A HREF=#4_6_7>4.6.7 Delete Class (CUPS_DELETE_CLASS = 0x4007)</A></LI>
<LI><A HREF=#4_6_8>4.6.8 Accept Jobs (CUPS_ACCEPT_JOBS = 0x4008)</A></LI>
<LI><A HREF=#4_6_9>4.6.9 Reject Jobs (CUPS_REJECT_JOBS = 0x4009)</A></LI>
<LI><A HREF=#4_6_10>4.6.10 Set Default Destination (CUPS_SET_DEFAULT =
<LI><A HREF=#4_7_5>4.7.5 Get Classes (CUPS_GET_CLASSES = 0x4005)</A></LI>
<LI><A HREF=#4_7_6>4.7.6 Add Class (CUPS_ADD_CLASS = 0x4006)</A></LI>
<LI><A HREF=#4_7_7>4.7.7 Delete Class (CUPS_DELETE_CLASS = 0x4007)</A></LI>
<LI><A HREF=#4_7_8>4.7.8 Accept Jobs (CUPS_ACCEPT_JOBS = 0x4008)</A></LI>
<LI><A HREF=#4_7_9>4.7.9 Reject Jobs (CUPS_REJECT_JOBS = 0x4009)</A></LI>
<LI><A HREF=#4_7_10>4.7.10 Set Default Destination (CUPS_SET_DEFAULT =
0x400A)</A></LI>
</UL>
<LI><A HREF=#4_7>4.7 Line Printer Daemon Protocol</A></LI>
<LI><A HREF=#4_8>4.8 Server Message Block Protocol</A></LI>
<LI><A HREF=#4_8>4.8 Line Printer Daemon Protocol</A></LI>
<LI><A HREF=#4_9>4.9 Server Message Block Protocol</A></LI>
<LI><A HREF=#4_10>4.10 Trivial File Transfer Protocol</A></LI>
</UL>
<B><A HREF=#5>5 5 - Directories</A></B>
<BR>
@@ -131,10 +133,10 @@ following sections: </P>
<UL>
<LI>IEEE 1387.4, System Administration: Printing (draft) </LI>
<LI>IPP/1.0: Additional Optional Operations - Set 1 </LI>
<LI>IPP/1.0: Encoding and Transport </LI>
<LI>IPP/1.0: Implementers Guide </LI>
<LI>IPP/1.0: Model and Semantics </LI>
<LI>RFC 1179, Line Printer Daemon Protocol </LI>
<LI>RFC 2565, IPP/1.0: Encoding and Transport </LI>
<LI>RFC 2566, IPP/1.0: Model and Semantics </LI>
<LI>RFC 2639, IPP/1.0: Implementers Guide </LI>
</UL>
<H1><A NAME=3>3 Internal Interfaces</A></H1>
<H2><A NAME=3_1>3.1 Character Set Files</A></H2>
@@ -283,18 +285,13 @@ understood:
<TABLE BORDER=1 WIDTH=90%>
<TR><TH WIDTH=25%>Directive</TH><TH>Description</TH></TR>
<TR><TD>&lt;Class name&gt;
<BR> &lt;/Class&gt;</TD><TD>Surrounds a class definition.</TD></TR>
<BR> &lt;/Class&gt;</TD><TD></TR>
<TR><TD>&lt;DefaultClass name&gt;
<BR> &lt;/Class&gt;</TD><TD>Surrounds a class definition for the default
destination.</TD></TR>
<TR><TD>Accepting</TD><TD>Specifies whether the class is accepting new
jobs. May be the names &quot;Yes&quot; or &quot;No&quot;.</TD></TR>
<TR><TD>Info</TD><TD>A textual description of the class.</TD></TR>
<TR><TD>Location</TD><TD>A textual location of the class.</TD></TR>
<TR><TD>MoreInfo</TD><TD>A URL pointing to additional information on
the class.</TD></TR>
<TR><TD>Printer</TD><TD>Specifies a printer that is a member of the
class.</TD></TR>
<BR> &lt;/Class&gt;</TD><TD></TR>
<TR><TD>Info</TD><TD></TR>
<TR><TD>Location</TD><TD></TR>
<TR><TD>MoreInfo</TD><TD></TR>
<TR><TD>Printer</TD><TD></TR>
</TABLE>
</CENTER>
</P>
@@ -307,92 +304,43 @@ understood:
<CENTER>
<TABLE BORDER=1 WIDTH=90%>
<TR><TH WIDTH=25%>Directive</TH><TH>Default</TH><TH>Description</TH></TR>
<TR><TD>AccessLog</TD><TD>logs/access_log</TD><TD>Specifies the
location of the access log file.</TD></TR>
<TR><TD>Allow</TD><TD>-</TD><TD>Allows connections from the specified
host, network, or domain.</TD></TR>
<TR><TD>AuthClass</TD><TD>-</TD><TD>Specifies what level of
authentication is required; may be either &quot;User&quot;, &quot;System&quot;, or &quot;Group&quot;.</TD>
</TR>
<TR><TD>AuthType</TD><TD>None</TD><TD>Specifies the type of
authentication to perform; may be either &quot;None&quot; or &quot;Basic&quot;.</TD></TR>
<TR><TD>BrowseAddress</TD><TD>255.255.255.255</TD><TD>Specifies a
broadcast address to send CUPS browsing packets to.</TD></TR>
<TR><TD>BrowseInterval</TD><TD>30</TD><TD>Specifies the number of
seconds between browsing updates.</TD></TR>
<TR><TD>BrowsePort</TD><TD>631</TD><TD>Specifies the UDP port number to
use for browse packets.</TD></TR>
<TR><TD>BrowseTimeout</TD><TD>300</TD><TD>Specifies the number of
seconds to wait until remote destinations are removed from the local
destination list.</TD></TR>
<TR><TD>Browsing</TD><TD>On</TD><TD>Specifies whether or not printer
and class browsing is enabled; can be &quot;On&quot; or &quot;Off&quot;.</TD></TR>
<TR><TD>DefaultCharset</TD><TD>iso-8859-1</TD><TD>Specifies the default
character set.</TD></TR>
<TR><TD>DefaultLanguage</TD><TD>current locale</TD><TD>Specifies the
default language.</TD></TR>
<TR><TD>Deny</TD><TD>-</TD><TD>Refuses connections from the specified
host, network, or domain.</TD></TR>
<TR><TD>DocumentRoot</TD><TD>/usr/share/cups/doc</TD><TD>Specifies the
document data root directory.</TD></TR>
<TR><TD>ErrorLog</TD><TD>logs/error_log</TD><TD>Specifies the error log
file location.</TD></TR>
<TR><TD>Group</TD><TD>root, sys, system</TD><TD>Specifies the group
name or ID that is used when running external programs.</TD></TR>
<TR><TD>HostNameLookups</TD><TD>Off</TD><TD>Specifies whether or not to
perform reverse IP address lookups to get the actual hostname; may be
&quot;On&quot; or &quot;Off&quot;. Hostname lookups can significantly degrade the
performance of the CUPS server if one or more DNS servers is not
functioning properly.</TD></TR>
<TR><TD>ImplicitClasses</TD><TD>On</TD><TD>Specifies whether or not to
automatically create printer classes when more than one printer or
class of the same name is detected on the network; may be &quot;On&quot; or
&quot;Off&quot;.</TD></TR>
<TR><TD>KeepAlive</TD><TD>On</TD><TD>Specifies whether or not to use
the HTTP Keep-Alive feature; may be &quot;On&quot; or &quot;Off&quot;.</TD></TR>
<TR><TD>KeepAliveTimeout</TD><TD>30</TD><TD>Specifies the amount of
time to keep the HTTP connection alive before closing it.</TD></TR>
<TR><TD>AccessLog</TD><TD><TD>Specifies the location of the access log
file (default &quot;logs/access_log&quot;).</TD></TR>
<TR><TD>Allow</TD><TD><TD></TR>
<TR><TD>AuthClass</TD><TD><TD></TR>
<TR><TD>AuthType</TD><TD><TD></TR>
<TR><TD>BrowseAddress</TD><TD><TD></TR>
<TR><TD>BrowseInterval</TD><TD><TD></TR>
<TR><TD>BrowsePort</TD><TD><TD></TR>
<TR><TD>BrowseTimeout</TD><TD><TD></TR>
<TR><TD>Browsing</TD><TD><TD></TR>
<TR><TD>DefaultCharset</TD><TD><TD></TR>
<TR><TD>DefaultLanguage</TD><TD><TD></TR>
<TR><TD>Deny</TD><TD><TD></TR>
<TR><TD>DocumentRoot</TD><TD><TD></TR>
<TR><TD>ErrorLog</TD><TD><TD></TR>
<TR><TD>Group</TD><TD><TD></TR>
<TR><TD>HostNameLookups</TD><TD><TD></TR>
<TR><TD>ImplicitClasses</TD><TD><TD></TR>
<TR><TD>KeepAlive</TD><TD><TD></TR>
<TR><TD>KeepAliveTimeout</TD><TD><TD></TR>
<TR><TD>&lt;Location path&gt;
<BR> &lt;/Location&gt;</TD><TD>-</TD><TD>Specifies a location to restrict
access to.</TD></TR>
<TR><TD>LogLevel</TD><TD>info</TD><TD>Controls the amount of
information that is logged in the error log file. Can be one of
&quot;debug&quot;, &quot;info&quot;, &quot;warn&quot;, &quot;error&quot;, or &quot;none&quot;, in decreasing order or
verbosity.</TD></TR>
<TR><TD>MaxClients</TD><TD>100</TD><TD>Specifies the maximum number of
simultaneous active clients. This value is internally limited to 1/3
of the total number of availabel file descriptors.</TD></TR>
<TR><TD>MaxLogSize</TD><TD>0</TD><TD>Specifies the maximum size of the
access, error, and page log files in bytes. If set to 0 then no
maximum size is set. Log files are rotated automatically when this
size is exceeded.</TD></TR>
<TR><TD>MaxRequestSize</TD><TD>0</TD><TD>Specifies the maximum size of
HTTP requests in bytes. If set to 0 then there is no maximum.</TD></TR>
<TR><TD>Order</TD><TD>Allow,Deny</TD><TD>Specifies the order of Allow
and Deny directive processing; can be &quot;Deny,Allow&quot; to implicitly deny
hosts unless they are allowed by an Allow line, or &quot;Allow,Deny&quot; to
implicitly allow hosts unless they are denied by a Deny line.</TD></TR>
<TR><TD>PageLog</TD><TD>logs/page_log</TD><TD>Specifies the location of
the page log file.</TD></TR>
<TR><TD>Port</TD><TD>631</TD><TD>Specifies a port number to listen to
for HTTP connections.</TD></TR>
<TR><TD>RIPCache</TD><TD>8m</TD><TD>Specifies the size of the memory
cache in bytes that is used by RIP filters.</TD></TR>
<TR><TD>ServerAdmin</TD><TD>root@ServerName</TD><TD>Specifies the
person to contact with problems.</TD></TR>
<TR><TD>ServerName</TD><TD>hostname</TD><TD>Specifies the hostname that
is supplied to HTTP clients. This is also used to determine the
default CUPS server for the CUPS IPP client applications.</TD></TR>
<TR><TD>ServerRoot</TD><TD>/var/cups</TD><TD>Specifies the root
directory for server data files.</TD></TR>
<TR><TD>SystemGroup</TD><TD>root, sys, system</TD><TD>Specifies the
group name used for System class authentication.</TD></TR>
<TR><TD>TempDir</TD><TD>/var/tmp</TD><TD>Specifies the temporary
directory to use.</TD></TR>
<TR><TD>Timeout</TD><TD>300</TD><TD>The timeout in seconds before
client connections are closed in the middle of a request.</TD></TR>
<TR><TD>User</TD><TD>lp</TD><TD>Specifies the user that is used when
running external programs.</TD></TR>
<BR> &lt;/Location&gt;</TD><TD><TD></TR>
<TR><TD>LogLevel</TD><TD><TD></TR>
<TR><TD>MaxClients</TD><TD><TD></TR>
<TR><TD>MaxLogSize</TD><TD><TD></TR>
<TR><TD>MaxRequestSize</TD><TD><TD></TR>
<TR><TD>Order</TD><TD><TD></TR>
<TR><TD>PageLog</TD><TD><TD></TR>
<TR><TD>Port</TD><TD><TD></TR>
<TR><TD>RIPCache</TD><TD><TD></TR>
<TR><TD>ServerAdmin</TD><TD><TD></TR>
<TR><TD>ServerName</TD><TD><TD></TR>
<TR><TD>ServerRoot</TD><TD><TD></TR>
<TR><TD>SystemGroup</TD><TD><TD></TR>
<TR><TD>TempDir</TD><TD><TD></TR>
<TR><TD>Timeout</TD><TD><TD></TR>
<TR><TD>User</TD><TD><TD></TR>
</TABLE>
</CENTER>
</P>
@@ -405,28 +353,22 @@ understood:
<CENTER>
<TABLE BORDER=1 WIDTH=90%>
<TR><TH WIDTH=25%>Directive</TH><TH>Description</TH></TR>
<TR><TD>Accepting</TD><TD>Specifies whether the printer is accepting
new jobs. May be the names &quot;Yes&quot; or &quot;No&quot;.</TD></TR>
<TR><TD>&lt;DefaultPrinter name&gt;
<BR> &lt;/Printer&gt;</TD><TD>Surrounds the printer definition for a default
destination.</TD></TR>
<TR><TD>DeviceURI</TD><TD>Specifies the device-uri attribute for the
printer.</TD></TR>
<TR><TD>Info</TD><TD>A textual description of the printer.</TD></TR>
<TR><TD>Location</TD><TD>A textual location of the printer.</TD></TR>
<TR><TD>MoreInfo</TD><TD>A URL pointing to additional information on
the printer.</TD></TR>
<BR> &lt;/Printer&gt;</TD><TD></TR>
<TR><TD>DeviceURI</TD><TD></TR>
<TR><TD>Info</TD><TD></TR>
<TR><TD>Location</TD><TD></TR>
<TR><TD>MoreInfo</TD><TD></TR>
<TR><TD>&lt;Printer name&gt;
<BR> &lt;/Printer&gt;</TD><TD>Surrounds the printer definition.</TD></TR>
<TR><TD>State</TD><TD>Specifies the initial state of the printer; can
be &quot;Idle&quot; or &quot;Stopped&quot;.</TD></TR>
<BR> &lt;/Printer&gt;</TD><TD></TR>
<TR><TD>State</TD><TD></TR>
</TABLE>
</CENTER>
</P>
<H1><A NAME=4>4 External Interfaces</A></H1>
<H2><A NAME=4_1>4.1 AppSocket Protocol</A></H2>
<P>The AppSocket protocol is an 8-bit clean TCP/IP socket connection.
The default IP service port is 9100. The URI method name is &quot;socket&quot;. </P>
The default IP service port is 9100. </P>
<H2><A NAME=4_2>4.2 CUPS Browsing Protocol</A></H2>
<P>The CUPS Browsing Protocol is a UDP/IP-based broadcast service. By
default this service operates on IP service port 631. </P>
@@ -603,7 +545,10 @@ application/vnd.cups-raster</CODE>. </P>
<P>Raw files are printer-dependent print files that are in a format
suitable to the destination printer (e.g. HP-PCL, HP-RTL, etc.) The
MIME type for CUPS Raw files is <CODE>application/vnd.cups-raw</CODE>. </P>
<H2><A NAME=4_6>4.6 Internet Printing Protocol</A></H2>
<H2><A NAME=4_6>4.6 File Transfer Protocol</A></H2>
<P>The File Transfer Protocol (FTP) is described by <A HREF=http://www.ietf.org/rfc/rfc959.txt>
RFC 959: File Transfer Protocol</A>. </P>
<H2><A NAME=4_7>4.7 Internet Printing Protocol</A></H2>
<P>The Internet Printing Protocol is described by the following RFCs: </P>
<UL>
<LI><A HREF=http://www.ietf.org/rfc/rfc2565.txt>RFC 2565: Internet
@@ -618,21 +563,20 @@ Protocol</A></LI>
<LI><A HREF=http://www.ietf.org/rfc/rfc2569.txt>RFC 2569: Mapping
between LPD and IPP Protocols</A></LI>
</UL>
<P>The URI method name for IPP is &quot;ipp&quot;. </P>
<P>CUPS defines the following extension operations to IPP. </P>
<H3><A NAME=4_6_1>4.6.1 Get Default Destination (CUPS_GET_DEFAULT =
<H3><A NAME=4_7_1>4.7.1 Get Default Destination (CUPS_GET_DEFAULT =
0x4001)</A></H3>
<P>The get default destination operation returns the printer attributes
for the system default printer or class. The only required attributes
are <CODE>attributes-charset</CODE> and <CODE>
attributes-natural-language</CODE>. </P>
<P>Get default destination will only return <CODE>ipp-ok</CODE>. </P>
<H3><A NAME=4_6_2>4.6.2 Get Printers (CUPS_GET_PRINTERS = 0x4002)</A></H3>
<H3><A NAME=4_7_2>4.7.2 Get Printers (CUPS_GET_PRINTERS = 0x4002)</A></H3>
<P>The get printers operation returns the printer attributes for all
printers known to the system. The only required attributes are <CODE>
attributes-charset</CODE> and <CODE>attributes-natural-language</CODE>. </P>
<P>Get printers will only return <CODE>ipp-ok</CODE>. </P>
<H3><A NAME=4_6_3>4.6.3 Add Printer (CUPS_ADD_PRINTER = 0x4003)</A></H3>
<H3><A NAME=4_7_3>4.7.3 Add Printer (CUPS_ADD_PRINTER = 0x4003)</A></H3>
<P>The add printer operation adds or replaces the specified printer.
The <CODE>attributes-charset</CODE>, <CODE>attributes-natural-language</CODE>
and <CODE>printer-uri</CODE> attributes are required. </P>
@@ -645,19 +589,19 @@ body. If a valid interface script or PPD file is not provided then the
printer is treated as a generic PostScript device. </P>
<P>Add printer will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-authorized</CODE>
, <CODE>ipp-bad-request</CODE>, or <CODE>ipp-attributes</CODE>. </P>
<H3><A NAME=4_6_4>4.6.4 Delete Printer (CUPS_DELETE_PRINTER = 0x4004)</A>
<H3><A NAME=4_7_4>4.7.4 Delete Printer (CUPS_DELETE_PRINTER = 0x4004)</A>
</H3>
<P>The delete printer operation removes the specified printer. The only
required attributes are <CODE>attributes-charset</CODE>, <CODE>
attributes-natural-language</CODE>, and <CODE>printer-uri</CODE>. </P>
<P>Delete printer will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-found</CODE>
, or <CODE>ipp-not-authorized</CODE>. </P>
<H3><A NAME=4_6_5>4.6.5 Get Classes (CUPS_GET_CLASSES = 0x4005)</A></H3>
<H3><A NAME=4_7_5>4.7.5 Get Classes (CUPS_GET_CLASSES = 0x4005)</A></H3>
<P>The get classes operation returns the printer attributes for all
classes known to the system. The only required attributes are <CODE>
attributes-charset</CODE> and <CODE>attributes-natural-language</CODE>. </P>
<P>Get classes will only return <CODE>ipp-ok</CODE>. </P>
<H3><A NAME=4_6_6>4.6.6 Add Class (CUPS_ADD_CLASS = 0x4006)</A></H3>
<H3><A NAME=4_7_6>4.7.6 Add Class (CUPS_ADD_CLASS = 0x4006)</A></H3>
<P>The add class operation adds or replaces the specified class. The <CODE>
attributes-charset</CODE>, <CODE>attributes-natural-language</CODE>,
and <CODE>printer-uri</CODE> attributes are required. </P>
@@ -667,27 +611,27 @@ required when initially adding a printer and optional when modifying a
printer. </P>
<P>Add class will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-authorized</CODE>
, <CODE>ipp-bad-request</CODE>, or <CODE>ipp-attributes</CODE>. </P>
<H3><A NAME=4_6_7>4.6.7 Delete Class (CUPS_DELETE_CLASS = 0x4007)</A></H3>
<H3><A NAME=4_7_7>4.7.7 Delete Class (CUPS_DELETE_CLASS = 0x4007)</A></H3>
<P>The delete class operation removes the specified class. The only
required attributes are <CODE>attributes-charset</CODE>, <CODE>
attributes-natural-language</CODE>, and <CODE>printer-uri</CODE>. </P>
<P>Delete class will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-found</CODE>
, or <CODE>ipp-not-authorized</CODE>. </P>
<H3><A NAME=4_6_8>4.6.8 Accept Jobs (CUPS_ACCEPT_JOBS = 0x4008)</A></H3>
<H3><A NAME=4_7_8>4.7.8 Accept Jobs (CUPS_ACCEPT_JOBS = 0x4008)</A></H3>
<P>The accept jobs operation allows jobs to be accepted by the
specified destination. The only required attributes are <CODE>
attributes-charset</CODE>, <CODE>attributes-natural-language</CODE>,
and <CODE>printer-uri</CODE>. </P>
<P>Accept jobs will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-found</CODE>
, or <CODE>ipp-not-authorized</CODE>. </P>
<H3><A NAME=4_6_9>4.6.9 Reject Jobs (CUPS_REJECT_JOBS = 0x4009)</A></H3>
<H3><A NAME=4_7_9>4.7.9 Reject Jobs (CUPS_REJECT_JOBS = 0x4009)</A></H3>
<P>The reject jobs operation prevents jobs from being accepted by the
specified destination. The only required attributes are <CODE>
attributes-charset</CODE>, <CODE>attributes-natural-language</CODE>,
and <CODE>printer-uri</CODE>. </P>
<P>Reject jobs will return <CODE>ipp-ok</CODE>, <CODE>ipp-not-found</CODE>
, or <CODE>ipp-not-authorized</CODE>. </P>
<H3><A NAME=4_6_10>4.6.10 Set Default Destination (CUPS_SET_DEFAULT =
<H3><A NAME=4_7_10>4.7.10 Set Default Destination (CUPS_SET_DEFAULT =
0x400A)</A></H3>
<P>The set default destination operation returns the printer attributes
for the system default printer or class. The only required attributes
@@ -696,24 +640,27 @@ are <CODE>attributes-charset</CODE>, <CODE>attributes-natural-language</CODE>
<P>Set default destination will return <CODE>ipp-ok</CODE>, <CODE>
ipp-not-authorized</CODE>, <CODE>ipp-bad-request</CODE>, or <CODE>
ipp-not-found</CODE>. </P>
<H2><A NAME=4_7>4.7 Line Printer Daemon Protocol</A></H2>
<H2><A NAME=4_8>4.8 Line Printer Daemon Protocol</A></H2>
<P>The Line Printer Daemon (LPD) protocol is described by <A HREF=http://www.ietf.org/rfc/rfc1179.txt>
RFC 1179: Line Printer Daemon Protocol</A>. </P>
<P>The URI method name for LPD is &quot;lpd&quot;. </P>
<H2><A NAME=4_8>4.8 Server Message Block Protocol</A></H2>
<H2><A NAME=4_9>4.9 Server Message Block Protocol</A></H2>
<P>The Server Message Block (SMB) and related Common Internet File
System (CIFS) protocols are described at <A HREF=http://anu.samba.org/cifs>
http://anu.samba.org/cifs</A>. </P>
<P>The URI method name for SMB is &quot;smb&quot;. </P>
<H2><A NAME=4_10>4.10 Trivial File Transfer Protocol</A></H2>
<P>The Trivial File Transfer Protocol (TFTP) is described by <A HREF=http://www.ietf.org/rfc/rfc1350.txt>
RFC 1350: The TFTP Protocol (Revision 2)</A>. </P>
<H1><A NAME=5>5 5 - Directories</A></H1>
<DL>
<DT>/usr/bin </DT>
<DD>The <CODE>cancel</CODE>, <CODE>lp</CODE>, <CODE>lpq</CODE>, <CODE>
lpr</CODE>, <CODE>lprm</CODE>, and <CODE>lpstat</CODE> commands reside
here. </DD>
<DT>/usr/lib </DT>
<DD>The <CODE>accept</CODE>, <CODE>disable</CODE>, <CODE>enable</CODE>, <CODE>
lpadmin</CODE>, and <CODE>reject</CODE> commands reside here. </DD>
<DT>/usr/sbin </DT>
<DD>The <CODE>accept</CODE>, <CODE>cupsd</CODE>, <CODE>lpadmin</CODE>, <CODE>
lpc</CODE>, and <CODE>reject</CODE> commands reside here. </DD>
<DD>The <CODE>lpc</CODE> and <CODE>cupsd</CODE> commands resize here. </DD>
<DT>/usr/share/cups </DT>
<DD>This is the root directory of the CUPS static data. </DD>
<DT>/usr/share/cups/data </DT>
+1206 -1147
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+105 -136
Ver Arquivo
@@ -3,7 +3,7 @@
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-IDD-1.0">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Interface Design Description</TITLE>
<TITLE>DRAFT - CUPS Interface Design Description</TITLE>
</HEAD>
<BODY>
@@ -74,10 +74,10 @@ sections:
<UL>
<LI>IEEE 1387.4, System Administration: Printing (draft)
<LI>IPP/1.0: Additional Optional Operations - Set 1
<LI>IPP/1.0: Encoding and Transport
<LI>IPP/1.0: Implementers Guide
<LI>IPP/1.0: Model and Semantics
<LI>RFC 1179, Line Printer Daemon Protocol
<LI>RFC 2565, IPP/1.0: Encoding and Transport
<LI>RFC 2566, IPP/1.0: Model and Semantics
<LI>RFC 2639, IPP/1.0: Implementers Guide
</UL>
<H1>Internal Interfaces</H1>
@@ -269,33 +269,28 @@ followed by its value. The following directives are understood:
<TR>
<TD>&lt;Class name&gt;<BR>
&lt;/Class&gt;</TD>
<TD>Surrounds a class definition.</TD>
<TD></TD>
</TR>
<TR>
<TD>&lt;DefaultClass name&gt;<BR>
&lt;/Class&gt;</TD>
<TD>Surrounds a class definition for the default destination.</TD>
</TR>
<TR>
<TD>Accepting</TD>
<TD>Specifies whether the class is accepting new jobs. May be
the names "Yes" or "No".</TD>
<TD></TD>
</TR>
<TR>
<TD>Info</TD>
<TD>A textual description of the class.</TD>
<TD></TD>
</TR>
<TR>
<TD>Location</TD>
<TD>A textual location of the class.</TD>
<TD></TD>
</TR>
<TR>
<TD>MoreInfo</TD>
<TD>A URL pointing to additional information on the class.</TD>
<TD></TD>
</TR>
<TR>
<TD>Printer</TD>
<TD>Specifies a printer that is a member of the class.</TD>
<TD></TD>
</TR>
</TABLE></CENTER>
@@ -315,208 +310,180 @@ followed by its value. The following directives are understood:
</TR>
<TR>
<TD>AccessLog</TD>
<TD>logs/access_log</TD>
<TD>Specifies the location of the access log file.</TD>
<TD></TD>
<TD>Specifies the location of the access log file (default
"logs/access_log").</TD>
</TR>
<TR>
<TD>Allow</TD>
<TD>-</TD>
<TD>Allows connections from the specified host, network, or
domain.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>AuthClass</TD>
<TD>-</TD>
<TD>Specifies what level of authentication is required; may be either
"User", "System", or "Group".</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>AuthType</TD>
<TD>None</TD>
<TD>Specifies the type of authentication to perform; may be either
"None" or "Basic".</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>BrowseAddress</TD>
<TD>255.255.255.255</TD>
<TD>Specifies a broadcast address to send CUPS browsing packets to.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>BrowseInterval</TD>
<TD>30</TD>
<TD>Specifies the number of seconds between browsing updates.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>BrowsePort</TD>
<TD>631</TD>
<TD>Specifies the UDP port number to use for browse packets.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>BrowseTimeout</TD>
<TD>300</TD>
<TD>Specifies the number of seconds to wait until remote destinations
are removed from the local destination list.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>Browsing</TD>
<TD>On</TD>
<TD>Specifies whether or not printer and class browsing is enabled; can
be "On" or "Off".</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>DefaultCharset</TD>
<TD>iso-8859-1</TD>
<TD>Specifies the default character set.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>DefaultLanguage</TD>
<TD>current locale</TD>
<TD>Specifies the default language.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>Deny</TD>
<TD>-</TD>
<TD>Refuses connections from the specified host, network, or
domain.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>DocumentRoot</TD>
<TD>/usr/share/cups/doc</TD>
<TD>Specifies the document data root directory.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>ErrorLog</TD>
<TD>logs/error_log</TD>
<TD>Specifies the error log file location.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>Group</TD>
<TD>root, sys, system</TD>
<TD>Specifies the group name or ID that is used when running
external programs.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>HostNameLookups</TD>
<TD>Off</TD>
<TD>Specifies whether or not to perform reverse IP address lookups to
get the actual hostname; may be "On" or "Off". Hostname lookups can
significantly degrade the performance of the CUPS server if one or
more DNS servers is not functioning properly.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>ImplicitClasses</TD>
<TD>On</TD>
<TD>Specifies whether or not to automatically create printer classes
when more than one printer or class of the same name is detected on
the network; may be "On" or "Off".</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>KeepAlive</TD>
<TD>On</TD>
<TD>Specifies whether or not to use the HTTP Keep-Alive feature; may
be "On" or "Off".</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>KeepAliveTimeout</TD>
<TD>30</TD>
<TD>Specifies the amount of time to keep the HTTP connection alive
before closing it.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>&lt;Location path&gt;<BR>
&lt;/Location&gt;</TD>
<TD>-</TD>
<TD>Specifies a location to restrict access to.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>LogLevel</TD>
<TD>info</TD>
<TD>Controls the amount of information that is logged in the
error log file. Can be one of "debug", "info", "warn", "error",
or "none", in decreasing order or verbosity.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>MaxClients</TD>
<TD>100</TD>
<TD>Specifies the maximum number of simultaneous active clients.
This value is internally limited to 1/3 of the total number of
availabel file descriptors.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>MaxLogSize</TD>
<TD>0</TD>
<TD>Specifies the maximum size of the access, error, and page
log files in bytes. If set to 0 then no maximum size is set.
Log files are rotated automatically when this size is
exceeded.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>MaxRequestSize</TD>
<TD>0</TD>
<TD>Specifies the maximum size of HTTP requests in bytes. If set to 0
then there is no maximum.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>Order</TD>
<TD>Allow,Deny</TD>
<TD>Specifies the order of Allow and Deny directive processing; can
be "Deny,Allow" to implicitly deny hosts unless they are allowed by
an Allow line, or "Allow,Deny" to implicitly allow hosts unless they
are denied by a Deny line.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>PageLog</TD>
<TD>logs/page_log</TD>
<TD>Specifies the location of the page log file.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>Port</TD>
<TD>631</TD>
<TD>Specifies a port number to listen to for HTTP connections.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>RIPCache</TD>
<TD>8m</TD>
<TD>Specifies the size of the memory cache in bytes that is used by
RIP filters.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>ServerAdmin</TD>
<TD>root@ServerName</TD>
<TD>Specifies the person to contact with problems.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>ServerName</TD>
<TD>hostname</TD>
<TD>Specifies the hostname that is supplied to HTTP clients. This
is also used to determine the default CUPS server for the CUPS IPP
client applications.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>ServerRoot</TD>
<TD>/var/cups</TD>
<TD>Specifies the root directory for server data files.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>SystemGroup</TD>
<TD>root, sys, system</TD>
<TD>Specifies the group name used for System class authentication.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>TempDir</TD>
<TD>/var/tmp</TD>
<TD>Specifies the temporary directory to use.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>Timeout</TD>
<TD>300</TD>
<TD>The timeout in seconds before client connections are closed
in the middle of a request.</TD>
<TD></TD>
<TD></TD>
</TR>
<TR>
<TD>User</TD>
<TD>lp</TD>
<TD>Specifies the user that is used when running external programs.</TD>
<TD></TD>
<TD></TD>
</TR>
</TABLE></CENTER>
@@ -533,41 +500,35 @@ followed by its value. The following directives are understood:
<TH WIDTH="25%">Directive</TH>
<TH>Description</TH>
</TR>
<TR>
<TD>Accepting</TD>
<TD>Specifies whether the printer is accepting new jobs. May be
the names "Yes" or "No".</TD>
</TR>
<TR>
<TD>&lt;DefaultPrinter name&gt;<BR>
&lt;/Printer&gt;</TD>
<TD>Surrounds the printer definition for a default destination.</TD>
<TD></TD>
</TR>
<TR>
<TD>DeviceURI</TD>
<TD>Specifies the device-uri attribute for the printer.</TD>
<TD></TD>
</TR>
<TR>
<TD>Info</TD>
<TD>A textual description of the printer.</TD>
<TD></TD>
</TR>
<TR>
<TD>Location</TD>
<TD>A textual location of the printer.</TD>
<TD></TD>
</TR>
<TR>
<TD>MoreInfo</TD>
<TD>A URL pointing to additional information on the printer.</TD>
<TD></TD>
</TR>
<TR>
<TD>&lt;Printer name&gt;<BR>
&lt;/Printer&gt;</TD>
<TD>Surrounds the printer definition.</TD>
<TD></TD>
</TR>
<TR>
<TD>State</TD>
<TD>Specifies the initial state of the printer; can be "Idle" or
"Stopped".</TD>
<TD></TD>
</TR>
</TABLE></CENTER>
@@ -576,7 +537,7 @@ followed by its value. The following directives are understood:
<H2>AppSocket Protocol</H2>
<P>The AppSocket protocol is an 8-bit clean TCP/IP socket connection.
The default IP service port is 9100. The URI method name is "socket".
The default IP service port is 9100.
<H2>CUPS Browsing Protocol</H2>
@@ -951,6 +912,12 @@ raster data for that page.
to the destination printer (e.g. HP-PCL, HP-RTL, etc.) The MIME type for CUPS
Raw files is <CODE>application/vnd.cups-raw</CODE>.
<H2>File Transfer Protocol</H2>
<P>The File Transfer Protocol (FTP) is described by
<A HREF="http://www.ietf.org/rfc/rfc959.txt">RFC 959: File Transfer
Protocol</A>.
<H2>Internet Printing Protocol</H2>
<P>The Internet Printing Protocol is described by the following RFCs:
@@ -975,8 +942,6 @@ Raw files is <CODE>application/vnd.cups-raw</CODE>.
</UL>
<P>The URI method name for IPP is "ipp".
<P>CUPS defines the following extension operations to IPP.
<H3>Get Default Destination (CUPS_GET_DEFAULT = 0x4001)</H3>
@@ -1097,15 +1062,17 @@ are <CODE>attributes-charset</CODE>,
<A HREF="http://www.ietf.org/rfc/rfc1179.txt">RFC 1179: Line Printer Daemon
Protocol</A>.
<P>The URI method name for LPD is "lpd".
<H2>Server Message Block Protocol</H2>
<P>The Server Message Block (SMB) and related Common Internet File
System (CIFS) protocols are described at
<A HREF="http://anu.samba.org/cifs">http://anu.samba.org/cifs</A>.
<P>The URI method name for SMB is "smb".
<H2>Trivial File Transfer Protocol</H2>
<P>The Trivial File Transfer Protocol (TFTP) is described by
<A HREF="http://www.ietf.org/rfc/rfc1350.txt">RFC 1350: The TFTP Protocol
(Revision 2)</A>.
<H1>5 - Directories</H1>
@@ -1116,10 +1083,12 @@ System (CIFS) protocols are described at
<CODE>lpr</CODE>, <CODE>lprm</CODE>, and <CODE>lpstat</CODE> commands
reside here.
<DT>/usr/lib
<DD>The <CODE>accept</CODE>, <CODE>disable</CODE>, <CODE>enable</CODE>,
<CODE>lpadmin</CODE>, and <CODE>reject</CODE> commands reside here.
<DT>/usr/sbin
<DD>The <CODE>accept</CODE>, <CODE>cupsd</CODE>,
<CODE>lpadmin</CODE>, <CODE>lpc</CODE>, and <CODE>reject</CODE>
commands reside here.
<DD>The <CODE>lpc</CODE> and <CODE>cupsd</CODE> commands resize here.
<DT>/usr/share/cups
<DD>This is the root directory of the CUPS static data.
+9 -14
Ver Arquivo
@@ -11,7 +11,7 @@
<TD><H1 ALIGN=right>An Overview of the<BR>
Common UNIX Printing System</H1></DIV>
<P ALIGN=right>September 14, 1999<BR>
<P ALIGN=right>May 11, 1999<BR>
Michael Sweet, Easy Software Products<BR>
Copyright 1998-1999, All Rights Reserved.</P>
</TD>
@@ -163,9 +163,7 @@ Apache server configuration file and defines all of the access control
properties for the server.
<P>The printer and class definition files list the available printer
queues and classes. Printer classes are collections of printers. Jobs
sent to a class are forwarded to the first available printer in the
class, round-robin fashion.
queues and classes.
<P>The MIME type files list the supported MIME types (text/plain,
application/postscript, etc.) and "magic" rules for automatically
@@ -176,16 +174,13 @@ when a <I>Print-Job</I> request is received with a
<I>document-format</I> of <I>application/octet-stream</I>.
<P>The MIME conversion rule files list the available filters. These
files are augmented by <I>cupsFilter</I> entries in the printer PPD
files. The filters are used when a job is dispatched so that an
application can send a convenient file format to the printing system
files are augmented by <I>AddFilter</I> entries in the printer
definition files. The filters are used when a job is dispatched so that
an application can send a convenient file format to the printing system
which then converts the document into a printable format as needed.
Each filter has a relative cost associated with it, and the filtering
algorithm chooses the set of filters that will convert the file to the
needed format with the lowest total "cost".
<P>The PPD files describe the capabilities of PostScript printers.
There is one PPD file for each printer.
<P>The PPD files describe the capabilities of PostScript printers. There is
one PPD file for each printer.
<H3>CUPS Interface Library</H3>
@@ -204,8 +199,8 @@ and job options. All output is sent to the standard output.
<H3>Backends</H3>
A backend program is a special filter that writes incoming data to a
device or network connection. Backends for serial, parallel, LPD,
IPP, SMB, and AppSocket (JetDirect) connections are provided in
device or network connection. Backends for serial, parallel, LPD, TFTP,
FTP, IPP, SMB, and AppSocket (JetDirect) connections are provided in
CUPS 1.0.
<H2>Berkeley and System V Commands</H2>
Arquivo binário não exibido.
+2 -2
Ver Arquivo
@@ -1,13 +1,13 @@
<HTML>
<HEAD>
<TITLE>CUPS Software Administrators Manual</TITLE>
<TITLE>DRAFT - CUPS Software Administrators Manual</TITLE>
<META NAME="AUTHOR" CONTENT="Easy Software Products">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.0.0">
</HEAD>
<BODY>
<CENTER><A HREF=#contents><IMG SRC="images/cups-large.gif" BORDER=0><BR>
<H1>CUPS Software Administrators Manual</H1></A><BR>
<H1>DRAFT - CUPS Software Administrators Manual</H1></A><BR>
CUPS-SAM-1.0.0<BR>
Easy Software Products<BR>
Copyright 1997-1999, All Rights Reserved<BR>
+493 -509
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+1 -1
Ver Arquivo
@@ -3,7 +3,7 @@
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SAM-1.0.0">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Administrators Manual</TITLE>
<TITLE>DRAFT - CUPS Software Administrators Manual</TITLE>
</HEAD>
<BODY>
+67 -61
Ver Arquivo
@@ -1,13 +1,13 @@
<HTML>
<HEAD>
<TITLE>CUPS Software Design Description</TITLE>
<TITLE>DRAFT - CUPS Software Design Description</TITLE>
<META NAME="AUTHOR" CONTENT="Easy Software Products">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SDD-1.0">
</HEAD>
<BODY>
<CENTER><A HREF=#contents><IMG SRC="images/cups-large.gif" BORDER=0><BR>
<H1>CUPS Software Design Description</H1></A><BR>
<H1>DRAFT - CUPS Software Design Description</H1></A><BR>
CUPS-SDD-1.0<BR>
Easy Software Products<BR>
Copyright 1997-1999, All Rights Reserved<BR>
@@ -34,7 +34,8 @@ Copyright 1997-1999, All Rights Reserved<BR>
<LI><A HREF=#3_1_2>3.1.2 lpd</A></LI>
<LI><A HREF=#3_1_3>3.1.3 parallel</A></LI>
<LI><A HREF=#3_1_4>3.1.4 serial</A></LI>
<LI><A HREF=#3_1_5>3.1.5 socket</A></LI>
<LI><A HREF=#3_1_5>3.1.5 smb</A></LI>
<LI><A HREF=#3_1_6>3.1.6 socket</A></LI>
</UL>
<LI><A HREF=#3_2>3.2 Berkeley Commands</A></LI>
<UL>
@@ -44,9 +45,9 @@ Copyright 1997-1999, All Rights Reserved<BR>
</UL>
<LI><A HREF=#3_3>3.3 CGI</A></LI>
<UL>
<LI><A HREF=#3_3_1>3.3.1 classes.cgi</A></LI>
<LI><A HREF=#3_3_2>3.3.2 jobs.cgi</A></LI>
<LI><A HREF=#3_3_3>3.3.3 printers.cgi</A></LI>
<LI><A HREF=#3_3_1>3.3.1 classes</A></LI>
<LI><A HREF=#3_3_2>3.3.2 jobs</A></LI>
<LI><A HREF=#3_3_3>3.3.3 printers</A></LI>
</UL>
<LI><A HREF=#3_4>3.4 CUPS Interface Library</A></LI>
<UL>
@@ -62,11 +63,8 @@ Copyright 1997-1999, All Rights Reserved<BR>
<UL>
<LI><A HREF=#3_5_1>3.5.1 hpgltops</A></LI>
<LI><A HREF=#3_5_2>3.5.2 imagetops</A></LI>
<LI><A HREF=#3_5_3>3.5.3 imagetoraster</A></LI>
<LI><A HREF=#3_5_4>3.5.4 pstops</A></LI>
<LI><A HREF=#3_5_5>3.5.5 pstoraster</A></LI>
<LI><A HREF=#3_5_6>3.5.6 rastertohp</A></LI>
<LI><A HREF=#3_5_7>3.5.7 texttops</A></LI>
<LI><A HREF=#3_5_3>3.5.3 pstops</A></LI>
<LI><A HREF=#3_5_4>3.5.4 texttops</A></LI>
</UL>
<LI><A HREF=#3_6>3.6 Scheduler</A></LI>
<UL>
@@ -77,9 +75,8 @@ Copyright 1997-1999, All Rights Reserved<BR>
<LI><A HREF=#3_6_5>3.6.5 Directory Services</A></LI>
<LI><A HREF=#3_6_6>3.6.6 IPP</A></LI>
<LI><A HREF=#3_6_7>3.6.7 Jobs</A></LI>
<LI><A HREF=#3_6_8>3.6.8 Logging</A></LI>
<LI><A HREF=#3_6_9>3.6.9 Main</A></LI>
<LI><A HREF=#3_6_10>3.6.10 Printers</A></LI>
<LI><A HREF=#3_6_8>3.6.8 Main</A></LI>
<LI><A HREF=#3_6_9>3.6.9 Printers</A></LI>
</UL>
<LI><A HREF=#3_7>3.7 System V Commands</A></LI>
<UL>
@@ -93,10 +90,12 @@ Copyright 1997-1999, All Rights Reserved<BR>
<LI><A HREF=#3_7_8>3.7.8 reject</A></LI>
</UL>
</UL>
<B><A HREF=#4>A Glossary</A></B>
<B><A HREF=#4>4 Detailed Design</A></B>
<BR>
<BR><B><A HREF=#5>A Glossary</A></B>
<UL>
<LI><A HREF=#4_1>A.1 Terms</A></LI>
<LI><A HREF=#4_2>A.2 Acronyms</A></LI>
<LI><A HREF=#5_1>A.1 Terms</A></LI>
<LI><A HREF=#5_2>A.2 Acronyms</A></LI>
</UL>
<HR>
<H1><A NAME=1>1 Scope</A></H1>
@@ -127,6 +126,7 @@ can be used to support non-PostScript printers. </P>
<LI>1 - Scope </LI>
<LI>2 - References </LI>
<LI>3 - Design Overview </LI>
<LI>4 - Detailed Design </LI>
<LI>A - Glossary </LI>
</UL>
<H1><A NAME=2>2 References</A></H1>
@@ -148,10 +148,10 @@ can be used to support non-PostScript printers. </P>
<UL>
<LI>IEEE 1387.4, System Administration: Printing (draft) </LI>
<LI>IPP/1.0: Additional Optional Operations - Set 1 </LI>
<LI>IPP/1.0: Encoding and Transport </LI>
<LI>IPP/1.0: Implementers Guide </LI>
<LI>IPP/1.0: Model and Semantics </LI>
<LI>RFC 1179, Line Printer Daemon Protocol </LI>
<LI>RFC 2565, IPP/1.0: Encoding and Transport </LI>
<LI>RFC 2566, IPP/1.0: Model and Semantics </LI>
<LI>RFC 2639, IPP/1.0: Implementers Guide </LI>
</UL>
<H1><A NAME=3>3 Design Overview</A></H1>
CUPS is composed of 7 software sub-systems that operate together to
@@ -219,7 +219,17 @@ form:
<LI><CODE>parity=<I>odd</I></CODE> - Sets odd parity checking. </LI>
<LI><CODE>parity=<I>none</I></CODE> - Turns parity checking off. </LI>
</UL>
<H3><A NAME=3_1_5>3.1.5 socket</A></H3>
<H3><A NAME=3_1_5>3.1.5 smb</A></H3>
The smb backend sends the specified job to a network host using the
Server Message Block protocol, which is used by most machines running
Microsoft&reg; Windows&reg;. The URI is of the form:
<UL>
<PRE>smb://hostname/queue
</PRE>
</UL>
Usernames and passwords required to access the printer are stored in
an external file.
<H3><A NAME=3_1_6>3.1.6 socket</A></H3>
The socket backend sends the specified job to a network host using the
AppSocket protocol commonly used by Hewlett-Packard and Tektronix
printers. The URI is of the form:
@@ -231,32 +241,41 @@ printers. The URI is of the form:
<H2><A NAME=3_2>3.2 Berkeley Commands</A></H2>
The Berkeley commands provide a simple command-line interface to CUPS
to submit and control print jobs. It is provided for compatibility with
existing software that is hard coded to use the Berkeley commands.
existing software that is hard coded to use the Berkeley commands,
however since printer options cannot be specified using the Berkeley
commands their use it not encouraged.
<H3><A NAME=3_2_1>3.2.1 lpc</A></H3>
The lpc command allows users and administrators to check the status
and control print queues. The version provided with CUPS supports the
following commands:
<UL>
<LI>quit - Quits the lpc command. </LI>
<LI>abort - Stops a printer or all printers and any active print jobs. </LI>
<LI>disable - Prevents new jobs from being submitted to the specified
printer or all printers. </LI>
<LI>down - Stops a printer or all printers after completing the current
print jobs. </LI>
<LI>enable - Allows new jobs to be submitted. </LI>
<LI>start - Starts a printer or all printers. </LI>
<LI>status - Shows the status of printers and jobs in the queue. </LI>
<LI>up - Starts a printer or all printers. </LI>
</UL>
<H3><A NAME=3_2_2>3.2.2 lpr</A></H3>
The lpr command submits a job for printing. The CUPS version of lpr
silently ignores the &quot;i&quot;, &quot;t&quot;, &quot;m&quot;, &quot;h&quot;, and &quot;s&quot; options.
silently ignores the &quot;i&quot;, &quot;p&quot;, &quot;t&quot;, &quot;m&quot;, &quot;h&quot;, and &quot;s&quot; options.
<H3><A NAME=3_2_3>3.2.3 lprm</A></H3>
The lprm removes one or more print jobs.
<H2><A NAME=3_3>3.3 CGI</A></H2>
The Common Gateway Interface (CGI) programs provide a web-based status
interface to monitor the status of printers, classes, and jobs.
<H3><A NAME=3_3_1>3.3.1 classes.cgi</A></H3>
<H3><A NAME=3_3_1>3.3.1 classes</A></H3>
The classes CGI lists the available printer classes and any pending
jobs for the class. The user can click on individual classes to limit
the display and click on jobs to see the job status.
<H3><A NAME=3_3_2>3.3.2 jobs.cgi</A></H3>
<H3><A NAME=3_3_2>3.3.2 jobs</A></H3>
The jobs CGI lists the queued print jobs in order of priority. The
list can be limited by printer or job. When the user displays the
status of an individual print job all job options are displayed.
<H3><A NAME=3_3_3>3.3.3 printers.cgi</A></H3>
<H3><A NAME=3_3_3>3.3.3 printers</A></H3>
The printers CGI lists the available printer queues and any pending
jobs for the printer. The user can click on individual printers to
limit the display and click on jobs to see the job status.
@@ -265,9 +284,8 @@ limit the display and click on jobs to see the job status.
language, MIME, PPD, and raster functions used by the CUPS software.
<H3><A NAME=3_4_1>3.4.1 Convenience Functions</A></H3>
Convenience functions are provided to submit an IPP request, send a
print file, cancel a job, get a list of available printers, get a list
of available classes, get the default printer or class, get the default
server name, get the local username, and get a password string.
print file, cancel a job, get a list of available printers, and get a
list of available classes.
<H3><A NAME=3_4_2>3.4.2 HTTP Functions</A></H3>
The HTTP functions provide functions to connect to HTTP servers, issue
requests, read data from a server, and write data to a server.
@@ -311,24 +329,16 @@ necessary conversions from one file type to another.
The hpgltops filter converts HP-GL/2 files into PostScript.
<H3><A NAME=3_5_2>3.5.2 imagetops</A></H3>
The imagetops filter converts image files into PostScript.
<H3><A NAME=3_5_3>3.5.3 imagetoraster</A></H3>
The imagetoraster filter converts image files into CUPS raster data.
<H3><A NAME=3_5_4>3.5.4 pstops</A></H3>
<H3><A NAME=3_5_3>3.5.3 pstops</A></H3>
The pstops filter inserts printer-specific commands from PPD files and
performs page filtering as requested by the user.
<H3><A NAME=3_5_5>3.5.5 pstoraster</A></H3>
The pstoraster filter converts PostScript program data into CUPS
raster data.
<H3><A NAME=3_5_6>3.5.6 rastertohp</A></H3>
The rastertohp filter handles converting CUPS raster data to HP PCL
and supports both color and black-and-white printers.
<H3><A NAME=3_5_7>3.5.7 texttops</A></H3>
<H3><A NAME=3_5_4>3.5.4 texttops</A></H3>
The texttops filter converts text files into PostScript.
<H2><A NAME=3_6>3.6 Scheduler</A></H2>
The scheduler is a fully-functional HTTP/1.1 and IPP/1.0 server that
manages the printers, classes, and jobs in the system. It also handles
a simple broadcast-based directory service so that remote print queues
and classes can be accessed transparently from the local system.
The scheduler is a fully-functional HTTP/1.1 server that manages the
printers, classes, and jobs in the system. It also handles a simple
broadcast-based directory service so that remote print queues and
classes can be accessed transparently from the local system.
<H3><A NAME=3_6_1>3.6.1 Authorization</A></H3>
The authorization module is responsible for performing access control
and authentication for all HTTP and IPP requests entering the system.
@@ -362,28 +372,24 @@ multiple addresses and ports as needed. </P>
<H3><A NAME=3_6_6>3.6.6 IPP</A></H3>
The IPP module handles IPP requests and acts accordingly. URI
validation is also performed here, as a client can post IPP data to any
URI on the server which might sidestep the access control or
authentication of the HTTP server.
URI on the server (which might sidestep the access control or
authentication of the HTTP server.)
<H3><A NAME=3_6_7>3.6.7 Jobs</A></H3>
The jobs module manages print jobs, starts filter and backend
processes for jobs to be printed, and monitors status messages from
those filters and backends.
<H3><A NAME=3_6_8>3.6.8 Logging</A></H3>
The logging module manages the access, error, and page log files that
are generated by the scheduler.
<H3><A NAME=3_6_9>3.6.9 Main</A></H3>
<H3><A NAME=3_6_8>3.6.8 Main</A></H3>
The main module is responsible for timing out and dispatching input
and output for client connections. It also watches for incoming <CODE>
SIGHUP</CODE> and <CODE>SIGCHLD</CODE> signals, reloads the server
configuration files as needed, and handles child process errors and
exits.
<H3><A NAME=3_6_10>3.6.10 Printers</A></H3>
SIGHUP</CODE> signals and reloads the server configuration files as
needed.
<H3><A NAME=3_6_9>3.6.9 Printers</A></H3>
The printers module is responsible for managing printers and PPD files
in the system. The printers module also reads and writes the printers
configuration file.
<H2><A NAME=3_7>3.7 System V Commands</A></H2>
The System V commands provide a robust command-line interface to CUPS
to submit and control printers and jobs.
to submit and control print jobs.
<H3><A NAME=3_7_1>3.7.1 accept</A></H3>
The accept command tells the scheduler to accept new jobs for specific
printers.
@@ -405,17 +411,17 @@ separate job ID for each file that is printed. Also, the Solaris &quot;f&quot;,
The lpadmin command manages printer queues and classes. The Solaris
&quot;A&quot;, &quot;F&quot;, &quot;I&quot;, &quot;M&quot;, &quot;P&quot;, &quot;Q&quot;, &quot;S&quot;, &quot;T&quot;, &quot;U&quot;, &quot;W&quot;, &quot;f&quot;, &quot;l&quot;, &quot;m&quot;, &quot;o&quot;,
&quot;s&quot;, &quot;t&quot;, and &quot;u&quot; options are not supported, and new options &quot;P&quot; (PPD
file), &quot;F&quot; (filter), and &quot;E&quot; (enable and accept) are provided to
configure CUPS-specific features such as PPD file and conversion
filters.
file) and &quot;F&quot; (filter) are provided to configure CUPS-specific features
such as PPD file and conversion filters.
<H3><A NAME=3_7_7>3.7.7 lpstat</A></H3>
The lpstat command lists printers, classes, and jobs as requested by
the user.
<H3><A NAME=3_7_8>3.7.8 reject</A></H3>
The reject command tells the scheduler not to accept new jobs for
specific printers.
<H1 TYPE=A VALUE=1><A NAME=4>A Glossary</A></H1>
<H2><A NAME=4_1>A.1 Terms</A></H2>
<H1><A NAME=4>4 Detailed Design</A></H1>
<H1 TYPE=A VALUE=1><A NAME=5>A Glossary</A></H1>
<H2><A NAME=5_1>A.1 Terms</A></H2>
<DL>
<DT>C </DT>
<DD>A computer language. </DD>
@@ -428,7 +434,7 @@ specific printers.
<DT>socket </DT>
<DD>A two-way network communications channel. </DD>
</DL>
<H2><A NAME=4_2>A.2 Acronyms</A></H2>
<H2><A NAME=5_2>A.2 Acronyms</A></H2>
<DL>
<DT>ASCII </DT>
<DD>American Standard Code for Information Interchange </DD>
+783 -793
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+52 -42
Ver Arquivo
@@ -3,7 +3,7 @@
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SDD-1.0">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Design Description</TITLE>
<TITLE>DRAFT - CUPS Software Design Description</TITLE>
</HEAD>
<BODY>
@@ -48,6 +48,8 @@ following sections:
<LI>3 - Design Overview
<LI>4 - Detailed Design
<LI>A - Glossary
</UL>
@@ -77,10 +79,10 @@ The following non-CUPS documents are referenced by this document:
<UL>
<LI>IEEE 1387.4, System Administration: Printing (draft)
<LI>IPP/1.0: Additional Optional Operations - Set 1
<LI>IPP/1.0: Encoding and Transport
<LI>IPP/1.0: Implementers Guide
<LI>IPP/1.0: Model and Semantics
<LI>RFC 1179, Line Printer Daemon Protocol
<LI>RFC 2565, IPP/1.0: Encoding and Transport
<LI>RFC 2566, IPP/1.0: Model and Semantics
<LI>RFC 2639, IPP/1.0: Implementers Guide
</UL>
<H1>Design Overview</H1>
@@ -183,6 +185,18 @@ The options can be any combination of the following:
</UL>
<H3>smb</H3>
The smb backend sends the specified job to a network host using the Server
Message Block protocol, which is used by most machines running Microsoft&reg;
Windows&reg;. The URI is of the form:
<UL><PRE>smb://hostname/queue
</PRE></UL>
Usernames and passwords required to access the printer are stored in an
external file.
<H3>socket</H3>
The socket backend sends the specified job to a network host using the
@@ -198,7 +212,9 @@ The default port number is 9100.
The Berkeley commands provide a simple command-line interface to CUPS
to submit and control print jobs. It is provided for compatibility with
existing software that is hard coded to use the Berkeley commands.
existing software that is hard coded to use the Berkeley commands,
however since printer options cannot be specified using the Berkeley
commands their use it not encouraged.
<H3>lpc</H3>
@@ -208,16 +224,28 @@ commands:
<UL>
<LI>quit - Quits the lpc command.
<LI>abort - Stops a printer or all printers and any active print jobs.
<LI>disable - Prevents new jobs from being submitted to the specified
printer or all printers.
<LI>down - Stops a printer or all printers after completing the current
print jobs.
<LI>enable - Allows new jobs to be submitted.
<LI>start - Starts a printer or all printers.
<LI>status - Shows the status of printers and jobs in the queue.
<LI>up - Starts a printer or all printers.
</UL>
<H3>lpr</H3>
The lpr command submits a job for printing. The CUPS version of lpr silently
ignores the "i", "t", "m", "h", and "s" options.
ignores the "i", "p", "t", "m", "h", and "s" options.
<H3>lprm</H3>
@@ -228,19 +256,19 @@ The lprm removes one or more print jobs.
The Common Gateway Interface (CGI) programs provide a web-based status interface
to monitor the status of printers, classes, and jobs.
<H3>classes.cgi</H3>
<H3>classes</H3>
The classes CGI lists the available printer classes and any pending jobs for
the class. The user can click on individual classes to limit the display and
click on jobs to see the job status.
<H3>jobs.cgi</H3>
<H3>jobs</H3>
The jobs CGI lists the queued print jobs in order of priority. The list can
be limited by printer or job. When the user displays the status of an
individual print job all job options are displayed.
<H3>printers.cgi</H3>
<H3>printers</H3>
The printers CGI lists the available printer queues and any pending jobs for
the printer. The user can click on individual printers to limit the display and
@@ -254,9 +282,8 @@ language, MIME, PPD, and raster functions used by the CUPS software.
<H3>Convenience Functions</H3>
Convenience functions are provided to submit an IPP request, send a print file,
cancel a job, get a list of available printers, get a list of available
classes, get the default printer or class, get the default server name, get
the local username, and get a password string.
cancel a job, get a list of available printers, and get a list of available
classes.
<H3>HTTP Functions</H3>
@@ -327,34 +354,21 @@ The hpgltops filter converts HP-GL/2 files into PostScript.
The imagetops filter converts image files into PostScript.
<H3>imagetoraster</H3>
The imagetoraster filter converts image files into CUPS raster data.
<H3>pstops</H3>
The pstops filter inserts printer-specific commands from PPD files and
performs page filtering as requested by the user.
<H3>pstoraster</H3>
The pstoraster filter converts PostScript program data into CUPS raster data.
<H3>rastertohp</H3>
The rastertohp filter handles converting CUPS raster data to HP PCL and
supports both color and black-and-white printers.
<H3>texttops</H3>
The texttops filter converts text files into PostScript.
<H2>Scheduler</H2>
The scheduler is a fully-functional HTTP/1.1 and IPP/1.0 server that
manages the printers, classes, and jobs in the system. It also handles
a simple broadcast-based directory service so that remote print queues
and classes can be accessed transparently from the local system.
The scheduler is a fully-functional HTTP/1.1 server that manages the printers,
classes, and jobs in the system. It also handles a simple broadcast-based
directory service so that remote print queues and classes can be accessed
transparently from the local system.
<H3>Authorization</H3>
@@ -399,8 +413,8 @@ ports as needed.
The IPP module handles IPP requests and acts accordingly. URI
validation is also performed here, as a client can post IPP data to any
URI on the server which might sidestep the access control or
authentication of the HTTP server.
URI on the server (which might sidestep the access control or
authentication of the HTTP server.)
<H3>Jobs</H3>
@@ -408,17 +422,11 @@ The jobs module manages print jobs, starts filter and backend processes
for jobs to be printed, and monitors status messages from those filters
and backends.
<H3>Logging</H3>
The logging module manages the access, error, and page log files that are
generated by the scheduler.
<H3>Main</H3>
The main module is responsible for timing out and dispatching input and output
for client connections. It also watches for incoming <CODE>SIGHUP</CODE>
and <CODE>SIGCHLD</CODE> signals, reloads the server configuration files as
needed, and handles child process errors and exits.
signals and reloads the server configuration files as needed.
<H3>Printers</H3>
@@ -429,7 +437,7 @@ configuration file.
<H2>System V Commands</H2>
The System V commands provide a robust command-line interface to CUPS
to submit and control printers and jobs.
to submit and control print jobs.
<H3>accept</H3>
@@ -463,8 +471,8 @@ and "y" options are silently ignored.
The lpadmin command manages printer queues and classes. The Solaris
"A", "F", "I", "M", "P", "Q", "S", "T", "U", "W", "f", "l", "m", "o",
"s", "t", and "u" options are not supported, and new options "P" (PPD
file), "F" (filter), and "E" (enable and accept) are provided to configure
CUPS-specific features such as PPD file and conversion filters.
file) and "F" (filter) are provided to configure CUPS-specific features
such as PPD file and conversion filters.
<H3>lpstat</H3>
@@ -476,6 +484,8 @@ user.
The reject command tells the scheduler not to accept new jobs for specific
printers.
<H1>Detailed Design</H1>
<H1 TYPE=A VALUE=1>Glossary</H1>
<H2>Terms</H2>
+9 -24
Ver Arquivo
@@ -91,10 +91,10 @@ sections:</P>
<UL>
<LI>IEEE 1387.4, System Administration: Printing (draft) </LI>
<LI>IPP/1.0: Additional Optional Operations - Set 1 </LI>
<LI>IPP/1.0: Encoding and Transport </LI>
<LI>IPP/1.0: Implementers Guide </LI>
<LI>IPP/1.0: Model and Semantics </LI>
<LI>RFC 1179, Line Printer Daemon Protocol </LI>
<LI>RFC 2565, IPP/1.0: Encoding and Transport </LI>
<LI>RFC 2566, IPP/1.0: Model and Semantics </LI>
<LI>RFC 2639, IPP/1.0: Implementers Guide </LI>
</UL>
<H1><A NAME=3>3 Local Access Risks</A></H1>
<P>Local access risks are those that can be exploited only with a local
@@ -102,32 +102,17 @@ user account. This section does not address issues related to
dissemination of the root password or other security issues associated
with the UNIX operating system. </P>
<H2><A NAME=3_1>3.1 Security Breaches</A></H2>
<P>There are two known security vulnerabilities with local access: </P>
<OL>
<LI>Since the default installation creates a world-readable request
directory, it is possible for local users to read the contents of
print files before they are printed.
<P>This problem can be alleviated by making the request directory
readable only by the user specified in the CUPS configuration file. </P>
</LI>
<LI>Device URIs are passed to backend filters in argv[0] and in an
environment variable. Since device URIs can contain usernames and
passwords it may be possible for a local user to gain access to a
remote resource.
<P>We recommend that any password-protected accounts used for remote
printing have limited access priviledges so that the possible damages
can be minimized. </P>
<P>The device URI is &quot;sanitized&quot; (the username and password are
removed) when sent to an IPP client so that a remote user cannot
exploit this vulnerability. </P>
</LI>
</OL>
<P>Since the default installation creates a world-readable request
directory, it is possible for local users to read the contents of print
files before they are printed. </P>
<P>This problem can be alleviated by making the request directory
readable only by the user specified in the CUPS configuration file. </P>
<H1><A NAME=4>4 Remote Access Risks</A></H1>
<P>Remote access risks are those that can be exploited without a local
user account and/or from a remote system. This section does not address
issues related to network or firewall security. </P>
<H2><A NAME=4_1>4.1 Denial of Service Attacks</A></H2>
<P>Like all Internet services, the CUPS server is vulnerable to denial
<P>Like all internet services, the CUPS server is vulnerable to denial
of service attacks, including: </P>
<OL>
<LI>Establishing multiple connections to the server until the server
+67 -59
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990922200511Z)/Title(DRAFT - CUPS Software Security Report)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990709142834Z)/Title(DRAFT - CUPS Software Security Report)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/BaseEncoding/WinAnsiEncoding>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Times-Roman/Encoding 2 0 R>>endobj
@@ -194,10 +194,13 @@ endobj
xÚ+ä2T0BCc3JÎår
ár
á
äHendstream
äHendstream
endobj
78 0 obj
31
endobj
79 0 obj<</Type/Page/Parent 72 0 R/Contents 80 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>>>endobj
31
80 0 obj<</Length 81 0 R/Filter/FlateDecode>>stream
UKo1¾ó+F9%RÙfè-o!¥í6ª.Æ;œx=[Û ¢¿¾c/Bi«TpÁóú¾o|o¥pÊŸÎ;Ðíƒ,[—“ÖûÛ!¤C˜léŸ÷`’§0–TáÉä¹±ž%ƒÆÞ>$G’Â(GãU¡¤ðŠLã܃4]»vúëd®8*üRX‡²¶Ê¯ÀbEÖCei¡rt …^9ö¦*rNÍôN€$#ÑYðs„+*K2ðøiô-ç’i7é„’™UŒÌ<Áxå<–0=>ºzÌÆGÓøŠÖ1ZH“Óä¿îpï³ þ¼@»P¸ü ÁWX`¿ú–"Ê"°ª6>Z¬ÐFJ!vÚ9ë+oE4º˜À%0ò0nå Ñ@Ž Ô‘Ãl7­`¼‘:³”×Ò;ð0”ä‘!8/L.l¾…àHסƒ…кa±@““
}É÷êÖŽ5L (ºå²æû5ÄÀ%ÚÔúV–üÐÖÊ pI´…è’uÖŠ1§nR‚ŸA¿“Ùx’¤¹™£›Ém{”eÜNѸÏD›€ŸK‰§àéÁ3Í"ø^cÍE›µGç>àŠe¸×C§Ç÷Ùõ;x¸½JÓóáôäŒyØþO—šä »?^k¨pQUc~Ä8Ó*Wæ6íh¯¤««0 Ü´¥òs^îÿ(j#C#„æy?¨Ès,Ë’ìKÃ1Í,-] PdäüXZUù-'tñAEbGYvÍ‹ÐfÉpg(ÚìÆÊ …®«sU¥×[ï 696Ã{1³ç®K]7 kç©T?¸öb½Š¼íwŸán¾…>=楷|^ô
 TüîÕKN»Ó“=¼A¾%ª m*ïÚÃ(ã!$¿Ï0 YvbÃÌiïȶ–Õýý<tášd]2Ä?öîÿû†{gŸ„‰špiŠ]Ö´Œë‰q(܇&¿\çï ˜ï/­§þ9¼ÀW¼½{ÇåØF«CQœ°@VŸ·ôM¡]½'Ésr!9ÖÁƒr/oKÑ‹Õã©úïœãNóÿ‡°«Æ4X›Úhé°Û4fç®78M†œ9¼†ß7“Ö—ÖOªÏ8˜endstream
@@ -210,12 +213,13 @@ endobj
xÚ+ä2T0BCc3JÎår
áÒw³P04TIS041T072PIÑp rt QÐUp
VÎO+)O,JUNM.-Ê,©TJ-È/*Ñ ÉâÒiÒ…ê2‰˜˜˜é™)€ù†
xÚ+ä2T0BCc3JÎår
áÒw³P04TIS041T072PIÑp rt QÐUp
VÎO+)O,JUNM.-Ê,©TJ-È/*Ñ ÉâÒiÒ…ê2‰˜˜˜é™)€ù†
ÁÉù© Q×®@.ü7 £endstream
endobj
84 0 obj
118
endobj
85 0 obj<</Type/Page/Parent 72 0 R/Contents 86 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>>>endobj
84 0 obj
86 0 obj<</Length 87 0 R/Filter/FlateDecode>>stream
xÚ­•OÚ0Åï|Š9²Ò&K 7
l…T´) {ââÆp•ØÔ6Úòíkc•V%]å@Æ¿7ö¼?ZÀ „nòªõ)k=½ÄÄæMЃŒ¶CX`yŽê!ûîJžýÈyÏ‘ïÊüÆË$…‰ÈwrM4Ü-èAËþ+Ï6…(KñÎøÚ-¤— )µ.…o{ÐóU]3tàü#?<³Wa×Êm«àç‰ø¡Ó ^°õN:½9ád
IIø5ß4tÄßà³Éäžî•Æ
@@ -228,13 +232,17 @@ endobj
87 0 obj
522
endobj
89 0 obj<</Length 90 0 R/Filter/FlateDecode>>stream
xÚ-‹Í1…÷÷)Î’E™[Ͱ5˜5Óë¤n3TE¼½©È9›óó=ˆQb,êâp£FhÞ®À ‰`ÇXÚ
ržl»u+0Ø÷~ˆù}J
¯á•.ùƒNïCÊS¹’)ùS®4Îò¬Æ/Ûñ5iôY¦Ð¾­u"§endstream
88 0 obj<</Type/Page/Parent 72 0 R/Contents 89 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
89 0 obj<</Length 90 0 R/Filter/FlateDecode>>stream
xÚ-‹Í1…÷÷)Î’E™[Ͱ5˜5Óë¤n3TE¼½©È9›óó=ˆQb,êâp£FhÞ®À ‰`ÇXÚ
ržl»u+0Ø÷~ˆù}J
¯á•.ùƒNïCÊS¹’)ùS®4Îò¬Æ/Ûñ5iôY¦Ð¾­u"§endstream
endobj
90 0 obj
121
endobj
91 0 obj<</Type/Page/Parent 72 0 R/Contents 92 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
121
92 0 obj<</Length 93 0 R/Filter/FlateDecode>>stream
xÚuRÛjÜ0}÷WÌcïnöòØ”
¥´]úª•ÆY%²ÆÑÈMý÷‘³]Xƒå3ç6z®¸‘§Í–k°}u×V¾ì ÙAÛÉŸõf­{·„odM€Ö"3üòüÄWí£@WÐ43ôz¹«×
ž¡f†&…‚IùH¬o“Ášü;òP ¼ø|¡ŒŒI9hŒ¹†öèÁ2DÊj@de½PYã\REÏ<
@@ -385,54 +393,54 @@ xref
0000003809 00000 n
0000003913 00000 n
0000004017 00000 n
0000004225 00000 n
0000004329 00000 n
0000004433 00000 n
0000004537 00000 n
0000004641 00000 n
0000004744 00000 n
0000004848 00000 n
0000004953 00000 n
0000005058 00000 n
0000005163 00000 n
0000005268 00000 n
0000005586 00000 n
0000005618 00000 n
0000005650 00000 n
0000005849 00000 n
0000005896 00000 n
0000005943 00000 n
0000005990 00000 n
0000006037 00000 n
0000006084 00000 n
0000006131 00000 n
0000006178 00000 n
0000006225 00000 n
0000006272 00000 n
0000006319 00000 n
0000006366 00000 n
0000006413 00000 n
0000006461 00000 n
0000006509 00000 n
0000006557 00000 n
0000006728 00000 n
0000006877 00000 n
0000013254 00000 n
0000013275 00000 n
0000013385 00000 n
0000013485 00000 n
0000013504 00000 n
0000013641 00000 n
0000014534 00000 n
0000014554 00000 n
0000014664 00000 n
0000014851 00000 n
0000014871 00000 n
0000015008 00000 n
0000015613 00000 n
0000015633 00000 n
0000004121 00000 n
0000004225 00000 n
0000004329 00000 n
0000004433 00000 n
0000004537 00000 n
0000004641 00000 n
0000004744 00000 n
0000004848 00000 n
0000004953 00000 n
0000005058 00000 n
0000005163 00000 n
0000005268 00000 n
0000005586 00000 n
0000005618 00000 n
0000005650 00000 n
0000005849 00000 n
0000005896 00000 n
0000005943 00000 n
0000005990 00000 n
0000006037 00000 n
0000006084 00000 n
0000006131 00000 n
0000006178 00000 n
0000006225 00000 n
0000006272 00000 n
0000006319 00000 n
0000006366 00000 n
0000006413 00000 n
0000006461 00000 n
0000006509 00000 n
0000006557 00000 n
0000006728 00000 n
0000006877 00000 n
0000013254 00000 n
0000013275 00000 n
0000013385 00000 n
0000013485 00000 n
0000013504 00000 n
0000013641 00000 n
0000014534 00000 n
0000014554 00000 n
0000014664 00000 n
0000014851 00000 n
0000014871 00000 n
0000015008 00000 n
0000015599 00000 n
0000015619 00000 n
0000015729 00000 n
0000015919 00000 n
0000016081 00000 n
0000015939 00000 n
0000016067 00000 n
+9 -29
Ver Arquivo
@@ -71,10 +71,10 @@ The following non-CUPS documents are referenced by this document:
<UL>
<LI>IEEE 1387.4, System Administration: Printing (draft)
<LI>IPP/1.0: Additional Optional Operations - Set 1
<LI>IPP/1.0: Encoding and Transport
<LI>IPP/1.0: Implementers Guide
<LI>IPP/1.0: Model and Semantics
<LI>RFC 1179, Line Printer Daemon Protocol
<LI>RFC 2565, IPP/1.0: Encoding and Transport
<LI>RFC 2566, IPP/1.0: Model and Semantics
<LI>RFC 2639, IPP/1.0: Implementers Guide
</UL>
<H1>Local Access Risks</H1>
@@ -86,32 +86,12 @@ system.
<H2>Security Breaches</H2>
<P>There are two known security vulnerabilities with local access:
<P>Since the default installation creates a world-readable request directory,
it is possible for local users to read the contents of print files before they
are printed.
<OL>
<LI>Since the default installation creates a world-readable
request directory, it is possible for local users to read the
contents of print files before they are printed.
<P>This problem can be alleviated by making the request
directory readable only by the user specified in the CUPS
configuration file.
<LI>Device URIs are passed to backend filters in argv[0] and in
an environment variable. Since device URIs can contain
usernames and passwords it may be possible for a local user to
gain access to a remote resource.
<P>We recommend that any password-protected accounts used for
remote printing have limited access priviledges so that the
possible damages can be minimized.
<P>The device URI is "sanitized" (the username and password are
removed) when sent to an IPP client so that a remote user
cannot exploit this vulnerability.
</OL>
<P>This problem can be alleviated by making the request directory readable only
by the user specified in the CUPS configuration file.
<H1>Remote Access Risks</H1>
@@ -121,7 +101,7 @@ related to network or firewall security.
<H2>Denial of Service Attacks</H2>
<P>Like all Internet services, the CUPS server is vulnerable to denial of
<P>Like all internet services, the CUPS server is vulnerable to denial of
service attacks, including:
<OL>
+4 -4
Ver Arquivo
@@ -1,14 +1,14 @@
<HTML>
<HEAD>
<TITLE>CUPS Software Users Manual</TITLE>
<TITLE>DRAFT - CUPS Software Users Manual</TITLE>
<META NAME="AUTHOR" CONTENT="Easy Software Products">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.0.0">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.0.0b1">
</HEAD>
<BODY>
<CENTER><A HREF=#contents><IMG SRC="images/cups-large.gif" BORDER=0><BR>
<H1>CUPS Software Users Manual</H1></A><BR>
CUPS-SUM-1.0.0<BR>
<H1>DRAFT - CUPS Software Users Manual</H1></A><BR>
CUPS-SUM-1.0.0b1<BR>
Easy Software Products<BR>
Copyright 1997-1999, All Rights Reserved<BR>
</CENTER>
+417 -399
Ver Arquivo
@@ -1,6 +1,6 @@
%PDF-1.2
%âãÏÓ
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990922200514Z)/Title(CUPS Software Users Manual)/Author(Easy Software Products)>>endobj
1 0 obj<</Producer(htmldoc 2.0b1 Copyright 1997-1999 Michael Sweet, All Rights Reserved.)/CreationDate(D:19990713124419Z)/Title(DRAFT - CUPS Software Users Manual)/Author(Easy Software Products)>>endobj
2 0 obj<</Type/Encoding/BaseEncoding/WinAnsiEncoding>>endobj
3 0 obj<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding 2 0 R>>endobj
4 0 obj<</Type/Font/Subtype/Type1/BaseFont/Times-Roman/Encoding 2 0 R>>endobj
@@ -362,30 +362,43 @@
]>>endobj
198 0 obj<</Type/Page/Parent 197 0 R/Contents 199 0 R/Resources<</ProcSet[/PDF/Text/ImageB/ImageC/ImageI]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
199 0 obj<</Length 200 0 R/Filter/FlateDecode>>stream
xÚíßoä8rÇ¥nõË<ÉÞíwº=
$@Æ#{ܳ7@hlë’}8 $QÈCÅí^~`“ÍÍì&¸ÿ>ýËÝúAJUEJ¢|ætó#¿U$‹ê?¿¹Ñö·â»;ñá£øã½yoùæÏâCô»›ïö¿üðñãM$~÷éæNÜÝÝÞÜïk}ÿþ1ÿ—÷ß¿ÏþñAlþ>Ú—ûòq_>íËã¾ü~_þá_ß/~ýòÛOïÿYܸ}ÿObs{ûþŽøþéMñ2 ¼r™ùt·Z­®.veû«û§©sÉÇÕEè©ÊÅåõÓ4¹äÝ•©·ºŸ—¼ëbz.—×ÉT¸ðPG´û)p=^yäâ¯ǹBW.7sÝq©lš#83VvÇÌ2×£ðÌË7‰c\ù•g¥ø×NqÝyÖÊlã žÍrí—±^Ø2K\òʳ^ü·£så¡×Gùfd®¯§2KÆäºõz+þf4.Ë:h ÜÆÚ–·£pÉÐó\'…°Z¾œk,LSÀb€Ó’Á˜–ç­âêÝo™9h6×ÀX[°d®È¼ÌàúìPæ½seÞ(åÛž¹òp.‚(‚û
ÏÒ˜‚Ô)FçʽQ˦/®p\.äƒ 8dŽƒix.²Ø¹äøXžß—p€Ë ¬sežec™K†npÍ,sEž#ei•+óœ)‰E.W¬åÄ\±çPÙXãÊ]Âꔘžh ¢˜ h`¢˜T¤×z,WêVÇ€Áô45`0AÇ8g—t«5®‡)j<b†Áô\2j†ÁpÃuq¹Z½}Ú•‡ÝŇ~ .ÿòms’ïîAô6`Ðÿpù-IÿòñªŸƒ¾‡ë²s©ô`€¶6àŠúªò¨­¬‡õÐãpÒ%77xÃæb‡´tq&ÙœËÅ
5èé¹9kÉ0¹˜ÃÅJ§æ YÀäbòÜlHÆù<®´m·8dkW8”
ž¼YhEêÁþ®†IÚ;'Ù`ÃàƒM-~æU@çÊGÀ"ƒùt.²Èûv®H
cåhç 6§r¥#"— ¶¤qåV<$,4ra`oáõmaµdF†Ö"yËX¤ÛWK
Wj!œ1*‘Á‡ƒ%Õðû\„$x.i¤™–œoˆz.urÊg¶!‚•ʬè©®!‚
™íerÑ&ÃËåy¢<ÃrÌp^ôXÏÁÜ û³BŠ&®q\‘VHèI€ãr@ iÒ᣸²‘=2CÁ6'a Wè†hP´~†àÊøÙx–tsÅ®ˆeÀÖÝ\¡#OêOÐÉ•¹5\È›urÅŽ
Ò‡%]\¡cÃ…|ÒˮܗLëRÐÁ•:7\¸(qÖÁ%›]h)KZ¹¤ƒÃ…›óëV®ÌÁáÂm#­\H•÷ÅBYѬ•+t(2$*GÆBMM R僡¹
Wå7ƒs! qÞÂåÀÞÛgz®ÌE‘G Z¢åEí€ÖZ.á¨jàLi¡ã’®ªnêÏu\-4¬z²ó¿jÆþüs8>Ó´¢ÊÖÏGøŽ+ˆZ¢¸–Z.Yy¸q[B+ѵ&.A5Z¹æZ®ãÇ”uã8$~gz8.OÏ%õÊñá¦@[p¦×ɵÖrå¥çX3ÄÌ’@ÍDçÕζ7;ÂÌ’ÒÏÔ\‚è¼Ú¹fz®³VHʪýÌ®±\ÏÆ¥à:k{†7CŒÒ'*®œCup-µ\gŒ){%)ö¡à¹æz®øù…”ÅwŽD ¯µ+¡|—§çÊŽ+§˜!b¢h†\k-×á³á·ì:…m®à’T3ìä
ô\ÑH4ÏP¶Û|WF5ÃN._Ïuø°'âò C
"½r‚嚟j+¹ÆqAÝ9FFˆ@õʳ˵ŸåIÉU)Ê*Uàì ¨²±ÄsÅÏAÍ•²V©!â¢Á•“Ͱ+«à4¸$k³$ÅéecVà¹ä³Y¨¹N&EÚ,Éq=âZ9 pí;è¹RÖž(k
?FÃ%Y{v½lp1ÒÛ¹ò£(h¸Ž]$îÙŨ.M6f…«8*½Ž 8N)ʤ€& ×Qéu\1g¼2”'šl¬i\G¥×q…œù%Qϸ‚(®£Òk¸Fˆ‘l E3"×Qé5\1o³¿ëùÏ«\1½:¹J¯á
y‡31æáI6ÖT®ƒÒ«¹ræ)FŠqÌ@ÚÛ(¨\¥WsÞ Ì"©*W̘^Ý\{¥Ws fæŽÄ8f DQkoݱ~]¹bb—Àm*\¬Cåjl¥àÚ÷^¨¸v/!‡@t(QT¢~tIÙ@ü*×¹u.qÐdA7Äp+‹ Êµ.?š:h¸žŠpš‚݆Y”¹{6sI,ËŠ:«qå®ôÈ“Ó
1EÈäp©1‰yóõýÏ&WôüЧ•hO[áÙ¨
Ë’/*qÅJ.yêAD6D‰°+ D‡Z“Jë:W¦äJO•Szì‹ÐÀG‡3½ïß½Òæ¶¬™
?UçŠN#éùV!ž+çxåóGøUxE\Qå*ýEAŽ}Ew€øèp‰ñ%&Wªà*§¢ÄdCŒº' àåpƒÑ¦¤É•+¸Êz“‘a€çŠX²Ñ°‰yÑä:Új…+,OXò"L>µ——`ÉF}bžnï)ÖÅe®jFTÔCF#ÐSÅjå³ÊÃ)ö1Ê\qŰÓRÿ-‡ÚÅßù½&o %—lp…ËË{HÕtÔ«·“|ÿâSÿr€+¤T®”)‡Ïå0YÝãêŽæýbR°2?$—àEQÎs…¼(Êu.i"‡så†rè*WÆçJ_š¹bvtè6WÄæ/Mæ\áK“Ã#gk~\òÅÉü+{q2嚄̗€sËîGóòðm%—›WÌ–ùrËê§ÞÅueÛï¼Û۸ΧŒ¶»i6Yç–×®ó¾M}r&J®%‡k©æ*ϤoO\‚í¾ÔøÕ©uqÎáš+¹rõùrÈv_j׺èq¸<%—PŸ;ð7mÔöªËM­uqÍáZ+¸Ò¦ÊÊ-ϰ\sMø²Vq®@Á6£e®ƒÁêrçj]œq¸fM®gÑð/“ÝÊ-h®µšËWqÕ¯ó¡¸wOr¾ó'áÑlp\V®ý=
¯ÒƒEÕ±$*®¥ÒUãQD£²“y>lT¸±ìæ:¾Þ8uøìU®”»8çp5epü8@mb¯\¥´”êŸs{ê]ô8\FÕC§c Â¨
†ëœF¤È’_(»¸æpÕ‰j`¾§   \žmç’®XÏp¸êj3eo–3@…Q†ëüEö¿šËçpÕÕ/žJ<—ß—â:_7—¢QVw°«m¹Lx83çjê†â:_7—î` Z/{v¸¤†+Rë¼â:‚«Ù(V:XÀ„QAa¢‡á)ç¶ÚÅæu>W³‘P:"×Å•©ýW¦‰£×ù\ÍFZ®ÌW¬Œ7ÏaH­‹Íë|®f£PéˆP\K —ôŠÜºNQ\çÃp5i¹R~UêÃñ+×èu¥â:†«Ñ¨\ýü‰(®Ma¸þZ*»Ø¸Î‡áj4Òr?Œ*Ô£ÙUmtñ(Ú4®z#®Í¨~ê'š.Ö¯ó¡¸ê´\±E®zuë×ùP\õFZ®ˆjƒÓlï7ºX¿Î‡âª7
kiª'.aËO4\¥PµÒÅÚu>Ÿk†äò×¥ŸýòqÛc©îbí:Ž«ÖH”»ÂÚá*å–ãöG îbí:ޫ֍G¥X® À­S
xÚíßoä8rÇ¥nõË<ÉÞíwº=
$@Æ#{ܳ;@hlk“}8 $QÈCÍíÞ%Áæön$¸ÿ>ýËÝúAJUEJ¢|æ›tó#¿U$‹ê¿¼¹Ñö·â«;ñá£øýÿ¼yoùæ/âCôõÍWû_~øøñ&_º¹ww·7÷ûZß¾Ìÿíý·ï³~Œöåþ|Ü—Oûò¸/ßìË?ýûûoů?ÿöÃû÷nßÿ‹ØÜÞ¾€Gq/¾}zS¼Ì¯\fE>Ý­V««‹]ÙþÇêþiê\òquzªrqyý4M.yw¥F*Á­î'Æ%ﺘžËåu2.<Ôí~
\W¹ø«Äq®‡Ðã•ËÃ\w\*›æÎŒ•Ý1³Ìõ(<óòEâW~åY)þµS\wžµ2Û8Ã%…g³\;Âe¬v‡Ì—¼ò¬ÿíè\yèõQ¾™ëÁë©Ì’1¹n½ÞŠ¿˲Z·±¶åí(\2ô<ÁÀI!¬–/çÀâ€Á°`à´dðŦåyë¸z÷[fšÍ50Ö,¸>{#”yï\™7Jù²g®<‡‹ Šà¾Â³´¦ … 퀉huŠÑ¹roÔ²é‹+ 9Å`™ãÅ`ž‹,öD.9>–ç÷À%àòë\™çDÙXæ’¡\3Ë\‘çHYZåÊ<gJb‘Ë+D91Wì9T6Ö¸r—°:¥¦'¨¨&(˜¨&iàµË•º†Õ1`0=G
LPã1ÎÇ%]ÄjëaŠ˜a0=—Œša0Üp]\®VoŸvåawñ¡ßƒA†Ë¿|Ûœä»{½
ô?\~KÒ¿|¼êgÀ ïáºì\*= ­
¸¢~†ª<j+ëa=ô8\„ôcÉÍ
Þ°¹Ø¡-]œI6çrqC
zznÎZ2$L.æp±Ò©9C0¹X<71d>+íGÛ-ÙšÅeƒ'oZ‘z°¿«a’öÎI6Ø0¸Ä`S‹Ÿyйò°È`>‹,ò¾+’ÂX9Ú¹FÂ"‚Í©\éFÈ1Å„È%ÆÂ"-i\¹É \Ø[x}YX-™‘!‚µHÞ2éöՒ•ZgŒJdðá`I5üÄ>¡ žKši¦%碞 F\‡ò™mˆ`e…2+z*kˆ`Cf{™\´É°ÄrÅc9dž(ϰ\=Á3D07Ãþ¬¢‰kWä„zà¸ÐBštø(®ldÌP°
¯†AÑ{ÁIØÃº!­Ÿ!¸2~`6Þ€%Ý\±+¢A°u7WèˆÆ“útren
rÀf\±cÃ…ôaIWèØp!Ÿô²ƒ+wÆ%Óºtp¥Î
.Jœup ÇfZÊ’V.éàpáæüº•+sp¸pÛHA+RåýA±PV4kå
Š ‰ÊÑÆ…Uù±PÓcÓÂ…Tù`h®‚dCÀUùÍà\Cœ·p9°·Æ6Ä™ž+sQäÑ‚–h¹ÀE‘G; µ–K8ª8SZ踤«ª›úsWF
«žìü¯š±?ÿŽÏ4­¨r†õó¾cÀ
¢–(®¥–KVnÜ–ÐJt­‰†KÐbV®¹–ëø1eÃ8‰Ÿ À™^ŽËÓsAI½r|¸)ЖœéµFr­µ\yéùÖ 1³$PsÑyµsZ®ƒíÍ΃0³¤ô35— :¯v®™žë¬’²êA?s`‡k,׳q)¸ÎÚžáÍ£ô‰Š+§ÆP\K-×YcÊ^IŠ}è@_{x®¹ž+~~D!eñcÈkíJ(ßÁåé¹²ãßÊ)fˆ˜(Š+$ša'×ZËuø¬ÅáGø-»Na+¸ =WtÍ3T£í6_Á•QͰ“Ë×s>쉸<Èd¯œ`¹æ§ÚJ®ƒq\PwŽ‘"P½ò¬Àr-ÂgyRr•DвJ8{ªl,ñ\ñócPs¥¬Ujgˆ¸hpåd3lçÊ*8
.ÉÚ,IqºDÙ˜x.ùlj®“I6Kr\¸V\ûŽz®”µg‡z ÊÆšÂÇÑpIÖž]g/\ŒôÅv®ü(
®c‰{v1ª‹@“YAá*ŽJ¯ãÎSŠ2) ÉÆ‚ÆuTz¯ 剀&k×Qéu\!g~IÔ³î Šë¨ô®Œw†b$HÑÆŒÈuTz
WÌÛìïzþó*—dL¯N®ƒÒk¸BÞáLŒyø@’5•ë ôj®œyŠ‘b3ö6
*×AéÕ\ 7³HªÊ3¦W7×^éÕ\‚™¹#1Ž(QT@çÚ[w¬_W®†Ø%p
ëP¹[)¸ö½*®ƒÝKFÈ!ÝJ•¨]R6¿ÊuîDK4YÐ
1BÀÊ"¨r­Ë¦Î®ç"œ¦`·ae.ÄžÍ\c˲¢Îj\¹†+=òätCL29\jLbÞüG}ÿ³É=?ôi%ÚÓV¸G6*Gòä‹J\±’Kžz
Q"ì
Ñ¡Ö$‚ÀºÎ•)¹ÒSå”û"tðÑáLïûw¯´¹-kfÃOÕ¹¢“ÆHz¾UˆçÊ9^ùüþE^WT¹JQc_Ñ >:\b|ɢɕ*¸Ê©(1Ù£î x9Ü`´)irå
®²ÞdäEà¹"–l4lb^4¹Ž¶Zá
Ë–¼“Oí¥Ä%X²QŸ˜§Û{Šuq™«šõÑôT±Zù¬òpŠ}Œ2W\1ì´‡Ô?@Ë¡vñw~¯ÉÛBÉ%\aÅòòR5õêí$ß¿øÔ¿à
)•+eÊás9LV÷¸º£y¿˜T¬ÌÏ&É%xQ”ó\!/ŠrKšÈ¡Ã\¹¡ºÊ•q£Cǹҗ&‡G®˜ºÍñ£C§¹ÄK“ù#WøÒäðÈÅÙšŸ—|q2àÊ^œÌc¹&!óåE àܲûѼ<|[Éå¦Ä³e¾\çr£ú©wq]Ùö;ïö6®ó)£í®FšMÀ¹å5‚ë¼oSŸœ‰’kÉáZª¹Ê3éË—`»/5¾Fuj]œs¸æJ®\}¾²Ý—@cƵ.z.OÉ%ÔçüMµ½êrSk]\s¸Ö
®´©r€rË3,×\¾¬U\‡+Pp…ÍÇh™ë`°ºÜ¹Zg®Y“ëY4ü‹ðd÷€rËšk­æòU\õë|(®ÆÀ“œïüÉcx4×¢•kÿ_«ô`Qu,‰Šk©tEÕxѨìdžÛn,»¹Ž/Ÿ7N>{•ëå.Î9\FYÅ?P›ØkW)-¥:ÄçÜžz=W£QõÐé˜Ç¨0jƒá:§)²äÊ.®9\õF¢˜ïi(—gÛ¹¤†+Ös®z£ÚLÙ›å PaTá:ÿC‘ý¯æò9\µFõ‹§Ïå÷Á¥¸Î×Í¥h”Õìj[®ÎÌ¹šº¡¸Î×Í¥»¨ÖËž.©áŠÔ:¯¸Î‡àj6Š•0aTP˜èaxʹ­v±yÁÕl$”Žŵ@qejÿ•iâ(Åu>W³‘–+³ÄÇsRëbó:‚«Ù(T:"×Ã%½†"·®S×ù0\FZ®”F•úpüŠÆ5z]©¸Î‡áj4*W?"ŠkS®¿–Ê.6®óa¸´\À£
õÀhvU]<Š6«ÞÈ€«@sªŸú‰¦‹õë|(®z#-Wl‘k£ÅDÝÅúu>W½‘–+⇇…Úà4Ûû.Ö¯ó¡¸êÂZšê‰KXãò
W)T­t±vÇUkÄçš!¹üué§G¿|ÜöXª»X»Î‡ãª5%Å®p…v¸Jù‡åxã°í¨»X»Î‡ãª5jÄQ)–+(pë”BÅUz?”¢‹{ѦrUEõˆ(>ryýrem\Õë|H.ÅÀr#,׈+×Åó§ R¹ªÒúT \²g.©¹Å¡¸Î‡äª6Êj’-=,×Òˆ«håW¥‘¬…æ©\9‡«Ú(¬N0qäêÎ=\÷ÈU¹Î‡åª6ŠÉø[®l\®˜ÃUi”žO•Ï›¼£se®J#YîevŠ7L–•¸$‡«ÚHœÏ¿<WÒ'Wù:š«Ú(mœWºÀ•r¸ªj‘ Øs™,—Q\a;WÎáª6ª®ŒƒÈ ®Òu><W­QeÀ’x@®¾‹1‡«Ú¨šF{®Îí
ßKxå-Ú…:à§rÕ}./Óa¸NoÐtQr¸êJ[¸Ü)ûüÃ/ÎïŸïäšJ¬,ß„îm¶Éåö¸Ä+×+׸æ/”+˜&WøÊõÊõÊõÊõÊ…ãZ¼r½rõÏå™smW>è{¥”ºãr=ìßaæ_cºK©;2×UýúZõeC¥7Ì)êªOÔ'Užâ¢”¶wÆ\¢‘¾QÍÓ/O5ë2¸6ÕÍО¸>7W4Õ—yåçÎϘU\ëêí‡K*N”ª/4LO[üuó¨“k9¨–Ö¢<Áj鵺 ®EQ™šýp…ª£2(σ°’&S¯Ëà
ª–Ò Wþ|ðtQ®[~uíù´^Y—Á5«|t?\éé PÞ–>´$çì
e]>WÖ'W\:±ŽÎÞ¥ä²ÎÉ皺ªm~õ§VwÒ>¹DI äyV5°ôBfM]:>ÝNâYo\ayNÔ”þl<IK]×ìô8â..“x¾òk8«ÅieÕ$mU]×üô8¶O&†+=ÿë”Õ$mU]WP~t 3®ŽôÃÓ¯ó‹mY–Ä*)Ý‘Ò×%qíîÓ²W®™î;žRRqÛV?žK'én
¯{ã
ué8Ç3å¼¶¤î๢ãßÛýåMo\‡Hp£‰g•i¤­KâŠ2´³ô¤7®ãYçåF`í3)žå\[—ÄçìW¿èë¢7z{øâ‡°ä‹õu•\ÍÄÎ=Ezœ¯;÷ÕW)¤ÖÛøÙÛœ|±¾.…+;@´ûÃf\mçzåz•÷§Í,Zm]
W~üçÎ-ÃÆÊ{•ÅqÒY—Â%½Ó Ñí\FçËR›Y*Y-úº®âè˜÷?í«–Eë' u)\ǼwË}r•^´U¥P}Éœ®.…ëà˜³½ï“ëù"l#—J•lÚZÇupÌÙ¾¾WgÞ×C¨š5BùPÔuñ~yï“Ýÿû\6òÙ¯š‹šT³ÈQÕ%p¥{ Ü»åþ¹Î½×B©
ª.ëà˜÷ny®gQ˜i'M[]×Á1ïݲ!öÝ¢Y»´Õ%pÉg/¶ŠëœxÝÍU«Kà:8æƒH¶r™äcï^%³®ºb-W[]
×Ögùyÿ´®ª{…ÎÍN]]
PŸTyŠ‹RÚÞs‰FúF5O¿|<Õ¬ËàÚT7C{âúÜ\ÑT_敟;>cnTur­«´.©8Qª¾Ð0=mñKÔÍ£N®å\ ZZ‹ò«¥oÔê2¸EejöêŽÊ <ÂJšL½.ƒ+¨ZJ/\ùóÁÓE¹nùÕµçÓze]׬òÑýp¥§ƒBy[úÐ’ž³+”uù\YŸ\qéÄ::{—’Ë:'ŸkꪶùÕŸZ=ÞIûä%çYuÖÀÒ ™5ui\þéøt;‰g½q…åm8QSú³ñ$-ui\³Ó㈻¸Lâùʯᬧ –U“´UuI\óÓãØ>™`®ôü¯S
×V2üìà
¹ÜþaW[]
×n¤Sïô¢ºÞ¸fÛò[¹tu)\p¸ ëwq™Ü»•_‹Vo«KáJ7kfæ\ëöåײ¼™k¹ÚêR¸²³Sï+-gTû˜ZgÛêR¸òój •Ëäâ¡­>ÔZk¹ÚêvÄó•·mÉê© ײóö|©_,¶Õ¥p•Þ ÛWܲV«sµÔ%q —ѽ켥j«¥.ƒ+1çZàÒmê¡#VÑ×%qÅŸôÀ•ë¦Á•s÷£ªpz*­\FïߨîÅ|Y´réë’¸tïgµËUêìuÑÁ¥­KâÊN>½Ëh#{ç®BíA‰I]£bøÞžc¡|½Þ0_Ågøž%g‹á{±^¹†çê~Ýò4¹â¿Y®d’\Ý›Ir™,˜_¹†ç2ZXNšk1I.ù7ËL’«{6¡\³ir…/0ð5ü>ŽW®¸¢øâ¾Çg=I.x¡\é 
¿×l¬Òõ²×¥á÷ÐUºº¼Æ}o sTj‡Ë¹@ªKêÃïå«Ä(®prGW(ýÞ[×Ñe_Èï)vm§-ìÒä÷J»px(.˜ZÀ!;ý-òûÍ 82×ä¾ÀD[Î9fèœ6€1WçsÔ)s€‘ç˜ètK€qÎ9°°sÅïšëûe¯Ž9°¼[
@@ -405,10 +418,11 @@ endobj
3Cìuá,ùV…™!öªõا»Dsá
±GéÈ l
SCô“‘5^)^`&°}Zâgo†Z.ém‰¹‘tAalˆ=i¢0ò¡`<i{òÎh+TïŒñ¬íÇ;ç†Öƾ¾—)&CCÙOÌþŠ%2}¤`aâÚ÷b.¨\)iÀlj2—ôF“¡ù;FnL
f|jÆÕ¯*š$ rõé r M¹ú3KÆ7æ"çP÷´0±ÏÕDzÅ0]Ý—}Y4¿7a…«vmñÚ¼Gv¸¶¶hoÈf›Â®B^¹3X6¹,

–ÌÁb@Eš×Kí¶å‹¥°%Ô » %«0WÅ[;&6Ö«ÁhXúx¬ì/”ÜÉfH,½T­(íöv %l? ‹Údªd¬–Ûh`ÏóŸ­ƒg‹yHý €ÍU„°ú7£Êýc6|®”Ååù÷ÔÁbX|[ÐÅÅ0Ï»Lz¬öµQ'Wìq þKçk&\Òã—K”5æW¼¿¾6â2°Ý<»î2ÇG&UÇò¡›ËdÀhOú¿}²ÿîÒ‹º SäõScÜäã*4y\…)WîÙ)—«ÕêíÓ¶<®VW¡á_[0ë¥+ÿÃ%äZZà2“ÄQ† ÇåÞ€­­p97`Ý[_8.9µáBrNm†(ˆ
=$WºÄµ±Ç•Mk¸Ð\¬Žž4>±É•;õ,lr9£õ¸ã
<— §¢ñ4.î΢AãrB:°ç½.9+¤q9`‰è£C×è–ˆÏ: qå±B*×Èñ/á›È5ª%Rr_¨\czgÊñ•kÄÀž”4GæmŠÑÒ^è\#M1bbƒkœ)F<Ûep2ŨY.JzàšÁæ\;è©r<®µƒ‘Èä’Â])4áRY©Ã\®áÀx™dl.FÚÏ ŽË˜k ÅóÆ×þÙç^¤0áêßùYšF\}ƒ$Ÿšqõ«Š&Ɇ\}:h£hS®þÀÌ’ñ¹È9Ô=-Lìsõ±l1LW·Ãe_ÍïMXá*¤][¼6ï‘®­-Ú²Ù¦p‡« –M.KCv¹)\ã*ä± ¾µÕ›\üÔê#Õµ½žØå2H¯F¤nÉÅ%³KÕ‡ìò­í>ôÁEÌ‹÷W=¼ç¢®myÂeÇû—÷½||o\ûQë0È‹ÕS_ŸÝ'×~ØîVêqº~êósûæ: Üî†ÃêêbW.W«ë§§Þ?r®
200 0 obj
$ß¾Iß<È7ï¿ù$n? ùññãÍ×â>º¹òû¿{Ê>#Å;ñX@.òŸþðëÿ}÷ó¢øå‡Ÿ¿ûîO¿}÷ãßËÿÞ6¾··»Æ·w_ß|ïn?ÜÜíšïš½Ë‹ß½»½‰n¢ÿ¸ÝU~w¿ýÝ»»H¾ûå¯ç? ?ÿôýo¿ÿõ—C½7Kê§?ÿõçÿúãþºí槯ÞmÿïÓ?ˆÏ?þ(²ÝÙÛNýïßïš&r õÿÉ„ñkendstream
endobj
200 0 obj
6310
@@ -421,40 +435,41 @@ endobj
äHendstream
endobj
203 0 obj
204 0 obj<</Type/Page/Parent 197 0 R/Contents 205 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
205 0 obj<</Length 206 0 R/Filter/FlateDecode>>stream
xÚ…TKoâ0¾ó+F=Ôd P(Ç¥/!µÝl“V{ÈÅI&Å­c§¶býŽ ºl¥UN±?{¾ÇŒ?Œé‹`1éŠz°Jßn—-!­`ÍÂÌ3HËa¬±bŽÒ7BÌ Š"è Át²'•n¸£*»c¡5¨
ÔL¶L@‰¦Ð<Gµ«Ü.Ø
•ªk%áùqý bÍ¥åò’½±XC6<»zŽ“³l/tCM»‚Q8¦¯cE¼/ÂKÇ‹Óeèy÷ýØ¢ÞrÜýÍŸp“y‡KÿäÑjËI0h”¶,Hk=F°=j¨”ög³ÉÅTƒšùMã/0!¬-l˜9#Jòf‹‚N”ïᆙ=$c­Ê¶°Æ9Fje(ËdÉty¤`”h-ùãY0!:[”¥¢ }R×g‚s÷¨ÍÅÑë}qg`…úî¡ kh!\"PIÔ®LØßzpÑ_GWwW­N¢=šIj¬*” `×7ém°ŽcŠ–uðœêÇŸJ±W‡÷òàMå^|´ØRQ °NäÜ;^¾ qÍÐå˜
ïãësxº½Š¢Å2CBM@ûh {EX U¼,yX¹]Wá{Ó$´Hœ›ž*U¦˜0ꤤi× ÚŽÛ
h¤œè§jeá‚`‚Ûý—þ°²4@¶ì”~ï§\«q’‹X›Ð´4ö¨ÉOã#¦©ˆãkŠ€,ÃOM ü¾ë•¯¹IšDª+J`M#xÁº­,±kÞ¯“zJ½m7Ek¬ªùoª½íÆTwÏp·9RφE«5J+öÐUÕ¿¨Y8žf£¾Î&×.¦ŠÓ¬=­cjf¡ õÜ¿-¥›‰ƒ2©dðɶÞVÓ?
—ÇÆýËðéE›]ŽÃ%mºÅýߤƒŸƒ?¿¸¥†endstream
endobj
206 0 obj
690
31
endobj
204 0 obj<</Type/Page/Parent 197 0 R/Contents 205 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
205 0 obj<</Length 206 0 R/Filter/FlateDecode>>stream
xÚ…TKoâ0¾ó+F=Ôd P(Ç¥/!µÝl“V{ÈÅI&Å­c§¶býŽ ºl¥UN±?{¾ÇŒ?Œé‹`1éŠz°Jßn—-!­`ÍÂÌ3HËa¬±bŽÒ7BÌ Š"è Át²'•n¸£*»c¡5¨
ÔL¶L@‰¦Ð<Gµ«Ü.Ø
•ªk%áùqý bÍ¥åò’½±XC6<»zŽ“³l/tCM»‚Q8¦¯cE¼/ÂKÇ‹Óeèy÷ýØ¢ÞrÜýÍŸp“y‡KÿäÑjËI0h”¶,Hk=F°=j¨”ög³ÉÅTƒšùMã/0!¬-l˜9#Jòf‹‚N”ïᆙ=$c­Ê¶°Æ9Fje(ËdÉty¤`”h-ùãY0!:[”¥¢ }R×g‚s÷¨ÍÅÑë}qg`…úî¡ kh!\"PIÔ®LØßzpÑ_GWwW­N¢=šIj¬*” `×7ém°ŽcŠ–uðœêÇŸJ±W‡÷òàMå^|´ØRQ °NäÜ;^¾ qÍÐå˜
ïãësxº½Š¢Å2CBM@ûh {EX U¼,yX¹]Wá{Ó$´Hœ›ž*U¦˜0ꤤi× ÚŽÛ
h¤œè§jeá‚`‚Ûý—þ°²4@¶ì”~ï§\«q’‹X›Ð´4ö¨ÉOã#¦©ˆãkŠ€,ÃOM ü¾ë•¯¹IšDª+J`M#xÁº­,±kÞ¯“zJ½m7Ek¬ªùoª½íÆTwÏp·9RφE«5J+öÐUÕ¿¨Y8žf£¾Î&×.¦ŠÓ¬=­cjf¡ õÜ¿-¥›‰ƒ2©dðɶÞVÓ?
—ÇÆýËðéE›]ŽÃ%mºÅýߤƒŸƒ?¿¸¥†endstream
endobj
206 0 obj
208 0 obj<</Length 209 0 R/Filter/FlateDecode>>stream
690
endobj
207 0 obj<</Type/Page/Parent 197 0 R/Contents 208 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>>>endobj
208 0 obj<</Length 209 0 R/Filter/FlateDecode>>stream
209 0 obj
291
endobj
210 0 obj<</Type/Page/Parent 197 0 R/Contents 211 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F6 6 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
211 0 obj<</Length 212 0 R/Filter/FlateDecode>>stream
xÚ•ÑÍRƒ0à=Oq–u6€@Ýù×Ó*¡nÜDHÛhI4 íèÓ›@;Žé¢6Iîýr™óŒÝ"H2ÿÕmpKƒËéä**@—î.Ëó(mF÷ªîZ.-f[®·‚ï.軫MAÈP&“¡’®…QK»cš£3\´Lvlw¡ôŠIñÃiìšc©6µrÃk+”4×^ïñ¸ˆb„q¥Þ³ÿ_„˜k'z¥ü6–·GƒÖƒ’Äq' ÷y–”8©´L6L7Ä5fŸýÿ¥º[óúã0•Smg°¬ß¾ð·¡£Øw’E9HZô¹=ßL©ªy‰òJÕ§òاâ›C’¦Ña}SìÏ’¢Àødô4x
~aT¡¯endstream
endobj
209 0 obj
296
endobj
210 0 obj<</Type/Page/Parent 197 0 R/Contents 211 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F6 6 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
211 0 obj<</Length 212 0 R/Filter/FlateDecode>>stream
UMsÛ6½ëWìÑž‘}8Šul2É´‡ÔêXnsð"—"b`PŠþ}ß‚ÔG¨L2ÓÑE$w÷½}ûøw4¥ ~Sz7£ù‚òzô~=zóiIÓ%­KšMÙœïîi]ÜLéŽV^ۨ햞!rM;ö;ÍûÛõW¤ÝÓt*iw]ÞÝü~’¥Ôu¥å•j"{j¼Ûé‚)K®Ï'WRåö®®¥ç?ÿør…·wþ5dH¾Ío¨å‰ÏI+ï6†ëïÉuÁ þä<Xù@]È¢¹ͱJó£*7T©@QÛ–‹Äõeöv‘ѳ5ú•é³Î½ ®Œò–þѶpûþò³ÊŸÆ]ƒRÅ:©
GÑÿ>kÑqÀè<'€Ú…˜j+Ã6f}±Ùâ4ŒÀ×É=i2Úò‰6½ÜDþÉYsx¹•~W¨ý”{ÝÄ« !·õª©t^nÇéy¯c5ÔÑÕL¹Sßt§ÇrxnÚªwb¢¨l!¯ì–ÅŠ'<)\j“Ä®U„¸¿»=ôc”ÉU‹öXåCÜòrH%)
^Óy6^!*[(_°/UÎ’: ´X¼*å]Û4Î÷4StÈè7È·MRgÚ¨SÏ;íÚ`¤vJ…–Æ3€~Ïþ•
GÑÿ>kÑqÀè<'€Ú…˜j+Ã6f}±Ùâ4ŒÀ×É=i2Úò‰6½ÜDþÉYsx¹•~W¨ý”{ÝÄ« !·õª©t^nÇéy¯c5ÔÑÕL¹Sßt§ÇrxnÚªwb¢¨l!¯ì–ÅŠ'<)\j“Ä®U„¸¿»=ôc”ÉU‹öXåCÜòrH%)
Ú5ìÕ… „\Ô§B—%{‰è„T•|‹–ÇTÖ¸æbÔÔÂëp_(ȯ¢šçšáÁÖykbFëJEHUo0“NËmt­#^ì`¤Z*
0ó6DˆÜ£Š]·GÄÞø’£Do•ăvŒ@kj›K+§,`ªŸc±Î‡ç ½â˜Ñ[é@,ÍXùl{FV¬$° †cë-†ñ´ÁÁW—’„Kß}‡l™‹ ÃBª¬ñj 
 Å~kW´Fyqª$œO
Xx<
«t°á¨Á=«&•ß°åR4I»X\.‘óÊ:㶇ÎÙàŠË-¯’‡óݰXÊòëÛîþa’-‘€Ð¹<\þýçm»endstream
@õ¶#@àäÎ&Ò'6(¹,ù„+ß\zž<btŒ&N—ˆ„—ž´¶Ìà|Öo\ï¨Ó™"«u:mN"ˆÄøÆ
Xx<
«t°á¨Á=«&•ß°åR4I»X\.‘óÊ:㶇ÎÙàŠË-¯’‡óݰXÊòëÛîþa’-‘€Ð¹<\þýçm»endstream
endobj
843
212 0 obj
843
endobj
213 0 obj<</Type/Page/Parent 197 0 R/Contents 214 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F6 6 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
@@ -468,30 +483,31 @@ endobj
¿ËóÅuk<
QêÔª×-§ÒIAFùG@K’WÀ ·ô¬U‡Îm
D"IøÜzÒb¨Ó×¼²Sר0­¿^­]Ìnåp¡rSL¢#€Êg]DÙK[7•
ssdÅs%Ks<«}ÑŒì”Úd/ˆ˜ ëSVɉMÉ’dAôšKµg´²õ°?ö7BÄËú”°¹TU…`¸9Y›O}…XÏ©(NŒ)äÙœÑ_<‡<Á·9äþÈõRˆZ³ ÍÅ…ßúl*„Qlej¤!ŒY™ÄÚþB¸ªY~‚‘CtFgôŒ·ï"2½TzÈbPÑ€Õ‹–<$sä0Ç$«š+¸žÑ§åìÏû×Ããòöãð‘ <ßâsöÕãìÖhWZ¢æUáTâÙý5ôUx&ä.~ƒ!É&nù-
I~½[âC¤r ý 6Ä8“‹“(P¥µ
µhz1ôo6{}ºtóÿ‚nè`ߊ`ìÐ:XhDhŠf`ßœ0±;ë¶Î">–áV9(l’ÿÃéM³²¸/<¼:£Uj™/€…ºÁKÙ6E¾Çëeê<¬ß
YC©ã›To×½ç‹wÙ[Z\_˜Þ
Š©<žg'£à¬cë0Òawì0È ™1ùÂÖB#a7Ikrõ‚ÈèF?)^ •?,_Hc´ñ,t%V•BT¶ìÄ,ÄŽ³åä^®6KîøÒFÙ#ŸÑ»¿5ÏOÄ—h‡T=XôíªÖ}hϰÒû¦ í¢v˜ÑçhÈX"@©“¯ jþÑÂÜÚzŶ„KÖ0ɤ6Ž ¼×O†
Û²Dø€l+áàkgš‡­o£GŒ*z|×§ÁNx-žÕè\\h§Ãše[O=Œ»“Íý’£õ‰£=¤m´êMWZ§Ãö->V¸Rù·çØè1hÐJÉÐSN£§mŒí '5!A¾} ƒƒ»FA•{¶ÔÎOÇÌN‰Ckj7Ç8oU{«+Î÷·ÕöëÉ4X>õ½hšjh$–Ʀf"Ì,bQF÷fÒlææ©’çJ–æxW»¢Ù)µÉ^"1Ö§*“›‚%É‚è5—jÏhiëaìo„ˆ—õ)as¡ËÁps²6Ÿú
±^RQœSȳ9£¿xy‚osÈý‰3ꥵfAš‹
¿ñÙT×BnTj¤B³3‰µý…p]³ü#‡èŒ6ÏèoßFdz©ô%z
Ä ¢«7-yHfÏaöIÖ5Wq=¢»ÅìχãÓáqqs;|d@Ï·øœ½Fõ8»+´+-PóR:Ý„xvw
215 0 obj
}ž ¹ß`H²‰[~KC’_ïø©hbœÉÅI¨ÎÒJ‡Z4½ú7›>]ºùA·JôN°‹oE°Fvè*XhDTÍ$Á4¾9abwÖm0œE|þ¬ÂvPØ$ÿÇÃM³´¸/<¾;¢ej™/€…ºÆKÙ&E~Àëeê<¬ßUC©ã›ToçççÙ{º¸ºJ6póõÃm}Å"—xÏí¸%¿yVǼ,‹ŠÏÒ©Ùåé :çïÎO®2þcâÕ?üQendstream
endobj
215 0 obj
1367
217 0 obj<</Length 218 0 R/Filter/FlateDecode>>stream
endobj
216 0 obj<</Type/Page/Parent 197 0 R/Contents 217 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F6 6 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
217 0 obj<</Length 218 0 R/Filter/FlateDecode>>stream
xÚ…UÁRÛ0½ç+¶¹4Ì$'![K)Óvh‡–0½p²«È’+ɘü}w%Û$¦°´»o÷½·â÷(…üIa=‡Å
x9ºØŒŽ¯Î!=MÎ`“ãÝj½NV°É&7Vj/,\Zù$¬;ÚüÂÈ%¤iŒ›-Îã²RÇ»›[àF;é<˜Œô«4V@.•§0W .sÉÁ`PÅ"IL•š«:/++%º{j¡ÓE2'è ¹±ðI4Jx?»aü‘Ù ®™ö‹ðÀt—Â=Òßm—ÀÏBbU_H×ö
™A<m<l…–yì¸ò²d
Lí«Ú  3“y.¬Ð}aœ0ÊMAúX/%²àC¹Â4°35p¦¡±OðË‚itŸÞQH=#ÆV†Rо%^#oDV…Ù—¤YRä7ác¥ÞþO½ˆÉsÛ6©  ÇñÝÎy«½)™—x¬và
9K vD.ãFÑ,7‡h¯zŠÍô&}MH:l3ZÕ(/éY‰
<Ë ‘¾ƒñ¶
íóu„O`ƒ<†À
¦qÄ _WÁ&-žRÜz¬]«[×—Û @ÍIKÔÆUÆ(ä
HR!Ü ô#õGC|Ÿ8£¤öqºàYÎk‹ó`ßœuÓM)æe/6 ‰òI=·ìáKvc%F)„
Vèd⺽9,6ï1wáÄ÷íMû²;[mÒ X.ñ
Þ¹5…oIü»`éoL7,lì<FÏ׋³üS:¿<K7n/èûÃvòcòj”Mendstream
endobj
218 0 obj
„ýÀB:€wÅÄ3n‘‹4SÇŽ’(sJ\ reC:¡÷! K|صK¶{Þ]È1±z?É6q›ÿŽÈKÇDæÁÑ|œÜµåæ«h´°µL9RÍ<IZÝè¸U븉Ä5–÷¢õØ¡!'Sˆ‘˸Q4‹ÄÍ!Ú«=‡c3I_ †$ÛÁߌVÖÊKzV"È…ô%«bçÈêÒ]'Óà(ñ^¦)8Ä`£ßz°B‘Ñ5äÕÛœ
…ªxšÀ…ଷw`“`ÛI{oÅñ§ý[F ¿6gŸHœ‰”ÇúvìŸ8ìmÜ6Ø ês&UmÅj­ÐÉÄ%´{³_lÞanà ˆïÛ›(öY+vº\&ç°XÌã tùãýÕfñå¿5¹oÈwÁÚ_™®YØÜYÌš­ç'ÿøç´<;Á€p{Jß7£ï£?¸&Ohendstream
endobj
219 0 obj<</Type/Page/Parent 197 0 R/Contents 220 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
218 0 obj
821
endobj
219 0 obj<</Type/Page/Parent 197 0 R/Contents 220 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
@@ -503,86 +519,88 @@ endobj
endobj
221 0 obj
124
xÚ•SÁrÚ0½óÛCgÈ ¸6PÀ=¦CŽZœž¸{‹Ê’#Édü÷Ý•pÒ¤i;\¬•Þ¾·ï- Rúe°YÀr
e;¹-&îrÈr(jX¤«$ƒõfE5]ÀîÔà„½•Úóá08íMq&Ü
²Œqóœ/Wi°E#è<Zpyr0˜è¼ןZégðØ£f t¥Ð%*è˜Îæäø]%ë-R%ÔѺ$ò’ÞÉ–™S"Í#ç!t
endobj
222 0 obj<</Type/Page/Parent 197 0 R/Contents 223 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 4 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
223 0 obj<</Length 224 0 R/Filter/FlateDecode>>stream
xÚ•SÁrÚ0½óÛCgÈ ¸6PÀ=¦CŽZœž¸{‹Ê’#Édü÷Ý•pÒ¤i;\¬•Þ¾·ï- Rúe°YÀr
e;¹-&îrÈr(jX¤«$ƒõfE5]ÀîÔà„½•Úóá08íMq&Ü
²Œqóœ/Wi°E#è<Zpyr0˜è¼ןZégðØ£f t¥Ð%*è˜Îæäø]%ë-R%ÔѺ$ò’ÞÉ–™S"Í#ç!t
ï¤Bµ±Ï²_ë¨5£>ßïÔÞ\dE“ñM7N ßá8Ðô
ªîu¯éñ&Lp‹ö*þ„°¿CºÑÏÒ´-á]…¹Î/ ¦Ø–Ra-zå¹éΖɂu_£Ã#õ§439Íu5Œ¶¬£ýâ‚ñÂh$
\;÷΃F¬ÝÐá§Q}ÎD5¯É3é¨!ãÃ{P]ªE‹°ûRì¾½Ù
†Ž>û_í¿w öº¢õðl$Ã/»ÃC90uèèèÂbéíÔ¥ê+Î`oœ?”Vv>D)[ñ€ñ9¥Â«,”¢~ÛçÇÌjkZêèhb¢ë”,…—F;}ê÷\I3xjdÙà…#"ݤ‚îõµ$áïâÌÛ—ÍÒ4Žü׿æj›&9Aèí†Ï»bòuòž5Ùendstream
\;÷΃F¬ÝÐá§Q}ÎD5¯É3é¨!ãÃ{P]ªE‹°ûRì¾½Ù
endobj
224 0 obj
504
endobj
504
endobj
225 0 obj<</Type/Page/Parent 197 0 R/Contents 226 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 4 0 R/F6 6 0 R/F8 7 0 R/F9 8 0 R>>>>/Annots 12 0 R>>endobj
226 0 obj<</Length 227 0 R/Filter/FlateDecode>>stream
225 0 obj<</Type/Page/Parent 197 0 R/Contents 226 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 4 0 R/F6 6 0 R/F8 7 0 R/F9 8 0 R>>>>/Annots 12 0 R>>endobj
226 0 obj<</Length 227 0 R/Filter/FlateDecode>>stream
xÚ­VmoÓ0þÞ_qB* ÍÚõi lð([ø^â4ǶӪÿž;;I·ve›„6uss/Ï=÷Ü9 Œð'ñ”~³jð1¼»^@rÏ!-ðÙt6‹§æÃe©µj
VF(ÇÍ›ôO I‚i4^Ó¯LíÀî¬ã•…­J¶áPiÃÁ•LVê؆ Éî$>Òø”Cc¹‰!-¹í,dèuÇ9Dz’ç­-!À¼É8>§¼RgL¶‰a#B­™aRr ÚÆø¼Öƽ¥ó>³Þ Ê­¸Ûjó;nŸOã N5:cvÂ:ÐÅ=×á[ÂícZF--CY[ÇÜC®†éªb*ß/¨‚‚šÐWÓ—Ðá5„8Õåpõ-½ºy3"߮ȜEõèÚ ­ÀÖ<…à–øw°Ó
l™rDãÃÂöå :_ÎY”÷a 'ò¬ÿ>kŒá"Ð}Љœ¬‘®o2²Ifí#ÄzÂ:”Yç¶çô>ˆV&G4ÿЉÛs!$W¬âO­Mqõ$Fó?@ˆVÿD¹Ÿß§'û–;GÜŽ/|÷XíÉ1¾ÆÂ*e·«Q9¨J†Ò ÒŽ:‚¡ÃŽÕ66R@
ƒ‚38\<·1|Ñ[¾¡æb\Áá@?NT˜q[råµJžÄi†ËcÑå£è~ÌÈÉ!Þ‰™v:±æ#ݽ@@€ Do­j”ñQÕߌAºSÁ •§Ab6›±šÓÿ‘ôrvA§Šç‚]~˜ôýŽÕë'À³Õ‡ëÙ‚ÒÝ1¼Ážßƒj=™Wé`ðö „>n>Ãd|Žé“Å ‹¬`2áßppKw š.æBx´F{B7ÌìPc5W91K#UöVþv\‡*g&ï}¨á9·™w(¡à4Î{ÈçE<;ÀùÐŬûÒZôË’Õ„wìÙ[Zëa|4‰!@?Œ«V™ð§HÔHÁR׸ ONãGíÊç->êè³{oÃÝ|œº¡9¸°3]ïüÝç5øBq+PMe¾ÄGvÖá~{õOëšz(m*Û]Ëô«ZéGnb)™CÁ´{
SåÇÞxETÔ„¡š¾¸Œï!ÆÄ@RÂÝ×üîÛÓ˜ ùö@öà"1 Z•àŽø÷°×-ì˜òDãÓÂå ºPÎERa,'ò\ø¾h­å"Ò}Ô‰’W¬•~h2²]HæÜ3ÄÂz”Eïvàô1ˆN&'4ÿЉÛs%$W¬á/­m‡qý"Fû;@ZHÖ¿Dy˜ßg ûž{Oܰº³cü kh”ýÞ rP ¥A¥t8C‡=
Å¥aÍÝþA‹ãäý~jª¶¢íý¶ ±/SÓðƒu1oã$“I¼€é|NúɇŸn>\§Áòçênuá¶TçOK/Gø¾Õ0IîQðŠfç#ršÓwãÅ~5:ý‡#òcð7?òäendstream
endobj
227 0 obj
916
TÛ$E(ñ™u¼ßÞýÒúŒæ#AÇvßñ0ï«Vú™›XJæQ0ÝžBqiØpxÐá8{¿Ÿ›ªè:†;áh¿ÝÆØ7¹mùѺXvq²ù*Á|¹$ý Ç÷õ=ÜëÊ慨ïŽ^Šð=«e’Ü’h,®Çd¼¤ï&«Yº‚ñùw7G?Ï ñ endstream
endobj
227 0 obj
910
endobj
endobj
228 0 obj<</Type/Page/Parent 197 0 R/Contents 229 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 4 0 R/F6 6 0 R/F8 7 0 R/F9 8 0 R>>>>/Annots 15 0 R>>endobj
229 0 obj<</Length 230 0 R/Filter/FlateDecode>>stream
xÚ½UmoÓ:þÞ_qî$¤^©É’4kÚI|àŽ
xk&>;©C Žk;«öï9ÇNË:
xÚ½UmoÓ0þÞ_qLB*R“%i×´“øÂØhÀX3ñÙIbpì`;«öï¹³Ó²ŽnÒ@B•¢Úw¾—ç¹—Ÿ£ü¥g0CՎޣ㋖qEMwóEÅzüªø>J JS:¼ÙA¤@õmTéNp ‘†3-%süuazµ\±–Ãù§âüš^_,!=‰d7BÃÑtÏÈÚYëB}×p¸2B9n`å˜ë-ÔF·þþL·-SëèR(¬Í€‚©1|²4'K*a2Dz³hiÿŪ`
Ò@B•¢ÚçýyÎ9þ’B‚¿Š æ ¨»Éåäô*UœAÙÐÝbY@¹™þ[~™$¥)žì!R †.ªu/¸…HÃ…–’9þ¼4‡FH®XÇáò}yyCÖ§W+HÏâ%ùÐq4_Å9y»hyýU¨ÏàZ×F(Ç
¬sƒ…ÆèÎß_è®cj½Šo9P2
¦Ožä©DÅ LFáTö=ZL¡Þ f
*ƒåpmà‹®,Æeîõ-»ã`‡ªΡ&)ô”'&}¾‹÷±(Óÿ#˜Q*ßÙ‹Æš£öj£9äyVÅâ¨V¶×JÏŠåqù^g^dË<;¬‡þ3_-3¤°T Psm6Èþ»‡­òeóM ¥Ë9l[Q·žlt€€¹ ÞXíÄŸ¼ÞßIÔŸìÒ!Ò½Z=Ĩ?‚ã^rûõ
230 0 obj
807
endobj
231 0 obj<</Type/Page/Parent 197 0 R/Contents 232 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
232 0 obj<</Length 233 0 R/Filter/FlateDecode>>stream
xÚ+ä2T0BCc3JÎår
áÒw³P04TIS04³Ô3U072PIÑp
VÎO+)O,JU-N-*VðMÌ+MÌÑ ÉâÒ…¨Õ…*64 ÅÀE™y%™yé
¾¥9%™
w ôvÏÓî2Jã_€ñÁPØ
Ý,»ÒÖ£O¼˜
ƒPŠýZôñrþN[üz2ÊŸxõÓ ^ Uã°ß^¯ eëõ_“]ï²¹6ÚéZË)Vƒf2j8F3ØÄ[^a‹š;n|·i8ˆî)üe9Iâ·}Rúܼ‚l™Æ+Èά­CêŠøl<IXÓnLð˜Rá›ieôÖrß0VÂisÐ& Uˆgïq¦ºöcu{óÂÆ7ŸaÚ:ןŸžJ]3ÙjëÎóôP5Ù©žÄp5Bj|i´Í×à¡“mà@7PKfÙ™oîÙáÐn…k½z-.BÔfP
ÎiõÏcÚ“¤3äL/,Potõ”]{¿ØÑ(ECž”÷f,X“Q$6£Ÿ.à ^ìò“£¦£ç¯ò ‡xË,ÞkãÂSB|T÷Ì^¤ÇΰsžòjÙq—£ ÍslÚE–^Þ¼¸*!
C´ÖÛÒ.¾µDð;¦摎‚UTdÉ~C…ïéD/éÁ¥wTóe‚š^m5NÎÇÉ7<x`Qendstream
endobj
233 0 obj
230 0 obj
814
endobj
231 0 obj<</Type/Page/Parent 197 0 R/Contents 232 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
235 0 obj<</Length 236 0 R/Filter/FlateDecode>>stream
232 0 obj<</Length 233 0 R/Filter/FlateDecode>>stream
xÚ-‹A0÷=Å[ê¢Ø/(ºT” J9@£ÅÔÔ‚´ÄëkÕ¼·šÌ<A|FH×ñ—ÛK¶(7 ‚ì@Y–l/äuv8ïJ Ž¢­4}^jÔh½=*å&eçòÎø¯áÿˆD„iNÉ
_PÆãn¨&Ì`5Š~0ÚGí(Ù‰½5'-endstream
endobj
233 0 obj
133
؆‚U(="¢)„q²á
endobj
234 0 obj<</Type/Page/Parent 197 0 R/Contents 235 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 4 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>>>endobj
235 0 obj<</Length 236 0 R/Filter/FlateDecode>>stream
xÚ¥TMÓ0½÷WŒVBJ¥&Û|4m‘¸ .,,$Üzq·1rlc»´Ý_Ï8N¶Ý²° ”S<3ï½y3ö÷Q Süb˜'æPµ£·åèöÝâ%”[HâY”B>Ï ¬ƒB(,5Ñ5Ük&,ÕðIY&…—ß°,ƒ8ve¡¯ Ólu¥eà T
236 0 obj
539
endobj
237 0 obj<</Type/Page/Parent 197 0 R/Contents 238 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 4 0 R/F6 6 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>>>endobj
238 0 obj<</Length 239 0 R/Filter/FlateDecode>>stream
VÑnÚJ}ç+F\]ÝD¾^*å!MR©RÒp yËËb/à+³ëî®ôë;³¶)`W-!ïΜ9gÎÎò­Ã Àƒ~Dñ¦óqÞù÷S ŒÁ| áØ!ü1Ì“«×0ÁõüÜT®nåƒAý<ø<{†Û¼^aôhǘM •ñZ˜(
! vád´Ù¼^—±5Zë#à/ îžŸXÐD{™Á_,€ù&2• øÃÝÀgáðuÀv,^ŒzÿØNðþñrìGböû'a€ìƒ‹!çšK“s-d¼o¯ÂF$)»Ç"ШBÇâ"¬—<ºETz 9§ÿVóýE9Õ¶-§{üÞœOEfÓi¡seD3µ[õòrùÝes½w<çqj[twËWëg ž;)^âG”~¾Àc[ð TnS%
˜"Ï•¶"l$b™JüœJ°¸7ש´Bÿc`:½‡eš‰z嬯)_‰Yúý\‚Þù¾Ï2/ì,S¶±‘Ëätï‘*Oä¦9šéœ}EÂ/ŸO  p±ý°¤<Ö¦råŠ~Ö©–SÌi¦àT¢®§  ª*º
lÓ,­0^”â g˜¨ÙJ aÀªR/’èö?`~¨ NÊ*q°1fôåoÈr8®ÁI/ùFÀ×ùÃ×sºeª O©bü,ᣲk˜¥ V§–®è)oœ«ò†BnìVyô)ñÌ-Ò¥µ.gJ®ºG9°Úº%)òLì¨å|SÓ¬XWþÂA•.
W»Ò@jý×kpu5Ê©ú’’‰Sëð–8m~ªF‘·]“q›èÝv„T‰æ©-ó]ÜÅV1[:úÛ@*ò'ÌD&bg_¹D·¢ 褚߀˜zšbÌc}Ǹ¤Sê:¥ÛP*UyïbŽñØŸhsà
ÞÒõ& [­•)嬴¹E[¬ÕV_¨7Ñ;ƒQ=ò¦¸WðÆ³‚´„N_ìª\e¥7{
ÝýÌ!V™kê]­€,6 ¡M='l\RÂÆàåËi/ö˜`³áÆw§l;•<Ûò½¡:ʃæ=7±‰;£:ºZ¬¸N2aSÃ-à—3d{È^Ý
ÝŸ׆ñ«˜0òÎaª² oBe•$µ…)ÇëÁ†FØ|× ßç-JB êÚïŠk³Ç¸ê-ë÷ý!DÃÈQ‚»—é fji·t•¾—xÛº«˜Eø¼QÐfÒÃpÔ‡àô¬wwá]¨= {Ï]˜ºþõ0ïü×ù½;>qendstream
endobj
239 0 obj
966
endobj
Q®¤¦¦ÒlC
؆‚U(="¢)„q²á
>˜m:O>íÉ®žª  ’m‹,‘?ÇæfÑÂE¦(qé¾§‚jŸïÇçå¾
[ɹ<8 ƒV¢?]É#œƒ=)lSnaË85gþ4JÜÄã”Óª«sÝÑš@‰@ùPȽ®è¥Ý„ZWüæxz¸éõ¡Ö›Ý…Àt¸vÀ½•LýzpréõáF„^k¸’9Ö:x\Á#ÕjÝà\‚´VËÕ—ó'w{nÙý^+iè?—š£p=Duú/æ—.¶ÚÙqiöy1Ͼo¬ñó¶\yEñGá¦Ðoú6{ ­4Ì^)©mýe»†~úA¬ƒŠ ax¡ Û ¶ev=îgWõb“f‡Iî·{äóëk⽸¾*!|- è:XD³#F˜¨×.JçÇd¾lÛõø)á¥ÂgÙv„ÿ† #WvÍ•Îò3×âñ}éºÃ»³ø›‡)›g˜8u©qìVåèóè'½G{®endstream
endobj
236 0 obj
539
endobj
237 0 obj<</Type/Page/Parent 197 0 R/Contents 238 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 4 0 R/F6 6 0 R/F8 7 0 R/F9 8 0 R/Fc 9 0 R>>>>>>endobj
238 0 obj<</Length 239 0 R/Filter/FlateDecode>>stream
V]oë6 }ϯ 2 kس×Iô¡·í.ЮYí¾õE±•ă#y’Ü$ûõ#e;7‰=Ü›¢HE‘‡<<"ûÏÀ¿|n_’Áï_Sð}H–¢ièN!ɮރh×ÉßxÁk.\Ý…õAØß⸠áý
½';ßw£ä"]s=© ð½]0›l6ï×µo‹æãð î_ž}¯‹öÃ/¾âƒ²ä;sov¡ë7'¨¡¿ó½›‹Qžú |x:†œºQ„˜ãñ dàaõÞʼnbB—Lq‘î»àÇVØð,g`ö˜jY©”_„õV–\õJÇP2úmÛ_óInûbÚãÏÆ|®
“Ï+UJÍ»¡­Õ)kó§ÓfjÅïYÉÒÜôðnÍ6ö3Ǿg<s#
Ÿ¬9°ÔT¬Yš\
º*K© Ï[ Þ-U. W¿i˜Ï`™¼µœå8g+çÿžS0:¿÷M”•‰ i:™ÈNï±òLjJPLçÕ7E¸õù jë;ê’cnL.V6é•saùœFòN):
LH#«|Ø À6/
PýyMÖ 39[)Î5YóE¼QþÌ?Úgu–8Ø%’‰*öé_¡(á8K½`&¯çå:©-xN9PÅ/¾H³†8Ï0;¹´IÏYç]õ¯ÉåÖl¥CŸ2G¯Q"CêQ¯¹b5<(Êò„Ù.P-YU|GÙH«›¶Ì¦êF_8¨òå±àZUjÈû~
6¯N:M_rqn,Þ§ÍwÖ¨C8ò¶kn}Ø_A' e¢Xnêxw±—ÌžŽþБ’¼D 1/xj¥Àà• T+Š€^ªþ¡¨RG‘¾µUÈÑ6¨Æª
i/ÔL5Ú»˜£c<ÿg¸9qpÂO¸Œ&£™ã½„¶ÌÔt6ÜÜ¡,Ör+€-äÁ¨He—Ü+ø`EE§/vU¬ŠZ›£v?3Hea[‡|7ÕfÁ•nç䑌뒰1¸|
xÚ¥U[oÓ0~ϯ8š„T$â$K[¤½¬* Æ ^â4Ƕ³ŽϱÝõ"m]ש/U|ÎwuÚ¿?Æ ¤9”]pYï?N¤QEgù„دÕhÁŒiÅLÃàRµËƦõÛâ7.d@ˆÓi”Ûñ_r€’
òÅl6L»öáÔí±¯’[¶×”GýÐì g:å"³oTe\SYÁõajXþq†lÑ›­0üÎq+·ñ "7´
„¬ÿà‚J–YÖPéz¼d¨¹¹ÅŸ6àç´EAäguB÷mr}ò˜6½õ½©;ƒè&r'àáõîkùþmC,—fK+õMSÛž™À­kW²†èåLœü€ƒÉ¼Ó7KØÅ´XG@ûÏ®I Ýþ;õ˜ þüˆ@Rendstream
endobj
239 0 obj
973
‘Ô>˜Á÷à?î]ð0endstream
endobj
240 0 obj<</Type/Page/Parent 197 0 R/Contents 241 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F0 3 0 R/F4 4 0 R/F8 7 0 R/F9 8 0 R>>>>>>endobj
241 0 obj<</Length 242 0 R/Filter/FlateDecode>>stream
514
xÚ¥U[o›0~çWUª”Iƒa`„LêÚ¥Ó¤­k:i.˜ÀflfL³ýûÛi.R›¦©òás¾«IþxG§P´Þyî½»˜‰ƒò
ÏÒŒ˜¯åhδnÄtÍà\5‹Z Ö÷oò_¸!nÜ'AjÆÊ
* B+Éíš¼gŠrwëu•=éT#4+Aº4 ýÓ‰/·ÆÏ:¦
&ô ÈN7R|pô!Lœ\ôà;éåÈ¡ï`ŠD!T
@@ -628,304 +646,304 @@ xref
252 0 obj<</Type/Page/Parent 197 0 R/Contents 253 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F4 4 0 R/F5 5 0 R/F8 7 0 R/F9 8 0 R>>>>/Annots 156 0 R>>endobj
253 0 obj<</Length 254 0 R/Filter/FlateDecode>>stream
xÚÍ›QsÜ6€ßý+ôØÎœ7")JâcãÔ¹v.­/v¦/ymÙÞvµòiw“Ëýú#HP"•dfj{Ó7Ÿ,AùÏ ËrýË*ž‰2»éN^_¼:WSÙÕ]ÆJ±âYYIýóêö‡«æzÓfý]vÖo÷ív¿ûñêÏ“Ÿ¯NòU®)ðƒÁ÷oa•¢Öj]&äªÀÁ&»„Ìä‡ûìչ̃G‚ž²»ڻ榅‡L9j±ZX‹­Žþ[´“(ÁP\êŸ]V±Ã
-ªßŽæ‘Úš¥þ®¾EÊ«eЧÙeªÖ1`p9ÃfwØìî–q¡Ëj¥?š‡Óˆ‹}‚ž¾~E™¯Ê†óH‹Œzñpô‡§Jn2¿Rúðƒ´„¦J+Í}KxfÂjÏHðƒÿ œn‰9Ú#hßaâóp~äõzì%pé)|Ë1éèÍGU':¹,¯´!°GP»¾ßõÛþî˷ͨ˜NŸ§´¶Ëˆ9¥2+¤9ea†_úëý·-ÀêÓ¯nbF\[£ËŠz©@ηÍ~ßî—ª¾¶JÌ Ú©þ “OÌ€4Ïíjðv³=´Ã‚Atí¡N:PbFÉ “w
–D3 ’—^Zo‡å|ä!±9ç÷ã°ù´hc‘ŸX:ÒmVY “ˆ«J‡‡Pf•µ‰´_ÛÃç~øS¯– yùdJÕTc@á*‹Â$"¨#íß“
WY”6!qºpuxS_|;‹”Xáê0zm¨C N#çÞ,f<u“if¿N#ë@-èž2|@ÅÜz8¨x™å# Îªõ¾'
Ñ–Ô IeäTÂn˜J­
–Jâ®âxÝm´Y=:lîa< ç帖´{ÂGž¾ÝØÊæØW×°‚Ï5' Ã-ÙbiÍ^Ìå1Oë
,3U_—ÙV2»êœß÷=ý9{D“̋ӈkΤ
QbV…dçY°¸.Tõ õ€ªˆct„å¶­q@:†›²ü²|sR#”¶竤BÅׇ¼]@s¶—ôpØô»¥B…ŸÄö3æ&Ìn©”îÍ€t
“«*m‰ñˆ¶ÑY…|œGÞûãö°yضT:œжÝ}tH<ï6K;^½¼obŽÉs[(™¬b¤cr†;¶ûvýgBC|]êLàqš%T%ž2,P¦ˆðQ8ϼª„üø<‚æ)Ø”<'€ÀËCs8R ¨Gм
ö´!w;ôD×Ð××´ú«·u)–óÕ;½oä£Ç¬^õ¼ïºfwóê_›ÝÂL™ÿý]Ó!*ªÒÖT1v@…¨¨*[[$†¨Ã›(
ð8¸xˆ:’Ÿ…ó•WõÄCt䙸 xNi!:òL…<@^JˆŽ´ú«·u)–óÕuˆò\/…!¬^õ?íõB²ÍŸ§+‹V³àèh…¢×Èhuç¬çÍnÝnép:\Ùø0®vZE CO–L(²PÍ&Œ Ujµœ´¡Éç/í÷K¿à=&O¤‹^“}!K{¼¨_Çþ=©¯ de«Þlÿ¾EJ¬¯à0z»ž‡œFŽN»›f¸!ÓKCGmÆ+äDK¨z™OÕü%µÀ„£«^覿p¸°ÈQ´Ò,»¥I†fÖ BÙåø]»k‡fK¿ÚÀÂyÄѧuÌ¿l\SÅΰû¡V%Ž­ ]8Ç¥²Ý¶ëH×ÊcÚÓÁ:|‚à)ë›§n;"³_× ì}{³!r·€•zÙ!Üënþ×þƒZÊ'€^}õ{‰wõåÂù31àœâtú!`žº†p‡%„¡€{Õþ8,ÞÊŸâl-¤y…GpjGdæx ð‰PprXd}¾@ ¢ž:¬=Ðña(€°ß†M»Ó§N& ·ª—iÕ2Nûƒ×î>´Áìˆò¯SûÜÜw:¼°yxGùbÒ…ÊŠÚ†ô¦?ÜSUÿ¤
~…=HÈB»ÍÝÜmbOO=Ús,-¬€õ·©=_ð\Í}¡‡Œ[_²
È X/6‹íͧ¿W
Í
/–™¥ÅŽÈЬð¢Yòz6>Á¼mð'€Hjùñ”!<¡ÒQ(€¨ß›Ý•y<DP€CÄ‘aåiîþ²PYÍÝbßî¹k¡ht–xÕíˆŒŽ¢ÆÞUÚB2òM¢øN Ni7yêàNX/B
ìͰ¹»?ìÚý~éÖÛ Õ¤LDü¡ðVŸ5ŽR‘ê“+wg0ÑŽoíåó@‘R{zê¶TÎ`(€°wM×5t©q</¾Â¡âÎûa€Ü´X&<ß&ŽE.Çq‰·+0®ä‘®
—îÎbûÑñh]VÃB€ÆiDÑ»3ùòûÝG$Ü] 4ËëXµ%òÇ|"ŽnCا£€Å¥| Uäó_,ê×cwMö7<}[GW3š°4r-ót¡)
XÒù}34k¸/FÔJCe>:ÈÕJVÀ/¨×ô•5JÕó_N 8ÐÏ»õýBÃîb=ADG£’)lf™ a*Vh±bU=&.ßFŽÏwL‰L³ÀPa‰±éx6|
 •–§
ë@>š5ŒNÇ‚Ó$*4=ô  ÷à´À£CÓS†A9ÿ͜ˆð|â˸Ñ0͹_ñå<VñåâqŸãÛ0òùN@¤W|fc(€¡ÂÃÔñl<@^B˜"3“ß
¸KÈýöØ-.Àõ3]ƒŒìž§ÒÓŽ¨À`uþ¨ÒsäÇ|pÀ„Àa®ù…0+à`°#hž>4øüÕQÀÑÞ7ÃÝfÑ•êù¯O3ñj9]Zv#Ò«åx'Z»õKìÌeÄëbW…x8sñhäu¼—?¡c‘«åðWÍå/4+L¸üÜ‘ÑçÁ¬‡XˆÆy™pÆrZ5|4*eµÒÙ•*ÇZiÝl#¹f"Ú–TòQÀ#¹fR‡m.„0+à`ÆÝ ŸÞgE="ð*µ.ŸŽH¼YýÃÍÇ}¬M81!UÀ]ïà N å&¹¯>.AC„ýóH¶ 'u{}¥šÁPa¿»Òyìã÷ô–j"ÖÐÿ ‰(P&Ôž6”ð«Y(€¬fGÕ“6°ÅÜlNYT(?õåéh¬rwAÝ„
±J…ã¥ðôXuO°±ÄƒKëV@&ÑN궺˜ÃPÀ]ÑoÇÁQÆ=¦Ýv„L@æG(?ûŠYÒ™÷ éIŬ¯Ý™®”š±P@ºƒZª0iÃ%Ã|ôýذȢb¶üûw]ÌüK¡×o+¼`ñŠåp§j¼qþáâ2»ìoŸ›¡Í>ì¡ò¾Ù›-è ¦²W%7¿ÓMðï³ÿó_º´endstream
endobj
254 0 obj
2708
endobj
255 0 obj<</Type/Page/Parent 197 0 R/Contents 256 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
256 0 obj<</Length 257 0 R/Filter/FlateDecode>>stream
xÚ+ä2T0BCc3JÎår
áÒw³P04TIS04³Ô3U072PIÑp
VÎO+)O,JU-N-*VðMÌ+MÌÑ ÉâÒ…¨Õ…*ÎÌ º†prÇvMendstream
endobj
257 0 obj
94
endobj
258 0 obj<</Count 5/First 259 0 R/Last 279 0 R>>endobj
259 0 obj<</Parent 258 0 R/Title(Table of Contents)/Dest[252 0 R/XYZ null 756 null]/Next 260 0 R>>endobj
260 0 obj<</Parent 258 0 R/Count -2/First 261 0 R/Last 262 0 R/Title(Preface)/Dest[204 0 R/XYZ null 743 null]/Prev 259 0 R/Next 263 0 R>>endobj
261 0 obj<</Parent 260 0 R/Title(System Overview)/Dest[204 0 R/XYZ null 371 null]/Next 262 0 R>>endobj
262 0 obj<</Parent 260 0 R/Title(Document Overview)/Dest[207 0 R/XYZ null 736 null]/Prev 261 0 R>>endobj
263 0 obj<</Parent 258 0 R/Count -7/First 264 0 R/Last 270 0 R/Title(1 - Printing System Overview)/Dest[210 0 R/XYZ null 743 null]/Prev 260 0 R/Next 271 0 R>>endobj
264 0 obj<</Parent 263 0 R/Title(The Printing Problem)/Dest[210 0 R/XYZ null 371 null]/Next 265 0 R>>endobj
265 0 obj<</Parent 263 0 R/Title(The Technology)/Dest[213 0 R/XYZ null 736 null]/Prev 264 0 R/Next 266 0 R>>endobj
266 0 obj<</Parent 263 0 R/Title(Jobs)/Dest[213 0 R/XYZ null 478 null]/Prev 265 0 R/Next 267 0 R>>endobj
267 0 obj<</Parent 263 0 R/Title(Classes)/Dest[213 0 R/XYZ null 372 null]/Prev 266 0 R/Next 268 0 R>>endobj
268 0 obj<</Parent 263 0 R/Title(Filters)/Dest[213 0 R/XYZ null 280 null]/Prev 267 0 R/Next 269 0 R>>endobj
269 0 obj<</Parent 263 0 R/Title(Printer Drivers)/Dest[216 0 R/XYZ null 736 null]/Prev 268 0 R/Next 270 0 R>>endobj
270 0 obj<</Parent 263 0 R/Title(Networking)/Dest[216 0 R/XYZ null 636 null]/Prev 269 0 R>>endobj
271 0 obj<</Parent 258 0 R/Count -7/First 272 0 R/Last 278 0 R/Title(2 - Using the Printing System)/Dest[222 0 R/XYZ null 743 null]/Prev 263 0 R/Next 279 0 R>>endobj
272 0 obj<</Parent 271 0 R/Title(Submitting Files for Printing)/Dest[222 0 R/XYZ null 371 null]/Next 273 0 R>>endobj
273 0 obj<</Parent 271 0 R/Title(Choosing a Printer)/Dest[225 0 R/XYZ null 736 null]/Prev 272 0 R/Next 274 0 R>>endobj
274 0 obj<</Parent 271 0 R/Title(Setting Printer Options)/Dest[225 0 R/XYZ null 445 null]/Prev 273 0 R/Next 275 0 R>>endobj
275 0 obj<</Parent 271 0 R/Title(Printing Multiple Copies)/Dest[225 0 R/XYZ null 236 null]/Prev 274 0 R/Next 276 0 R>>endobj
276 0 obj<</Parent 271 0 R/Title(Checking the Printer Status from the Command-Line)/Dest[228 0 R/XYZ null 714 null]/Prev 275 0 R/Next 277 0 R>>endobj
277 0 obj<</Parent 271 0 R/Title(Checking the Printer Status from the Web)/Dest[228 0 R/XYZ null 382 null]/Prev 276 0 R/Next 278 0 R>>endobj
278 0 obj<</Parent 271 0 R/Title(Canceling a Print Job)/Dest[228 0 R/XYZ null 276 null]/Prev 277 0 R>>endobj
279 0 obj<</Parent 258 0 R/Count -3/First 280 0 R/Last 293 0 R/Title(3 - Standard Printer Options)/Dest[234 0 R/XYZ null 743 null]/Prev 271 0 R>>endobj
280 0 obj<</Parent 279 0 R/Count -6/First 281 0 R/Last 286 0 R/Title(General Options)/Dest[234 0 R/XYZ null 371 null]/Next 287 0 R>>endobj
281 0 obj<</Parent 280 0 R/Title(Selecting the Media Size, Type, and Source)/Dest[234 0 R/XYZ null 286 null]/Next 282 0 R>>endobj
282 0 obj<</Parent 280 0 R/Title(Setting the Orientation)/Dest[237 0 R/XYZ null 571 null]/Prev 281 0 R/Next 283 0 R>>endobj
283 0 obj<</Parent 280 0 R/Title(Printing On Both Sides of the Paper)/Dest[237 0 R/XYZ null 474 null]/Prev 282 0 R/Next 284 0 R>>endobj
284 0 obj<</Parent 280 0 R/Title(Selecting a Range of Pages)/Dest[237 0 R/XYZ null 340 null]/Prev 283 0 R/Next 285 0 R>>endobj
285 0 obj<</Parent 280 0 R/Title(Setting the Brightness)/Dest[240 0 R/XYZ null 729 null]/Prev 284 0 R/Next 286 0 R>>endobj
286 0 obj<</Parent 280 0 R/Title(Setting the Gamma Correction)/Dest[240 0 R/XYZ null 609 null]/Prev 285 0 R>>endobj
287 0 obj<</Parent 279 0 R/Count -5/First 288 0 R/Last 292 0 R/Title(Text Options)/Dest[240 0 R/XYZ null 479 null]/Prev 280 0 R/Next 293 0 R>>endobj
288 0 obj<</Parent 287 0 R/Title(Setting the Number of Characters Per Inch)/Dest[240 0 R/XYZ null 394 null]/Next 289 0 R>>endobj
289 0 obj<</Parent 287 0 R/Title(Setting the Number of Lines Per Inch)/Dest[240 0 R/XYZ null 297 null]/Prev 288 0 R/Next 290 0 R>>endobj
290 0 obj<</Parent 287 0 R/Title(Setting the Number of Columns)/Dest[240 0 R/XYZ null 201 null]/Prev 289 0 R/Next 291 0 R>>endobj
291 0 obj<</Parent 287 0 R/Title(Setting the Page Margins)/Dest[243 0 R/XYZ null 729 null]/Prev 290 0 R/Next 292 0 R>>endobj
292 0 obj<</Parent 287 0 R/Title(Pretty Printing)/Dest[243 0 R/XYZ null 563 null]/Prev 291 0 R>>endobj
293 0 obj<</Parent 279 0 R/Count -3/First 294 0 R/Last 296 0 R/Title(Image Options)/Dest[243 0 R/XYZ null 459 null]/Prev 287 0 R>>endobj
294 0 obj<</Parent 293 0 R/Title(Scaling the Image)/Dest[243 0 R/XYZ null 374 null]/Next 295 0 R>>endobj
295 0 obj<</Parent 293 0 R/Title(Adjusting the Hue \(Tint\) of an Image)/Dest[243 0 R/XYZ null 148 null]/Prev 294 0 R/Next 296 0 R>>endobj
296 0 obj<</Parent 293 0 R/Title(Adjusting the Saturation \(Color\) of an Image)/Dest[246 0 R/XYZ null 473 null]/Prev 295 0 R>>endobj
297 0 obj<</Type/Catalog/Pages 197 0 R/Names 157 0 R/ViewerPreferences<</PageLayout/TwoColumnRight>>/Outlines 258 0 R/PageMode/UseOutlines/OpenAction[204 0 R/XYZ null null null]>>endobj
xref
0 298
0000000000 65535 f
0000000015 00000 n
0000000210 00000 n
0000000271 00000 n
0000000345 00000 n
0000000423 00000 n
0000000500 00000 n
0000000579 00000 n
0000000655 00000 n
0000000736 00000 n
0000000794 00000 n
0000000899 00000 n
0000001004 00000 n
0000001035 00000 n
0000001086 00000 n
0000001171 00000 n
0000001195 00000 n
0000001299 00000 n
0000001404 00000 n
0000001509 00000 n
0000001614 00000 n
0000001719 00000 n
0000001822 00000 n
0000001925 00000 n
0000002029 00000 n
0000002134 00000 n
0000002239 00000 n
0000002344 00000 n
0000002449 00000 n
0000002554 00000 n
0000002659 00000 n
0000002764 00000 n
0000002869 00000 n
0000002974 00000 n
0000003079 00000 n
0000003184 00000 n
0000003289 00000 n
0000003394 00000 n
0000003497 00000 n
0000003600 00000 n
0000003704 00000 n
0000003809 00000 n
0000003914 00000 n
0000004019 00000 n
0000004124 00000 n
0000004229 00000 n
0000004334 00000 n
0000004439 00000 n
0000004544 00000 n
0000004649 00000 n
0000004754 00000 n
0000004859 00000 n
0000004964 00000 n
0000005069 00000 n
0000005174 00000 n
0000005279 00000 n
0000005384 00000 n
0000005489 00000 n
0000005594 00000 n
0000005699 00000 n
0000005804 00000 n
0000005909 00000 n
0000006014 00000 n
0000006119 00000 n
0000006224 00000 n
0000006329 00000 n
0000006434 00000 n
0000006539 00000 n
0000006644 00000 n
0000006749 00000 n
0000006854 00000 n
0000006959 00000 n
0000007064 00000 n
0000007169 00000 n
0000007274 00000 n
0000007377 00000 n
0000007480 00000 n
0000007584 00000 n
0000007689 00000 n
0000007794 00000 n
0000007899 00000 n
0000008004 00000 n
0000008109 00000 n
0000008214 00000 n
0000008319 00000 n
0000008424 00000 n
0000008529 00000 n
0000008634 00000 n
0000008739 00000 n
0000008844 00000 n
0000008949 00000 n
0000009054 00000 n
0000009159 00000 n
0000009264 00000 n
0000009369 00000 n
0000009474 00000 n
0000009579 00000 n
0000009684 00000 n
0000009789 00000 n
0000009894 00000 n
0000009999 00000 n
0000010105 00000 n
0000010211 00000 n
0000010317 00000 n
0000010423 00000 n
0000010529 00000 n
0000010635 00000 n
0000010741 00000 n
0000010847 00000 n
0000010953 00000 n
0000011059 00000 n
0000011165 00000 n
0000011271 00000 n
0000011377 00000 n
0000011483 00000 n
0000011589 00000 n
0000011695 00000 n
0000011801 00000 n
0000011907 00000 n
0000012013 00000 n
0000012119 00000 n
0000012225 00000 n
0000012331 00000 n
0000012437 00000 n
0000012543 00000 n
¥ÝUò pùe·o»lñ!·ÓÊÅJ†OÁyÃúýS;|Z·Ÿ¿mô‚­Ô=fWÆVµ~åºX•8X´+X“q-¡ßíMsètx/[Ô#j‹òJ[%àã<ò"6å:Ú¦œüœe
ß±¶¦þuíß“¾fY—ZT¿#Ì9"µ5+ý]|;‹”ÓeЧÙeRé˜08œ‹a½Ý¯·÷Ë8ÐeJê&Àá4âbŸ §¯_±ÈWUHÃy¤EF¾x¸úÓ7™_JýaØAZB“•À•æ¡%<3aµg
ðƒÿ œn‰9Ú#hßaâóp~äõzì%pé1|Ë1éèÍGe™':¹,¯µ!°GP{ó°í7ýý—oQ2>im/"æ,¤Y ô;–8 ÍY”vaøµ¿Þ}ÛLu3ŠàÚ]Vªq@E9Û4»]»[ªúŽØ*1ƒh§Bú/M>1Ò <·«Áùz³o‡ƒèÚCu ÄŒ’—&ï–5,‰f@%¯¼´ÞËùÈB>bs<Î#îͰþ´hcY:Ò$mÖB “ˆëZ‡‡Pf-”‰´ßÚýç~øK¯– yùhJÕTc@áZ”¥IDPGÚ¿'®EYÙ„ÄéÂÕáM}ðí,Rb…«ÃèµA…œF·YÌxê&ÓÌ~%œFÖžZÐ=eø€Ê¹õpQñ2ËG@¥ô¾'
Ñ–Ô QUäÂn˜*­
.d»ŠÃu·ÞÓfõè°¹‡Mhð,œ/Ƶ¤Ý>òôíÆ¶iNqw=}u
+ùüWsE¸%[,­Ù‹¹<æi½¡ƒe¦Îáë2Ì®:g}OÎÑ$ó2Äã4â‚3©B”˜U!Ùy ‡:¢PqŒŽ°ÜÖ 
¤c¸)Ë/ÛÈ7çá 5BiÀq¾N*T|}È‹PÐ4'`{Iûu¿]*TøQl?cNaÂì–ªÒ½NaŪN[b<¢mtÖ!ç‘÷î°Ù¯7-•'´m`wÏúÇõÒÎ…×/còÜJ&«˜阜áŽí¡½ù+!!^U:“xœf U‰§ ”)"|Î3¯*!?> y6eÏ ðrßìÔê4¯†=mÈCäÝ
=Ñ5ôõ5M}õ¶N År¾z§÷|ô¸ƒ©àUÏú®k¶·§ÿZoŽ`ªüïhE‡¨¨+[SAÄØ¢¢®mm‘¢o¢(Àã4ââ!êH6~Î×^ÕÑ‘gâ'à9¦…èÈ3òPy)!:ÒÔWoëR,ç«ëå¹^
C˜
öz!ÙæÏÓ‰E«Ypt´BÑkd´ºsÖ³f{Ónèp:\Ùø0®vZF CO–L(²bÆ„*µZNÚPÈäó—vˆûµ_ð+ޤ‹®È¾‚(*{¼¨_Çþ=©¯ ŠÚV ‚î+8¼Ùþ|;‹”X_Áaôv=186¶·ÍpK6¦—†ŽÚŒW-¡êe>MÔó—ÔŽ®z¡›þÂáÂ"GÑBfÙ­L24ƒ´^€Ò.ÇoÛm;4¢øÐî&xÎ#޶¨8®cþeãš*Fp†Ý¹ªp´h]¸èÂ9.•í¦½‰t­<¦=œOYß<uÛ™ýºNaïÚÛ5‘»}¬äÐËq(à^wý¿öÔR>ôê«ßKÌp(€¸«/Îhœ‰©ç§ÓóÔ5¬„;,! Ü«ö‡añæPþgkÑ Ík<Š€ƒP;"ƒ4Ç[PÑn„O„‚“Ã"ëóéõÔaíŽC„ý>¬Û­®8u2Y¸­P¿L«–qÚ\¹ûPг#Ê\¥ö¹= ¸îtx'`óð–òŤ •?µ!  éu¿ ªþIü
{v›»¾%ÛÄž:$5Ús,-¬€õwQž/x.ç¾ÐŽCÆ­¯
Ù¾ñ䬛ÇÅöæÓß+Œ†fËÌÒbGdhÖxÑ,y=Ÿ`Þ6x@$µüxÊžPé‡(@Ôûf{Oec àPqdXyÚ°+…ÿ‡,@ÖEs¿Ø·{îZ(e%du;"££TØ»J[HF¾Iôß ¨”v“§î„õ"„¡Â^ëû‡ý¶Ýí–n½½PMÊDÄoõYãH©>¹twýáøÖ^>ß ”)µ§§nÛHÕ {Ût]Cw‘ªÇóò+
î¬ÈM‹eÂómâXär/ðöb
Æ-x¤kà wg±ý/Ññh]¦à !@ã4¢èÝYñòûÝïþH¸»h"–«Xµ%òïùD݆°OG‹Kù@ªÌç¿(
XÔo‡îšìoxú¶Ž®g4+`iäZæéBSC°¤³‡fhnà¾Q+y M,òÑA®V²–xA½¦¯¬QRÍ9-à@¿lo~pë ":•Lb3Ë “±B‹•«ú{âÒñmäø|'€À”Èt08 ›ŽgÃ'à¡@™PiyÚ°ä£YÃèt,8M¢BÓ@zÿN L0:4=eØTóßÌ ŒÏ'¾Œ
Óœû_Îc_.¾¯âs|F>ß ˆôŠÏÁl 0@Xb˜£€‡ÈKSdqfò[ÀBw ¹ßºÅX=Ó5ÈX`Àîy*=íˆ
¦òï*=G¾q\ÀGLŒVÀ5¿f vcÍӇ柿:
8Ú»f¸_/ºR>ÿõiVD¼ZM—–݈ôj5Þ‰Öný;sñºØ•!Î\<yïåOèXäj9üãUsùË„C»ÍJ.¿tdôy0ë!¢q¾H8c9®>•…ÂZ é숌J™c­tÓl"¹f"Ú–”
ù(à€‘\3©Ã6Žp0ãî…ÎÏ ï³¢x•Z—Ï G¤GÞ¬þéöÏÃ.Ö&œ˜*à®wð'r“ÜWŸ@— „¡Âþy Û„“º½¾RÏ`(€°?\é<öñGú
K=ô?C"
T u†§
å0ìêC
«ÙRµð¤
l97@ÊO}y:«Ü]P7aÃE¬Ráx)<=VÝl,ñàÒº(’Žh'u[]Ìa(à®è7ûÃ`Ž¿¨ãÓn;B&
ó#”Ÿý@ŬéÌŽ{†tˆ¤bÖ×îLWJÎX(P¸ƒZª0iÃ%Ã|ôýذȢb¶úûw]ÌüK¡Wç5^°8e&ÉK…·"Þ¼ÿéü*;ÍÎ>\\f—ýÝþs3´Ù‡´SÞ5ÛC³}! ÍqZqóÛ­Ñÿ>ù?7±½endstream
endobj
254 0 obj
2716
endobj
255 0 obj<</Type/Page/Parent 197 0 R/Contents 256 0 R/Resources<</ProcSet[/PDF/Text]/Font<</F8 7 0 R>>>>>>endobj
256 0 obj<</Length 257 0 R/Filter/FlateDecode>>stream
xÚ+ä2T0BCc3JÎår
áÒw³P04TIS041ѳT072PIÑp rt QÐUp
VÎO+)O,JU-N-*VðMÌ+MÌÑ ÉâÒ…èÑ…jÊÌ º†pr¿%endstream
endobj
257 0 obj
102
endobj
258 0 obj<</Count 5/First 259 0 R/Last 279 0 R>>endobj
259 0 obj<</Parent 258 0 R/Title(Table of Contents)/Dest[252 0 R/XYZ null 756 null]/Next 260 0 R>>endobj
260 0 obj<</Parent 258 0 R/Count -2/First 261 0 R/Last 262 0 R/Title(Preface)/Dest[204 0 R/XYZ null 743 null]/Prev 259 0 R/Next 263 0 R>>endobj
261 0 obj<</Parent 260 0 R/Title(System Overview)/Dest[204 0 R/XYZ null 371 null]/Next 262 0 R>>endobj
262 0 obj<</Parent 260 0 R/Title(Document Overview)/Dest[207 0 R/XYZ null 736 null]/Prev 261 0 R>>endobj
263 0 obj<</Parent 258 0 R/Count -7/First 264 0 R/Last 270 0 R/Title(1 - Printing System Overview)/Dest[210 0 R/XYZ null 743 null]/Prev 260 0 R/Next 271 0 R>>endobj
264 0 obj<</Parent 263 0 R/Title(The Printing Problem)/Dest[210 0 R/XYZ null 371 null]/Next 265 0 R>>endobj
265 0 obj<</Parent 263 0 R/Title(The Technology)/Dest[213 0 R/XYZ null 736 null]/Prev 264 0 R/Next 266 0 R>>endobj
266 0 obj<</Parent 263 0 R/Title(Jobs)/Dest[213 0 R/XYZ null 478 null]/Prev 265 0 R/Next 267 0 R>>endobj
267 0 obj<</Parent 263 0 R/Title(Classes)/Dest[213 0 R/XYZ null 372 null]/Prev 266 0 R/Next 268 0 R>>endobj
268 0 obj<</Parent 263 0 R/Title(Filters)/Dest[213 0 R/XYZ null 280 null]/Prev 267 0 R/Next 269 0 R>>endobj
269 0 obj<</Parent 263 0 R/Title(Printer Drivers)/Dest[216 0 R/XYZ null 736 null]/Prev 268 0 R/Next 270 0 R>>endobj
270 0 obj<</Parent 263 0 R/Title(Networking)/Dest[216 0 R/XYZ null 636 null]/Prev 269 0 R>>endobj
271 0 obj<</Parent 258 0 R/Count -7/First 272 0 R/Last 278 0 R/Title(2 - Using the Printing System)/Dest[222 0 R/XYZ null 743 null]/Prev 263 0 R/Next 279 0 R>>endobj
272 0 obj<</Parent 271 0 R/Title(Submitting Files for Printing)/Dest[222 0 R/XYZ null 371 null]/Next 273 0 R>>endobj
273 0 obj<</Parent 271 0 R/Title(Choosing a Printer)/Dest[225 0 R/XYZ null 736 null]/Prev 272 0 R/Next 274 0 R>>endobj
274 0 obj<</Parent 271 0 R/Title(Setting Printer Options)/Dest[225 0 R/XYZ null 445 null]/Prev 273 0 R/Next 275 0 R>>endobj
275 0 obj<</Parent 271 0 R/Title(Printing Multiple Copies)/Dest[225 0 R/XYZ null 236 null]/Prev 274 0 R/Next 276 0 R>>endobj
276 0 obj<</Parent 271 0 R/Title(Checking the Printer Status from the Command-Line)/Dest[228 0 R/XYZ null 714 null]/Prev 275 0 R/Next 277 0 R>>endobj
277 0 obj<</Parent 271 0 R/Title(Checking the Printer Status from the Web)/Dest[228 0 R/XYZ null 382 null]/Prev 276 0 R/Next 278 0 R>>endobj
278 0 obj<</Parent 271 0 R/Title(Canceling a Print Job)/Dest[228 0 R/XYZ null 276 null]/Prev 277 0 R>>endobj
279 0 obj<</Parent 258 0 R/Count -3/First 280 0 R/Last 293 0 R/Title(3 - Standard Printer Options)/Dest[234 0 R/XYZ null 743 null]/Prev 271 0 R>>endobj
280 0 obj<</Parent 279 0 R/Count -6/First 281 0 R/Last 286 0 R/Title(General Options)/Dest[234 0 R/XYZ null 371 null]/Next 287 0 R>>endobj
281 0 obj<</Parent 280 0 R/Title(Selecting the Media Size, Type, and Source)/Dest[234 0 R/XYZ null 286 null]/Next 282 0 R>>endobj
282 0 obj<</Parent 280 0 R/Title(Setting the Orientation)/Dest[237 0 R/XYZ null 571 null]/Prev 281 0 R/Next 283 0 R>>endobj
283 0 obj<</Parent 280 0 R/Title(Printing On Both Sides of the Paper)/Dest[237 0 R/XYZ null 474 null]/Prev 282 0 R/Next 284 0 R>>endobj
284 0 obj<</Parent 280 0 R/Title(Selecting a Range of Pages)/Dest[237 0 R/XYZ null 340 null]/Prev 283 0 R/Next 285 0 R>>endobj
285 0 obj<</Parent 280 0 R/Title(Setting the Brightness)/Dest[240 0 R/XYZ null 729 null]/Prev 284 0 R/Next 286 0 R>>endobj
286 0 obj<</Parent 280 0 R/Title(Setting the Gamma Correction)/Dest[240 0 R/XYZ null 609 null]/Prev 285 0 R>>endobj
287 0 obj<</Parent 279 0 R/Count -5/First 288 0 R/Last 292 0 R/Title(Text Options)/Dest[240 0 R/XYZ null 479 null]/Prev 280 0 R/Next 293 0 R>>endobj
288 0 obj<</Parent 287 0 R/Title(Setting the Number of Characters Per Inch)/Dest[240 0 R/XYZ null 394 null]/Next 289 0 R>>endobj
289 0 obj<</Parent 287 0 R/Title(Setting the Number of Lines Per Inch)/Dest[240 0 R/XYZ null 297 null]/Prev 288 0 R/Next 290 0 R>>endobj
290 0 obj<</Parent 287 0 R/Title(Setting the Number of Columns)/Dest[240 0 R/XYZ null 201 null]/Prev 289 0 R/Next 291 0 R>>endobj
291 0 obj<</Parent 287 0 R/Title(Setting the Page Margins)/Dest[243 0 R/XYZ null 729 null]/Prev 290 0 R/Next 292 0 R>>endobj
292 0 obj<</Parent 287 0 R/Title(Pretty Printing)/Dest[243 0 R/XYZ null 563 null]/Prev 291 0 R>>endobj
293 0 obj<</Parent 279 0 R/Count -3/First 294 0 R/Last 296 0 R/Title(Image Options)/Dest[243 0 R/XYZ null 459 null]/Prev 287 0 R>>endobj
294 0 obj<</Parent 293 0 R/Title(Scaling the Image)/Dest[243 0 R/XYZ null 374 null]/Next 295 0 R>>endobj
295 0 obj<</Parent 293 0 R/Title(Adjusting the Hue \(Tint\) of an Image)/Dest[243 0 R/XYZ null 148 null]/Prev 294 0 R/Next 296 0 R>>endobj
296 0 obj<</Parent 293 0 R/Title(Adjusting the Saturation \(Color\) of an Image)/Dest[246 0 R/XYZ null 473 null]/Prev 295 0 R>>endobj
297 0 obj<</Type/Catalog/Pages 197 0 R/Names 157 0 R/ViewerPreferences<</PageLayout/TwoColumnRight>>/Outlines 258 0 R/PageMode/UseOutlines/OpenAction[204 0 R/XYZ null null null]>>endobj
xref
0 298
0000000000 65535 f
0000000015 00000 n
0000000218 00000 n
0000000279 00000 n
0000000353 00000 n
0000000431 00000 n
0000000508 00000 n
0000000587 00000 n
0000000663 00000 n
0000000744 00000 n
0000000802 00000 n
0000000907 00000 n
0000001012 00000 n
0000001043 00000 n
0000001094 00000 n
0000001179 00000 n
0000001203 00000 n
0000001307 00000 n
0000001412 00000 n
0000001517 00000 n
0000001622 00000 n
0000001727 00000 n
0000001830 00000 n
0000001933 00000 n
0000002037 00000 n
0000002142 00000 n
0000002247 00000 n
0000002352 00000 n
0000002457 00000 n
0000002562 00000 n
0000002667 00000 n
0000002772 00000 n
0000002877 00000 n
0000002982 00000 n
0000003087 00000 n
0000003192 00000 n
0000003297 00000 n
0000003402 00000 n
0000003505 00000 n
0000003608 00000 n
0000003712 00000 n
0000003817 00000 n
0000003922 00000 n
0000004027 00000 n
0000004132 00000 n
0000004237 00000 n
0000004342 00000 n
0000004447 00000 n
0000004552 00000 n
0000004657 00000 n
0000004762 00000 n
0000004867 00000 n
0000004972 00000 n
0000005077 00000 n
0000005182 00000 n
0000005287 00000 n
0000005392 00000 n
0000005497 00000 n
0000005602 00000 n
0000005707 00000 n
0000005812 00000 n
0000005917 00000 n
0000006022 00000 n
0000006127 00000 n
0000006232 00000 n
0000006337 00000 n
0000006442 00000 n
0000006547 00000 n
0000006652 00000 n
0000006757 00000 n
0000006862 00000 n
0000006967 00000 n
0000007072 00000 n
0000007177 00000 n
0000007282 00000 n
0000007385 00000 n
0000007488 00000 n
0000007592 00000 n
0000007697 00000 n
0000007802 00000 n
0000007907 00000 n
0000008012 00000 n
0000008117 00000 n
0000008222 00000 n
0000008327 00000 n
0000008432 00000 n
0000008537 00000 n
0000008642 00000 n
0000008747 00000 n
0000008852 00000 n
0000008957 00000 n
0000009062 00000 n
0000009167 00000 n
0000009272 00000 n
0000009377 00000 n
0000009482 00000 n
0000009587 00000 n
0000009692 00000 n
0000009797 00000 n
0000009902 00000 n
0000010007 00000 n
0000010113 00000 n
0000010219 00000 n
0000010325 00000 n
0000010431 00000 n
0000010537 00000 n
0000010643 00000 n
0000010749 00000 n
0000010855 00000 n
0000010961 00000 n
0000011067 00000 n
0000011173 00000 n
0000011279 00000 n
0000011385 00000 n
0000011491 00000 n
0000011597 00000 n
0000011703 00000 n
0000011809 00000 n
0000011915 00000 n
0000012021 00000 n
0000012127 00000 n
0000012233 00000 n
0000012755 00000 n
0000012861 00000 n
0000012967 00000 n
0000013073 00000 n
0000013179 00000 n
0000013285 00000 n
0000013391 00000 n
0000013497 00000 n
0000013603 00000 n
0000013709 00000 n
0000013815 00000 n
0000013921 00000 n
0000014027 00000 n
0000014133 00000 n
0000014239 00000 n
0000014345 00000 n
0000014451 00000 n
0000014557 00000 n
0000014663 00000 n
0000014769 00000 n
0000014875 00000 n
0000014981 00000 n
0000015087 00000 n
0000015193 00000 n
0000015299 00000 n
0000015405 00000 n
0000015511 00000 n
0000015617 00000 n
0000015723 00000 n
0000015829 00000 n
0000015935 00000 n
0000016989 00000 n
0000017023 00000 n
0000017057 00000 n
0000017568 00000 n
0000017617 00000 n
0000017666 00000 n
0000017715 00000 n
0000017764 00000 n
0000017813 00000 n
0000017862 00000 n
0000017911 00000 n
0000017960 00000 n
0000018009 00000 n
0000018058 00000 n
0000018107 00000 n
0000018156 00000 n
0000018205 00000 n
0000018254 00000 n
0000018303 00000 n
0000018352 00000 n
0000018401 00000 n
0000018450 00000 n
0000018499 00000 n
0000018548 00000 n
0000018597 00000 n
0000018646 00000 n
0000018695 00000 n
0000018744 00000 n
0000018793 00000 n
0000018842 00000 n
0000018891 00000 n
0000018940 00000 n
0000018989 00000 n
0000019038 00000 n
0000012339 00000 n
0000012445 00000 n
0000012551 00000 n
0000012657 00000 n
0000012763 00000 n
0000012869 00000 n
0000012975 00000 n
0000013081 00000 n
0000013187 00000 n
0000013293 00000 n
0000013399 00000 n
0000013505 00000 n
0000013611 00000 n
0000013717 00000 n
0000013823 00000 n
0000013929 00000 n
0000014035 00000 n
0000014141 00000 n
0000014247 00000 n
0000014353 00000 n
0000014459 00000 n
0000014565 00000 n
0000014671 00000 n
0000014777 00000 n
0000014883 00000 n
0000014989 00000 n
0000015095 00000 n
0000015201 00000 n
0000015307 00000 n
0000015413 00000 n
0000015519 00000 n
0000015625 00000 n
0000015731 00000 n
0000015837 00000 n
0000015943 00000 n
0000016997 00000 n
0000017031 00000 n
0000017065 00000 n
0000017576 00000 n
0000017625 00000 n
0000017674 00000 n
0000017723 00000 n
0000017772 00000 n
0000017821 00000 n
0000017870 00000 n
0000017919 00000 n
0000017968 00000 n
0000018017 00000 n
0000018066 00000 n
0000018115 00000 n
0000018164 00000 n
0000018213 00000 n
0000018262 00000 n
0000018311 00000 n
0000018360 00000 n
0000018409 00000 n
0000018458 00000 n
0000018507 00000 n
0000018556 00000 n
0000018605 00000 n
0000018654 00000 n
0000018703 00000 n
0000018752 00000 n
0000018801 00000 n
0000018850 00000 n
0000018899 00000 n
0000019136 00000 n
0000019185 00000 n
0000019234 00000 n
0000019283 00000 n
0000019332 00000 n
0000019381 00000 n
0000019610 00000 n
0000019762 00000 n
0000026131 00000 n
0000026153 00000 n
0000026266 00000 n
0000026368 00000 n
0000026388 00000 n
0000026519 00000 n
0000027280 00000 n
0000027301 00000 n
0000018948 00000 n
0000018997 00000 n
0000019046 00000 n
0000019095 00000 n
0000019144 00000 n
0000019193 00000 n
0000019242 00000 n
0000019291 00000 n
0000019340 00000 n
0000019389 00000 n
0000019618 00000 n
0000019770 00000 n
0000026151 00000 n
0000026173 00000 n
0000026286 00000 n
0000026388 00000 n
0000026408 00000 n
0000027803 00000 n
0000027824 00000 n
0000027964 00000 n
0000028878 00000 n
0000028899 00000 n
0000029039 00000 n
0000030469 00000 n
0000030491 00000 n
0000030631 00000 n
0000031517 00000 n
0000026539 00000 n
0000027300 00000 n
0000027321 00000 n
0000027461 00000 n
0000027828 00000 n
0000027849 00000 n
0000027989 00000 n
0000028903 00000 n
0000028924 00000 n
0000029064 00000 n
0000030502 00000 n
0000030524 00000 n
0000030664 00000 n
0000031556 00000 n
0000031859 00000 n
0000031577 00000 n
0000031690 00000 n
+2 -2
Ver Arquivo
@@ -2,9 +2,9 @@
<HEAD>
<META NAME="Description" CONTENT="Common UNIX Printing System Software Users Manual">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.0.0">
<META NAME="DOCNUMBER" CONTENT="CUPS-SUM-1.0.0b1">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Users Manual</TITLE>
<TITLE>DRAFT - CUPS Software Users Manual</TITLE>
</HEAD>
<BODY>
+149
Ver Arquivo
@@ -0,0 +1,149 @@
<HTML>
<HEAD>
<TITLE>CUPS Software Version Description</TITLE>
<META NAME="AUTHOR" CONTENT="Easy Software Products">
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SVD-1.0.0">
</HEAD>
<BODY>
<CENTER><A HREF=#contents><IMG SRC="images/cups-large.gif" BORDER=0><BR>
<H1>CUPS Software Version Description</H1></A><BR>
CUPS-SVD-1.0.0<BR>
Easy Software Products<BR>
Copyright 1997-1999, All Rights Reserved<BR>
</CENTER>
<HR>
<H1 ALIGN=CENTER><A NAME=CONTENTS>Table of Contents</A></H1>
<BR>
<BR><B><A HREF=#1>1 Scope</A></B>
<UL>
<LI><A HREF=#1_1>1.1 Identification</A></LI>
<LI><A HREF=#1_2>1.2 System Overview</A></LI>
<LI><A HREF=#1_3>1.3 Document Overview</A></LI>
</UL>
<B><A HREF=#2>2 References</A></B>
<UL>
<LI><A HREF=#2_1>2.1 CUPS Documentation</A></LI>
<LI><A HREF=#2_2>2.2 Other Documents</A></LI>
</UL>
<B><A HREF=#3>3 Additions</A></B>
<BR>
<BR><B><A HREF=#4>4 Changes</A></B>
<BR>
<BR><B><A HREF=#5>A Glossary</A></B>
<UL>
<LI><A HREF=#5_1>A.1 Terms</A></LI>
<LI><A HREF=#5_2>A.2 Acronyms</A></LI>
</UL>
<HR>
<H1><A NAME=1>1 Scope</A></H1>
<H2><A NAME=1_1>1.1 Identification</A></H2>
This software version description document provides release
information for the Common UNIX Printing System (&quot;CUPS&quot;) Version 1.0.
<H2><A NAME=1_2>1.2 System Overview</A></H2>
The Common UNIX Printing System provides a portable printing layer for
UNIX&reg; operating systems. It has been developed by Easy Software
Products to promote a standard printing solution for all UNIX vendors
and users. CUPS provides the System V and Berkeley command-line
interfaces.
<P>CUPS uses the Internet Printing Protocol (IETF-IPP) as the basis for
managing print jobs and queues. The Line Printer Daemon (LPD, RFC1179),
Server Message Block (SMB), and AppSocket protocols are also supported
with reduced functionality. </P>
<P>CUPS adds network printer browsing and PostScript Printer
Description (&quot;PPD&quot;)-based printing options to support real world
applications under UNIX. </P>
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers. </P>
<H2><A NAME=1_3>1.3 Document Overview</A></H2>
<P>This Something Something Something document is organized into the
following sections:</P>
<UL>
<LI>1 - Scope</LI>
<LI>2 - References</LI>
<LI>3 - Additions</LI>
<LI>4 - Changes</LI>
<LI>A - Glossary</LI>
</UL>
<H1><A NAME=2>2 References</A></H1>
<H2><A NAME=2_1>2.1 CUPS Documentation</A></H2>
The following CUPS documentation is referenced by this document:
<UL>
<LI>CUPS-CMP-1.0: CUPS Configuration Management Plan </LI>
<LI>CUPS-IDD-1.0: CUPS System Interface Design Description </LI>
<LI>CUPS-SAM-1.0.x: CUPS Software Administrators Manual </LI>
<LI>CUPS-SDD-1.0: CUPS Software Design Description </LI>
<LI>CUPS-SPM-1.0: CUPS Software Programming Manual </LI>
<LI>CUPS-SSR-1.0: CUPS Software Security Report </LI>
<LI>CUPS-STP-1.0: CUPS Software Test Plan </LI>
<LI>CUPS-SUM-1.0.x: CUPS Software Users Manual </LI>
<LI>CUPS-SVD-1.0.x: CUPS Software Version Description </LI>
</UL>
<H2><A NAME=2_2>2.2 Other Documents</A></H2>
The following non-CUPS documents are referenced by this document:
<UL>
<LI>IEEE 1387.4, System Administration: Printing (draft) </LI>
<LI>IPP/1.0: Additional Optional Operations - Set 1 </LI>
<LI>IPP/1.0: Encoding and Transport </LI>
<LI>IPP/1.0: Implementers Guide </LI>
<LI>IPP/1.0: Model and Semantics </LI>
<LI>RFC 1179, Line Printer Daemon Protocol </LI>
</UL>
<H1><A NAME=3>3 Additions</A></H1>
Since this is the first release of CUPS, there are no additions to
report.
<H1><A NAME=4>4 Changes</A></H1>
Since this is the first release of CUPS, there are no changes to
report.
<H1 TYPE=A VALUE=1><A NAME=5>A Glossary</A></H1>
<H2><A NAME=5_1>A.1 Terms</A></H2>
<DL>
<DT>C </DT>
<DD>A computer language. </DD>
<DT>parallel </DT>
<DD>Sending or receiving data more than 1 bit at a time. </DD>
<DT>pipe </DT>
<DD>A one-way communications channel between two programs. </DD>
<DT>serial </DT>
<DD>Sending or receiving data 1 bit at a time. </DD>
<DT>socket </DT>
<DD>A two-way network communications channel. </DD>
</DL>
<H2><A NAME=5_2>A.2 Acronyms</A></H2>
<DL>
<DT>ASCII </DT>
<DD>American Standard Code for Information Interchange </DD>
<DT>CUPS </DT>
<DD>Common UNIX Printing System </DD>
<DT>ESC/P </DT>
<DD>EPSON Standard Code for Printers </DD>
<DT>FTP </DT>
<DD>File Transfer Protocol </DD>
<DT>HP-GL </DT>
<DD>Hewlett-Packard Graphics Language </DD>
<DT>HP-PCL </DT>
<DD>Hewlett-Packard Printer Control Language </DD>
<DT>HP-PJL </DT>
<DD>Hewlett-Packard Printer Job Language </DD>
<DT>IETF </DT>
<DD>Internet Engineering Task Force </DD>
<DT>IPP </DT>
<DD>Internet Printing Protocol </DD>
<DT>ISO </DT>
<DD>International Standards Organization </DD>
<DT>LPD </DT>
<DD>Line Printer Daemon </DD>
<DT>MIME </DT>
<DD>Multimedia Internet Mail Exchange </DD>
<DT>PCL </DT>
<DD>Page Control Language </DD>
<DT>PPD </DT>
<DD>PostScript Printer Description </DD>
<DT>SMB </DT>
<DD>Server Message Block </DD>
<DT>TFTP </DT>
<DD>Trivial File Transfer Protocol </DD>
</DL>
</BODY>
</HTML>
BIN
Ver Arquivo
Arquivo binário não exibido.
+167
Ver Arquivo
@@ -0,0 +1,167 @@
<HTML>
<HEAD>
<META NAME="COPYRIGHT" CONTENT="Copyright 1997-1999, All Rights Reserved">
<META NAME="DOCNUMBER" CONTENT="CUPS-SVD-1.0.0">
<META NAME="Author" CONTENT="Easy Software Products">
<TITLE>CUPS Software Version Description</TITLE>
</HEAD>
<BODY>
<H1>Scope</H1>
<H2>Identification</H2>
This software version description document provides release information for the
Common UNIX Printing System ("CUPS") Version 1.0.
<H2>System Overview</H2>
The Common UNIX Printing System provides a portable printing layer for
UNIX&reg; operating systems. It has been developed by Easy Software
Products to promote a standard printing solution for all UNIX vendors
and users. CUPS provides the System V and Berkeley command-line interfaces.
<P>CUPS uses the Internet Printing Protocol (IETF-IPP) as the basis
for managing print jobs and queues. The Line Printer Daemon (LPD,
RFC1179), Server Message Block (SMB), and AppSocket protocols are also
supported with reduced functionality.
<P>CUPS adds network printer browsing and PostScript Printer
Description (&quot;PPD&quot;)-based printing options to support real
world applications under UNIX.
<P>CUPS also includes a customized version of GNU GhostScript
(currently based off GNU GhostScript 4.03) and an image file RIP that
can be used to support non-PostScript printers.
<H2>Document Overview</H2>
<P>This Something Something Something document is organized into the following
sections:</P>
<UL>
<LI>1 - Scope</LI>
<LI>2 - References</LI>
<LI>3 - Additions</LI>
<LI>4 - Changes</LI>
<LI>A - Glossary</LI>
</UL>
<H1>References</H1>
<H2>CUPS Documentation</H2>
The following CUPS documentation is referenced by this document:
<UL>
<LI>CUPS-CMP-1.0: CUPS Configuration Management Plan
<LI>CUPS-IDD-1.0: CUPS System Interface Design Description
<LI>CUPS-SAM-1.0.x: CUPS Software Administrators Manual
<LI>CUPS-SDD-1.0: CUPS Software Design Description
<LI>CUPS-SPM-1.0: CUPS Software Programming Manual
<LI>CUPS-SSR-1.0: CUPS Software Security Report
<LI>CUPS-STP-1.0: CUPS Software Test Plan
<LI>CUPS-SUM-1.0.x: CUPS Software Users Manual
<LI>CUPS-SVD-1.0.x: CUPS Software Version Description
</UL>
<H2>Other Documents</H2>
The following non-CUPS documents are referenced by this document:
<UL>
<LI>IEEE 1387.4, System Administration: Printing (draft)
<LI>IPP/1.0: Additional Optional Operations - Set 1
<LI>IPP/1.0: Encoding and Transport
<LI>IPP/1.0: Implementers Guide
<LI>IPP/1.0: Model and Semantics
<LI>RFC 1179, Line Printer Daemon Protocol
</UL>
<H1>Additions</H1>
Since this is the first release of CUPS, there are no additions to report.
<H1>Changes</H1>
Since this is the first release of CUPS, there are no changes to report.
<H1 TYPE=A VALUE=1>Glossary</H1>
<H2>Terms</H2>
<DL>
<DT>C
<DD>A computer language.
<DT>parallel
<DD>Sending or receiving data more than 1 bit at a time.
<DT>pipe
<DD>A one-way communications channel between two programs.
<DT>serial
<DD>Sending or receiving data 1 bit at a time.
<DT>socket
<DD>A two-way network communications channel.
</DL>
<H2>Acronyms</H2>
<DL>
<DT>ASCII
<DD>American Standard Code for Information Interchange
<DT>CUPS
<DD>Common UNIX Printing System
<DT>ESC/P
<DD>EPSON Standard Code for Printers
<DT>FTP
<DD>File Transfer Protocol
<DT>HP-GL
<DD>Hewlett-Packard Graphics Language
<DT>HP-PCL
<DD>Hewlett-Packard Printer Control Language
<DT>HP-PJL
<DD>Hewlett-Packard Printer Job Language
<DT>IETF
<DD>Internet Engineering Task Force
<DT>IPP
<DD>Internet Printing Protocol
<DT>ISO
<DD>International Standards Organization
<DT>LPD
<DD>Line Printer Daemon
<DT>MIME
<DD>Multimedia Internet Mail Exchange
<DT>PCL
<DD>Page Control Language
<DT>PPD
<DD>PostScript Printer Description
<DT>SMB
<DD>Server Message Block
<DT>TFTP
<DD>Trivial File Transfer Protocol
</DL>
</BODY>
</HTML>
-3
Ver Arquivo
@@ -77,9 +77,6 @@ SetCommonOptions(int num_options, /* I - Number of options */
PageBottom = pagesize->bottom;
PageLeft = pagesize->left;
PageRight = pagesize->right;
fprintf(stderr, "DEBUG: Page = %.0fx%.0f; %.0f,%.0f to %.0f,%.0f\n",
PageWidth, PageLength, PageLeft, PageBottom, PageRight, PageTop);
}
if (ppd != NULL)
+35 -41
Ver Arquivo
@@ -84,9 +84,9 @@ static void zshear(float [3][3], float, float);
*/
void
ImageWhiteToWhite(const ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
ImageWhiteToWhite(ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
{
if (ImageHaveProfile)
while (count > 0)
@@ -104,9 +104,9 @@ ImageWhiteToWhite(const ib_t *in, /* I - Input pixels */
*/
void
ImageWhiteToRGB(const ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
ImageWhiteToRGB(ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
{
if (ImageHaveProfile)
while (count > 0)
@@ -133,9 +133,9 @@ ImageWhiteToRGB(const ib_t *in, /* I - Input pixels */
*/
void
ImageWhiteToBlack(const ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
ImageWhiteToBlack(ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
{
if (ImageHaveProfile)
while (count > 0)
@@ -157,9 +157,9 @@ ImageWhiteToBlack(const ib_t *in, /* I - Input pixels */
*/
void
ImageWhiteToCMY(const ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
ImageWhiteToCMY(ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
{
if (ImageHaveProfile)
while (count > 0)
@@ -186,9 +186,9 @@ ImageWhiteToCMY(const ib_t *in, /* I - Input pixels */
*/
void
ImageWhiteToCMYK(const ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
ImageWhiteToCMYK(ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
{
if (ImageHaveProfile)
while (count > 0)
@@ -216,9 +216,9 @@ ImageWhiteToCMYK(const ib_t *in, /* I - Input pixels */
*/
void
ImageRGBToBlack(const ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
ImageRGBToBlack(ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
{
if (ImageHaveProfile)
while (count > 0)
@@ -242,9 +242,9 @@ ImageRGBToBlack(const ib_t *in, /* I - Input pixels */
*/
void
ImageRGBToCMY(const ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
ImageRGBToCMY(ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
{
int c, m, y, k; /* CMYK values */
int cc, cm, cy; /* Calibrated CMY values */
@@ -316,12 +316,11 @@ ImageRGBToCMY(const ib_t *in, /* I - Input pixels */
*/
void
ImageRGBToCMYK(const ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count)/* I - Number of pixels */
ImageRGBToCMYK(ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
{
int c, m, y, k, /* CMYK values */
km, /* Maximum K value */
diff, /* Color differences */
divk; /* Color divisor */
int cc, cm, cy; /* Calibrated CMY values */
@@ -335,13 +334,8 @@ ImageRGBToCMYK(const ib_t *in, /* I - Input pixels */
y = 255 - *in++;
k = min(c, min(m, y));
#if 0
diff = 255 - (max(c, max(m, y)) - k);
k = k * diff / 255;
#else
if ((km = max(c, max(m, y))) > k)
k = k * k / km;
#endif /* 0 */
if (k == 255)
c = m = y = 0;
@@ -391,7 +385,7 @@ ImageRGBToCMYK(const ib_t *in, /* I - Input pixels */
else if (cy > 255)
*out++ = ImageDensity[255];
else
*out++ = ImageDensity[cy];
*out++ = cy;
*out++ = ImageDensity[k];
@@ -439,9 +433,9 @@ ImageRGBToCMYK(const ib_t *in, /* I - Input pixels */
*/
void
ImageRGBToWhite(const ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
ImageRGBToWhite(ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
{
if (ImageHaveProfile)
while (count > 0)
@@ -465,9 +459,9 @@ ImageRGBToWhite(const ib_t *in, /* I - Input pixels */
*/
void
ImageRGBToRGB(const ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
ImageRGBToRGB(ib_t *in, /* I - Input pixels */
ib_t *out, /* I - Output pixels */
int count) /* I - Number of pixels */
{
int c, m, y, k; /* CMYK values */
int cr, cg, cb; /* Calibrated RGB values */
@@ -527,9 +521,9 @@ ImageRGBToRGB(const ib_t *in, /* I - Input pixels */
*/
void
ImageLut(ib_t *pixels, /* IO - Input/output pixels */
int count, /* I - Number of pixels/bytes to adjust */
const ib_t *lut) /* I - Lookup table */
ImageLut(ib_t *pixels, /* I - Input/output pixels */
int count, /* I - Number of pixels/bytes to adjust */
ib_t *lut) /* I - Lookup table */
{
while (count > 0)
{
@@ -545,7 +539,7 @@ ImageLut(ib_t *pixels, /* IO - Input/output pixels */
*/
void
ImageRGBAdjust(ib_t *pixels, /* IO - Input/output pixels */
ImageRGBAdjust(ib_t *pixels, /* I - Input/output pixels */
int count, /* I - Number of pixels to adjust */
int saturation, /* I - Color saturation (%) */
int hue) /* I - Color hue (degrees) */
+14 -14
Ver Arquivo
@@ -72,14 +72,14 @@ static int gif_read_image(FILE *fp, image_t *img, gif_cmap_t cmap,
* 'ImageReadGIF()' - Read a GIF image file.
*/
int /* O - Read status */
ImageReadGIF(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation, /* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
const ib_t *lut) /* I - Lookup table for gamma/brightness */
int /* O - Read status */
ImageReadGIF(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation,/* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
ib_t *lut) /* I - Lookup table for gamma/brightness */
{
unsigned char buf[1024]; /* Input buffer */
gif_cmap_t cmap; /* Colormap */
@@ -236,13 +236,13 @@ ImageReadGIF(image_t *img, /* IO - Image */
* 'gif_read_cmap()' - Read the colormap from a GIF file...
*/
static int /* O - -1 on error, 0 on success */
gif_read_cmap(FILE *fp, /* I - File to read from */
int ncolors, /* I - Number of colors in file */
gif_cmap_t cmap, /* O - Colormap information */
int *gray) /* IO - Is the image grayscale? */
static int
gif_read_cmap(FILE *fp,
int ncolors,
gif_cmap_t cmap,
int *gray)
{
int i; /* Looping var */
int i;
/*
+7 -7
Ver Arquivo
@@ -41,13 +41,13 @@
*/
int /* O - Read status */
ImageReadJPEG(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation, /* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
const ib_t *lut) /* I - Lookup table for gamma/brightness */
ImageReadJPEG(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation, /* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
ib_t *lut) /* I - Lookup table for gamma/brightness */
{
struct jpeg_decompress_struct cinfo; /* Decompressor info */
struct jpeg_error_mgr jerr; /* Error handler info */
+7 -7
Ver Arquivo
@@ -44,13 +44,13 @@
*/
int /* O - Read status */
ImageReadPhotoCD(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation, /* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
const ib_t *lut) /* I - Lookup table for gamma/brightness */
ImageReadPhotoCD(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation, /* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
ib_t *lut) /* I - Lookup table for gamma/brightness */
{
int x, y; /* Looping vars */
int xdir, /* X direction */
+8 -8
Ver Arquivo
@@ -40,14 +40,14 @@
* 'ImageReadPNG()' - Read a PNG image file.
*/
int /* O - Read status */
ImageReadPNG(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation, /* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
const ib_t *lut) /* I - Lookup table for gamma/brightness */
int /* O - Read status */
ImageReadPNG(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation,/* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
ib_t *lut) /* I - Lookup table for gamma/brightness */
{
int y; /* Looping var */
png_structp pp; /* PNG read pointer */
+8 -8
Ver Arquivo
@@ -38,14 +38,14 @@
* 'ImageReadPNM()' - Read a PNM image file.
*/
int /* O - Read status */
ImageReadPNM(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation, /* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
const ib_t *lut) /* I - Lookup table for gamma/brightness */
int /* O - Read status */
ImageReadPNM(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation,/* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
ib_t *lut) /* I - Lookup table for gamma/brightness */
{
int x, y; /* Looping vars */
int bpp; /* Bytes per pixel */
+8 -8
Ver Arquivo
@@ -38,14 +38,14 @@
* 'ImageReadSGI()' - Read a SGI image file.
*/
int /* O - Read status */
ImageReadSGI(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation, /* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
const ib_t *lut) /* I - Lookup table for gamma/brightness */
int /* O - Read status */
ImageReadSGI(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation,/* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
ib_t *lut) /* I - Lookup table for gamma/brightness */
{
int i, y; /* Looping vars */
int bpp; /* Bytes per pixel */
+7 -7
Ver Arquivo
@@ -75,13 +75,13 @@ static unsigned read_unsigned(FILE *fp);
*/
int /* O - Read status */
ImageReadSunRaster(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary,/* I - Secondary choice for colorspace */
int saturation,/* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
const ib_t *lut) /* I - Lookup table for gamma/brightness */
ImageReadSunRaster(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation, /* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
ib_t *lut) /* I - Lookup table for gamma/brightness */
{
int i, x, y,
bpp, /* Bytes per pixel */
+10 -8
Ver Arquivo
@@ -42,13 +42,13 @@
*/
int /* O - Read status */
ImageReadTIFF(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation, /* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
const ib_t *lut) /* I - Lookup table for gamma/brightness */
ImageReadTIFF(image_t *img, /* IO - Image */
FILE *fp, /* I - Image file */
int primary, /* I - Primary choice for colorspace */
int secondary, /* I - Secondary choice for colorspace */
int saturation, /* I - Color saturation (%) */
int hue, /* I - Color hue (degrees) */
ib_t *lut) /* I - Lookup table for gamma/brightness */
{
TIFF *tif; /* TIFF file */
uint32 width, height; /* Size of image */
@@ -89,7 +89,9 @@ ImageReadTIFF(image_t *img, /* IO - Image */
* Open the TIFF file and get the required parameters...
*/
lseek(fileno(fp), 0, SEEK_SET); /* Work around "feature" in some stdio's */
#ifdef __hpux
lseek(fileno(fp), 0, SEEK_SET); /* Work around "feature" in HP-UX stdio */
#endif /* __hpux */
if ((tif = TIFFFdOpen(fileno(fp), "", "r")) == NULL)
{
+116 -132
Ver Arquivo
@@ -67,12 +67,12 @@ static void flush_tile(image_t *img);
*/
image_t * /* O - New image */
ImageOpen(char *filename, /* I - Filename of image */
int primary, /* I - Primary colorspace needed */
int secondary, /* I - Secondary colorspace if primary no good */
int saturation,/* I - Color saturation level */
int hue, /* I - Color hue adjustment */
const ib_t *lut) /* I - RGB gamma/brightness LUT */
ImageOpen(char *filename, /* I - Filename of image */
int primary, /* I - Primary colorspace needed */
int secondary, /* I - Secondary colorspace if primary no good */
int saturation, /* I - Color saturation level */
int hue, /* I - Color hue adjustment */
ib_t *lut) /* I - RGB gamma/brightness LUT */
{
FILE *fp; /* File pointer */
unsigned char header[16], /* First 16 bytes of file */
@@ -178,46 +178,33 @@ ImageClose(image_t *img) /* I - Image to close */
*next; /* Next cached tile */
/*
* Free the image cache...
*/
for (current = img->first; current != NULL; current = next)
{
next = current->next;
free(current);
}
/*
* Wipe the tile cache file (if any)...
*/
if (img->cachefile != NULL)
{
fprintf(stderr, "DEBUG: Closing and removing swap file \"%s\"...\n",
img->cachename);
fclose(img->cachefile);
unlink(img->cachename);
}
/*
* Free the image cache...
*/
fputs("DEBUG: Freeing memory...\n", stderr);
for (current = img->first; current != NULL; current = next)
{
fprintf(stderr, "DEBUG: Freeing cache (%08lx, next = %08lx)...\n",
current, next);
next = current->next;
free(current);
}
/*
* Free the rest of memory...
*/
if (img->tiles != NULL)
{
fprintf(stderr, "DEBUG: Freeing tiles (%08lx)...\n", img->tiles[0]);
free(img->tiles[0]);
fprintf(stderr, "DEBUG: Freeing tile pointers (%08lx)...\n", img->tiles);
free(img->tiles);
}
@@ -229,7 +216,7 @@ ImageClose(image_t *img) /* I - Image to close */
* 'ImageSetMaxTiles()' - Set the maximum number of tiles to cache.
*
* If the "max_tiles" argument is 0 then the maximum number of tiles is
* computed from the image size or the RIP_CACHE environment variable.
* computed from the image size.
*/
void
@@ -286,7 +273,9 @@ ImageSetMaxTiles(image_t *img, /* I - Image to set */
img->max_ics = max_tiles;
fprintf(stderr, "DEBUG: max_ics=%d...\n", img->max_ics);
#ifdef DEBUG
fprintf(stderr, "ImageSetMaxTiles: max_ics=%d...\n", img->max_ics);
#endif /* DEBUG */
}
@@ -299,19 +288,18 @@ ImageSetProfile(float d, /* I - Ink/marker density */
float g, /* I - Ink/marker gamma */
float matrix[3][3]) /* I - Color transform matrix */
{
int i, j, k; /* Looping vars */
float m; /* Current matrix value */
int *im; /* Pointer into ImageMatrix */
int i, j, k; /* Looping vars */
ImageHaveProfile = 1;
for (i = 0, im = ImageMatrix[0][0]; i < 3; i ++)
for (i = 0; i < 3; i ++)
for (j = 0; j < 3; j ++)
for (k = 0, m = matrix[i][j]; k < 256; k ++)
*im++ = (int)(k * m + 0.5);
for (k = 0; k < 256; k ++)
ImageMatrix[i][j][k] = (int)(k * matrix[i][j] + 0.5);
for (k = 0, im = ImageDensity; k < 256; k ++)
*im++ = 255.0 * d * pow((float)k / 255.0, g) + 0.5;
for (k = 0; k < 256; k ++)
ImageDensity[k] = 255.0 * d * pow((float)k / 255.0, g) + 0.5;
}
@@ -319,17 +307,17 @@ ImageSetProfile(float d, /* I - Ink/marker density */
* 'ImageGetCol()' - Get a column of pixels from an image.
*/
int /* O - -1 on error, 0 on success */
ImageGetCol(image_t *img, /* I - Image */
int x, /* I - Column */
int y, /* I - Start row */
int height, /* I - Column height */
ib_t *pixels) /* O - Pixel data */
int
ImageGetCol(image_t *img,
int x,
int y,
int height,
ib_t *pixels)
{
int bpp, /* Bytes per pixel */
twidth, /* Tile width */
count; /* Number of pixels to get */
const ib_t *ib; /* Pointer into tile */
int bpp,
twidth,
count;
ib_t *ib;
if (img == NULL || x < 0 || x >= img->xsize || y >= img->ysize)
@@ -386,16 +374,16 @@ ImageGetCol(image_t *img, /* I - Image */
* 'ImageGetRow()' - Get a row of pixels from an image.
*/
int /* O - -1 on error, 0 on success */
ImageGetRow(image_t *img, /* I - Image */
int x, /* I - Start column */
int y, /* I - Row */
int width, /* I - Width of row */
ib_t *pixels) /* O - Pixel data */
int
ImageGetRow(image_t *img,
int x,
int y,
int width,
ib_t *pixels)
{
int bpp, /* Bytes per pixel */
count; /* Number of pixels to get */
const ib_t *ib; /* Pointer to pixels */
int bpp,
count;
ib_t *ib;
if (img == NULL || y < 0 || y >= img->ysize || x >= img->xsize)
@@ -439,19 +427,19 @@ ImageGetRow(image_t *img, /* I - Image */
* 'ImagePutCol()' - Put a column of pixels to an image.
*/
int /* O - -1 on error, 0 on success */
ImagePutCol(image_t *img, /* I - Image */
int x, /* I - Column */
int y, /* I - Start row */
int height, /* I - Column height */
const ib_t *pixels) /* I - Pixels to put */
int
ImagePutCol(image_t *img,
int x,
int y,
int height,
ib_t *pixels)
{
int bpp, /* Bytes per pixel */
twidth, /* Width of tile */
count; /* Number of pixels to put */
int tilex, /* Column within tile */
tiley; /* Row within tile */
ib_t *ib; /* Pointer to pixels in tile */
int bpp,
twidth,
count;
int tilex,
tiley;
ib_t *ib;
if (img == NULL || x < 0 || x >= img->xsize || y >= img->ysize)
@@ -513,18 +501,18 @@ ImagePutCol(image_t *img, /* I - Image */
* 'ImagePutRow()' - Put a row of pixels to an image.
*/
int /* O - -1 on error, 0 on success */
ImagePutRow(image_t *img, /* I - Image */
int x, /* I - Start column */
int y, /* I - Row */
int width, /* I - Row width */
const ib_t *pixels) /* I - Pixel data */
int
ImagePutRow(image_t *img,
int x,
int y,
int width,
ib_t *pixels)
{
int bpp, /* Bytes per pixel */
count; /* Number of pixels to put */
int tilex, /* Column within tile */
tiley; /* Row within tile */
ib_t *ib; /* Pointer to pixels in tile */
int bpp,
count;
int tilex,
tiley;
ib_t *ib;
if (img == NULL || y < 0 || y >= img->ysize || x >= img->xsize)
@@ -573,33 +561,28 @@ ImagePutRow(image_t *img, /* I - Image */
* 'get_tile()' - Get a cached tile.
*/
static ib_t * /* O - Pointer to tile or NULL */
get_tile(image_t *img, /* I - Image */
int x, /* I - Column in image */
int y) /* I - Row in image */
static ib_t *
get_tile(image_t *img,
int x,
int y)
{
int bpp, /* Bytes per pixel */
tilex, /* Column within tile */
tiley, /* Row within tile */
xtiles, /* Number of tiles horizontally */
ytiles; /* Number of tiles vertically */
ic_t *ic; /* Cache pointer */
itile_t *tile; /* Tile pointer */
int bpp,
tilex,
tiley,
xtiles,
ytiles;
ic_t *ic;
itile_t *tile;
if (x >= img->xsize || y >= img->ysize)
{
fprintf(stderr, "ERROR: Internal image RIP error - %d,%d is outside of %dx%d\n",
x, y, img->xsize, img->ysize);
return (NULL);
}
if (img->tiles == NULL)
{
xtiles = (img->xsize + TILE_SIZE - 1) / TILE_SIZE;
ytiles = (img->ysize + TILE_SIZE - 1) / TILE_SIZE;
fprintf(stderr, "DEBUG: Creating tile array (%dx%d)\n", xtiles, ytiles);
#ifdef DEBUG
fprintf(stderr, "get_tile: Creating tile array (%dx%d)\n", xtiles, ytiles);
#endif /* DEBUG */
img->tiles = calloc(sizeof(itile_t *), ytiles);
tile = calloc(sizeof(itile_t), xtiles * ytiles);
@@ -624,18 +607,20 @@ get_tile(image_t *img, /* I - Image */
{
if (img->num_ics < img->max_ics)
{
#ifdef DEBUG
fputs("get_tile: Allocating new cache tile...\n", stderr);
#endif /* DEBUG */
ic = calloc(sizeof(ic_t) + bpp * TILE_SIZE * TILE_SIZE, 1);
ic->pixels = ((ib_t *)ic) + sizeof(ic_t);
img->num_ics ++;
fprintf(stderr, "DEBUG: Allocated cache tile %d (%08lx)...\n",
img->num_ics, ic);
}
else
{
fprintf(stderr, "DEBUG: Flushing old cache tile (%08lx)...\n",
img->first);
#ifdef DEBUG
fputs("get_tile: Flushing old cache tile...\n", stderr);
#endif /* DEBUG */
flush_tile(img);
ic = img->first;
@@ -646,8 +631,10 @@ get_tile(image_t *img, /* I - Image */
if (tile->pos >= 0)
{
fprintf(stderr, "DEBUG: Loading cache tile from file position %d...\n",
#ifdef DEBUG
fprintf(stderr, "get_tile: loading cache tile from file position %d...\n",
tile->pos);
#endif /* DEBUG */
if (ftell(img->cachefile) != tile->pos)
if (fseek(img->cachefile, tile->pos, SEEK_SET))
@@ -657,7 +644,9 @@ get_tile(image_t *img, /* I - Image */
}
else
{
fputs("DEBUG: Clearing cache tile...\n", stderr);
#ifdef DEBUG
fputs("get_tile: Clearing cache tile...\n", stderr);
#endif /* DEBUG */
memset(ic->pixels, 0, bpp * TILE_SIZE * TILE_SIZE);
}
@@ -688,13 +677,17 @@ get_tile(image_t *img, /* I - Image */
*/
static void
flush_tile(image_t *img) /* I - Image */
flush_tile(image_t *img)
{
int bpp; /* Bytes per pixel */
itile_t *tile; /* Pointer to tile */
int bpp;
itile_t *tile;
#ifdef DEBUG
fprintf(stderr, "flush_tile(%08x)...\n", img);
#endif /* DEBUG */
bpp = ImageGetDepth(img);
tile = img->first->tile;
@@ -706,15 +699,16 @@ flush_tile(image_t *img) /* I - Image */
if (img->cachefile == NULL)
{
cupsTempFile(img->cachename, sizeof(img->cachename));
tmpnam(img->cachename);
fprintf(stderr, "DEBUG: Creating swap file \"%s\"...\n", img->cachename);
#ifdef DEBUG
fprintf(stderr, "flush_tile: Creating cache file %s...\n", img->cachename);
#endif /* DEBUG */
if ((img->cachefile = fopen(img->cachename, "wb+")) == NULL)
{
perror("ERROR: Unable to create image swap file");
tile->ic = NULL;
tile->dirty = 0;
fprintf(stderr, "flush_tile: Unable to create swap file - %s\n",
strerror(errno));
return;
}
}
@@ -723,32 +717,22 @@ flush_tile(image_t *img) /* I - Image */
{
if (ftell(img->cachefile) != tile->pos)
if (fseek(img->cachefile, tile->pos, SEEK_SET))
{
perror("ERROR: Unable to seek in swap file");
tile->ic = NULL;
tile->dirty = 0;
return;
}
perror("flush_tile:");
}
else
{
if (fseek(img->cachefile, 0, SEEK_END))
{
perror("ERROR: Unable to append to swap file");
tile->ic = NULL;
tile->dirty = 0;
return;
}
perror("flush_tile:");
tile->pos = ftell(img->cachefile);
}
#ifdef DEBUG
fprintf(stderr, "flush_tile: Wrote tile cache at position %d...\n",
tile->pos);
#endif /* DEBUG */
if (fwrite(tile->ic->pixels, bpp, TILE_SIZE * TILE_SIZE, img->cachefile) < 1)
perror("ERROR: Unable to write tile to swap file");
else
fprintf(stderr, "DEBUG: Wrote tile at position %d...\n", tile->pos);
fwrite(tile->ic->pixels, bpp, TILE_SIZE * TILE_SIZE, img->cachefile);
tile->ic = NULL;
tile->dirty = 0;
}
+22 -24
Ver Arquivo
@@ -153,7 +153,7 @@ typedef struct
*/
extern image_t *ImageOpen(char *filename, int primary, int secondary,
int saturation, int hue, const ib_t *lut);
int saturation, int hue, ib_t *lut);
extern void ImageClose(image_t *img);
extern void ImageSetMaxTiles(image_t *img, int max_tiles);
extern void ImageSetProfile(float d, float g, float matrix[3][3]);
@@ -161,51 +161,49 @@ extern void ImageSetProfile(float d, float g, float matrix[3][3]);
#define ImageGetDepth(img) ((img)->colorspace < 0 ? -(img)->colorspace : (img)->colorspace)
extern int ImageGetCol(image_t *img, int x, int y, int height, ib_t *pixels);
extern int ImageGetRow(image_t *img, int x, int y, int width, ib_t *pixels);
extern int ImagePutCol(image_t *img, int x, int y, int height, const ib_t *pixels);
extern int ImagePutRow(image_t *img, int x, int y, int width, const ib_t *pixels);
extern int ImagePutCol(image_t *img, int x, int y, int height, ib_t *pixels);
extern int ImagePutRow(image_t *img, int x, int y, int width, ib_t *pixels);
/*
* File formats...
*/
extern int ImageReadGIF(image_t *img, FILE *fp, int primary, int secondary,
int saturation, int hue, const ib_t *lut);
int saturation, int hue, ib_t *lut);
extern int ImageReadJPEG(image_t *img, FILE *fp, int primary, int secondary,
int saturation, int hue, const ib_t *lut);
int saturation, int hue, ib_t *lut);
extern int ImageReadPNG(image_t *img, FILE *fp, int primary, int secondary,
int saturation, int hue, const ib_t *lut);
int saturation, int hue, ib_t *lut);
extern int ImageReadPNM(image_t *img, FILE *fp, int primary, int secondary,
int saturation, int hue, const ib_t *lut);
int saturation, int hue, ib_t *lut);
extern int ImageReadPhotoCD(image_t *img, FILE *fp, int primary,
int secondary, int saturation, int hue,
const ib_t *lut);
int secondary, int saturation, int hue, ib_t *lut);
extern int ImageReadSGI(image_t *img, FILE *fp, int primary, int secondary,
int saturation, int hue, const ib_t *lut);
int saturation, int hue, ib_t *lut);
extern int ImageReadSunRaster(image_t *img, FILE *fp, int primary,
int secondary, int saturation, int hue,
const ib_t *lut);
int secondary, int saturation, int hue, ib_t *lut);
extern int ImageReadTIFF(image_t *img, FILE *fp, int primary, int secondary,
int saturation, int hue, const ib_t *lut);
int saturation, int hue, ib_t *lut);
/*
* Colorspace conversions...
*/
extern void ImageWhiteToWhite(const ib_t *in, ib_t *out, int count);
extern void ImageWhiteToRGB(const ib_t *in, ib_t *out, int count);
extern void ImageWhiteToBlack(const ib_t *in, ib_t *out, int count);
extern void ImageWhiteToCMY(const ib_t *in, ib_t *out, int count);
extern void ImageWhiteToCMYK(const ib_t *in, ib_t *out, int count);
extern void ImageWhiteToWhite(ib_t *in, ib_t *out, int count);
extern void ImageWhiteToRGB(ib_t *in, ib_t *out, int count);
extern void ImageWhiteToBlack(ib_t *in, ib_t *out, int count);
extern void ImageWhiteToCMY(ib_t *in, ib_t *out, int count);
extern void ImageWhiteToCMYK(ib_t *in, ib_t *out, int count);
extern void ImageRGBToWhite(const ib_t *in, ib_t *out, int count);
extern void ImageRGBToRGB(const ib_t *in, ib_t *out, int count);
extern void ImageRGBToBlack(const ib_t *in, ib_t *out, int count);
extern void ImageRGBToCMY(const ib_t *in, ib_t *out, int count);
extern void ImageRGBToCMYK(const ib_t *in, ib_t *out, int count);
extern void ImageRGBToWhite(ib_t *in, ib_t *out, int count);
extern void ImageRGBToRGB(ib_t *in, ib_t *out, int count);
extern void ImageRGBToBlack(ib_t *in, ib_t *out, int count);
extern void ImageRGBToCMY(ib_t *in, ib_t *out, int count);
extern void ImageRGBToCMYK(ib_t *in, ib_t *out, int count);
extern void ImageRGBAdjust(ib_t *pixels, int count, int saturation, int hue);
extern void ImageLut(ib_t *pixels, int count, const ib_t *lut);
extern void ImageLut(ib_t *pixels, int count, ib_t *lut);
/*
* Image scaling operations...
+1 -6
Ver Arquivo
@@ -91,7 +91,6 @@ main(int argc, /* I - Number of command-line arguments */
float zoom; /* Zoom facter */
int ppi; /* Pixels-per-inch */
int hue, sat; /* Hue and saturation adjustment */
int realcopies; /* Real copies being printed */
if (argc != 7)
@@ -259,11 +258,8 @@ main(int argc, /* I - Number of command-line arguments */
if (Copies > 1 && !slowcollate)
{
printf("/#copies %d def\n", Copies);
realcopies = Copies;
Copies = 1;
Copies = 1;
}
else
realcopies = 1;
/*
* Output the pages...
@@ -277,7 +273,6 @@ main(int argc, /* I - Number of command-line arguments */
for (xpage = 0; xpage < xpages; xpage ++)
for (ypage = 0; ypage < ypages; ypage ++, page ++)
{
fprintf(stderr, "PAGE: %d %d\n", page, realcopies);
fprintf(stderr, "INFO: Printing page %d...\n", page);
ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
+7 -19
Ver Arquivo
@@ -296,7 +296,7 @@ main(int argc, /* I - Number of command-line arguments */
resolution = "";
/*
* Choose the appropriate colorspace...
* Choose the appropriate colorspace and color profile...
*/
switch (header.cupsColorSpace)
@@ -388,32 +388,22 @@ main(int argc, /* I - Number of command-line arguments */
if (ppd != NULL)
{
fprintf(stderr, "DEBUG: Searching for profile \"%s/%s\"...\n",
resolution, media_type);
for (i = 0, profile = ppd->profiles; i < ppd->num_profiles; i ++, profile ++)
{
fprintf(stderr, "DEBUG: \"%s/%s\" = ", profile->resolution,
profile->media_type);
if ((strcmp(profile->resolution, resolution) == 0 ||
profile->resolution[0] == '-') &&
(strcmp(profile->media_type, media_type) == 0 ||
profile->media_type[0] == '-'))
{
fputs("MATCH!\n", stderr);
break;
}
else
fputs("no.\n", stderr);
}
/*
* If we found a color profile, use it!
*/
if (i < ppd->num_profiles)
{
fputs("Setting color profile!\n", stderr);
ImageSetProfile(profile->density, profile->gamma, profile->matrix);
}
}
/*
@@ -491,8 +481,8 @@ main(int argc, /* I - Number of command-line arguments */
xprint = xinches / xpages;
yprint = yinches / ypages;
if ((choice = ppdFindMarkedChoice(ppd, "PageSize")) != NULL &&
strcmp(choice->choice, "Custom") == 0)
if ((val = cupsGetOption("Page", num_options, options)) != NULL &&
strncmp(val, "Custom.", 7) == 0)
{
if (Orientation & 1)
{
@@ -564,8 +554,6 @@ main(int argc, /* I - Number of command-line arguments */
Copies = 1;
}
else
header.NumCopies = 1;
/*
* Create the dithering lookup tables...
@@ -609,7 +597,7 @@ main(int argc, /* I - Number of command-line arguments */
fprintf(stderr, "DEBUG: cupsColorSpace = %d\n", header.cupsColorSpace);
fprintf(stderr, "DEBUG: img->colorspace = %d\n", img->colorspace);
row = malloc(2 * header.cupsBytesPerLine);
row = malloc(header.cupsBytesPerLine);
ras = cupsRasterOpen(1, CUPS_RASTER_WRITE);
blank = img->colorspace < 0 ? 0 : ~0;
+1 -1
Ver Arquivo
@@ -205,7 +205,7 @@ main(int argc, /* I - Number of command-line arguments */
if (sloworder || slowcollate)
{
temp = fopen(cupsTempFile(tempfile, sizeof(tempfile)), "wb+");
temp = fopen(tmpnam(tempfile), "wb+");
if (temp == NULL)
slowcollate = sloworder = 0;
+11 -14
Ver Arquivo
@@ -193,17 +193,6 @@ TextMain(char *name, /* I - Name of filter */
options = NULL;
num_options = cupsParseOptions(argv[5], 0, &options);
if ((val = cupsGetOption("prettyprint", num_options, options)) != NULL)
{
PrettyPrint = 1;
PageLeft = 72.0f;
PageRight = PageWidth - 36.0f;
PageBottom = PageBottom > 36.0f ? PageBottom : 36.0f;
PageTop = PageLength - 36.0f;
CharsPerInch = 12;
LinesPerInch = 8;
}
if ((ppd = SetCommonOptions(num_options, options, 1)) != NULL)
ppdClose(ppd);
@@ -212,15 +201,23 @@ TextMain(char *name, /* I - Name of filter */
if ((val = cupsGetOption("columns", num_options, options)) != NULL)
PageColumns = atoi(val);
if ((val = cupsGetOption("prettyprint", num_options, options)) != NULL)
{
PrettyPrint = 1;
PageLeft = 72.0f;
PageRight = PageWidth - 36.0f;
PageBottom = PageBottom > 36.0f ? PageBottom : 36.0f;
PageTop = PageLength - 36.0f - 216.0f / LinesPerInch;
CharsPerInch = 12;
LinesPerInch = 8;
}
if ((val = cupsGetOption("cpi", num_options, options)) != NULL)
CharsPerInch = atoi(val);
if ((val = cupsGetOption("lpi", num_options, options)) != NULL)
LinesPerInch = atoi(val);
if ((val = cupsGetOption("prettyprint", num_options, options)) != NULL)
PageTop -= 216.0f / LinesPerInch;
Copies = atoi(argv[4]);
WriteProlog(argv[3], argv[2], ppd);
+8 -10
Ver Arquivo
@@ -343,36 +343,34 @@ WriteProlog(char *title, /* I - Title of job */
{
puts("\tdup 2 mod 0 eq {");
printf("\t\tT stringwidth pop neg %.1f add %.1f } {\n",
PageRight - PageLeft - 36.0f / LinesPerInch,
(0.5f + 0.157f) * 72.0f / LinesPerInch);
PageRight - PageLeft - 36.0f / LinesPerInch, 54.0f / LinesPerInch);
printf("\t\t%.1f %.1f } ifelse\n", 36.0f / LinesPerInch,
(0.5f + 0.157f) * 72.0f / LinesPerInch);
54.0f / LinesPerInch);
}
else
printf("\t%.1f %.1f\n", 36.0f / LinesPerInch,
(0.5f + 0.157f) * 72.0f / LinesPerInch);
54.0f / LinesPerInch);
puts("\tmoveto T show");
printf("\t(%s)\n", curdate);
printf("\tdup stringwidth pop neg 2 div %.1f add %.1f\n",
(PageRight - PageLeft) * 0.5,
(0.5f + 0.157f) * 72.0f / LinesPerInch);
(PageRight - PageLeft) * 0.5, 54.0f / LinesPerInch);
puts("\tmoveto show");
if (Duplex)
{
puts("\tdup P cvs exch 2 mod 0 eq {");
printf("\t\t%.1f %.1f } {\n", 36.0f / LinesPerInch,
(0.5f + 0.157f) * 72.0f / LinesPerInch);
54.0f / LinesPerInch);
printf("\t\tdup stringwidth pop neg %.1f add %.1f } ifelse\n",
PageRight - PageLeft - 36.0f / LinesPerInch,
(0.5f + 0.157f) * 72.0f / LinesPerInch);
54.0f / LinesPerInch);
}
else
printf("\tP cvs dup stringwidth pop neg %.1f add %.1f\n",
PageRight - PageLeft - 36.0f / LinesPerInch,
(0.5f + 0.157f) * 72.0f / LinesPerInch);
54.0f / LinesPerInch);
puts("\tmoveto show");
puts("\tgrestore");
@@ -456,7 +454,7 @@ write_string(int col, /* I - Start column */
}
x += (float)col * 72.0f / (float)CharsPerInch;
y -= (float)(row + 0.843) * 72.0f / (float)LinesPerInch;
y -= (float)(row + 0.5) * 72.0f / (float)LinesPerInch;
attr = s->attr;
+7 -7
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: accept.8 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: accept.8 380 1999-06-10 16:15:04Z mike $"
.\"
.\" accept/reject man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,7 +21,7 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH accept 8 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH accept 8 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
accept/reject \- accept/reject jobs sent to a destination
.SH SYNOPSIS
@@ -36,22 +36,22 @@ destination(s)
] ]
destination(s)
.SH DESCRIPTION
\fIaccept\fR instructs the printing system to accept print jobs to the
\fBaccept\fR instructs the printing system to accept print jobs to the
specified destinations.
.LP
\fIreject\fR instructs the printing system to reject print jobs to the
\fBreject\fR instructs the printing system to reject print jobs to the
specified destinations. The \fI-r\fR option sets the reason for rejecting
print jobs. If not specified the reason defaults to "Reason Unknown".
.SH COMPATIBILITY
The CUPS versions of \fIaccept\fR and \fIreject\fR may ask the user for an
The CUPS versions of \fBaccept\fR and \fBreject\fR may ask the user for an
access password depending on the printing system configuration. This differs
from the System V versions which require the root user to execute these
commands.
.SH SEE ALSO
cancel(1), disable(8), enable(8), lp(1), lpadmin(8), lpstat(1),
CUPS Software Administrators Manual
CUPS Software Administrator's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: accept.8 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: accept.8 380 1999-06-10 16:15:04Z mike $".
.\"
BIN
Ver Arquivo
Arquivo binário não exibido.
+7 -21
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: backend.1 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: backend.1 327 1999-05-14 17:03:06Z mike $"
.\"
.\" backend man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,7 +21,7 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH backend 1 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH backend 1 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
backend \- backend transmission interfaces
.SH SYNOPSIS
@@ -45,33 +45,19 @@ CHARSET
.br
The default text character set (typically us-ascii or iso-8859-1).
.TP 5
CONTENT_TYPE
.br
The MIME type associated with the file (e.g. application/postscript).
.TP 5
DEVICE_URI
.br
The device-uri associated with the printer; this is provided for shell
scripts which may not be able to get the passed argv[0] string.
.TP 5
LANG
.br
The default language locale (typically C or en).
.TP 5
PATH
.br
The standard execution path for external programs that may be run by
the backend.
The standard execution path for external programs that may be run by the backend.
.TP 5
PPD
.br
The full pathname of the PostScript Printer Description (PPD) file for
this printer.
.TP 5
PRINTER
.br
The name of the printer.
.TP 5
RIP_CACHE
.br
The recommended amount of memory to use for Raster Image Processors (RIPs).
@@ -86,17 +72,17 @@ The name and version number of the server (typically CUPS/1.0).
.TP 5
TZ
.br
The timezone of the server.
The timezone of the server (typically GMT).
.TP 5
USER
.br
The user executing the backend (typically lp).
The user executing the backend (typically root).
.SH SEE ALSO
cupsd(8), filter(1)
CUPS Software Administrators Manual,
CUPS Software Administrator's Manual,
CUPS Interface Design Description
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: backend.1 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: backend.1 327 1999-05-14 17:03:06Z mike $".
.\"
BIN
Ver Arquivo
Arquivo binário não exibido.
+4 -7
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: classes.conf.5 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: classes.conf.5 327 1999-05-14 17:03:06Z mike $"
.\"
.\" classes.conf man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,19 +21,16 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH classes.conf 5 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH classes.conf 5 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
classes.conf \- class configuration file for cups
.SH DESCRIPTION
The \fIclasses.conf\fR file defines the local printer classes that are
available. It is normally generated by the \fIcupsd(8)\fR program when
printer classes are added or deleted.
.SH SEE ALSO
cupsd(8), cupsd.conf(5), mime.convs(5), mime.types(5), printers.conf(5),
CUPS Software Administrators Manual,
CUPS Software Administrator's Manual,
CUPS Interface Design Description
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: classes.conf.5 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: classes.conf.5 327 1999-05-14 17:03:06Z mike $".
.\"
Arquivo binário não exibido.
+7 -8
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: cupsd.8 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: cupsd.8 327 1999-05-14 17:03:06Z mike $"
.\"
.\" cupsd man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,28 +21,27 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH cupsd 8 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH cupsd 8 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
cupsd \- common unix printing system daemon
.SH SYNOPSIS
.B cups
.I [ \-c config-file ]
.SH DESCRIPTION
\fIcupsd\fR is the scheduler for the Common UNIX Printing System. It implements
\fBcupsd\fR is the scheduler for the Common UNIX Printing System. It implements
a printing system based upon the Internet Printing Protocol, version 1.0. If
no options are specified on the command-line then the default configuration file
(usually \fI/var/cups/conf/cupsf.conf\fR) will be used.
.SH COMPATIBILITY
\fIcupsd\fR implements all of the required IPP/1.0 attributes and operations.
\fBcupsd\fR implements all of the required IPP/1.0 attributes and operations.
It also implements optional operation set 1 and several CUPS-specific
administation operations.
.SH SEE ALSO
backend(1), classes.conf(5), cupsd.conf(5), filter(1), mime.convs(5),
mime.types(5), printers.conf(5),
CUPS Software Administrators Manual,
classes.conf(5), cupsd.conf(5), mime.convs(5), mime.types(5), printers.conf(5),
CUPS Software Administrator's Manual,
CUPS Interface Design Description
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: cupsd.8 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: cupsd.8 327 1999-05-14 17:03:06Z mike $".
.\"
+4 -5
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: cupsd.conf.5 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: cupsd.conf.5 327 1999-05-14 17:03:06Z mike $"
.\"
.\" cupsd.conf man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,17 +21,16 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH cupsd.conf 5 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH cupsd.conf 5 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
cupsd.conf \- server configuration file for cups
.SH DESCRIPTION
The \fIcupsd.conf\fR file configures the CUPS scheduler, \fIcupsd(8)\fR.
.SH SEE ALSO
classes.conf(5), cupsd(8), mime.convs(5), mime.types(5), printers.conf(5),
CUPS Software Administrators Manual,
CUPS Software Administrator's Manual,
CUPS Interface Design Description
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: cupsd.conf.5 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: cupsd.conf.5 327 1999-05-14 17:03:06Z mike $".
.\"
Arquivo binário não exibido.
BIN
Ver Arquivo
Arquivo binário não exibido.
+7 -7
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: enable.8 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: enable.8 380 1999-06-10 16:15:04Z mike $"
.\"
.\" enable/disable man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,7 +21,7 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH enable 8 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH enable 8 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
disable, disable \- stop/start printers and classes
.SH SYNOPSIS
@@ -35,9 +35,9 @@ destination(s)
.I reason
] ] destination(s)
.SH DESCRIPTION
\fIenable\fR starts the named printers or classes.
\fBenable\fR starts the named printers or classes.
.LP
\fIdisable\fR stops the named printers or classes. The following options may
\fBdisable\fR stops the named printers or classes. The following options may
be used:
.TP 5
\-c
@@ -49,16 +49,16 @@ Cancels all jobs on the named destination.
Sets the message associated with the stopped state. If no reason is specified
then the message is set to "Reason Unknown".
.SH COMPATIBILITY
The CUPS versions of \fIdisable\fR and \fIenable\fR may ask the user for an
The CUPS versions of \fBdisable\fR and \fBenable\fR may ask the user for an
access password depending on the printing system configuration. This differs
from the System V versions which require the root user to execute these
commands.
.SH SEE ALSO
accept(8), cancel(1), lp(1), lpadmin(8), lpstat(1), reject(8),
CUPS Software Administrators Manual
CUPS Software Administrator's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: enable.8 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: enable.8 380 1999-06-10 16:15:04Z mike $".
.\"
BIN
Ver Arquivo
Arquivo binário não exibido.
+6 -19
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: filter.1 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: filter.1 327 1999-05-14 17:03:06Z mike $"
.\"
.\" filter man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,7 +21,7 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH filter 1 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH filter 1 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
filter \- file conversion filter interfaces
.SH SYNOPSIS
@@ -47,14 +47,6 @@ CHARSET
.br
The default text character set (typically us-ascii or iso-8859-1).
.TP 5
CONTENT_TYPE
.br
The MIME type associated with the file (e.g. application/postscript).
.TP 5
DEVICE_URI
.br
The device-uri associated with the printer.
.TP 5
LANG
.br
The default language locale (typically C or en).
@@ -68,11 +60,6 @@ PPD
The full pathname of the PostScript Printer Description (PPD) file for
this printer.
.TP 5
PRINTER
.br
The name of the printer; this is provided for shell scripts which may not be
able to get the passed argv[0] string.
.TP 5
RIP_CACHE
.br
The recommended amount of memory to use for Raster Image Processors (RIPs).
@@ -87,11 +74,11 @@ The name and version number of the server (typically CUPS/1.0).
.TP 5
TZ
.br
The timezone of the server.
The timezone of the server (typically GMT).
.TP 5
USER
.br
The user executing the filter (typically lp).
The user executing the filter (typically root).
.SH COMPATIBILITY
While the filter interface is compatible with System V interface
scripts, it will only work with the System V interface script as the
@@ -99,10 +86,10 @@ only filter. Typically the interface script will be provided via the
\fBlpadmin(8)\fR command using the \fI-i\fR option.
.SH SEE ALSO
backend(1), cupsd(8),
CUPS Software Administrators Manual,
CUPS Software Administrator's Manual,
CUPS Interface Design Description
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: filter.1 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: filter.1 327 1999-05-14 17:03:06Z mike $".
.\"
BIN
Ver Arquivo
Arquivo binário não exibido.
+4 -44
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lp.1 660 1999-09-09 14:58:01Z mike $"
.\" "$Id: lp.1 491 1999-07-07 14:03:48Z mike $"
.\"
.\" lp/cancel man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,7 +21,7 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH lp 1 "Common UNIX Printing System" "9 September 1999" "Easy Software Products"
.TH lp 1 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
lp \- print files
.br
@@ -30,8 +30,6 @@ cancel \- cancel jobs
.B lp
[ \-c ] [ \-d
.I destination
] [ -h
.I server
] [ \-m ] [ \-n
.I num-copies
[ \-o
@@ -59,53 +57,15 @@ cancel \- cancel jobs
.LP
\fBcancel\fR cancels existing print jobs. The \fI-a\fR option will remove
all jobs from the specified destination.
.SH OPTIONS
The following options are recognized by \fBlpr\fR:
.TP 5
\-d \fIdestination\fR
.br
Prints files to the named printer.
.TP 5
\-h \fIhostname\fR
.br
Specifies the print server hostname. The default is "localhost" or the value
of the CUPS_SERVER environment variable.
.TP 5
\-m
.br
Send email when the job is completed (ignored in CUPS 1.0.)
.TP 5
\-n \fIcopies\fR
.br
Sets the number of copies to print from 1 to 100.
.TP 5
\-o \fIoption\fR
.br
Sets a job option.
.TP 5
\-p/q \fIpriority\fR
.br
Sets the job priority from 1 (lowest) to 100 (highest). The default priority
is 50.
.TP 5
\-s
.br
Do not report the resulting job IDs (silent mode.)
.TP 5
\-t \fIname\fR
.br
Sets the job name.
.SH COMPATIBILITY
Unlike the System V printing system, CUPS allows printer names to contain
any printable character except SPACE and TAB. Also, printer and class names are
\fBnot\fR case-sensitive.
.LP
The "m" option is not functional in CUPS 1.0.
.SH SEE ALSO
lpstat(1),
CUPS Software Users Manual
CUPS Software User's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lp.1 660 1999-09-09 14:58:01Z mike $".
.\" End of "$Id: lp.1 491 1999-07-07 14:03:48Z mike $".
.\"
BIN
Ver Arquivo
Arquivo binário não exibido.
+9 -9
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpadmin.8 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: lpadmin.8 461 1999-06-24 17:44:19Z mike $"
.\"
.\" lpadmin man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,7 +21,7 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH lpadmin 8 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH lpadmin 8 "Common UNIX Printing System" "22 June 1999" "Easy Software Products"
.SH NAME
lpadmin \- configure cups printers and classes
.SH SYNOPSIS
@@ -44,7 +44,7 @@ lpadmin \- configure cups printers and classes
] \-x
.I destination
.SH DESCRIPTION
\fIlpadmin\fR configures printer and class queues provided by CUPS. It can also
\fBlpadmin\fR configures printer and class queues provided by CUPS. It can also
be used to set the system default printer or class.
.LP
The first form of the command sets the default printer or class to
@@ -93,8 +93,8 @@ Provides a textual description of the printer.
.TP 5
\-E
.br
Enables the printer and accepts jobs; this is the same as running the
\fIaccept(8)\fR and \fIenable(8)\fR programs on the printer.
Enables the printer; this is the same as running the \fIaccept(8)\fR and
\fIenable(8)\fR programs on the printer.
.TP 5
\-L \fIlocation\fR
.br
@@ -107,18 +107,18 @@ specified, this option overrides the \fI-i\fR option (interface script).
.SH COMPATIBILITY
Unlike the System V printing system, CUPS allows printer names to contain
any printable character except SPACE and TAB. Also, printer and class names are
\fBnot\fR case-sensitive. Finally, the CUPS version of \fIlpadmin\fR may ask the
\fBnot\fR case-sensitive. Finally, the CUPS version of \fBlpadmin\fR may ask the
user for an access password depending on the printing system configuration.
This differs from the System V version which requires the root user to execute
this command.
.SH LIMITATIONS
The CUPS version of \fIlpadmin\fR does not support all of the System V or
The CUPS version of \fBlpadmin\fR does not support all of the System V or
Solaris printing system configuration options.
.SH SEE ALSO
accept(8), cancel(1), disable(8), enable(8), lp(1), lpstat(1), reject(8),
CUPS Software Administrators Manual
CUPS Software Administrator's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpadmin.8 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: lpadmin.8 461 1999-06-24 17:44:19Z mike $".
.\"
BIN
Ver Arquivo
Arquivo binário não exibido.
+11 -11
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpc.8 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: lpc.8 327 1999-05-14 17:03:06Z mike $"
.\"
.\" lpc man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,7 +21,7 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH lpc 8 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH lpc 8 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
lpc \- line printer control program
.SH SYNOPSIS
@@ -32,14 +32,14 @@ lpc \- line printer control program
.I parameter(s)
] ]
.SH DESCRIPTION
\fIlpc\fR provides limited control over printer and class queues provided by
\fBlpc\fR provides limited control over printer and class queues provided by
CUPS. It can also be used to query the state of queues.
.LP
If no command is specified on the command-line, \fRlpc\fR will display a
prompt and accept commands from the standard input.
.SH COMMANDS
The \fIlpc\fR program accepts a subset of commands accepted by the Berkeley
\fIlpc\fR program of the same name:
The \fBlpc\fR program accepts a subset of commands accepted by the Berkeley
\fBlpc\fR program of the same name:
.TP 5
\fIexit
.br
@@ -61,19 +61,19 @@ Displays the status of one or more printer or class queues.
.br
Display a short help message.
.SH LIMITATIONS
Since \fIlpc\fR is geared towards the Berkeley printing system, it is impossible
to use \fIlpc\fR to configure printer or class queues provided by CUPS. To
configure printer or class queues you must use the \fIlpadmin(8)\fR command
Since \fBlpc\fR is geared towards the Berkeley printing system, it is impossible
to use \fBlpc\fR to configure printer or class queues provided by CUPS. To
configure printer or class queues you must use the \fBlpadmin(8)\fR command
or another CUPS-compatible client with that functionality.
.SH COMPATIBILITY
The CUPS version of \fIlpc\fR does not implement all of the standard Berkeley
The CUPS version of \fBlpc\fR does not implement all of the standard Berkeley
commands.
.SH SEE ALSO
accept(8), cancel(1), disable(8), enable(8), lp(1), lpr(1), lprm(1),
lpstat(1), reject(8),
CUPS Software Administrators Manual
CUPS Software Administrator's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpc.8 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: lpc.8 327 1999-05-14 17:03:06Z mike $".
.\"
BIN
Ver Arquivo
Arquivo binário não exibido.
+5 -5
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpr.1 660 1999-09-09 14:58:01Z mike $"
.\" "$Id: lpr.1 491 1999-07-07 14:03:48Z mike $"
.\"
.\" lpr man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,7 +21,7 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH lpr 1 "Common UNIX Printing System" "9 September 1999" "Easy Software Products"
.TH lpr 1 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
lpr \- print files
.SH SYNOPSIS
@@ -72,7 +72,7 @@ should be sent without filtering. This option is equivalent to "-oraw".
.TP 5
\-o \fIoption\fR
.br
Sets a job option.
Sets the job name.
.TP 5
\-p
.br
@@ -88,9 +88,9 @@ The "c", "d", "f", "g", "i", "m", "n", "t", "v", and "w" options are not
supported by CUPS and will produce a warning message if used.
.SH SEE ALSO
cancel(1), lp(1), lpstat(1),
CUPS Software Users Manual
CUPS Software User's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpr.1 660 1999-09-09 14:58:01Z mike $".
.\" End of "$Id: lpr.1 491 1999-07-07 14:03:48Z mike $".
.\"
BIN
Ver Arquivo
Arquivo binário não exibido.
+7 -18
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lprm.1 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: lprm.1 327 1999-05-14 17:03:06Z mike $"
.\"
.\" lprm man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,31 +21,20 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH lprm 1 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH lprm 1 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
lprm \- cancel print jobs
.SH SYNOPSIS
.B lprm
[ - ] [ -P
.I destination
] [
.I job ID(s)
]
.SH DESCRIPTION
\fBlprm\fR cancels print jobs that have been queued for printing. The \fI-P\fR
option specifies the destination printer or class.
.LP
If no arguments are supplied, the current job on the default destination is
cancelled. You can specify one or more job ID numbers to cancel those jobs,
or use the \fI\-\fR option to cancel all jobs.
\fBlpstat\fR
.SH COMPATIBILITY
The CUPS version of \fIlprm\fR is compatible with the standard Berkeley
\fIlprm\fR command.
SOMETHING
.SH SEE ALSO
cancel(1), lp(1), lpstat(1), lpr(1),
CUPS Software Users Manual
cancel(1), lp(1), lpstat(1),
CUPS Software User's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lprm.1 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: lprm.1 327 1999-05-14 17:03:06Z mike $".
.\"
BIN
Ver Arquivo
Arquivo binário não exibido.
+4 -4
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: lpstat.1 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: lpstat.1 461 1999-06-24 17:44:19Z mike $"
.\"
.\" lpstat man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,7 +21,7 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH lpstat 1 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH lpstat 1 "Common UNIX Printing System" "24 June 1999" "Easy Software Products"
.SH NAME
lpstat \- print cups status information
.SH SYNOPSIS
@@ -107,9 +107,9 @@ any printable character except SPACE and TAB. Also, printer and class names are
The "-h" option is not a standard System V option.
.SH SEE ALSO
cancel(1), lp(1),
CUPS Software Users Manual
CUPS Software User's Manual
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: lpstat.1 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: lpstat.1 461 1999-06-24 17:44:19Z mike $".
.\"
BIN
Ver Arquivo
Arquivo binário não exibido.
+4 -11
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: mime.convs.5 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: mime.convs.5 327 1999-05-14 17:03:06Z mike $"
.\"
.\" mime.convs man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,23 +21,16 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH mime.convs 5 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH mime.convs 5 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
mime.convs \- mime type conversion file for cups
.SH DESCRIPTION
The \fImime.convs\fR file defines the filters that are available for
converting files from one format to another. The standard filters
support text, PDF, PostScript, HP-GL/2, and many types of image files.
.LP
Additional filters can be added to the \fImime.convs\fR file or to
other files in the configuration directory (\fB/var/cups/conf\fR) with
the extension ".convs".
.SH SEE ALSO
classes.conf(5), cupsd(8), cupsd.conf(5), mime.types(5), printers.conf(5),
CUPS Software Administrators Manual,
CUPS Software Administrator's Manual,
CUPS Interface Design Description
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: mime.convs.5 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: mime.convs.5 327 1999-05-14 17:03:06Z mike $".
.\"
Arquivo binário não exibido.
+4 -8
Ver Arquivo
@@ -1,5 +1,5 @@
.\"
.\" "$Id: mime.types.5 680 1999-09-22 20:06:43Z mike $"
.\" "$Id: mime.types.5 327 1999-05-14 17:03:06Z mike $"
.\"
.\" mime.types man page for the Common UNIX Printing System (CUPS).
.\"
@@ -21,20 +21,16 @@
.\" EMail: cups-info@cups.org
.\" WWW: http://www.cups.org
.\"
.TH mime.types 5 "Common UNIX Printing System" "22 September 1999" "Easy Software Products"
.TH mime.types 5 "Common UNIX Printing System" "14 May 1999" "Easy Software Products"
.SH NAME
mime.types \- mime type description file for cups
.SH DESCRIPTION
The \fImime.types\fR file defines the recognized file types.
.LP
Additional file types can be added to \fImime.types\fR or in additional files
in the configuration directory \fB/var/cups/conf\fR with the extension ".types".
.SH SEE ALSO
classes.conf(5), cupsd(8), cupsd.conf(5), mime.convs(5), printers.conf(5),
CUPS Software Administrators Manual,
CUPS Software Administrator's Manual,
CUPS Interface Design Description
.SH COPYRIGHT
Copyright 1993-1999 by Easy Software Products, All Rights Reserved.
.\"
.\" End of "$Id: mime.types.5 680 1999-09-22 20:06:43Z mike $".
.\" End of "$Id: mime.types.5 327 1999-05-14 17:03:06Z mike $".
.\"
Arquivo binário não exibido.

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais